::::::::::│ :::::::i |:::::::::::::::::::::::::::
::::::::::│ .. ...... : :::::: l |: : ::::::::::::::::::::
::::::::::│ .. . .. . .. .. . : :::: : : ::::l ! .: :: ::::::::: |::::
::::::::::│.......................,, ) ) ............... :::::::::::: ,. -─……… - i ! ::::::::::::::::::|::::
::::::::::│:::::::::::::::::::::::゙ミ;;;;;,_ ( ::::::::::::: :: :: ::: : / ::::::::::::::::::::::::::::::::::::::::::::ヽ! ::::::::::::::::::|::::
::::::::::│::::::::::::::::::::::::::ミ;;;;;;;;、;:..,,.,,,,, ::: ::::: ::::::: ::::::: : : ::::::::::::::: / :::/:/ ' : | :::::\:::::::::::::::::::::: ヽ : ::::::::: |::::
::::::::::│ ::: : :::: : :: :: : ::i;i;i;i; '',',;^′ ヽ ..: : :: : : :: :::: : : :: ::: :./::/::::/:::| : :| ::::ヾ::::ヽ:::::::::::::::::::::::V::::::::: |::::
::::::::::│:;:;: : : : : : : : : ゙ゞy、、;:..、) } : : : : : : : : : : : : : :::l:/ :::::: ' : :| : :|::::::::::|_ノ ::::::::::::::::::::::::|:::::::::::|::::::
::::::::::│;::::.,.,..,., :::::::::.,. .¨.、,_,,、_,,r_,ノ′ : : : ::,., __ ,..,... :;:;\ / :::::j ::::|__::::イ:::::::::::::::::: l::::::::::|:::::::::::|:::::::
::::::::::│人;::;:;:;:;:"'ノ/;:;":;.:;";i; '',',;;;_~;;;′.ヽ::Y"´:::;:;:;:;:;::;:; ;:;:;:;:;::;:;丁::::`ー|::::::::::::ヽ :::::::::::: | ::::::::| ::::::::::::::::
::::::::::│:;:;:;: . :;:;:;:;:;:゙{y、、;:...:,:.:.、;:..:,:.:. ._ 、} ;:;:;:;:;:;: Y : :;:;:;::;:;:;::;│:::::::::|!:::::::::::::: ' , ::::::::::',::::/::! ::::::::::::::::
::::::::::│;:;:;::;:;:);::;:;:;:;".¨ー=v ''‐ .:v、,,、_,r_,ノ′ ;:;:;::;:;: /:;:;:;:;:;::;:;:;:;:: │:::::::ハヽ.::::::::::::::\::::::::V:::::! ::::::::::::::::
::::::::::│:;:;:ノ ⌒ v/;i;i; '',',;;;_~⌒¨; ;;;;;ヾ.ミ゙´゙^′..ヽ :;:;::::::;:;:;::;;:;:;::;│::::/`ー |! ` ー- 、:::ヽ:::::|::::| ::::::::::::::::
::::::::::│´":;:;::;:;:/゙{y、、;:...:,:.:.、;、;:.:,:.:. ._ .、) 、} :;:;:;:;:;::;:;:::;:;:;::; |:::::l :;:;:;:/ゝ) --ァ⌒:ヾ ::: |::::| ::::::::::::::::
::::::::::│::;:;: :::::::::::".¨ー=v ''‐ .:v、冫_._ .、,_,,、_,,r_,ノ′ :;:;::;:;:;ヾ:;:;:;:;: |:::::| ;: /:::::/ / / ::::::V::|::::| ::::::::::::::::
::::::::::│:;:;:;::v '"/i;i; '',',;;;_~υ⌒¨;;;; ;;ヾ.ミ゙´゙^′.ソ.ヽ :;:;:;:;:;::;:;:ゞ:::;:│:::| :::l:: ノノ / ::::::: |::::::::', :::::::::::::::
::::::::::│:;:;:;::;;ヾ.゙{y、、;:..ゞ.:,:.:.、;:.ミ.:,:.:. ._υ゚o,,'.、) 、}:::;:;::;:;:;::;:;:; │:::|;:: レ′ | Y ::::::: | :::::::ハ ::::::::::::
::::::::::│:;:;:;:;::;:;:;ヾ,,..;::;;;::,;,::;):;:;:; .:v、冫_._ .、,_,,、_,,r_,ノ′ :; : :;:;:;::;:; │:│:│ :| ! :::::::::/ :::::: |: ', ::::::::::::
::::::::::│,.;;.:;::;::;::;:;i ';::;:;:;:;:;::;:;:;:;::;:;:;:;:;:;::;:;:;: / l \:;:;::;:;:;:;:;:│:/ ハ `ー| :::: ハ ::::::: |::::V :::::::::
::::::::::│;:;:;:;:;::;:;:;: v ;::;:;:;:;:;:;:;:;:;:;:;:;::;:;:;:;:; / :::::::::::: |::::::::. \ : : :::::;::;:;::: } i | :::::| j::::::::: ! :::| ::::::::::
::::::::::│ ; : : : :: :::: ヽ :;:;:;:;:;:;::;:;:;:;:;:;:;::;:;ハ .::::::::::::::::|::::::::::: \_ :;:;::; _ 人 i | :::::|ノ ::::|::::! :::| ::::::::::
::::::::::│"ヽ:;:;:;:;:;:;:;:;::;:\ :;:;::::;::;:;:;::;:;:;: Y ` 、:::::::::::|:::::::::::::::::::: √::「 . ::::::: | :::::| ::::: |::::| :::| ::::::::::
::::::::::│:;:;:;:;):;:;:;:;:;::;:;:;:;:: ):;:;:;:;:;:;::;:;::;:;::; | :::::\:::: |:::::::::::::::::::::::::::! :::|::::........... :::::::::: | :::::| ::::: |::::|:::ノ :::::::::::