`*MWWWWxWWWWWM#,`                                        `::::,`                                         `:+nMWWWWWW@WW*,```````````````
               `zWWWWMxWWWWWWMz:                                       ,:::::`                  `                   `.:zMWWWWWWWWWWMz;.```````````````
                :xWWWWxMWWWWWWWM*;`                   ,``         `    ,:::;:.      ``       .`.i,         ``   `.:iznMWWWW@@@@@WWWx+:,.```` `````````
                 :nWWWWxWWWWWWWWMxn*.        ```   ` .i:,:.`  .,``., ` .::;;:`   ``,:,``    .;;i*i.,i,``;;iz#**+zxMWWWW@@@@@@WWWWM+:,.````   `````````
                  :xWWWMxWWWWWWWWxWWxi:.  ` ,i;;` ,.,;i;ii;:;:ii;.:i,,. .:;;.   .,:::;;,:,,,;:;i**#nxnnzMMWMWWWWWWWW@@@@@@@@@WWWM#;:.``` `   `````````
                  .+MWWWxWWWWWWWWWnWWMMn##+***iii;iii*i***ii***+i:;**;:`,`;;, `:::,:;i**;;i;:;ii+*znxMWWWWWWWWWWW@@@@@@@@@@WW@Wxz;.````  ``` `````````
                   .*xWWWnWWWWWWWWxMWMMxxxz#+*ii***i*+*+*+****+#*;;**i;;::;;:,:;;:;;ii**;i*;ii**+*nnMWWWWWW@@WWWWW@@@@@@@@W@@Wn*i;,``  ` `````````````
                  `..,+MWMxWWWWWWWMz@Mnnnn#+****++**#z#++##+#++z*ii++i;;:;i;;;iii;ii**+**++i*+#z+#nxMMWW@@@@@@@@W@@@@WWWW@@WWMx#i;:.``  ````` ````````
                 ``   :zMMnMMMMMWWMzxWnzz#++++++##+#zzz##zzzzz#n#+*#**ii;iii***+*i***++++z###zxxznnMMMWW@@@@@@@@@WWWWWWWWWWWMMz##i;:.``  ``` `````````
                     .::#MWnMMWMxxxn#Wn####++++#zz#nnnzzzzzzznznn#+##++*i**++++#++*++###zzznnnMMxxxWMMWW@W@@@@@@WWWMWMWWWWWMMx#i*;:,.``    ```````````
                    `...:#Mxxxxxnznn+zn##z#####znnnnzxnnnnnznnxxxzz#z###++##z##z#+#####znznnnxWWMWW@W@W@WWWWWMMMxxMMMMWWMMMMxMni;i,:``````````````````
                    .```,inWnMnnzn##z#nz#zzzzzznxxxxzxxxxxnnnxxxxnnznnnz##znn#zzz####zznnnnnnx@MWW@@@@@@@WWWWMnnnxxxMWWMxxxMxx#*:;;,``  ``````````````
                    `  `;+znnxxzz#z#z#nnzznnnnnxMxMnxxnxxxxnxxMxxnnznxMxzznnnzzz##z#z#znnnnxnWWMW@@@@W@@WMMMxnzznxxMMWMMMxxxnx+,;,::. ````````````````
                   `` .*#+#zz+Mn##zzz#znnnnxxxxMMxxxxxxxxxxxMMMxxnxnnxMxznnxnzznzznzzzznnnnxnWMWM@@MW@@@WMMxnnnnnxMMMxnnnxxnxxx+:,.,.``````````` `````
                   ``.i*+##z##+n##zznnzxxxxMxMMMMMMMxMxxxMMxMMMxxnxnnxMnnxnnnnnnnnnznzzznnnnnMMxMxxMWW@@WWxnzzxxxMMMxxnnnnnnzxx#i:`..````````    `````
                   `.;ii***+z#*zzznnnxzxxxMMMMMWWMMMMMxMxxMMMWxMxxxnnxMnxnnxxxnnnnzznzznzznzxxxxnnxW@WMWWWMxxxxxMWWWMMxnnzznn#n+*i..``````        ````
                   `.;;;:,,*#z##znxxnxzxMMMMMMWWWMWMMMxMMMMMMWMMMnMnnxxnnMxxxxnxnnnzzznzzzzznnnzznMWxnMWWWMxxMMMWWWMMMMxnnnnnz#+,i:.````           `` 
                   `,,..:i*+#zz+znxxxMnxMMMWWWWWWMWWWMMMMMMMMWMxMxxnnxznxMMxnxxnxnnznnzzzz#z#zz#znnznxxMMMxMMxWWWWWWMMMMMnnxxx#i:,:.```    `     ` ```
                   ..``.;i++#zzz#xMMxMxMMWWWWWWWWWMMMxMMWMMMMMWxMxxnxxznMMMxxxxnxxnnznnzz##z####z##zzxnznnnnnxMWWWWMMMMWWMMzxxz+*,:`             `````
                   ````.;i###zzn#xMMMMxxWWWWWWWWWWWWxxMMWMWWMMMMMxxnMM#xMMMMMxxxxnnnnzz#zz#######+#zz+#######zMWWWWWWWMMWWWMnxz**:,.           ```````
                     ```:+#zzznnxzMMMMMxWWWWWWWWWWWWnxWMMWWWMMMWMxMnMxxMMMMMMMxxxxnnnzz#z##+#############+*+#W@W@@@@@@@WWWMWMnx#ii,.        ``````````
                      `:i+#znznxM#MMMMMxWWWWMWW@WWWMnnWWMW@@WMMWWnxnMzMMMMMMxMxxxnnnnzzzzz##############++++nW@@@@@@@@@@@WWMWMnz*;:.```  `````````````
                      `;**+znnxxMxzMMMMxWWWWWWW@@WWxzxWWMM@@WMWMWnxxMzMMMMMMxMxxxnnnnzzzzz###########z##+++#M@W@@@@@WW@W@WWWMMx**::.``````````````````
                       ,*##+nxxMMMzMMWMxWWWWWW@@@MMzznxWWMW@WMWWMxxxnxMMMMMMxMnnnnnnzzzzzz#z########z######nWWWWWW@WW@WWWWWW@WWn;;..```````````````   
                       .+zznznMMMWMxMWWM@WWWW@@@@Mx#nnMM@MWWMMWWMxxMzMMxMMMxxxnnznnnnzznzzzzzz#########z##znWW@M@@WW@@@@@@W@@@Mi...````````````       
                       ,#znxxnzMMMWnWWWW@WWWWWW@Wxn#nzWx@WMWWWW@MxWWnWMMMMWxMxnnzznnzzznzzzzz####z####zz##zxWWMWWW@@@@@@@@@@@W+,```````````           
                      .:znxxMMxzMMWMW@@@@WWW@@W@xzz+znMMMWMWWWW@MM@MxWMMMMWxMxnnzznzzzzznzzzzz#zzzz#zzz#zznxWMM@@@@@@WWWW@@@@z``````` ``              
                     `,+#nxMMMMMzWWW@@@@W@WW@@W@n#z++nMWxWMMWWW@WW@MWMxxxMMMMxnnznzzzzznz#zzzzzzzzzzzzzznnnxMMW@@@@@@WW@@@@#@+```````                 
                    `.*#nxxxMWMWxnWW@@@@WWWW@@MMnzz++zWWMWWWMW@WW@@MMWMMMMxMMnxnnzzzzz###zzzzzzzzzzzz#zzznnxxMWW@@@@@@@@@@@@W;`````                  `
                    `,izxxMxxMMMWWxW@@@@WWW@@Wxxz+#*##MWWMWWWWW@W@@MWMWMWMMxnxnzzxzz#+######znzzzzzzzzzznnnxnMMWW@@@@@@@W@@@x,```````             ````
                  `.i#nnMMMMMxMMWWWW@@@@WWWWWWn###z+++xWWWWW@@W@@@WMWWWWWWMMxMxxn#zz###+zzznxnnnnznzzzznnnxnxnxMW@@@@@@@@WWW*.```````         ````````
                   .;#znxxxxxxxMW@@@@@@WWWW@@Wx+z#+#*#zMWWWW@@@@@@WWWWWWWMMMMxnxnnnnnnnnnzznnznnnnznnnnznnnnnnxMWWW@@@@WWMWW#:.````        ```````````
                   ,*zxMMMMMMMMxMW@@@@@@WWW@@xn++#+*izxnWWWWWWW@@@@WWWWWMWMMMxxxxxxnxxxnzznzznnnnzznnnnnnnnnznxMxMWW@WWMMMMWx;.`` `   ````````````````
                 `,*znxxMMWWWWWMMMW@@@W@@WWWWzz++***+zxxMW@W@@@W@@@WWWWMWMxMMxxxxxxxMMxxxnzzzzxzzznnnnxnnnnznnnxnMMWMMxxxxxMx:````````````````````````
                  .+zxxMMMWWWWWWWWWW@@@W@W@Mxnz*****izxxWWW@@@@@@@@WWWWWMMxxxnxxxMMMxMMMMxxxxxnznnnnxnnnznzzznnnnnxxxnnnzznMx,``````````````````````` 
                 ,iznxMMMMMMMWWWWWWWW@@W@W@WMz*i;ii*izMxWMW@@@@@@@@@@WWWMxMMxxxxxxMMMMMMMMMMMxxxnnnnnnnnzzzznnnnznnnnnz###xMn+.`````````````          
                  :#nMMMMMMMMMMMWWWW@@@@W@WWx+;;;;;;;+MMM@MW@@@@@@@@WWWMMMMMMMxMMxMMMMMMMWWWWMxnnnnxxnnnzzzzznzznnnzzz###znnxn:`` ``                  
                 `,#xxMMMMxn#znMWWWW@W@@@WW@n+;:;;;;:+MMWM@@@@@@@@@WWWWWWWW@WMMMMWMMMWWWWWWWMxnznxnxnnnnz##znzzznzzzz#######zn*`                      
                 `;nxMMMMxziii+W@@WWW@@@@WWWx*;:;:;;;#xWMWW@@@@@@@WW@WWW@@@@WxzzxxMMMMWMWWWWMxxxxxnxxxnzz##zzzznzzz###++##+###i.                      
                  ;#xMWWMxi;:in@@@@WW@@@@W@WM*;::::;;+MxWMW@@@@@@WW@WWW@@@@@x+*i+nnxMznxMWWWMMMxnnxxxnnzzzzzznnzzz###++++++##+;.                      
                  ,zxMWWxz,:;#M@@@@@W@@@@@@WM#;;,::::*xWM@W@@@@@@WWWMMMW@@@@x*i;i#zzMnnnMW@@@WMxxnxnnzzzz#znnz#zzzz#+++**++++++,``                 ```
