::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::. ::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::: <;`:::::::::::::::::::::::::::::::::
:::::::::::::::::::::::::::::::::::::.CC :::::::::::::::::::::::::::::::::
:::::::::::::::::::::::::::::::::::: ::::::::::::::''' `:::::::::::::
::::::::::::::::::::::::::::::::::::.CCCC,`:::::::::''`.;.:::::::::::::
::::::::::::::::::::::::::::::::' ::::::::::::::
::::::::::::::::::::::::::::'`.;CCCCCCCCCCCCCCCCCCCCCCCCCC .:::::::::::''`
::::::::::::::::::::::::::' ,CCCCCCCC>>' ::::'''`.,,;
' . ``:'' `' !!!!!; `CCCCCCCCCCCC>;CCCCCCCCCCCC> .
`!!; ` `',`4MMMMMMM,`CCCCCCCCCCCCC
::::::::::: d$hc$$$$c, d$$$$$$$??$?????h.`'CCC>, "4MMM' ;CCCCCCCCCCCCCC>''
:::::::::::: $$$$F<$$$$$$ ?$$$$$$$$$$$$$L $$$L ' ,.:
:::::::::::: $$$$ d$$$$$$.j"$$$$$$"$$$$$$cc$$$F `' .::::
:::::::::::: d?$$",$$$$$$$ f $$$$$P $$$$$$$$$$$h_, ``CCCCCC' .::::::
::::::::::::: $ " ?$$$$$$$ d$$$$$`<$$$$$$$$$$$$P" `CC> ::::::::
::::::::::::: $cc,.,,,$$$$F $$F"?"z$$$$$$$$$$$$F ' .:::::::::
:::::::::::::.$$$$$$$$$$$$$$$$$$. ""?$$$$$$$$$$h. `::::::::::
::::::',,_`' `??$$$$$$??$$$$$$$$$hcccc$$$$$$$$$$$> zc$$$c :::::::::
:::::: $$$$$hcccc,,.,,,c$$$$$$$$$$$$$$$$$$$$$$$$" z$$$???$h ::::::::
:::::: ?$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$. ,d$P"". $$ ::::::::
::::::.,,,. .,,,,,,.,. $$$$$?$$$$$$$$$$$$$$$$$hcccc$$ zd$$ $$ ::::::::
::::::::::::<$$$$$$$$$hcc$$$$$$c ?$$$$$$$$$$$$$$$$$$$$$$c`$$$cc$' ::::::::
:::::::::::`<$$$$$$$$$$$$$$$$$$$h."$$$$$$$$$$$$$$$$$$$$$P <$$$P'.:::::::::
::::::::::: $$$$$$$$$$$??""`_,,""" "$$$$$$$$$$$$$$$$???",c$P"".:::::::::::
::::::::::: $$$$$$$$$$L,c$$$$$$$$$. $$$$$$$$$$$$$$$F z$$$"..:::::::::::::
::::::::::: $$$$$$$$$$$$$$$$$$$$$$$ $$$$$$$$$$$$$$$hcd$$$F :::::::::::::::
::::::::::: `$$$$$$$$$$$$$$$$$$$$$F $$$$$$$$$$$$$$$$$$$$" ::::::::::::::::
:::::::::::: $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$F`$$$$P".:::::::::::::::::
:::::::::::: "$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$P' "?" .:::::::::::::::::::
::::::::::::: $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$" . ::::::::::::::::::::::::
::::::::::::' `$$$$$$$$$$$$$$$$$$$$$$$$$$$$$P' C>.`:::::::::::::::::::::::
:::::::::::',C,`$$$$$$$$$$$$$$$$$$$$$$$$$$$" . CCC;.`'::::::::::::::::::::
:::::::::' ;CCC,`?$$$$$$$$$$$$$$$$$$$$$$$P' z";CCCCCC,.`::::::::::::::::::
:::::::' ,CCCCCC>,`"$$$$$$$$$$$$$$$$$$P" ,d" CCCCCCCCC,`:::::::::::::::::
:::::: , :::::::::::::::
.;'CCCCCCCCCCCCCCCCCC, "$$$$$$$$$',CCCCCCCCCCCCCCCCCC> .`````::::::::
CCCCCCC CCCCCCCCCCCCCCCCCCC>.`?$$$$$$P ; ``:::::
CCCCCCC CCCCCCCCCCCCCCCCCCCCC,."$$$$$ ;.``::
CCCCCCC `CCCCCCCCCCCCCCCCCCCCCC, "?$';CCCCCCCCCCCCCCCCCCCCC,`CCCCCCCCCC;.`
CCCCCCC> CCCCCCCCCCCCCCCCCCCCCCCC> " CCCCCC>'` `''<
CCCCCCCC,`CCCCCCCCCCCC>'` `'< CCCCCCCCC>' .;;;.`'CC ' .;;. ` CC>' .,;<>;,. ''