Difference between revisions of "User talk:Number"

From Fallen Sword Wiki
Jump to: navigation, search
(New page: talktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalk...)

Revision as of 19:41, 7 July 2013

talktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalktalk