.W##
                                                                                                              :@##
                                                                                                              +@##
    ```````````````````````````````````````````````````````````````````````````````````````````````````````   ####
    ,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::.   z###
    ,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::.   z###
    ,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::.   z###
    ,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::.   z###
    ,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::;:::::::::::::::::::::::::::::::::::::::::::.   z###
    ,:::::::::::::::::::::::::::::::::::::::::::::::::::::::;;*i;:::::::::::::::::::::::::::::::::::::::::.   z###
    ,::::::::::::::::::::::::::::::::::::::::::::::::::::;***+++i;;;;;::::::::::::::::::::::::::::::::::::.   z###
    ,::::::::::::::::::::::::::::::::::::::::::::;;i******#n####+++***;:::::::::::::::::::::::::::::::::::.   z###
    ,::::::::::::::::::::::::::::::::::::::::::;i*+#nnnnnnznxn##zzz##+*i;:::::::::::::::::::::::::::::::::.   z###
    ,::::::::::::::::::::::::::::::::::::::::;+znnxxxxnxnnnnnnnnnzzz#+++i;::::::::::::::::::::::::::::::::.   z###
    ,::::::::::::::::::::::::::::::::::::;i##znnnxnxxnnxnnnxxxxxxnnzzz#+*ii;::::::::::::::::::::::::::::::.   z###
    ,::::::::::::::::::::::::::::::::::;*znnnnnnxMMxxxxxxxxxxMMMxxnnnz####+*;:::::::::::::::::::::::::::::.   z###
    ,:::::::::::::::::::::::::::::::::;#xxnnxxxxxMxxMMxMMMMMMMMMMMxxxnnzzzz#+i::::::::::::::::::::::::::::.   z###
    ,::::::::::::::::::::::::::::::::#xxxxxMMxxxxxMMMMMWxxMMWWWWWWMMMxxxnxnnz+i:::::::::::::::::::::::::::.   z###
    ,:::::::::::::::::::::::::::::::#MMnxxxMMMMMMxxMMMWWWxxMMWWWWWMWMMxnnxxxnz#i::::::::::::::::::::::::::.   z###
    ,::::::::::::::::::::::::::::::#nnnnxxxMxMMMMMMxMMMMMMxxMMWWWWWWWMxxxxxMxxn+::::::::::::::::::::::::::.   z###
    ,:::::::::::::::::::::::::::;#nnnnxxMMxMMxMMMMxMMMMMMMxnxMWWWWWWWWxxxxxMMxxn;:::::::::::::::::::::::::.   z###
    ,:::::::::::::::::::::::::::#xxxxMxxMMxxxMMMxxMxxxxnxMMMWMWWWW@@WMxxxxxxMMxx+:::::::::::::::::::::::::.   z###
    ,:::::::::::::::::::::::::::#xxMMMMMxxxxzxMMMznnnnnxMMMWWWWWWWWWWMxxxxxMMMxx#;::::::::::::::::::::::::.   z###
    ,::::::::::::::::::::::::::inxxMMMMxMxxxnxMWMMxxxxxMMMWWWWWM@@WWMMMxxMMxMMMx#;::::::::::::::::::::::::.   z###
    ,:::::::::::::::::::::::::;#nxxxxxxMMxnxxMMWMMMMMMMMWWWWWMWWWWWMMxxxxxMMxMMMxi::::::::::::::::::::::::.   z###
    ,:::::::::::::::::::::::::*xnxxxxxxnMMxxMWMMMMMMWMMMMMMWWWWWWWWWMxxxMMMMMMMWMz;:::::::::::::::::::::::.   z###
    ,::::::::::::::::::::::::;zxnnnnxnxxnMMMWWMMMMxMMWMMMMxMMMMWWWMxnnxxMMMMMMMMWxi:::::::::::::::::::::::.   z###
    ,:::::::::::::::::::::::;#xxxxxxxxxxxxxMMWMMMMxxMMxxxxxxxMMWWMMMxxxMMMMMWMMMWM+:::::::::::::::::::::::.   z###
    ,:::::::::::::::::::::::*nxnxxxxMxMxxxxxxxxxxxxnxxnnnxnnnxMMWMMxnnnxMWWWWWWMWMz;::::::::::::::::::::::.   z###
    ,::::::::::::::::::::::izxnxxxnxMMMxxxnxxxxnnz###z##zzzzz#nxMMMxnnxxMWMWWWWWMMz;::::::::::::::::::::::.   z###
    ,::::::::::::::::::::::+nnxxnnxMMMxxxnnnnnzzz#+++++#++##++#xMMMxxxxxMMMWWWWWMxn;::::::::::::::::::::::.   z###
    ,:::::::::::::::::::::inxnxnnxMMMMxxz##++##+******++++++++#nMMMWMnzxMMMWWWWMWMz:::::::::::::::::::::::.   z###
    ,:::::::::::::::::::::#MxxxnnMMMMMxnz+**++*iiiii***+++++++#zxMMxxnxnMMWWW@WWMM#:::::::::::::::::::::::.   z###
    ,::::::::::::::::::::ixMxMxnxMMMxxz##**iiii;iiiii**++++++++#nxxMxnxMMMMMWWWWMMn;::::::::::::::::::::::.   z###
    ,::::::::::::::::::::+MMMMxnnxxxxn#+**i;;i;;;iiiii**+++++++#znMMxxxMMWWWWW@WMMx*::::::::::::::::::::::.   z###
    ,::::::::::::::::::::+MMMMxnnxnnnz++*iii;;;;;;;iii***+++++++#nxxxxnxxMWWWWWWWWx+::::::::::::::::::::::.   z###
    ,::::::::::::::::::::#MMMMMxnnzzz#++*iii;;;;;;;;iii***+*+++++znxxnMMMMMWWWWWWMM+::::::::::::::::::::::.   z###
    ,:::::::::,,::::::::;zMMMxxxnnz##+**i;;;;;;;;;;;iii******++++#nnxxMMMWWWMWWWWMM+::::::::::::::::::::::.   z###
    ,:::::::::::,:::::::;zMMxnxxnn###++*;;;;;;;;;;;iii*****+*++++#nxnxMMMMWWWWWWWMM+::::::::::::::::::::::.   z###
    ,,,,::::::::::::::::;#xxnnxxxn##++**;;;;;:::::;;ii******+++++#znxxMMMMMWWWWWWMM#;:::::::::::::::::::::.   z###
    ,,,,::::::,,::::::::;zxxxMxnxn##++*i;:;;:::::;;iii*******++++#znnxMMMWWWWWWWWMMx+;::::::::::::::::::::.   z###
    ,,,:::::,,,,,:::::::*nxxMMxxxz###**i;;;;;:::;;;iiiii*****++#++#nnxMMMWWWWWWWMMWMx+::::::::::::::::::::.   z###
    ,,,,,,,:,,,,,:::::::#xxMMMxnz###*iii;;:;:::::;;;iii*******++++#znxMMWWWWWWWWMMWMz;::::::::::::::::::::.   z###
    ,,,,,,,,,,,,,::::::;#xMWMxx#++***ii;;;;;;:;::;;;iii******+++++#zzxMMWWMWWWWWMxWWxi::::::::::::::::::::.   z###
    ,,,,,,,,,,,,,,::::::izMMMxn#+***iiii;;;;;;;;;;;;;iiii***++++++#znxxMMMMMxMMMMMWWW+;:::::::::::::::::::.   z###
    ,,,,,,,,,,,,,::::::::+xxMxn#+****iii;;;;;:;;;:;;;;iiiii**+##++##znxnxxxMMMMWMxxMWn;:::::::::::::::::::.   z###
    ,,,,,,,,,,,,,::::::::inxMxnz+***iiiii;;;;;;;;:;;;;;iiiii*+##+###znnnnnxxxMWWMxn#Wx;:::::::::::::::::::.   z###
    ,,,,,,,,,,:::::::::::;#nMxxz+***iiii;;;:::;;:::;;;iiiii**+##++###zznnnxxMMWMxnn+Mxi:::::::::::::::::::.   z###
    ,,,,,,,,,,::::::::::::+nxMxn+****iii;;::;;;;:;:;;;;iii**+#zz+##+###znxMxWMMxnnz*xM*:::::::::::::::::::.   z###
    ,,,,,,,,,,::::::::::::*nxMMx#***iii;;;:::::::;;;;i*+**i**#zz+#++###zzxxMWMxn+#+ixMi:::::::::::::::::::.   z###
    ,,,,,,,,,,::::::::::::inxMMM#**iiii;;;;;;;;;;;i*+++*;;;i*++#++++#+#zzznxxxx+i*+iMxi:::::::::::::::::::.   z###
    ,,,,,,,,,,,:::::::::::;znxMM#**iiii;;;;;;;;;i**+**i;ii***+++#+*++###zznnnnM#i;+iMni:::::::::::::::::::.   z###
    ,,,,,,,,,,,,,,,,::::::;#nxxMz**iiii****iiii;ii**ii++zxMn##+##*i*+##zzznnnnxxi;+*Wxi:::::::::::::::::::.   z###
    ,,,,,,,,,,,,,,,,:::::::;#nMMz****++++****i;;;*+**++;*nz+*+#+*ii*+##z#zznnnnx+;*+Wx*:::::::::::::::::::.   z###
    ,,,,,,,,,,,,,,,,::::::::;*zMz++*iiiiiii***i;;*#****iiiii*+***ii*+#zz#zznnnnn#;*#Wni:::::::::::::::::::.   z###
    ,,,,,,,,,,,,,,,:::::::::::+nz+*iiii+zn#***i;i*#+;iiii;;i****iii*+#zz#zznnnnn+i*z@Wi:::::::::::::::::::.   z###
    ,,,,,,,,,,,,,,,:::::::::::i++**i*z#nxn++ii*ii*#+i;iiiiii**iiiii*+#z##zzznnxn++in@n::::::::::::::::::::.   z###
    ,,,,,,,,,,,,,,,,:::::::::::*ii*+#+**+*ii;i*ii+##*iiiii;iiiiiiii*+####zzznnxn##ixWz;:::::::::::::::::::.   z###
    ,,,,,,,,,,,,,,,::::::::::::;i*i*+iii;iiiii*i*++#+*;;;;i;;;;iii**+#####zznnnnz++MMz;:::::::::::::::::::.   z###
    ,,,,,,,,,,,,,,,:::::::::::::i**i*iiiiiiiii***+#++*i;;;;;;;iii***++####zzznnx##nWW+::::::::::::::::::::.   z###
    ,,,,,,,,,,,,,:::::::::::::::;**iiiiiii*i;i***++#+++i;;;;;;;ii***++####zzznnx+#MM#:::::::::::::::::::::.   z###
    ,,,,,,,,,,,,,::::::::::::::::;*iiiiiiii;;i*ii*+++++*i;;;:;;ii***++##z#zzznnnznWxi:::::::::::::::::::::.   z###
    ,,,,,,,,,,,,,:::::::::::::::::**iiii;;::;**ii*++#++*i;;;;;;;ii***++#zzzzzznnnxMxi:::::::::::::::::::::.   z###
    ,,,,,,,,,,,,,,:,::::::::::::::i*iiii;:::i**ii*+##+##*i;;;;;iii****+#zzzzzznnnxxM*:::::::::::::::::::::.   z###
    ,,,,,,,,,,,,,,::::::::::::::::;***ii;::;i***i*++#+++z*ii;;;ii*****+#zzzzzznnnxMxi:::::::::::::::::::::.   z###
    ,,,,,,,,,,,,,,::::::::::::::::;****i;::;;**iii*+#+*+z#iiiiiiii*****##zznnnnxnxMn+:::::::::::::::::::::.   z###
    ,,,,,,,,,,,,,::::::::::::::::::+***i;:::;**i;i*+#nz+z+*ii**iiiiii**+#znnnnnnnxMx#:::::::::::::::::::::.   z###
    ,,,,,,,,,,,,:::::::::::::::::::****ii;;;i*+iii+#xn*++********iiii***#znxnnnnnxMxz;::::::::::::::::::::.   z###
    ,,,,,,,,,,,::::::::::::::::::::i+**iiiiii++***+nx+***********+iii***+#nxxnnnnxMx#;::::::::::::::::::::.   z###
    ,,,,,,,,,,,::::::::::::::::::::;***iiiiii**+++#nz*******+****+i;i***+#nxxnznxxMx+:::::::::::::::::::::.   z###
    ,,,,,,,,,,,,::::::::::::::::::::+**iiii******+++********+++***i;****+#nxMnznxxMx+:::::::::::::::::::::.   z###
    ,,,,,,,,,,,:::::::::::::::::::::****ii****************++##+***;;****+zxMMnznxxMn*:::::::::::::::::::::.   z###
    ,,,,,,,,,,,:::::,:::::::::::::::****iii*****+***ii*++###+#+*ii;i****+zxMMnznxxxn*:::::::::::::::::::::.   z###
    ,,,,,,,,,,::::::::::::::::::::::i**iiii***********+#++++++**ii;i****+zxMMnzxxxxz+*;:::::::::::::::::::.   z###
    ,,,,,,,,,,:::::::::::::::::::::::+**ii****++++++++*****+#****ii*****+nMMMzzxxxn#+xW+::::::::::::::::::.   z###
    ,,,,,,,,,,,::::::::::::::::::::::***i;i***+++***iiiii**+*******i****#nMMxznxxx#++z@W+:::::::::::::::::.   z###
    ,,,,,,,,,,:::::::::::::::::::::::i***;;iii*****iiiii********++**+**+#xMMnzxxx#+++zW@W;::::::::::::::::.   z###
    ,,,,,,,,,,::::::::::::::::::::::::***i;;iiii****iiiii*******++++***+zxMxznxxz+*iin@@@n::::::::::::::::.   z###
    ,,,,,,,,,:::::::::::::::::::::::::;*i*i;ii**iiiii*i*********+++++*+#xMMnznxz+i;;*W@@@@+:::::::::::::::.   z###
    ,,,,,,,,,::::::::::::::::::::::::::i*i**i***iiiiiiiii*******+###*+#zxxnznxz+i::iM@@@@@Wi::::::::::::::.   z###
    ,,,,,,,,,,::::::::::::::::::::::::::*********ii**iiiii**+***+###++zxxnnnnz+;,,:x@@@@@@@M;:::::::::::::.   z###
    ,,,,,,,,:::::::::::::::::::::::::::::************iiiii*+++**+#z#+#nxznnnz+;.,,n@@@@@@@@@n:::::::::::::.   z###
    ,:,,,,,,,:::::::::::::::::::::::::::::*+**+*************++*++zz##zxzznnz+;..,z@@@@@@@@@@@#::::::::::::.   z###
    ,::,,,:,:::::::::::::::::::::::::::::::i++++***********++*+##z##zxnznnz#;`..+W@@@@@@@@@@@W*:::::::::::.   z###
    ,,:,,:::::::::::::::::::::::::::::::::::;*+++**+*****+++++#####znxzzzz#;```*W@@@@@@@@@@@@@n:::::::::::.   z###
    ,::,,:::::::::::::::::::::::::::::::::::::++++******+++++#+++##zxzzzz#:```:WW@@@@@@@@@@@@@@n;:::::::::.   z###
    ,:,,::::::::::::::::::::::::::::::::::::::;++++****+++++#++++#znnzzz+:```.x@@@@@@@@@@@@@@@@WW#;:::::::.   z###
    ,,,,::,::::::::::::::::::::::::::::::::::::*++++++++++++++++##zz###+,````#W@@@@@@@@@@@@@@@@@W@M+::::::.   z###
    ,,,,::::::::::::::::::::::::::::::::::::::::*#++*********+++###+##*. ```iWW@@@@@@@@@@@@@@@@@@WWWM+::::.   z###
    ,,,,,,,::::::::::::::::::::::::::::::::::::::+#++********++++++++;`  ``,MWW@@@@@@@@@@@@@@@@@@@@@WWM+::.   z###
    ,,,,,,,::::::::::::::::::::::::::::::::::::::;++++++**********+i.    ``#WW@@@@@@@@@@@@@@@@@@@@@@@@@WM+,   z###
    ,,,,::,::::::::::::::::::::::::::::::::::::::,*++*********ii**:`      :WWW@@@@@@@@@@@@@@@@@@@@@@@@@WW@*   z###
    ,,:::::::::::::::::::::::::::::::::::::::::::,:++***iiiii;ii:`       `nWWW@@@@@@@@@@@@@@@@@@@@@@@@@@W@+   z###
    ,,,,:::::::::::::::::::::::::::::::::::::::::;.i+***ii;;;;;.         *WWW@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+   z###
    ,,,,::::::::::::::::::::::::::::::::::::::::*+..i***ii;;:.          .MWWWW@@@@@@@@@@@@@@@@@@@@@@@@@@@@+   z###
    ,,,,:::::::::::::::::::::::::::::::::::::::*M#...;i*i;;,           `#WWWWW@@@@@@@@@@@@@@@@@@@@@@@@@@@@+   z###
    ,,,,:::::::::::::::::::::::::::::::::::::;zW@#..`.;*ii.            ;WWWWWWW@@@@@@@@@@@@@@@@@@@@@@@@@@@+   z###
    ,,,::,::::::::::::::::::::::::::::::::::#MWW@#..``..,.`           .xWWWWWWWW@@@@@@@@@@@@@@@@@@@@@@@@@@+   z###
    ,,,::,,,::::::::::::::::::::::::::::::*xWWWW@z..`:;...`           +WWWWW@WWW@@@@@@@@W@@@@@@@@@@@@@@@@@+   z###
    ,,:::::,::::::::::::::::::::::::::::;zWWWWWW@z..,,,,,,`          :WWWWWWWWWW@@@@@@@@@@@@@@@@@@@@@@@@@@+   z###
    ,::::,,,:::::::::::::::::::::::::::+MWW@WWWW@z,,,,,...`         `xWWWWWWWWWW@@W@@@@@@@@@@@@@@@@@@@@@@@+   z###
    ,::::::,:::::::::::::::::::::::::*xW@W@WWWWW@+,,,,......        +WWWWW@WWWWW@@@@@@@@@@@@@@@@@@@@@@@@@@+   z###
    ,,:::::,:,:::::::::::::::::::::izWW@W@@WWWWWM:,,.........      ,WWWWWWWWWW@@@@@@@@@@@@@@@@@@@@@@@@@@@@+   z###
    ,,,,:,,::::::::::::::::::::::izMW@@WW@WWWWW@#.,.`.,,...,,     `nWWWWWWWW@W@W@@@@@@@@@@@@@@@@@@@@W@@@@@+   z###
    ,,:::,,::::::::::::::::::::*zMWW@@@@@WW@@WWW:..``..,..., ``   iWWWWWWW@@@WW@@@@@@@@@@@@@@@@@@W@@@@@@@@+   z###
    ,,,:,,,::::::::::::::::::izMWWW@@@@@WWW@@W@n,.``.....,. ```` .MWWWWWWW@W@W@@@@@@@@@@@@@@@@@@@@@@W@@@@@+   z###
    ,,,,,,:::,:::::::::::::;#MWWW@@@@@@WWWW@@WW;,.``.....,  `````zWWWWWW@@W@@@@@@@@@@@@@@@@@@@@@@@@WW@@@@@+   z###
    ,:,,,,,:::::::::::::::*xWWW@@@@@@W@WWWW@WW*..``.,...,  `````iWWWWWW@@W@WW@@@@@@@@@@@@@@@@@@@W@WWW@@@@@+   z###
    ,,,:,,,:::,::::::::::+WWWW@@@@@WW@@WWW@@@n.,.`..,..,`  .```.MWWWWWW@@WWW@@@@@@@@@@@@@@@@@@@@@@@@W@@@@@+   z###
    ,,,,,,,,,:::::::::::*WWWW@@@@@WW@@WWW@@WW;.,....,,,.   .```+WWWWWW@@@WW@@@@@@@@@@@@@@@@@@@W@W@@W@@@@@@+   z###
    ,,,,,,,,,,:::::::::iMWWWW@@@@WW@@@WWWWW@n.,.....,,,`   ```:WWWWWWWW@@@@W@@@@@@@@@@@@@@@@W@W@@WWWW@@@@@+   z###
    ,,,,,,,,,,,,:::::::n@WWW@@@@WW@@@WWWW@WWi.:...,.,,:.   ``.nWWWWWWW@@@@@@@@@@@@@@@@@@@@@@@@@WW@@@@@@@@@+   z###
    ,,,,:,:,,,::::::::+WWWW@@@@@W@@@@WW@@@@x.,,.,,,,,,:,   ``*WWWWWWW@@@@@@@@@@@@@@@@@@@WW@@@@@@@@@WW@@@W@+   z###
    ,,,,::::,::::::::;M@WW@@@@@@@@@@@WWW@@W*.:.,,,,,,,;:  `.,MWWWWWWW@@@@@@@@@@@@@@@@@@@@@@W@@@@@@@@@@WWW@+   z###
    ,,::::::,::::::::+@@@W@@@@@@@@@@WW@WW@M,,:.`.,,,,.;,  ``#@WWWWWWW@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@W@@W@W@+   z###
    ,,:::::,::,:::::;M@@@@@@@@W@@@@WWW@@@W#.::`....,,.:. ``:WWWWWWWW@@@@@@@@@@@@@@@@@@@W@@W@@@@@WWW@@WWWW@+   z###
    ,,::,::,::::::::#@@WW@@@@@@@@@@WW@@@@M;,;,`.....,.:.`..nWWWWWWW@@@@@@@@@@@@@@@@@@@@@WW@@@@@@@@WWWWWWW@+   z###
    ,,::::::::::::::x@@@@@W@@@@@@@WWW@@@Wz,i;.`......,;```i@WWWWWW@@@@@@@@@@@@@@@@@@@@@@@@@@W@@@WW@@WWWWW@+   z###
    ,::::::::::::::*W@@@@@@@W@@@@@WW@@@@W*:i:.`......,:`..MWWWWWW@@@@@@@@@@@@@@@@@@@W@@@W@@@@@@@@@@WWWWWW@+   z###
    ,::::::::::::::n@@@@@W@@W@@@@@W@@@@@x;i;,``......,.``+@WWWWW@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@WWWWWWWWWWW@+   z###
    ,:::::::::::::iW@@@@@W@W@@@@@WW@@@@Wz;i:.``.......``:WWWWWWW@@@@@@@W@@@@@@@@@@@W@@@@@@@@@@@W@WWWWWWWW@+   z###
    ,:::::::::::::#@@@@@W@@@@@@@@W@@@@@Mii;,.``.......``z@WWWWWW@@@@@@W@@@@@@@@@@@@@@@@@@@@@@W@W@WWWWWWWW@+   z###
    ,:::::::::::::x@@@@WW@@@@@@@@W@@@@@+;;;,```.......`;WWWWWWW@@@@@@W@@@@@@@@@@@@@@W@WW@@@@@WW@@WWWWWWWW@+   z###
    ,::::::::::::iW@@@@W@@@@@@@@WWW@@@x:;;:.``......,..xWWWWWW@@@@@@@@@@@@@@@@@@@W@WW@@@@@@@@@W@WWWWWWW@W@+   z###
    ,::::::::::::+@@@@@W@@@@@@@@W@@@@Wi:;;,.```.....,.*@WWWWWW@@@@@@@@@@@@@@@@@@@@WW@@@W@@@@@@@WW@W@W@W@W@+   z###
    ,::::::::::::n@@@@WW@@@@@@@@@@@@@x,;;:,.```....,,.MWWWWWW@@@@@@W@@@@@@@@@@@WWWWWWWW@@@@@@@@WWWWWWWWWW@+   z###
    ,::::::::::::M@@@@W@@@@@@@@@@@@@Wi:;;:.````...,,.+@WWWW@@@@@@@W@@@@@@@@@@@@@W@W@@@@@@@@@W@@WWWW@WWW@@@+   z###
    ,:::::::::::iW@@@WW@@@@@@@@@@@@@x,:;;:.````...,,:WWWWWW@@@@@@@@@@@@@@@@@@@@@WW@@WW@@@@@W@@W@@@@WWW@@@@+   z###
    ,:::::::::::+@@@@W@@@@@@@@@@@@@W*,::::.```....,,z@WWWW@@@@@@W@@@@@@@@@@@@@@@@W@@@@@@@@@@@@W@WWW@@@@@@@+   z###
    ,:::::::::::z@@@WW@W@@@@@@@@W@@x,,:::,.```....,iWWWWW@@@@@@@@@@@@@@@@@@@@W@@WW@@@@@@@@@W@@@@@WW@W@@@@@+   z###
    ,:::::::::::x@@@WW@@@@@@@@@@@@@+,::::,````...,,nWWWWW@@@@@@@@@@@@@@@@@@@@@WWWW@@@@@@@@@W@@@@@WWW@@@@W@+   z###
    ,::::::::::;W@@@W@W@@@@@@@@@@@M;,::::.````...,iWW@WW@@@@@@@@@@@@@@@@@@@@@@WWW@@@W@@@@@W@@@@@@@@@@@@@W@+   z###
    ,::::::::::*@W@WW@W@@@@@@@@@@@z,,:::,.````...,xWWW@@@@@@@@@@@@@@@@@@@@@@@@@W@W@@@@@@@@@@@@@@WW@@W@@W@@+   z###
    ,::::::::::z@@@WW@@@@@@@@@@@@W;,,:::,.````...*@WWW@@@@@@@W@@@@@@@@@@@@@@WWWWWW@@@@@@@@@@@@@@W@@WW@@W@@+   z###
    ,::::::::::M@@@WW@@@@@@@@@@@@z,,::::,.````..,xWWW@@@@@@@W@@@@@@@@@@@@@@@@W@WWW@@@@@@@W@@@@@@@@@WW@@@@@+   z###
    ,:::::::::iW@@@W@@@@@@@@@@@@W:,,:::,,.```...*@WW@@@@@@@@@@@@@@@@@@@@@@@@@@@WWWWW@@@@@@@@@@@@@@W@WWW@@@+   z###
    ,:::::::::*@@@@W@@@@@@@@@@@@z,,,:::,..```...M@W@@@@@@@@@@@@@@@@@@@@@@@@@@W@@@@@@@@@@@@@@@@@@@@@@@@@@@@+   z###
    ,:::::::::#@@@WWW@@@@@@@@@@W;,,,:::,.......*@W@@@@@@@@@@@@@@@@@@@@@@W@W@@@WW@@@@@@@@@@@@@@W@@@@@@@@@W@+   z###
    ,:::::::::z@W@W@@@@@@@@@@@@n,,,,,::,.......M@@WW@@@@@@@@@@@@@@@@@@@@@WW@WWW@@@@@@@@@@@@@@@@@@@@@@@W@@@+   z###
    ,:::::::::n@@@@W@@@@@@@@@@@i,,,,,,,,......*@@@@@@@@@@@@@@@@@@@@@@@@W@WWW@W@@@@@@@@@@@@@@@@@@@@@@@@@@@@+   z###
    ,:::::::::M@@@W@@@@@@@@@@@x,,,,,,:,,.....,M@@@@@@@@@@@@@@@@@@@@@@@W@@WW@WWW@@@@@@@@@@@@@@W@@@@@@@@@@@@+   z###
    ,::::::::;M@@@W@@@@@@@@WW@i,,,,,,:,,.....*@W@@@@@@@@@@@@@@@@@@@@@@@WWWWWWWWW@@@@@@@@@@@@WWW@W@@@@@@@@@+   z###
    ,::::::::iWWW@WWW@@WWWWW@M,,,,,,,,,,.....xWWWWW@@@W@@@@@@@@WWWWWWWWWWWWWWWWWWWW@@@WW@@@WWWWWWWWW@WWWWW+   z###
             `````````````````               ``````````````````````````````````````````````````````````````   z###
                                                                                                              z###
                                                                                                              z###
.:+#zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzW###
W@@###############################################################################################################
##################################################################################################################
##################################################################################################################