...`              :zxMWWMz,:;zW@@M@@WW@@@@@WW#;:,,:::+zWWW@@@@@WW@WMxxxW@@M@Wxx#+++#nxnMMW@@@@WMxxxnnxnnzznz##zzzz##++***+++****:           ``````````
.,::.`            .#xWWMMz,:i#W@@@@@@W@@@@@WW#;:,,,:;+#MWW@@@@@WWWWxnnx@@@@@@WMz#++#nxxMMWWW@@@WMxxxxxnz##zzzzzzz##+***+++**ii**:`   `````````````````
.,::::.           `+MWWMWn,;i#W@@@@@WMW@@@@WWz;:,..,;*zMM@@@@WWWWWWnzzxW@@@@@@Wx#++zxxMMWWWW@@@@WMxxnnnzzzzzzzz###++***++*iiiiiii,.  ```````````````.`
.,:::::,`         ,*MWWMWM;;i+W@@@@WxxW@@@@Wx*;:,...;+#nMM@W@WxMMMWzzznW@@@@@@Wnz##nMxMWWWWWW@@@@Wxnxxnnznzzz#####++****iiiiiiiii;.` ```````````````.`
.,::::::,`        .+xWMMWWi;*#M@@@#WMxM@@@@M+;:,....:i#nnW@W@WMMxMM#++zxW@@@@@Mnz#zxxMMWWWWWW@W@@@Wxnnnzznnzzzz##++****iiiiiiiiiii.  `````````````````
..:::::::,`        ;zMMMWWz;;*n@@@WMxnWW@W@#i;,,....,;*#xMW@@WMnxxMn**#nxMWW@@xx##xMxWWWWWWWWWWW@@WWxnz#znnzz##+#+****iiiiiiiiiii;.``                `
..,:::::::,`       ,nnMMWWW*;;#xWWWMxW@WMWM+;::,....,:*zxWW@@WMnnxMM+i+xMMnzxMz+#xWxMWWWWWWWWWWWWWWWMnnznnzz#z#+++***i**iiii;ii;ii;;.             `   
..,::::::::,`      ,nzMWWWWx+*+#nxxWWM@WMx#i;:,,,....:i+xM@@@WWxnxMMnii+zxMMx#*zMMMMWWWWWWWWWWWWWWWWWMnnnzz#z#+++******iiiii;;;;;;;;,            .,.  
..,:::::::::.      inMzWWWWWMn##zxMWWW@MM#;;:::,,....,:;nWWWWWWMMMMxMn*i*+#z##xxxxxWWWWWWWWWWWWWWWWWWMnxzz####+++++****iiii;;;;;;;;:`           `,,,` 
..,::::::::::`    `*nMxnWWWWMWWMWMWMWWWM+:;::::,,.....,:zMMWWWWMMWWMWxxn#zzxMWWWMnxWWWWWWWMMMMWWMWWMMnxnzz##+++++++****iiii;;;;;;;;:.`           .,.  
```,::,,:::::,`   .#nxMnxWWWWWWWWWWWW@M+::::,,::,.....,:inW@@@WM@W@W@WMMMMMWWWWWMWMxWWWWWWWWWWWWWMMMnnnnzz#++++++*****iiii;;;;;;;::::,``            ` 
`  ,::```.,:::. ``,#xMMWzMW@@WW@@@WW@Wz:;:::,,,,,...,,:;*zWW@@@WWW@@@@WWWWWWWW@MW@WMxWWW@WWWWWWWWMMnnnnzz#####++*****i*ii;;;;;;::::;;:::,.````````````
`  .,,`    `,:,  `,*nxMWWzM@W@@@@@WWWx;:::::::::,,,,,,;;+zM@M@@@@@W@@@@@W@@@@@MW@W@@MxWWWWW@@WWWMMznnnzz#+++++********iii;;;;;;::::::;;::::.``````.::,
.   `       `,:. .i**nMWWMzM@@@@@WWWx*:;;;;;;;:::,,,::i:;*xWW@@@@@@W@@@@@@@@@MW@@@@@@xnW@WW@@W@WMzxnnnz###++****+****iii;;;;;::::::::;::::::.````.,;;:
.             ,,`,*#n#+MWW@zn@@@WMMxxiiiiiiiii;;:::::;;:,:+MMWW@@@@W@@@@@@@WM@@@@@@@Wn#MWWWWWWWxzxxnnzz##++****+*i*iiii;i;;;;::::,,,,:::::::,```..,;;:
,   ` `        ,.:iznMx+zWW@zzMMxxzi:*i*ii;i*i;;;:::;i;;:,;#MMWM@@WM@@@@@@MW@@@@@@@xnWnMWWWWWMznxxxxnz##+##++*****iiiiii;;;:;:::,:,,,::;::::,```...,,.
,         ``   `,:;izxMMx#nWWn#zn#;::+#+#+ii*ii+*;;;i+*;;,,;#MWWMWWxW@@@MM@@@@@@@Wzx@MWx@@WMznMMMMMxnz##+++*+***iiiiii;;;;:::::::,,,,,::::::,`````....
,           `..`,;i+++nMW@x#xnz++i:,,;*#nWz*+*zWx#ii++;;::..:iznxnMxMWMM@@@@@@@@xzWWMMMnMnznMMMMMMMxnz###******ii;;;;;;;::;:::::,,,,,,::::::,`     ```
:``` ```````,,:,,,;+znz*zMMx#+i;:::,,,,:i+n+z##n+*iii;;::,..,:;i+nMxxnMWW@@@@@x#xWWWMMz+nMWWWWWWMxxxnz#++++*****iii;i;;;;:::::,,,,,,,,::::::.       ` 
;`        `.,,,,,:;ii+xMn##n#;::,,,,,,,,:;++z#+i;;;:;::,,...,,,:;i++zWWMWWWWx#nWWWxzzn#MWWWWWWMMxxxnzzz#+++****iiii;;;;;:::::,,,,,,,,:::::::`       ` 
;`         .:,,,,,,;#z++#n#*i;:,,,,,...,,:;i+iii;:::,,,.,..,,,,,,::;+nWMxxz++zz#znxM@nxWWWMxnz#######z###++++*iiiiiii;;;;;;:::,,,,,,,,:::::.       ```
;`         .,,,:;;;;:i#n#****:,,,,,,,,,::;;;*i;;;;:,,,,,,,,,,,,,,,::i###+#xWMMWWWWWWnxMxz##zxxxxxnnzz#####+*****iiiii;;;;;:::::,,,,,,,:::,.       `..`
;`          .,::;i*+##+ii++;:,,,,,,,,,,::;i*+ii;;::::,,,,,,,,,,,,,,;##+#nxxWWWWWMx+i++#nxxMMMMMxxxzz####++++***iiiii;i;;;::::,,,,,,,,:,.``        .,,.
i.           ``,:i*+zzznz+;,,,,,,,,:::::i**i****i;;::,:,,,,,,,,,,,,,i#nxMxn#***++znMMMMWWWMMMMMxxnnzzz#z#++******ii;;;;;:::::,,,,,,,,:.```````    .,,.
i.       ``    ,;i*#zzzz**i:,,,,,,,,,:;ii;:;;;i**i;::,,,,,,,,,,,,,,,:*zzz#znMMMMxxMWWWMMMMWWMxxxnnnzz####+#+***iiiii;;;;::::,,,,,,,,,:,.````....```..`
i,      .,,`   ,;i+###+**i:::,,,,,:,:;i;::;;;::;;**i;:::,,,,,,,,,,.,,;i*zxxxxMMxMMMxxMMMMMMMMxxnnzn#z++++++++****i;;;;;;::,,,,,,,,,,,,:.```...........
i,      ,,,` `.,:;ii**i*i;::,,,,,:::;i;:::::::::::i*i:,:,,,,,,,,,,,:;*#zzzxMMxxMxxxxxxMMxMMMxnnxnzzz##+++++****iii;;;;;:::,,,,,,,,,,,,,,..``..........
;:      .,.```.,::;:::::i*:,,,,,::::i;:,,:;:,::::,:;ii:::,,,,,:,,,,::*##zzznMMxnxxxxnxMMMxxMxnn#z##zz###++***ii;;;;;;;:::,,,,,,,,,,,,,,:,.............
::      ``````.,,:;;iii*+i:,,,,,,::;;:,,::::,,,::,:::;i:,,:,,,,,.,:,;**+zxnzzxxxnnnnnnxnxxnnxxnnnz##z###++***iii;;;;;;:::,,,,,,,::::::,,,,............
*,`````     ```,:::;*+##*i;,,:,,,::;::,,,,:::,,,,,,:::;;:,,,::,,..,,,i#z+*#z+*nnzznnzzzzzzzznnnnnzz####++**iiii;;;;:::::,,,,,,,,:::;:.``` .```........
;.`     ``  ```.:;i**+#*ii;::,,,:::;:::,,,,:,,.....,,::;;:,,,:,,,,,,:;+znx#***ii#nnnxnnzzzznnz#zzzz###++*iiiiii;;;;:::,,,,,,,,,,..,,,,.,. `.   ``.....
`     ``````` `.:;ii;;*ii;;i;:,,:::;::,,,,,,,,..,,...,::;;:,,.,::,,,:;+#nnnn*;;*+*ii+znnnznnznz#z###+++**ii;;;;;;:::,,,,,,,,,........,,,,``.`  ``````.
    `.,,,,..`  .,,::i*i+i**ii:,:::::::,,,,,,,,,..,,,.,,::;;:,,,.,,;:;**#znnnnz*iizz#+ii+znnnnzz#+##+++**i;i;;;;::::,,,,,,,,............,:``.`  ```````
   `.,,,,,.,,.`.,:;;;*+*#*i*ii;::::;:::,,,,,,,,..,,,,.,,::;;,,,.,,:;ii+#zzzzz##+iii#zzz+**+nnz##++++**iii;;;;:::::,,,,,,,,,,,..........,,.`.``````````
   .,,,,.,...,,,,,,;i;+#**+*++*;::::::,,,,,,,,,....,,..,,:::::,,,.:i*;+*zzznz#+*i++i*#zzzz+*i+#++***iiiii;;;:::,,,,,,,,................,,,,` `````````
 ``,,,,,,..,,,,,,,:;:*++*#+*+**i;;;;::,,,,,,,,,,...,.,.,,:::::,,,,:i+i**##z#zz++i+#z+i+#+++***;i**iii*i;;;;::::,,,,..................,,.,,.`  ````````
  `,,,,..,.....,,:::i*+i#++++**iii;;;::,,,,,,,,,.....,,.,,,:::,::,:ii*;**+#++#***+##z+i*++**ii+i;;;;;;;;;;:::,,,,,,,,,,.....,,,,,,.....,,,,` `````````
 ``,,,,,....,.,.,,:;iii*+++##++***ii;::,,,,,.,,,....,,,,,,,,:,::;,;ii**;i+***i+++++*++*ii*i*i;;ii;::;;::::::::,,,,,,:::,,::::::::,,,,..,,,:,.`````````
