|:::::::::::::::::::::::::::::::::::リ |:::::::::::::::::::::::::::::::::::::::::::::::::::::
/::::::::::::::::::::::::::::::::::/ ヾ::::::::::::::::::::::::::::::::::::::::::::::::::::
/:::::::::::::::::::::::::::::::::ノ _,,,,,,,,,,,,,,..__ _,,,;;;;;;='''''''"゙゙゙ヾ、::::::::::::::::::::::::::::::::::::::::::::::::::::
|::::::::::::::::::::::::::::::::::::) '''"""""'''''''''''゙゙゙゙"''- ''''''""_,、,、,、,、_ ヾ、:::::::::::::::::::::::::::::::::::::::::::::::
|::::::::::::::::::::::::::::::::::ノ ._,,,,,、;、;、;、;、、、、_ ,´ ,r''",r-';';';';';lー、::_:: ヾ、:::::::::::::::::::::::::::::::::::::::::
/:::::::::::::::::::::::::::::::::::/ :;r'"ヽ';';';';';ノ`ゝ `゙、 , ='"、 ヽ;';';'ノノ'"` :: ):::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::リ `ヽ`; ̄;"´^ : ` 、 ; ̄; ' /:::::::::::::::::::::::::::::::::::::::::::
:::::::::::::::::::::::::::::::::::ノ ' : : ' . . |:::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::ヾ、 . |::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::ヽ ヾ:::::::::::::::::::::::::::::::::::::::::::::
:::::::::::::::::::::::::::::::::::::::::::::ヽ |::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::ヾ 、 ( _ ,....ノ 、_ ヾ、::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::ヽ、 ` 、 _ , ´ ` /::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::ヽ _ /:::::::::::::::::::::::::::::::::::::::::::
:::::::::::::::::::::::::::::::::::::::::::::::::::::`、 ....,,,.__,, - ー - '´ ``` ^ア /:::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::ヽ ヽ、 ー─-─一' _/ ミヽ/:::::::::::::::::::::::::::::::::::::::::::::::::
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::ヽ `ヽ、_ _/ ミ::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::`::、  ̄ ̄ _/::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::ヽ _/::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::\ _/::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::