User:SnowhnonV

lerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolerolero