.... ................. ..``:::;;;;xxx##
`';:;:`. ' . .. .. .`'```''::;xxxxxx##
x;x####x#; ..:#::: :. ....``:xxx;:::;x###xxxxx
#xxxxx###: ': `;xx;;x;`''. ..```';x###x;;;x#xxxxxxx
xx###x##xxxx#: `'';;;'xxxx;'``.... ...`''';######;;;;;;;;;::
xxxx##xxxxxxx::':x;;xxxx;##x::`.`....``'::;xx####;;;;;:::''`
:;::;xx;;xx#;;xxxxx;xxxxxx####x:```...`'::;#xxxxxx::::::::''
::::'''':;;;;xxxxx##xxxxx#x;xx##;'```.'''::x;:::;#x:::::::::
;;:::;:```'':;:::;;;;x;xxxx;::;;;:`'``''':':;;::;##x:;xx#xxx
;:;;;;;::'''''::::::::;;xxxx:''::'''``'':#x;;;;;;x#xx;xx###x
;;;;;;;;;:;:''''''''''::;xx#x;::;:'''''::;x##x;;;;;;;;;xxxx;
::::::;;;: .. .'':'''''::::;xxx;:::::::;;;x;;xxx;;;;;;;::::
````''' ::;:;:':'.`;;;::::::'::;;x;;;:;:;;;;;;;;;;:::;:;;'`'
.`xx;xx;::;;;'`````````.````''''''``````'`````````.````
......:;::``''````. ...................... .... .......
'''''''''''::::::::::;;;;:::::::::::::::;;;;;;;;;;;;;;;;;;;;
:::::::::;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;:;::::::::''''''''''
;;;;;;;;;;;;;;;;::::::''''''':::::::::;:;;;;::::::::''''''``