:::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::
:::::::::::::::::::::::::::: ::::::::::::::::::::::::::::
:::::::::::::::::::::::::::: __ :::::::::::::::::::::::::::
::::::::::::::::::::::::::: /´ ̄ヽ、/ ∧  ̄`ヽ、 ::::::::::::::::::::::::::
:::::::::::::::::::::::::: / ,、/ (_,ノ \ :::::::::::::::::::::::::
::::::::::::::::::::::::: / ,/ ヽ、l ノ| ::::::::::::::::::::::::
:::::::::::::::::::::::: | /| , \ (_ノ :::::::::::::::::::::::
::::::::::::::::::::::: ∠/ :| \::... (ノ `ー-.、___ ::::::::::::::::::::::
:::::::::::::::::::::: | :| \____ 、二ニ=- `ー-、_,ノ〉 :::::::::::::::::::::
::::::::::::::::::::: | :| :| \ .\_,>ュ:::\ `ヽ、 ::::::::::::::::::::
:::::::::::::::::::: | ,∧ト、 ト、__,| |ノ7'´ iヽ:::、 \ニ==‐-、__ \ ::::::::::::::::::
::::::::::::::::::: ∨ \| | | | |、 \V \ ___| ̄` :::::::::::::::::
::::::::::::::::: |i | 〈__,,〉、_∨ :|..::::|ハ ∧/::::ハj ::::::::::::::
::::::::::::::: ノ| || | | | | ::|∨|‐-| |\ | ::::|:::::| :::::::::::::
:::::::::::::: ... . ...............................(_ノ. .....................|'|/.. ...| |.......| ::| | |\| | /\| :|:::::l__r=,ュ=,ュ、.......... .::::::::::::
:::::::::::: .:.: <^'_,ノ r'__,〉|ノ |ノ_,/|  ̄ ̄ ̄| |=={|=={ :.:. ::::::::::
::::::::::..... `ー--──ヘt__,人__j ....::::::::::
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::