```,,,,.,,......,,:;;i;*+*+####++*i;i:,,,,,..,,,,...,..,.,,,,,,:;:;;i*i;*;*i++++*+++i**i;;i*ii;::;;:::::::::::::,,,,...,,,,,,:;;:::,,,,,,,:;:;;::::,,,
,```,,.......,,,,,::::i***+###+++**ii::,,,,,,..,,,..,,..,,,,,,,,:,;;i*ii;i+#+##+*****iiii;i;;;;;:::::,,:;:::,,,,,::,,,.....,,,,:;ii;:,,,,,:;;;;;;;;;;:
:,` `,,......,,,,,::;:;ii*+++**+*+*i;::,,,,,,,.,,,..,,,.,,,,,,,,:,:;;;i*i++##+++iiiii;;i;::;:::::::,,,,::::,.......,,,,,,.....,,,:i*i::,,:;;;;;;;;;ii;
,:,`  `..,,,,,,,,:::;:;;ii********iii;:,,,,,,,,.,,,,,,,,,,,,,,,,,,::;;i**i*+++**i;i;;;;:;:,:::::;::::,,,,,,,,..`````..,,,,,.....,,:i*i;:::;;;;;;;;;ii;
 `..`    ``....,,,:::::::;i**i**iiii;;:,,,,,...........,,,,,,,,,,,::;;;ii;i*iii;;;;::::,:,,,:;;:::,,,...........```````..,,,.......,;ii;;;:::;;;;;;;;;