OOOO0000000000OOOxdlccccccod:lc,lo.,do0XKXKXXNNNNNWWWMMMN0oclo::::::::::::::;;;;
:ccccccclk0OOOOOkxdlc:;;::ldclc,c;.lokXKKKKKXNNXXNNWNK0klc:col;;,'',;;;;;;;;;;,,
cl:;'.coxOOOOOOOkxdlc;'',;llccc,;.:ldKKKK00KXKK00K0o,'''',;;oc,......,;;;;;,,,,,
k0dx:.dOkxkkO0XXX0dc:;'..;cc::l,.'lo00OO0OOOOkxxxl'........',,......'..;;,,,,,,,
dx:d,.odooxkOKNWWXd:::;.',c:c;:.'cck0klkkkxdoooo,............... ..;:;..,,,,,,,,
::;c'.cllodkOKNWWWx;:::,,,:cl;'.c:x0k:cxdolclll;................ .;;cl,',,,,,,,,
OOOO'.clloxkOOdoO0d:::::;',::'.;:xOkc,colc::cc;.............''. .';cc;;;,,,,,,'
OOOk..coldkOOkl'odl:::::;;,;,.';dxoc,,:::;;,'........... ..,;. ..c;...:l,,,,''
OOOx..cooxkOkkocodoc::;;;,,;:ccll,',',;;;;'...'....',::c;',c;. ..l, ;dc,,,'''
kkkxc:cclxkkkolloxol:;;;,,;:loodl;::;,,,,'.',,,,:cooddkOOOOOx,. ..cl.'lo,,,,'''
xxkkkxxlldxxxoldxxl;;,,,,;:oxOxccoxO0Oxl::ccccloodxkkkO000000o.....:llcxkc:;:cll
xdOOOOOOl:::;:cokk:'..',:clxko.,ldxO0KKKKOdddxxxkkOOOO0OOkkkko,,,:c;;:;ccc:;;::l
OOOkOOO0x:;,.,;:oc'..',:clooc'.,codkO0KKKK0OOkOOO000Okd:,,lxkl',;;;'','''',''''.
kxxkkOOOkc.'''''''..',;cool;.'..;cdkO0KKKKKOOOOOOOkxxd;.'.,oxkdodlokxod:',,,',''
xkolxkkkxo. ...',:lool,....';lxk0KKKKKkkkkxxdlodl:;:c,:ldO00kO00KK0dldddxxo
dxdxxxxddd, ......',:lllc,.''..';oxO0KKKKkloooddoodxddoccccxK00KXXXKKKK00OOkkk
dxxxddxxxdoc'.. ..';:cc:,.';;;,'':oxO0KKKKdlkOkdloO00Kkl0xd0O0KOXXKKXNNNX0OO0K
dxxxddxxxxddo:' ...';:c:'..;ccc:;',coxO0KKK0OKKkoldxxkkxdkdodxxxdxkOO0KKXXXX0KX
ddddodxxxkxxxol;....,;:;'. 'clooo:;,'cdxk0KKKKK0kkkOkkOOOOOOOOOkkkxxdolcx0KK0OKK
ooddxdxxxxxkxxdl;..';:;.. 'odxxxl,;,':odkOKKKK0O00OOO0000000KKKKKK00Oxlc00K0x00
loddoodooxkOkxxddc,;:ll:,,,;lddxxool:,';coxO0KK0OO0OO0000000000000K0KKKKOkKKOkO0
,:cc::,,lxxxkkxddddxO00kl:::::::::::::;';codk000OOOOOO0000000000K0K00K0KOxO0xkOK
''.......'collooxxkOO0OOkxdddooollcc;;coodxxkO00OOOOOOOOOO00O00000K00K0K00xddkO0
''''''....:::;::::codxxxdddxxxdooodc',:loddxkOOO0Okk0KK0OO0KKK0000KKKXKK00xcxk0k
::;,,,,'.......';;cdxxxl;oxxxdl::::'.,;:lodxkOOOOkOOxx0Oxxkxkxx0KKXX0KKKXKK00O0k
lccccc:;,,,..,coc;okolk;.lxxxdoc:;'.',;:codxkkkkkxxdddxkxlkOxdddodOK0KKKKXXNXK0x