ooooooooooooooooooooooooolloooooooooooooooooooooddoooddddddddddddddddddoooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooololllllllllllllllloooooooooooooooooooooddooooooooolloollllllllooooooooooooollooooolllllllllllooooooolollllllllllllllllllloollllcccccccccc
ooooooooooooooooooooollloollloooooolooooooooooooooooodddddddddddddddddddddoooooooooooooooooooooooooooooooooooollloooooooooooooooooooooooooooolollllllllolllllllllolololoooooooooooooodooooooooooollllllllllooooooooooooooollloollllccllccclllooooolllllllllcclllllllllllllllllcccccccccc
ooooollooolooooollooooooddoooloooolooooooooooooooooooddododddoooooooddooddddddooolooooooooooooooooooooooooddooooodddddddooollllllloollllloloolllollloollllloooooddddoddooooooooooododoooooooooooolllllllooooooooooooooolllllllllllllllllccclllllllllllllccccccllcccllllllllllllccccccccc
oooooooooooooolloooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooddddddoddooooooooodddddddddddddddddoddddoooolllllllllllllllooolllllllllooodoooodddddodooddoddddooooooooooooooooooooololoooollooooooolollllllllllllllolllcllllllllccccccccccccccclllllllllcccccccccccc
oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooollooooodddddddddddddoddddddddddoooooooooooooooooolllllllllllllllllllllooooddddddooooooodddddoddddoooooooooooololooooooooollllllllooooooollllllllloooollllllllllllllllcllccccccccccccclllllllcccccccc::cccl
llllolololoooollooooooooooooooooooooolllloloooooooooooooolloolooolllllllllllllllllllooooooooooddodddddddddooolllllllllllooooooooollllllllooooodoooodddddoooodddooooddddddddoooooooooooooollllollllllllllllllloooooooooolllllloooolllllllllllllllllllllllllllclllllllllllllllllccccccccll
lllllllloollloooooooooooolooooloollllllllllooooooooooooolloooolllllllcccccccclllllllllllloooooooooddddooooollllllllllllloddddooooollllllodddooddddddddoooooodddddodddddddoooooooooooooooooooooolllllllllllloloooooooooololllloolllllllllllllllllllllllllllllllllllllllllllllllllllccclll
ccllllooooooooooooooooolllllllllllllllllloooooollllllllllllllllcccccccc:::ccccccccllllllllooooooooooollllllllcllllllooooodddddddooooooooodooooddoddooooododddodddddooodooooooooooooooooooooooooooooooooooooooolloolllllllllllllllllllllllllllllllllllllllllclcccccclccccccccllccccccclll
llllllllllllllllllllllllllllllllllllllloollllllllllllllllllcccccc::::::::cccccccllllllllllllooollllllllllllllcllloooooooooooooododdooooodoodoooooooddodddoooooooooooooooooooooooooooooloooooooollllllllllllllllllllllllllllllllllllllccccccccccccccccccccccccccccc::::::::c:ccccccccccll
llllllccccccccccccccccccccccccccccllllllllllllllcccccllcccccc:::::::::ccccllllllllllllllllllllllllllllllllllllllllooooooooooooooooooooooooooooooooooooooooooooooooooooolooooooooollllllllllllllllllllllllllllllllllllllcclllccccccccccccccccccccc:c::::::::::::::::::::::::::ccccccccccl
cccccccccccccc::c::cccccccccclllllllclllllllccccccccccc:::::::::::::cccccllllccccccccllllllllllllllllllllllllllllllllllloooloooololllolllollooooololllllllllllllllllllllllllllllllllllllllllllllllllllllllcccccclccccccccccccccccccccc::::::::cccccc:::::::::::;;:::::::::::::cccccccccc
:cccccccccccccccccccccccllllccccccccccccccccccc::::::::::;;;;;:ccccccclcclccclllcccclllllcccccccclllllllllllllllllllllllllllllllllllllllllccllllllllllllllllccccccccccccccccccccccccllllllllllllcllllcccccccccc:c:c::cc::::::::::::::::ccccccccclooollc:::::;;;;;;;;;;;;;:::::::::::::::
::c:::ccc:::ccc:cc::::ccccccc:c::::::::::::::::;;:::;::;::::::cccccccccccccclcccccccccllllccclclccccclllllllllllllllllllllllllllllcccccccccccccccccccccccccccc::::ccc::::::::::::cccclcclcllccc:cccccllcc:::::::cccccc::::;;::;:;;:;:clllollllllloooollclccccc:;;;;;;;;;;;;;;;;;::::;;::
::::::::::::::::::::;;;:::::::::;;;;;;;;;;;;;;;;;::ccc::::::::::::ccccccccc:ccccccc:cccccccccccccccccccccccccllllllllllllllllccccccccccccccccccccccccccc::::c:::::::::;;;;;;;;:;;::::::::::cccc:ccclllccc:::;;;;::::;;;;;;;,,;;;;;:::::;;;::::::::cccclllllllc;;;,;;;;;;;;;;;;;;;;;:::::
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;,,;,,,,,,,,,,;;;;;;;:;:;;;;;;;::::::::::c:c::::::::::::::::::::cccc::::::clllllllllclccccccccccccllccccccc:::::::cccccc:::::ccc:;;;;;;;;;;;;;;;;;;;;;::ccc:::cc:ccclc:::;;;;;;;;,;;;,,,,,,,,,,,,,,,,;,,,;::cccccc::cclclc::ccccclc:cc;,,;;;;;;;;:;:cllllo
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,;;;;;;;;;;;;;;;;:::::::::::::::::::::::::::::::::::c:::::cccccccccccccc::c:::::cccccc:::::::::::cclllccc::;;:::;;;;;;;;;;;,,,,,,,,,;looddooc:clcc::::::::;,,,,,,,,,,,,,,;;;;;;:;::::cccclllllllllllcccc::cloooooddddol:,,,,::cccllllllllll
,',,,',,,,',,,,,',,,',',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::c:::::::::::::::::::::::;:::::::::::::::cccccc::cccc::;;;;:::c:::;;;:::::,,;:cooodooolllc:::;;;:;;;,,,,,,,,,,,;,;::ccc:::::cllllllllllllllllllcccccllclllloooolllcc:ccllcllllllllllcc
,,,,,,,,,,,,,,,,,,,,,,,,,,,,','''''''''',''''''''''',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;;;;;;;;;;;;;;;;;;;;;;;;;,,;;;;:::::::;;;;;;;;;;;;;;:;;,,,,,;;;;;;;;;:::::;;;::::::::::;;;;;;,,,,,,,,,,,,,;;;;;;::::::::::cccccclllllllllllcccc:::::;,;;,,;;::;;,;;;,,,,;:ccccccccc;;,
,,,,,,,,,,,,,,,,,,,,,',,'''''''''''''''''''''''''''''''','',''',','''',',''''''''''''''''',,,,,,,,,,,',,,,,,,,,,,,,,,,,,,,,,,,,,,;;;;;;;,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;;;;;,,,,,,,,,,,,,,,,,,,,,;,;;;;;;;;;;;;;;;;;;::::::::::::::::;;;;,,,,,,,;;;;;;;;;,,,,''''''''',,,,',;::
,,,;;;;;;;;;;;;;;,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;,,,,,,,,,,,,,,,,',,,,,,,,,,,,,,,,,,,''',,''''''''''''',,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,',,,,',,,,,,,,,',,,,,,,,,,,,,,,,,,,,,,,,,'',,,,,',,'''''',,,,,,,,,,,,,,,,,,,,,,,',,,,',,,,,,,,,,,,,,,,'''''''''''''''''''''''''.......',;;
,,;,,,,,;;;;,,,,,;;;;;;;:::::::::::::::::::::::::::::::::::::::::::::::c:cc:ccccccccccccccc:cccccc:::::::::::;::::cc::::c:::;;;:::ccccllcllcccc:::::;;;;;;;;;;,;,,,,,,,,,',,',,,'''''''''''''''''''''''''''''''''''''''''''''.'........''.......'''''.'.............'...................
,,,,,,,,,,,,,,,,,,,,;;;;;;;::::::::::::::::cccccccccccccccccccccccccccccccccccccccccccccccccccccllcllllllllllllllllllllllllllllllllloooooooooooooooooooooooooooolcclooololooloooollllc:;;,,;;;;:::cccllc::;;;;;;;;,,,,,,'''.............................................................
,,,,,,,,,.,',,,,,,;;;,,,;,,;;;;;;;;;;;;;;;;;;;;;:::c:cccc::cccccccccccccccccccclcccllllllcllllllollllllllllllllllllllloooooooooooooooooooooooooooooodoodoooddddooooooddddooodooooloooooooolllcllodddddddddddolccloolc:;:::cccc:::;;:;;;;;;,,.'''.....................................'''
,,,,,.. .....''....'......,;;,,;;,,,,,,,,,,,;;;,,;;;::::;;;;;;::::::::ccc::;;::::::::::cccclcccllllllllllllllllllollooooolooollllooooooooooooooooooooooooooooooooooooollllllooolllolllcccccclcccllloooc:;;;:::;;;;;;:llllooooooooolc:;;';;;;;;;;;;;,,,,,;,,,,,,,',,,,,,,,,,,,,,,,,,
.. ..,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;;;;;;;;;;;;;;;;;;;;;;;::::::::::::::cccc:::ccccccccccccccccccccccccllllolllllllllllllllllllllllllllllllllllllllllllllllllooolllllloooooddooooooooooooooooooooooooc:;,,,,.,;;;;;;;;;;;,,,,,,,,,,,''''''''''''''''''''
. ...'.'.'''''''''''''',,,,,,,,,,,,,,,,,,,,,,,,;;,;;;;;;;;;;;:;;;;;;;:::::::::::::cccccccccc:c:ccccccccclcllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllcclllllloooooodddddddddddddoc:;;,,,,.,,,,,,,,,'''''''''...............'''.......
...'''''''''''''.','''''''''',,,,,,,,,,,'''''''''''''''''',',,,,,;;::;:::::::::::::::cc::::ccccccccccllllllllllccccccccccllcllclcllllcccccccclllllllllllcccccccllllllllllllooloooolllooooolllccc;':;,;,,,',,,,,'''''''''......'''..'''''',,''
..... .. .. .....'''..................................'''''',,,,,,,,,,,,',,,,,;;;;::cccccclcc:::;;:cccccccccccccccccccllllccclllllllllllccclllllllcclllllllllllllllllllllllllll:;lcclllllc:;;::;;;;;;,,'''''.............',,
. .................................................................,''','',,,,,;;;:::::::::::::::::::::::::::c:::cccccc::::;;;;;;;;;;;;;;;;;;;;;;::cccc:ccccc:,':::::,'.......'.'''........................
. .........................................'...',,;,,,',cc;'';,,,............................................................................. ..............................'''''',,,,,,,
.,''.,cccc,. .'...,,'....''...',;:,:lolc:lc:::c::,'';,'.......................'''.'................................ ......',;;;;:::::;'........'''''',,;;;;:;;;;:::::::::;:::;::;,,;;
. . .. .:;;:.'.....''.''.'',''...,''''',,;::;;;,;;:::;;;;;,,,''....'............ .............'',;:::;;;,,,,'''''''''',,,;;;;;;;;;:::ccccccccccccc::::;;::::::::
....... ..',,::::;:,:cccc;;'''.........''',,,,;;,,,,;,.'',,,..,,;;;'.'.........'''''''''''''''''.''....''''',',,,;;;;;;;:::::::::::::::::::::::::::::::c:::::::
.' . . ...',;:;:ccclcc:;,',,,,.....,,,,'',',,,;;;,,'.,:lollcc::;;;,,,,,,,'''''.'''.''.'''',,',,,,,,;;;;:::::::::ccc::c::::;,',',',:llllllllllclcccccc:::::;
.......... ......................'''............'.'.'''',';:;cdoc:llllllllcclllll; ,:;:::c::';;,::;:ccccc::;;;;;,,,,'''''''''',',,,,,;;;:::::ccccccccccccccc::::;,,''.... ....,',coloooooooollc:c:::;::;
. .,,,,,;;;;;;;;;;;;:;::;;;:;:::::::::;;;;;;;;;;;;;;,,';;:::::;,'oxxxcclcldddddddddddo,.,,:llllclcllc:c::;;;;;;;;;;,,,,,',,,,,,,,;;;;;;;;::::::::::::::::;:;:;;;:::::,'...... ............;loddddooollc::c;;;::,,'
:::c:::::::::::::::::::::::::::::::::cc:::::::::::ccccc::cllllccccccccccclllllllcclllcccc:::cc::::::;;;;;;;:;;;;;:::::::::::;ccc:;:;'..':xxxc;:;ccclll:;,';,'.;lllcllc:::::::;;;,,,,,,,;;;,,;;;;;;;;::;::::::::::::::::::::::cccccccccclc,..................'.,;cllooollll:::::;;:;;';,'
dddoooddddooooooooooodddooodddddddddddoododdoddoddddddddddddxdddddddddddddddddddddddxddddddxxdddddddddddddddodoooooooooooooocc::;cllc:;,;xkxklllc:,.',.',,;::;::;::;;c:;;;;;;;;;;,;;;;;;;;;;;;:;::::cccclccclcclcccccclccllccccclclc:clc,..:c,';............,:lllllllllc:;;:::;;;;;,;;'.
dddddddxddddddddddddddddddddddddddddddddddddddddddddddddddddddodddodddddddddddddddxdddddddxxxxxxxxxxxxxxxxxxxxxkkkkkkkxdddl;'.',cdkkxdxxxxkxxxxxko;;,:,,:,,,;::c,:;;;::;;:::;:::c:::::cccclollloooddododoodddooooollllloooooooooooddxxxxddddddddo:;,,::;::clllllccccc:;;:;;:;;,,;,,,',,,
xxxxxxxxxxxxdxddddddddxdxxxxddddddddddddddddddddddddddddddddddddddddddddddxxxxxxxxxxxxxxxxkxxxxxkxkxxkkxxxkkkkkkkkkkxxxxxo::cc;coxOxdxxxxxOxxkxxkkdl::;:;;;;:ccc,c:;;:cc:ccccccclllcllloolloooooooooodddddodoodddoooooooooodoooodooooooooooooooololllccccc:cc::::::;;,,,,,,,,,,,;,'''',,
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxddxxxxdxxxxxddddddxxxdxxdxddxxxxxxxdddddxdxxxxxxxxxxxxxxkkxxxxxxxxxxdc;;:c::dxOkxdxkxxxOxxxxxxkxol:;:;;;,;:locclcc:cccccccccclclolllooollolololllloololoolloolccllolllcllllcccc:cc:::::::cccc::;;:;;,,,,;;,,,,,,,'''..'''.''.........
xxkkkxxkxxxkxxxxxxxxxxxxxxxxxxxxxxxxxddxxdxdddddddddddddddddddddddddddddddddddddddddddddddddddxdddddxxxd;;oddddddddddoc,;''...oxkOxddxxxxxOxxkkxxkkd:',,;,'',ccc;:cll:c:lc:cclclcclcolc:ccccccccccccc:ccccc:::::cc:::::c:;;:::;;;;;;;;;;,,,,,,,,,'''''''''......'......'................
kxkkkxxxxxxxxxxxxxxxxdxddddddddddddooddddooodddddddddoooddddodddoooddddoooooooooododdoododdddddddddddddolcdooooodol:;,..'''.;odxOkxddxxxxxOxxkxxxxkxoc;'...,;c:,,;:::;::c:c::c:c::;::c:;;::::;:;;::::::;::::::::;;:::;;;:::;;;;;;;;;,,,,,,,',,''',,,''''''''....'.........'.............
xxxxxxxxxxxxxxxxxxxdxxxxxxxddddddddddddooooooooooooooooddoooooooooooooolooooooodooooddoodooodddl.,ddddddllooooool:;:;,,,,,,:odxOkxddxxxxxxOxxkkxxxxOooc,',c:';;,;;:c::;;:c:;;;;;:;;;;::;,,;;::;;;;;;;:;;;;;:::::::;::::;;;;;;;;,,;;;;;;,,,,,,,,,,,,,,,,,,,,,',''''',,','''''''.....''''.
oooooooooodddddddddodoodoodoodddoooooooooolllloooooooodddddddoooooodooddddodddddddddddooooddddc.. ,ddddoclollol:;,;:;,'...,coxOOxxxxkkkxxkOxxkkxxxxkkol:'.;:;,'';,;,:::;;;:;;,;;;:;;;;;;,,,,;,;;,;;,;;;;;;,;;;,;;;;;;;;;;;;;;;;;;;;;;;;;;;;,;,;,,;;,,,,,,,,'',,,,,'',''''''''''''''''.'.
ooooooddddddddddddodddddddddddddddddddxddddddddddxxxxdddodddxddddddddddddddddoooododododddddddoo;lcoooll;clc::;,''';;,'.,cxdkOOxxdxxxxxxxkOkkkkkxxxxkkdoc'';c;'.:c;,;;:;,;,,;;,;;;;;;:,,,,,;,,,,;;;,;;;;,,,;,,,,,,,;;;;;;;;;;;,;;;;,,,;;;;;;;,,,;,,,,,,,,,,,,',,,,,,,,,',,,,,,,,','''','
dddooooooddddddddddoodddddddddooddddodddddodxdddddddddxdxxxddddxo,'',odddddddxxdxxxxxxxxxxxddddd:dooollc,:;;''''.',','':lodkOOkxxxxkkkkxxOkkkkkkkxxxkkOxdl;',''',,;:c:::,,,;,;;,,,,,;,;,,',,,;''.,,,,,,,,,,,;;;;,;,,;;::::::::;;;,;;;;;;;;;;;;;;;;;;;;;;;;,;;;,;:;;;;;;,,;,;;;;,,,;;;;;;
ddddddddddddddddddddddddddddddddddxdxxxdddxdxxdddxxxxxdddxddxxxd. . .oxxxxxxxxxxkkxkxxxxxdddddo:occcc::;;,,,;,''.',;:codxk0OkxxxkkkkkkkxOkkkkkkkkkkkkOOkddl:'';:;;;:::,;;;,,,,,,,,,,,,,,,,''',''''''''''''''',,'... .'''',,,,,',',',',,,','',,;;;,,,,;;;;;;;,;;;;;;;,;;;;,,;;;,;,,,,,,,
dddddddddddxxdddxxxxxxxdxxxxxxxxxxxxxxxxxkxkkxkxxxxxxkkkxxddoodo. .llollccc;ccllllclolccc::;,......',;,''.'...;;:lloxkO0OkkxxkkOOOkkkxOkkkkkkkkxkkkkkOOxdo:,,',;'..'',:cc::,;,,,,,,,,,,,,,,,'''''''''''...''.. ...'''...'''''''..''.'........''''''''''''''.'.'.''''...''''.'''''
xxxxxkkxkkkkkxxkkxxkkkkkkkkkkkkkkkxxxxxkkkkkkkkxxxxxxkkkkkkkxkkkxl',lxkkxxddddooodollllc;,,,,'....'....''.....',clddxoxO00OkkxxkkOOOkkkkkOkkkkkkkkkxkkkkkOOxddl;...'''',',;,;;:;;;,....'',;::::::c::::ccccc:::::' ,::cc:;;;:::;:::::::::;;;;:;;;,,,,,,,,,'''''''''.'.'''............
dddddddddxxddxxxxxxxxkxkkxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxkxkxxxxxx;lxxxxxxxxxxxxxxxxddolc:;;;,,,',,,,,,,;;:;;;;;cdxddkO00kkkxkkkkOOkkkkkkOOkkkkkkkkkkkkkkkOOkxddl:'...,::,',,;:cll;'.....,;:cccccccclllccccccccll:,.';ccc:cclc::::::::::;;;;:;::;;;;:;:;;;;,,,,''''',,,',,;,,,,,,,,,,,,,
ddddddxdddddxxdxxxxxxddddddxxdddxxxdddddddddxdddddddddxxxkxxxxxxxd,cddddddddooollllc::;;;;,;;,,,.,;;;;,,;::::cldxxdxkO0OkkxxxxkkkkkkkkkkkOOkkkkkkOkkkkkkkkkO0kxddoc;'..',;;;;',;;:;,'.....'',;:;:::::cc:cc:;:;;:;;;.;;;::;:;;;:;;;;;;;;;;,,,;,,;,;;,,,,,,;,,,,,''''','.''',,'''''''','''
xxxxxxxxxxxxxxdddddddddxdddddddoooooddoddooodddodxxddxxdxxxdxddddo,lxxdxxddoool::c:::;;;:;;;;,,,',''',,',;;:coxxxxkO00OkkkkkkkkOOOOkkkkkkOOkkkkkkOkkkkkkkkkkO0Okxdolc;'.';;;,,;,,,,;:;;;:;;'...,;::::cccccccccc::;,.:::::;::;::;:;;;;;;;;;;;;;:;;;;;,;;;,;;;;;,,;,,;,',,,,,;,,,',,,,,,,,
dxxxxxxddddddddxxxddxxxxdxdddoododdlooooodoxxxddddddddddxddooooddd,ldddooolcccc::;,,,;;,,,,,,,'',,,'.';::clddxxxkOO00OkkkkxkkkOOOOOkkkkkkOkkkkkkkkkkkkxkkkkkkk0Okkxddolc,,;;:;,';;,,;;;:,,,,.'.'..',;::::ccccc::::,.:;::::::::;;;;;;:::;;;:;;;;;;;:;;;;;;;;;;;;;;,,,,,;;;;;,',,,'''',,,,
xxxxxxxxxxxxxxxxdddddddxddxxxxxxdoddldddodloddodxdxxddddxxdddxdddd'lddoooc:;,::;,,'..,;,,;'.'..',::;,,;;ccoxdxxkOO0OOkkkkxkkkkOOOOOkkkkkk0OkkkkkkkkkkkkxkkkkkkkO0kkxdddol:;:ll::;'''.',,,'.'.......','';;:::c:::::''::;;;::::;::;:;;;;;,;;;;:;;;;;;;;;;;;;:;;;;,;;;;;;,,,,,,,,,;;,,,,',,
xxxxxxxxxxxxddddollodddddddxoddddoodldddodooddoododxooddxxxxdddddo.colllc::;;;,'',','',,','.;,,'''..';:odxxxxkkO00OkkkkkxkkkkOOOOkkkkkkkkOOkkkkkkkkkkkkxxkxkkkkkO0Okkxddo;'.;;:c,.....',,,,'. .......',;;;;:;.,::::;;;;;;;;;;;;;,,,;,;,;;;;;;;;,,,;;;;;;;;;;;;,;,;,,,,,,,,'',,,;;;;
ooooloodddcoc:ccc:cllooodoodoolcllcollolc:::clccoclol:clooooollooo.::::::;;;,,,,,',,,,''';;,,,;,;,'':odxdolokO00OkkkkkkkkkkkOOOOOkkkkkkkkkOkkkkkkkkkkkkkxxxkkkkkkkO0Okkxddolc;;,;:c:,''',','. .......'',,,.,::;;;;,,;;,,,;,,,,,,,,,,,,,,,;;,,,,,,,;::;,;,,,,;,;;,;,,,,,,;,;;;;;;
,;,;,;:,;,';;,''''',,;;;:lcc;:cc;c;;c:c:,......'',,cc,,:;::::::;::.;:;;;'',,,,',',,'',,',,',;;:c::codxdxxkkO00OkkkkkkkkkkkkkOOOOOkkkkkkkkOOkkkkkkkkkkkkkkkkxxkkkkkkkO0Okxddxolc,'.''.. '''.'',.. .............;:;;;;;;;;;:::;;;;;;;;;;;;;,;,;,,',,,,;;;,,,,',,;,,;;;,;,,,',,,,,',,
'..''.''........''''''',';:''.',;,,.;:,',...........,..,,;,,;;;,;;.;;::;,,',;,,,',,,;;,;:ccclc::loxxxxxkO00OOkkkkkkkkkkkkkkOOOOOkkkkkkkkkOOOOkkkkkkkkkOkkkkkkkkkkkkkkkO0OOkxxddolc;'...'.................'','','..........',;;::cc:::;:;;;;,;;,,;,,,,;;;;;;;,;;;:;;,;;;;;;;:;;;;;,,,,;;;
'......,,'..... ..'.'';',;,'.''.'.''',,,,.,',',;'.......,''',,,',.',;,,,,,,,,,,',;:::cl:cllodxdxxxkO000OkkkkkkkxkkkkkkOOOOOOOkkkkkkkkkkk00OOkkkkkkkkkkkkkkkkkkkkkkkkkkkkOOOOkkxxdddl:,''......... ....,,,::::;''............',;c;;::;:;;,,,''',''.',,,,'',,,,,'::,,;,:;;;::::;;;::;,,;
','','..,,''.,,......,.:,.',,,','........''.,'','..... ..'.''''.',.''',,,;;;,;;;;;cloodooddddxxkkOO0OOkkkkkkkxxkxkkkkOOOOOOOOOkkkkkkkkkkk00k0OkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkOOOOkxxxxddoc;;'.. ......''''.......,,',.....',.'',.,,',,,'.'..''.....''..';;:,,,,',,,:;:;;,';::;;;:
,'',,..''..'''''',,..,',,'.,''.,'''.. ... .....'.......''',,,,,,;::cccllllc::cloddxkxxxxdxxxkkOOOOkkkkkkkkxxxxxxkkkkkOkOOOOOOkkkkkkkkkkkkKKkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkOOOOOkkxxddo,.. .','''''..............'.,,;',,,,,,',','......''',....',';:,'',;;;,;;::;,;;:,,'''
...''.'........',,;''',c:;;;''',,,'.... .:ddddddxdxxxxxxxddoxxdl:,.........,;ldxkkkOOOOOkkkkkkxxxxxxxxxxkkkkkkkkkkkkkkkkkkkkkkkkkkk0KkkOkkkkkkkkkkkkkkkkkkkkkkkxkxxxkkkkkkkkkkOOOOkkxdc,,,'.. ....'.'....''.......,,,,;,;''',''.','','.,....''.........'.,,,;;,''.','';,,;;',
.......'..... ....'..'.,;,,;',,','....... .',;,,,;;:;:;;;'...........,;:::ccclldkO000Okkkkkkkkxxxxxxdxxxkkkkkkkkkkkkkkkkkkkkkkkkkkkk0KOOK0kkkkkkkkkkkkkkkkkkkkkkkkkxkkkkxxkkkkkkxkkOOOkkxxdolol:'...........'.''....'''''...',',..',...'..'.......'... . ................'',,;;;,
............ .............'''''...... .. ...,...,;:clodooodxkkkO000OOkkkxxxxxxxxxxxxxxxxxkkkkkkkkkkkkkkkkkkkkkkxxkkkkk0KOkkkkkkkkkkkkkkkkkkkkkkkkkkkkkxkkxxxxxxxkkxkkkkkOOOOkxxdooooolc;'.....''......'','',''',c:,,......',. .. ...... ... .................'.
..............'. .... ............. .'..',cododdddddxxkO000OOkkkkkxxxxxxddxdxdddxxxxkkkkkkkkkkkkkkkkxxkkkxxxxkkkkk0KOkkkkkkkkkkkkkkkkkkkkkkkkkkkkkxxxxxxxxxxxxxxxxxxxkkO0OOkkkxdddoool;,'....'''.......';cllll:;;;,'....... ......... ... ........... ... .......
,',........ .. . ............ . ...',;cdddooddddxkkO000Okkkkxxxxxxxxxxxxxxxxxxxxkkkkkkkkkkkkkkkkkkkkkkxxkkxxxkkkk0XOxkOOkkkkkkkkkkkkkkkkkkkkkkkkkkxxxxxxxxxxxxxxxxxxxxxxxkOOkkkxkkxxdoddool:;,'. ..,:llodddc;'...''.............. .... .. ... . ..
';;,'......... . .... .'....';,,,;coddxddooxxkkO000OkkkkkkkkxxxxxxxxxxxxxxxkkkkkkkkOOOkkkkOkkkkkkkkkkkkkkkkkkkkkxKXOxOXKkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkxxxxxxxxxxxxxxxxxxxxxkkO0OOkkxxxxxdxdddol;,'':lolollllc:;,'','..',,................ ... .... ... .. .
,'''..... ...'.. ...',:::loodoooododxkkO000OkkkkkkkkxkxxxxxxxxxxxxxxxxkkkkkkkkOOkOkkkkOkkkkkkkkkkkkkkkkkkkkkkKXOokOOkkkkkkkkkkkkkkkkkxxkkkkkkkkkkkkkxxxxxxxxxxxxxxxxxkxxxxxkkOOOOkkxkxxxddoodolll::;::::;;;::,,;;::c:;,.....,,''.. .............. .. . ....
',,'............ ....,::;,:llodooooodxxkkO000OkkkkkkkxxxxxxxxxxxxxxxxxxxxkkkkkkkkkkkkOkkkkkkkkkkkkkkkkkkkkkkkkkkkkk0X0oxkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkxxxxxxxxxxxxxxxxxxxxxxxxxkOOOOkxxxxxxdddddodocc;;::::;;:;,,;,;,,,;;','......... ..'.'.'... .........
'''........ ....,:lolooddlllodxxkO0000OkkkkkkkxkxxxxxxxxxxxxxxxxxxxxkkkkkkkkkkkkkOkkkkkkkkkkkkkkkkkkkxkkxxkkkkkKXKddxkkkkkkxkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkxxxxxxxxxxxxxxxxxxxxxxxxxxxxkOOOOkxxxxxxxxdooooooccc:;,'..,,,;;,,,,'''.'..........'',;,.............
..... ........,;;c:cloloodddxxkO0000OkkkkkkxkxxxxxxxxxxxxxxxxxxxxxkkkkkkkkkkkkOkkkkkkkkkkkkkkkkkkkkkxxkxkkkkkkkkk0XKddxkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkxkxxxxxxxxxxxddddxxdxxxxxxxxxxxxxkOOOkxxxxxxxddooooddollc;;;,,,;,,::;;........ .......,...,','..
. .....',,,::cccclooolodddxxkkkO000Okkxkkxxxxxxxxxxxxxddxxdxxxxdxxxxxkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkxxkkkkkkkkkkx0XKddxkkkkkkxxxkxkkkkxxkxxxkkkkkkkkkkkkkkkkxkkxxxxxxxxxxxdddxddxxxxxxxxxxxxxxxxkO00Okxxxxxxxdoooloolooooc:'',;,........ . .. .....',;,,,,,.''
...,:c::::llollcloooodddxkxkkO0K0OkkxxxxxxxxxxxxxxxxxxxxxxxxxdxxxdxxxxkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkxkkxxkkkkkkkkkkkKXXxod00KOkkkxxxxkkkkkkxkxxxxkkkkkkkkxkkkkkkkkxxxxxxxxxxxddddddddddddxxxxxxxxxxxxxxkOO0Okxxxxxxxdddooooddllcc:::;...... .....,,,;;;,:;;;'.'',
..';ccdlclllocoolllcllodxxxxkO0K0OkxxxxxxxxxxxxxxxxxxxxddxxxxxxxxddxxxkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkxkkkkkkxxxxxkkkkkkkkkKXXkdx0XX0kkkxxkxkkkkkkxxxxxkkkkxxxxxxxkkkxkkxxxkxxxxxxxxxxdxdddddodddddddxddxxxdxxxxxxkO00Okxxxxdxdddooolooooll::c:'......''.;;:cc:,,,,';'.'..
..,,cllodooolloooloxdddxxxkO0K0OkkxxkxkxxxxxxxxxxxdxxxxdxxxxxxxxxxxxxxkxkxkkkkkkkkkkkkkkkOkkkkkkkkkkkkkkkkxkkxxkxxxxkkkxkkkkKXXklxOXXKkxxxxxxkkkkkxkxxxxxxxxxxxxxxxxxxxxxxxxxddxdddxdddddddddddoooooodddddddxxxxxxxxxxdxO0OOkxxxxddxdddoooooolllocc:;''.''',;:,:::;;;,'....
..,:cllodoocododdododxxxxxkO0K0OkkxkxxkxxxxxxxxxxxxxxxxdddxxxxdxxxxxxxxxxxxxxxxkkkkkkkkkkkkkkkkkkkkkkkkkkxxxxkxxxxxxxxxxxxxkxxxkKXXOooxOOOkkxxxxxxxxxxxkkxxxxxxxxxddxxxxxxxxxxxxxxxxdddddddddddddddoddodooodooddddddddddddddddxkO00kkxxxddddddoooolool:llcll::cl:,,,''''......,
...... .':cllll:lolldoododxxxxxkO0KK0OkxxxxxxxxxxxxxxxxxxdxxdxdddxxdxddxdxxxxxxxxkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkxkxxxkxkxxxxxxxxxxxxxxxxxkKXXkodxkkkkkkxkxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxdxdddddoooooooodddlllooooooodddddddddddxdddxkO00Okxdddddddddodololl:llllcc:,''.....'..'..
',;;:;clllloododdoooxdxxxxxkO0KK0OkxxxxxxxxxxxxxxxxdxxxdxdddxxxddxxxxxdxxxxxxxxkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkxxxxxkxxxkxxkxxxxxxxxxxxkKXXOoodxxkkkkkxxxxxxxxxxxxxxxxdxxxxxxxxxxxxxxxxxxxxxxxxxxxdddddddoodddddoooolllloooooddoddddddddddddddxkO0Okxdddddddodoolccoollccclc::;:,''....
coclldollodoodddxdxxxxxkO0KK0OkxxxxxxxxxxxxxxxdxdxxxxxdxdxxdxddxxxxxxxxxxxxxxxxkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkxxkxxxxxxxxkxxxxxxxxxxxxxkKXXOlodxkxkkkkxxkxxxxxxxxxxxxxxxdxxdxddxxxxxxxxxxxxxxxxxxxdddoooolooooooooooooooocllloooooooooooooooodddddkO00kxddddddddddooolll:cllllcc:c:,...
olcllloodxxdddxxxxxxO0KKKOkxxxxxxxxxxxxxxxxdddxxxxxxddddddxxxddxxxxxxxxxxxxkxxxxkkkkkkkkkkkkkkkkkkkkkkkkkkkxxxxxxxxxxxxxxxxxxxxxxxxxxxxxkKXKOooddxxkkxkkxxxxxxxxxxxxxxxxxxxxxxxdxxxxxxxxxxddoddddddddddooooollolllllllloooooooooooooooooooodooooodddddxkO0Okxdooddooooooocc:clolllccllc:
loodoooddxxxxxkkk00K00kxxxxxxxxxxxxxxxxxxxxdxdxddddoddddddddxxxxxxxxxxxxxxkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkxxxxxxxxxxxxxxxxxxxxxxxxxxxxOKXX0doooddxxxxxxkxkxxxxxxxxxxdddddddxxxxxxddoodddddddoddddddddddddddooooooooooooooollooooooooooloooooooddoddoodddxk00Okddooooooooooooloolloolcl
ddoddxxxxxxkkOKKK0kkxxxxxxxxxxxxdxxxxxxdxxxxxxdddddddddxdddddxxxxxxxxxxxxxkkkkkkkkkkkkkkkkkkkkkkkkkkxkkxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxkxx0XXXKdolcdxxxxxxxkxkxxxxxxxxxxxxxxxdxxxxxxxxxxxxdxxxdddxxdxxxxxxdddddoddooooooooooooooooolllloooooooooooooooddooododddxO00Oxddoooodoolooolllclll
xxxxxxxxkO0KK0OkxxxxxxxxxxxxxxdxxxddxddddxdxdddddddddxdddddxxxxxxxxxxxkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkxkxxkxxxxxxxxxxxxxxxxxxxxxxxxxxxxOKXXKxol:lxxxxxkxxxxxxxxdddxxdddxxdxdddddddddddoddddddddddxxxxxxddddddddoooooooolllloololooollllloooooooooodddoooooooddodxkO00kxdoodooooooooooll
xxxkkO0KK0OkxxxxxxxxxxxxxxxdxxdxdxxxxxddddddddxdddxxdddddddxxxxxxxxxxkxkkkkkxkkkkkkkkkkkkkkkkkkkkkkkkkxxxxxxxxxxxxxdxxxxxxxxxxxxxxxxxxxxOKXXKxdlc;cddxxxxxxxxxxxdxxdxxxxxxxxxxxddddddddddxxdxddxxxxxxxxxxxxxxxxxdddoodooollllllllllllllolllllllllloolloolooooooooooodxkO0Okxdddooooooooo
kO0KK0OkxxxxxxxxxxxxxxxxddxxxddddddddddddddddddddddddddxxdxxxxxxxxxxxxxkkkkkkkkkkkkkkkkkkkkkkxkkxxkkxxxxxxxxxxxxdxxxxxxxxxxxxxxxxxxxxxxxOKXXKkdoc:lddddxxdxdxxxxxdddddxxxxxxdxxdddddddddxxxxxddddddddddodddddddoddooodooooooooolollllclllllllllllooolllllololloooooooddodxO00Okddooooood
K0OkxxxxxxxxxxxxxxxxxdxdddddddddodddddddddddddddddxdxxxxxxxxxxxxxxxxxxkkkkkkkkkkkkkkkkkkkkkkkkkxxxxxxxxxxxxxdxdxxxxxxxxxxxxxxxxxxxxxxxxdOKXXXkddlcloddddxxxxxxxxxddxddxdxxdxxdddddddddddddxxdxxxxddxxxdddoddddddddooooooooooloooooollooolllllllclllollllllcllllooooooooooooodkO00Oxdoodd
xxxxxxxxxxxxxxxxxxdddddddddddddxdddddddddddddddddddddddddddxxxxxxxxxxkxkkkkkkkxkkxkkkxkkkxkkkkkkxxxxxxxxxxxxxxxxxxxxxxxdxxxxxxxxxxxxxxxdxKKXKkoooolodddddxxxxddxxxdxxxxxxxdxxdddxddddddddxdxdddddxxdddddxddxddddddddoooooooollodoodlllloolllllllclllllccloclllclllllllllooloooloxOK0Oxoo
Learning Through Open Source