..;;;:::;;;;;;,,,;,,,;,;;;;;;;;;;;;:;::::cccccccc::::::::::;;;:::::;;:;;;;;;,,,,,,,,,,,,;;;::;',clc
. .;;;::::::;;;;,,,;;;;;;;;;;;;;:;;;::::::ccccccccccc:::::::::::::::;;;;;;;,,,,,,;;;;;,,;;;;::;';clc
..,;::::::;;;;;;;;;;;;;;;;;;;;:::::::ccccccccccccccccc::::::::::::;;::;;;;;;;;;;;;;;;;;;;:::,;ccll
. .:::cc::::;;;;;;;;;;;;;:::::c:cccccccc::cclcllllllcc:::cc::::::cccccccc::::;;;;;;;;;:;;::;,:ccll
.. .;:cccc:::;;;;;;;;;:;;;;;:::::::::ccclllloollllllllllllccccccccccccccccc:::::;;;:;;;:;;;:;;:clll
... .';:cccc:::::;;;;;;;;;::::::cccccccllllllolollooooooooolllllccccc::cccccccc::::::::::::;;:::ccll
.... .';cccc:::;;;;:::::ccc::::clllooooooddddddddoooooolllllllllccccclllcc::::::::::cc::::::;;::ccll
.......';clcc:::c::::::::cccccccllllloolooooooddooooooooooooooooooollcc::::::::::::::::::::;;;:::ccl
',,,'..';cllccc:::;:;::::cccclllllooooooodddddddxxdddddddddddoooollccccccccc:::::::cc::::::;;;;::ccl
:::::;;,,:llccc:::::ccccllloooodooddddddxdddddxxxxddxdddooooooooooooollcc::cccccccc::::::::;:,'clccc
,;,,;;;::;:lccccccc::::;::cclllllllooooddddddddddddddddddddddddoolllccccccccccllccc::;;;;;;;;..:::cc
.,;,,;;,::;ccccccc:::::;;:cloooooooooooddddxxxxxxxxxxxxdddddollccclllllllclcclccclcc:;;;;;;;' .. ..
..';;,;,;:;;cccc::cccc::;;:cccllloooddddddddxddddddddddddoooolloollllllllloooollllcc::::;;;;,...
..;,;cc;,c:::::cc::cccllllllllllooooddddddddodddddddddddddddooooooooooddoollllllccccc::;;;...
.,,;::',::::::ccccccclllloddddddddddddddddxxxdddxxxdddddddddddooodxdddddddodooooollc:::.
',,;'.;:::::cclcllooooooddxxxxxxxxxxxxxxxxkxxxxxxxxdddddddoooodddoooollollllooollccc:'.
','. .;;::cccllloddxxdddxxxxxxxkkkkkkkkkkkkkkkkxxxddxxxddddooc,,......:c;',ccccccc::;.
.''..;;:clooooddddxddxxdxxddddxxxkkkkkkOkkkkkkkxxxkkkxddolloo:',c'..;:;''''',,,';,....
.,;' '::clooddddolool:,,,',;;ldooodkkOOOkkkkkkkkkkxolc:',;coxxdodoooc:;::::cllc..;'.
';, .':cccclllc;,;loc,.'c:;lxxo;,,codxOkkkkkkkkxl,';::cloddddxxxddooooollllll,.,;,.
.' ..;ccccc::;;;,';loccooxkxdc;,;;c:,;dxxdollc;..'lcccloddddxxddxxxxdolcclc;,,;;;.
...,:;,,';,,',;clodddxOOOkkxolloddlc'.;clc:;;;'..,,:cldxxxxkkkxxddoolcclc;,;,,::.
....,'':lccccldddxxkkkxkxxxdddool;,..:dddoool:'.',:cldxkOOOOOkxxdoolc:;;;:cloc;.
.;'..:ccc:coddxkkOOOOOOkkkxdl:;,..,loollllc,''';ldddxxxxxxddolcccccldddddol,..
,,'.'clcccloodxkOkO000Okxdoc;,''';cllllllc:;,,,;clcllllllllloddxxxdddddooc..
'c:;,;clooooddxkOOOOkkxxdol:;,;,;::clllccc:;:;:::llloooodooddddxxddddddol;.. ..
.;lollcclolooddxxxxdddoollc::::::::cccccccc:;;::clooooooodddddddddddddooc'. ...
.:oddxkkkkkkOkkkxxdddooollc:::;;:::cccccc:;;,;:coxxxddddddddddxxxdddddl,.. ......
.,lodxxkkOOkOOkkkxxxddddddl:;;;;;;::ccc::;;,,,,;lxOOkxxddxdxddxxxxxddo;... .......
......:lddxkkOOkkkkkkxxxxxkkkx:,,,;;;;:::::::;;,,,,,cdkOOOkxkkkxxxxxxxxxdo.... .......
.........cddxxkkkkOOkkkkkkO00Okd;,,,,;;;;;;::::::;;,,,cdxxkO0000OOkkxkkxxxdc............
...............lxxxkkOOOOOOOO00000Oxd:,,,;;;;;;:::::::::;;;cloooddxkO0K00OOkkxdl'............
.. ...............'oxkkOO00000KKKKOxdoolcc:::::::::ccc:::::ccccccllllllllkKK00Okkl'.............
....................ckkOO000KKKKOxolllcccloooolc:cclolc::clolcccccloooddook0OOOkl,...