Old 10th September 2010, 09:10   #41
kingo'mountain
in need of banned aid
 
kingo'mountain's Avatar
 
Join Date: Mar 2001
Location: over the rainb... uh... nevermind
Posts: 2,714
llock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock ock
kingo'mountain is offline  
Old 10th September 2010, 15:13   #42
Warrior of the Light
Forum King
 
Warrior of the Light's Avatar
 
Join Date: Aug 2002
Location: The Netherlands
Posts: 4,082
lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lock lo