:cccc:cccccccllllllcccccc;:;c;,'',.,'......',;'::,,.'';'....;','... .    .           ..    .....              .     .  .    ..          ..       . ........,cccccclllooodddddddodxkdloxkkkkkkkkkkkkkkkkkkkkkxxkkkkkkkkOOkkkkkkkl:;::;;,,,,,,,;::ccloooooooodooooooooooolcc::::::::::::::::::::ccc::llc::::::
:ccccccclccllccclccclcccc:;;.'';:::;,','''''',;;;;:;cc;;...':::,,..     .               ....  ...                           .            ...   .  .........clllllllldxxxxxxxxkxl:,'.';:ldkkkxxxxxxxxxxxxkkOOOOOOOOOOOOOOOOOOOOOkdoooolc:;,,;;;;;;::cllloooodddoodddoolllcc:::::::::::::cc:cccccllccooolcccc:
cccccccccccc;;;:cllccccccccc:cccccc::;':,,,;;::lllllc:c:....;:::,'...                 ..............                      ...  .          ..       .. ... .lllllllllllllloool;....,;::;;;:loododdooodddxxkOOOOkkOOOOOOOOOOOOOOOOOOxdollc,'.''';:lllloooooooddddddxxxxdddooollllccccccccllloooooddxddddddoloo
cccccccccc:;'...';cccclodxxxxxocccccc;,'',,:,,,:oooooddd.........                 ............ .                               ..  .....           .....,:oooolllloooooooool'..',;:;,;::;;;:ooddoodddxxkkkkxxOOOOOOOOOOOO000Okxollcccc,..  ..'.'lxxkkxxxxxdxxxxxxxxxdddoooolllllllllllllllooodddddddddoooooo
:::::cccc,,'.'','',;:cclodkO00xlllcc,';,';;::coododdxxxl..,.''.... . .            . .......    .                              . .. ..... . .....  .......,ooooooooooooooolo;;cdxkkOOkkxl:;ldollloodddddoddxxkO00K00OkkkkOOOOkxolccccc:.  ...l';'xOOkOOxddxxxxxkkkkkOkdolllccccccccccccccccccllcllccllollllol
,,,,,,;cccclcc;;:;;;;cccccclodollllcc;:::;;ccoloodxxxxxl..:,c.,,'.. ...                  ..                               ...  .......... ......   .....;lodooooodooooooooo;:odcoxO0000Okl;,;;:cccllclllllcclloooooodxOOOOOO000dllccc:;,',oooddxkOOOOOOdodddxxkkkOdlllllllllllcclccccccccccccccccccccccloool
,',,,,,;;clc:::clloolccccc::;;:olooddddo:;:;cllloodxxxxc..'';;;'..  .. ....          ........                              .   ..  ..... ....... . ..'';:cc;,..'odoooooooool:cdocdxOO0KKKK0dl:::;:loxkkOkkko;;;;ccloodOO0000O000kdlloollooxdkOOkkkkkOOOOkOOOOOOOkdolllllllllllllllllllllllllllllllllllllllll
,,,,'......';:;cccooocc:;;;;;,;;:ldddddolcc:;,;;:ldxxxxl..;,col'...............    ..',;,'',,,...      ..    ..               . . ..  ..............    ..  ....'ldooodoooooo::OOdxkO000KKK0OxooodkkOOO0000Oc,,:c:',:kO000OOOk0OxoddoolxkkkkOOOkkkkOOOOOOkxxdxdoooollllllllllllllllllllllllllllllllllllllloo
''..'............',,,;,,:::;;,,,;;codoc:o:;:;coodddxxxxl..;;xOxc;,'..,;;;lo;.......'oOKXX0xc;',...     .     ..                      ... .. . ...           ...'oolcodddddoooololccdO00O0KKK0OkkkO0000000OOOo',;;c,::;::lxkxdoooodddxdxkkkkkkOOkkkOOOOOOOkxooooooooolllllllllllllllllllllllllllllllllllllloo
...........''.....';;:::::,,,,,,,,;;;ccl;,,,;kxxxxxxkkkl''c,cxx;:cccldO0000kdold;.'lkKXKKXXk::c;..........'...                    .......                 . .........,;ldddoooooooccolcokOO00OkkO0000K000Odoc'':,:';;;,,occlloooooxxxdxxkkkkkkkkkOOOOOOOOOOkkxddoooooooollllllllllllllllllllloooollllloolooo
.......''.','......:cc:,:c:;,;;;;;:c:c:cc:,:oxokkkkO00Oc'';:llldkdxddd0KKKKKKKK0:.;;;00oclkKdcldl'...,oxd:'.                      ............           .............',oddddddooool:,,:dkkOOOOOO000000000xl,.':,,'''.':::loodoooddddxxxdolodxkOOOOOOOOOOOOOkkkkkkkkkkkOkkkkxxxxxxxdddddooooooddoooooooooooo
'.............''',,,;;;;;;;:;;;::::cc::ccc,ccc:dkkO0KKk,''l:cxOkXKXXXXXXXXK00KXKl.lloKKKO0KX0lcod;'.'oOOOo;'..                    ....    .....  ....  ...............';dxxdddddooo::coxkOOO0OOO0OO00OkO000Ol..;,;...,;;;:cloooolllllc;,,,,;;llloooddddxxxxxxxxxxxxxxxxkkkkkkkkkOOOOOO000000OOOOOOOOOkkkkkkk
................'',',;::;;;:,;;:ccccc:;ccc,cc,;:cclk0Kk.',:loddkdollOOkXXXKKKXXK:.lookOK00KKOl::odkOO0000O00O;.                        .  ......................'...',cdddddxddddoccdkkkOOOO0000OOOOOOk000K0Oc.,,:,...',;;::ccccccll:......,;looooooddoodddddddxxxxxxddxxxdddddddddxxxxxxkkkkkkxxkkkkxxxxxxx
...............'''''''',,,,,,;:clcol::';;,.''......':;'....:co:'':lkkdokk0KKKKd:'.;lcdOKKKXKo,::cd0000000KKKo..                            ........   .......';oxxdddxxkkkkkkkkxxdldkOOkOO000KK00OOOO000KKKKKO,.',:;,.,,'...''.';','.....',;.:kkkkkkkkkkkkkkkkkkOkkkkkkkkkkxxxxxxxxxxxxxxxxxxxddddddddddxddd
................',,,,,,,;;;;,,,;;,,;,,,,,,.''''''..........''.......,'..'xKK0o;...'cx0000KKx;codx0OO0000000o..                                      ..  ..,.';kO0000000000000000OdlxOOxxxO0KKKKKK0OO000KKKXXXKx'''''',',:,',..,cc'.,,'''',,'.'lOOkOOOkkkkkkkkOOOOOOOOkkkOkkkkkkkkkkkkkkkkkkxxxxxxxxxxxxxxxxx
.................',,,;;;;;::;;;;;;,,,,,,,,..'''''''''......'''...........'lc:cc:;;cclokOKKk'';ldxOOOOOO000Od,...                                     .....';cldO0000000000000000OxlxOkoloxOKKXXKK0000KKKXXXXXK0c.;'.....':c,.'cc;'..''''''.,''.,okkkkkOkOOOOOOOOOOOOxdOOOOOOOkkkkkkkkkkkxxxxxxxxxxxxxxddddxd
..................',;;;;c:lc:;,,,,,,,,''',..''...''........,,,'',;:;,;:lllooxdddkkxO0KXXXKo,;collldxxkxkkkOOk:..                          ..           ..,cokOOOOOOO00000OOOOOOOkxloxdl::cdk000000000KKXXXXXXKKk'.,......';..,,,,....','...',,'.;lodxxxxxkkkxkkkkkkkl:kkkkkkkkkkkkkkkkkkkxxkxxxxkxxxxxxxxdxd
.....................',,,,,''''',,,,',,;;;'.'''''''........,,,,,o000kx000dxOkkkOKXXNNNXNXX0dllllllcd0XXOxxl;....                   ..                     ..'ooooodoooddxxkkddlcl,,cool:;,:loddxkO0000KKKKKKKKK0c..,;'....,,'l::;,'..''.....''';llllcccllooooddooool;,oddddddddddddddddddooooooooooollllllol
.................'''''''''''',,,,,,,''',,,'.'',',,''....'..,'.'oxK00XXKK0kO0OOOKXXXNNNNNNNXKK0000odxNXNNK0c.....                ..''''...                  ..'cloollllllc:,'.......:odol;'.':ldxkO00000KKKKKKKK0x'...''...',,;,,,,,,,,...........;lllccccccclllllll:,,cllollllllllllllllllll:;,,..,;.....';;
........................'''''''.........'''.''..........,....'llOKXXNO0KNXK0K00KXNNNNNNNNNNNXXXKxoKK0X0OKXKOc.....             .';;;;:;;;'.                  ..;:;,'...............:dxdl:'..,:odxkO00KKKKKKKKKKK0o............''....;c,.................;ll:::::ccc;,;clccccccc;';lc::;::;......   .   .. ..
...............................''.'''.....'.''............'.'xxodxO0XOkNXNXKK00XNNNNNNNXXNNNXXX0lKXkXKkd0NWNWN0ko;..        ....,:c:,;::lc.                      ..................:dxxo:'..';codxO000KKKKKKKXKKK0l..............',;;:''...........''.....,,;;,,''',,,;,,;''','';dc'.................  ..  .
..............................',,,,'..'''............ ...,''dKkdddxxkKKKNNK0KKKXXXNNNXKXXNNNNNXooN00OolodOOkkkkOOkl:,','........,locc;:odl,.                    ...................cxxdo:'..:loxxkO0KK000KKKKXXXKKO,..........',;:;:::;'...     ....,::..',,,,'.''';,.''......',:'. . .  .............. .. .
...................................'''''.... .....    ...:o;OKXKOkkxdxOKKOxxO0XXNWWWW00NNWWWWNooXXOdc:ccodloodOKKOOdc'..........,:lxOxxkOdlc'....                .................,dxxol:'.cdxxkkO0KKKK0O0KXXXXXXKKd'...''','',..'',;,'....  ..... ............................,,...   .  ............. ....
............................................ ...     ..;ldkO00XXK0OkxOXNNXXdlkKXNNNNNOKNWWWN0l:0XKlc:::ccclokKKNNNXOl,......,o:,:::cldxxdokO00kl;...              ................lkkxdl:.,okOOOO00KKXXXXXXXXXXXXKK0c.......'',''''',,.....',,,,,,,,,,,,,,,,,''''........... ........     .........     ....
.....................'........        .        . .'cllclodxkkkkO0KXXXOdkKXO;:ox0KXNNXKXNNXOo:cO0dclc;::::lOXK0XNNNNNKd'.....;:,,::,',c:cdkod0OkxO0x'          .  ................,xOOkxo;':dkOO0000KKKKXXXXXXXXXXXKKk'...........''',..,,;::::::cc:::::;;;::;;;;;;;;,,,''...      ....   .  .............   
....                .'.....                     .,;::llldkOOxdxkkkkO00Oxok;.',:odkOO000Od:,,oko:;;::::::;k0dldxkOO00X0;....';;;,';;;,c:lkl.'::oOKKKo........................''...;xOOkdl;,cdkOO00000KKKKKKKXXXXXXXKK0:...........';;;;.''.....''''''''''''''''',,,,,;;;,'..   .  ......      ...............
...              .                            ..',;;;,;:lcldk00OkO0Kk0Oo;:::;;:;,oddl;cc;..ldc::c;;;;;:ll:',,:oxxxdddk...'';:ccc;'''',:xc...;dxOK0x,.............................;dkkxl:,;ldkOOOOKXXNNNXXXXXXXKKKKKK0x............';;:;.',,,,,,,,,,,,'',;;,,;;;::cccc:.   .................. ...............
.......      ...                             ....''..',;xddlc::cldldloc,:ldxkOKK00XXOK0ko,;oOockoc;;;clc,l;'.;lxkkxdok'....':ldOOd,,''::,'',coooooc:::ccccccccclllllooooooooooooocokxdc:ooodxOOO0XNWNXKWNNNNNXKkkO0000o.............;;;,.;ccccc::::::..;;'.':cccllclc' ..............,...',;'''.............
......  ...... .                            .......,;;cdK0::dolldd:dodo:cldOK0000NNKKXKKkc;dxxOk0o'..........,'ddxddk0dc'...,cd0KKd:ldxxxxkxxxxdxkkkkkkkkkkkkkkkkkkxxkkkxxxdxddddloxxdldkOkkK0KKK0OO00xKXXKNNNNXXXKKKK0o.............',,,,::;:;;;;;;,..'..'',,,,''''..'',,,,,,,,,;;;,,,,;;,,',;,'''....,,'..
....    .                                   ....,;;:c:odd:,,:clodcodollcloOKO0k0XNKOXKKOOc;dkkdO0,..''',,,'.'..,dol:okcc:,'.',cdkOOkdlloooooooollllllllllllllllllllllccccccc::::::dkkdcodxxkO0KX0000000OxokXKXXXXNNNNXK0l..............,,........''....''''','..'.''''',;;;;;;,,',,,,,',;;,,',;:,',,..',,'''
......                                     ....:'';cl:;;,,'';odlcodoolooddxkOd0KXOOXKKOKx:,;lloo:.......';c'....cc,cOc;;;,'.''';coxO00o::::::::;:c:::::cl::,,:clll;,,,,,,,,,''''',okko:lxXOkKX0kkOO00KKK0kdx0K0KXNNNNNNKO,',''.........,;.   .  ........''';,........'''''',,,,,,,,;;;;;;;,,'..','''''''.'''
.....                                      ',..,......'',''',:ldc:llc::ooddkok00xOOOOkddlc,'',;;,................':k;...  ...  ..;lxO00x,.'...'ll;;',',.... ..';,;,,.            .okxccok0xkxlodxkOO0KKKKKOdx0KKXXXNNNNNXo.',::,''''''',:.    ...................'.......'',,,;;;;;;;,,,',''','',,''.'.....'
....         .                              ............'''',;;c;,,,,;clcclxxddcldl:lc:,;'..................... ..,'...............,:lc;'......'.....,:'..'''......';,,,,,,''....'okxc;:xdlc;:lodxkO000000OkldO0KKKXXXNNNKc',:cc;'''''',c'           .....'''''...   . .   ..,,;;,'......''''''',,''........
.....        ..                             ..............''''',''''';;;:lddlcc;ccc:cl::c.....'.................;dxxodlkkoddkOOkkkOOkkkOkxdolc;'...'',,,,;c:;;'.';cxOkkkkkkkkddooodxxl.':cc,';:codxkO0000000OdoxO0KKXXXNXXO;':c:,',,,,,;c;.                                    .......''''''''',,,,'''......
........                                       ....',:lll:clll:;;lc;;:;::;::;;',:c;:l''.lo::dloo:,',''''',,;:cloddxo::cxlc:cxkkkkkkxd,cxkkkkxololc:;,,,,;clolloxkkkkkkkkxdolxdolclxdo:.,l:,;..,:clodkOO0000000xloxO0KXXXXXO:,,;;c::;,,,,::.                                       ...'''''''''''''''''......
........                                     .....;cddodxxkkdlcxxdclOoox:cc';l:;:cloOxxkKKkxOKNK0kcclccccccccccccccccccc;:l::lccccccc::ccccccccccccccccccccccccccc::::;;:;;oc::;;c;..''';,;:'..',:clodxkOOO00K0xldk00KKK00kc;;;,;:c:;;,,;:.                                          .......................
........                                    ....'cloxkOkkOxocdKK0kxKxd0dc0l';xoodxxxKK0KNXKXXXNNKK0l,'''',,,,,,,',,,,,,,,,,,,,,,,,,',,''''''''''''''''''''',,,,,'''''''''.'''.......,',;;,'''.....,;:cldxxxkO00OlokO0KK00ko;:;;,;::cc;,,,;.                                                               ..
.........                                  ...':c;lk00Kkdddx0XKKOOK0oOOcOO';;;dkkxxdOK0OXNNNXXXNN0k0l'''''''',,,,,,',,,,,,,,,,,,,'''.......''''''''.'''''''',,''''''''''''............',;;:;,'..   ...,clodxkOOOolxOO00K0Ol.,;'::::;c:::;,                                                                ..
........                                  ...;c;cxKKKK0lox0XXX0OOKKdx0ox0;,:;;oOkxxdd0ooXNNXXXKXXkdok:,,,,,,,,,,,,,,;,,,,;;,,,,,,,,'.......''''.''''''''''',,,,,,''','''''......................       .:codkOOOd;oxOOkO0Od.,'',::cc:c:,,.                                                                  
........     ...                          ..;;:d0KKKKkxxOKXXK0OOKXOl0xl0c;:;;;dOxxxkddc0NXKKKXXXXxolox:;;;;;;;;;;;:::;;::::::;::cc:,..   .''',;,;;;;::ccc::::;:cc;:;;;;;;;;;,,'....................     ,coxkOOOkc:dkOOOOOk,,;.'';::c:c;'.                                                                  
.........  .....                        ..';:d0KKKK0OO0KXXX0OOOKXKlxO:kc;::;,;k0xxxxocONXKK0KXXKKkocloc:::::::clccccccllllllcccclcoc,'. ...,;.,,,;;;::ccc;;;;:;;;c;,,;;;;;;;;;;....................     .:oxOOOOOx:lxkOOOOOc,,'.,,:,:c:,.                                                                   
......... ......                      ....;cokOKKKK00KKXXXK0O00O0doO:cd',;:,'c0Kxdlc;xXXKKO0KXX00Olcl:::::;:coooolccllolc;;;cllllloolc;'::. ....',..,;:c,,..;;:;:::,;:;;;,:oo:''''''',,,,'.....  ...     ,ldxOOOOkl:dkOO000k.',..;;',,,.                                                                    
..............                  ........l::ok00KKKKKKKXXKK0KKKO0xckc,xx,','.,d0Kdc::o0XXKOOKKX0000ololoollcc::cllool;;;;;;,coooolc;:llccol..;,..    .':'''',;;;;:;,',;::;,;llc'''''..',,,............    .,coxkOOklcdkO000K0;.,,'':'....                                                                    
.'........                  .........,..'dk00KKKKXKKKKKKK0Okk00o;dc';OKc''.'cxl:l;;oOXX0OOOKXKOO0Xdldoo::;;,,:cllllll::;;,:looodxc,',,'.;oox;c.  ...,c,''...',,,,'',:ccl:',','','''..,,,'.............    ..;loxkkc:dO000KK0c..,:,';....                                                                    
..........                .........'.'''.'cdxO00KKKKKK00OOOOOk:,o:,':Oxc,.':lc:;,,lkKXOOOOOXXOOO0Xxodooooo::cclodxddoollllloloddxl;;,,'.;ldl.   ..c;:c:..'..',,'.';clc:co,'',,,,''.';;,,'.............      .':coo;:ok0KKKK0l...,c;;...                                                                     
............            ...........,'.,,''',,:coxkOOOOkkOkxko,'c;,',c0xc,.;ll:;,,lx0KOOOOO0X0kkO0Xkloll:,,;cllodddodxddddoooloxxxc:::;'.,loxo' .;:;,,,...,'....':::;,'.:l,,,,,,,''',;,,,'......... .....      .';;,;cdO0KKK0c.....;:..                                                                      
.............         ............',,.',,,'',,;;;;:cclxOxko;..:,;,,,:0Ko,'cl:;;,cxOOOOOOO0XXOkkkOK0llccc,.;cloodolooddxxxxollooddo::;;,'..';oo.,,,,'...........,;:;'...'::,,,,''''',;,',,...............        ..'':oxO0KK0;......,'....                         ..                                        
...............      ....''''....'.',,..',,,;;;;;;:cdOOdc,'.';,;;,',:0Kd,:l:;,,cxOOkOOOOO0NXxkkkO0Kxlc:;'',clool::cccllllolclloolll:;;,'.....:.''.......,,'...',:cc'....':c:,,''',''',',,'...............       ....,cdk0KKO'....''',,'....  ...                  .                                         
........ ... ..   ....''''',....''..','...,;:cloodoooc;'''',,';;;,,,c0x;:oc;,;lxkkkkkO0O0XXKxxkkk0Xkcc;,'.,cllc:'''''',;;;;:lo;,,,:c,.. .... .... ......'......'cldc:lc;'..,c:''''....'','........... ... .  . ......;oxO00x'c:'.'::;,,,'...............                       .                            
........... . ....'',,'.'.,.....,''...'',,:cccc:;;,,''''''.,.;:;,,,,dxc,l:,,;docxkkxxk0K0KXOxxOkkKK0c:,,,:cc;,;:,,,,,''.'''.;;,''.'. .  . ... .    ....... .....,:oddooool:,;clc:,................     ...     .... .'lxO00d,cll,.,:,',,,''................           .     ............             ..     
.............',','''','',''..'..,;'.....',,,,,,,,''''..''''.,:;;,,',xk:c;;;,;;:,:dxxxkk0000OkOOxkKKKc,'',c;,,,'',;;;;;,.........,... ... .      .... .. .. .  ..'ll:;;llollllcc::;,'................ .   ..   .... ...cxOOOc,;:::,,:,'''..''.....................................................  .........
...........''',',,'.''';,,'''''',cl,:;'...'...........'''...;c;,,,,,d0co:'',,';clolcc:::ccccdOdOxOO0o''.,,,,,,,'.,;;;,,'........,,.'..,'...... ....'...    .....'cc;,;,;;:::::;''''.............  . ..      .',,''....:dkOO;....',,;,;.   ..........''''........................'..........'....   .........
..........''.',,,'....':,,c:,,;;;:xkddxoc:;;;;;:c:;,'''.....:kOl,,''oK:c;.,;loc;,,:lccc;;,,cOxO0kOk0l..';,'''''',,,;;,,..............,;........ ........ .......,'...',;,,'','',,'.....            ...    ....;;;:;...;okOO;......':,'       .....''''''.'....'''''''.''''''',,,,,,''''''''''............'''
.......................;,oddlcclcclO0OOkkkkkkkkOOxl:;,,'''',::lxo:'';k;;,;odoccokkOkkxc;;'',;okOKOxd...''..'.....''',,;:cc,.'......  .'...'.. . .   .......... ..  ....'...'''',''...  .    ..          ..:l;'''......,lkOk:''..';c:'.         ..'''''''''''....''''...,,,,,,,,,,,,,,,'''''''''.''''''',,,,'
........................cOkxxxdddlld0kkkOOOOkkkkxdocclxkOOOOkxdkokocdl,;:cllllkKKKK0ko:;'..''',;clo.........................    .       .....             ..                                           ..',:l:'.......;ldkkk;,';ccc,.             .....''''''.. .,'',,;;;;;;;;;;;;;;;;;,,,,,,,,''','',,,,'',
........................lO0kkkxxxkxcxOxxkkkkkxxxdo;,,,:dO0Oddl:::lxOo,;:ldO0xkoxKKK0Okl,'................... ..     .. ..              . ....            ....                                        .''''',;:;,,,...,:cldxOOk:','..                    ...''......',',;;;;;;;;;;;;;,;;;;;,,;,;;;;,,,,;,,,',
.........................lxkdddxxdkOdddxdddddddoc;ldxxdodxlclc::cc:lccccllloxOOO00Okollc;................... ....     .              .',;.''.           .....                           .            ',,,;;;;,,''.. ..'',;:oxkxc,..                              ....',,,,,,,;;,,,;;;;;;;;;;;;;;;;;;;;;;;,,,
...........................'::ccooodxOkxxxxxxo::looddooodxdoodc:llccllllloodddkkxo;..',,'................... .....    . ..  .         ....                    .  ... .                               .............   .......:oxxdo:.                                 ...'',;;;;;;,,,;;;;;;;::;;:;;;;;;;;;,,,
..................................'''',::c:,,',,:c,;::cllllol:;,;:::::::cllllc:,................................ ...............................      . . ...........  ................ .                   .      ..........':olcc:.                                  ...'',,,;;,,;;;;;;;;;;;;;;;;;;;;,,,,'
...................................................................................................................................................................................................... ..........................',.. . ..                       .  .....''''',,,,',,,;,,;'.',,',,;,,,;,,,''