/hhhhsssyyhdmmNNNNmmmo      
                                                                      :yddhyoooossyyyyhdmmNmmd-     
                                                                    .yddhhysoo++++/++ooosyhddd/     
                                                                   :hhhhhhyssso+////+++oosyydmd:.   
                                                                  -hhhddhyyyso//+/++/++oossydNmd:   
                                                                 -yhddhyyyyo+//+++osyoooosshdNNmy:  
                                                                 yddhhhhds++///shdhhsoosyyddmMNmdh: 
                                                                /ddhhdhhy+++////oyyyo++yhhhdNNNmddh-
                                                               `yddmyooooo++//:///////+shdmNMMNmmdhy
                                                               /dhdNdooo++++/////////+/osyhNMMNmmdhh
                                                               ydhdNNdss++//////////++ydsyyNMNmddddh
                                                             `:hhydmdy+s++////////++ooyhyhmNNmdhddhh
                                                            `-/hyydhyo+oso+//////++osyhhdmMmddhyyhyy
                                                            `:oyshyoso+o+yso+++///+syhddmNMhyhhyyhhs
                                                            `osyyysoo/-//+yyyyso++ooshmmNdsssshyhhyy
                                                            .oysoo++///::::/+ohmmmdddmNMd+++sshhhhyy
                                                        `.:+sso++////::::::::/+yMMMMMMMMmysyooohddhy
                                                     .:+oyyso++///:::---:::://oyMMMMMMMMMNsssoodmdhy
                                                   -+ossssso+//:::------:::/+oymMMMMMMMMNNNdmdmmmmdh
                                                  /so+ooooo+:/::-------:://+shmMMMMMMMNNNNNdmmmmmmmm
                                                 -o++ooooo+/::--------::/++shdNMMMMMMMNNNNNNNNNNmmNN
                                                -+o++++o++//:--------::/+oyhhhNMMMMMMMNNNNNNNNNNmmmm
                                               `ooo+++o+//::-------::/+ooyhhysdMMMMMMNNNmmNNNNNNmmmm
                                               +oo++o++///---..--:://+ooshds++yMMMMNNNmmmmmmNNNNNNmm
                                              :o+++oo+//:---..--:://++oshms//+sNNNmmNmmmmNmmmNNNMMMm
                                             `++//++o+/:---..--:://++osdmy//+osmmNNNNNmNNNNmmmNNNMMN
                                            `////++++//--...--:://++oymmy///+ohmmNmmNNmmNmmmmNNNNNNN
                                           .//:/++/+//:-..---::///+ohmds////+sddmmdmmmNNNNNNNNNNNmmm
                                         `:/::/++////:-...-::://++odmh+////+oyyddmdmmmNNNNNMMMNmmdy/
                                        .//::/+/////:--..-::///++sdmy+////++syyydmmmmmmmddNNNNmy/+s.
                                      `:/:::///:::/::-...-:://+ohmmy++++///+oyysydhddddddmmmd+.` `/s
                                     -+///////:::::---...-://+sdNmy++o++///++ssosyosyhhddddmy+/:-.ss
                                   `/+///////::://:--.---::///yNmy++oso/////++oso+++ooosydhhhhhsooyh
                             `..---//////+++oo/::+:--:::://////hs++oss+//:///++oysssoo++/+syso++++++
                        `.--::::::-----------:+ssoyso+++++/////++ooshs+/::////++o+shhhhysooyo+////++
                    .-::/:::::------------------:ohyhhyssoo+++++osyhdy+///////++o/  `-/ohddhhyssoooo
                `.oso/::::-----------.......-----:/ysydhyysooooosydmmyo+++/++++osy-      `.-::/+ossh
             .-/sdo//::::---------...........----::/dshdhyyyssooosmNmhyso++++ossys.                 
          .://:smo+//::::---------...........----::/ydyddhyyyyssosyommhyyssssyhh+                   
       `:+//::/Ny++//:::::--------.........------::/smhdmdhyyyyysss--ommddhhhs:`                    
      `o+///::oNso+////::::--------......--------::/omddNNmhhyyyyyss- `-:/:.`                       
     -o++///::+msoo+////:::::--------------------:://yNNNNNmdhyyyyyss-                              
    :so++///::+myssoo++///::::::------------------:::/smdo::hmdyyyyyso.              ```..`         
   .sso++////:sNhyyssoo+++///:::::::---------------:::/+.    /dmhysssso`      .----://////++//      
   oysso+++///yNNhhyyyysoo++////::::::--------------::://.    `smmhsoso+-..-:////////////+++o+.     
  `yyyssoo++++yNMNdhhhhyysoo++/////::::::----------::::///-     -ymmysoo+/////:::://++++o+/-.`      
  .hhyyyssoooohNNMNmddddhhyssoo+++////:::::--------::::///+-      -hmdyo+++::::::/+o++++++//-       
  .hhhyyyssssyhNNMMMMNNmdddhhyssoo+++////::::::--::::::///++-      `+dmhys+/:/+++/-`````````        
  .hhhhhhyyyhhmNNNNNMMMMNNmdddhhyssoo+++////::::::::://///++o-       `-shhsys+-``                   
  `hhhhhhhhhddmNNNNNNNMMMMMmdddddhyysoo+++//////::://////+++oo-         `````                       
   sddddhhhddmmNNNNNNNNNMMMm+yddddhhyyssoo+++++//////////+++ooo-                                    
   :dddddddddmmNNNNNNNNNNNNm:`sddddhhhyysssooo+++///////+++++ooo.                                   
    yddddddddmmmmNNNNNNNNNNNd-`oddddhhhyyyysssoo+++++++++++++oooo.                                  
    +dddddddddmmmNNNNNNNNNNNmh. /hddhhhhhyyyysssooo+++++++++++oooo.                                 
    -hdddddddddmmmNNNNNNNNNNmmy` -yddhhhhyyyyyyssssooo++++++++ooooo.                                
    `hdddddddddmmmNNNNNNNNNNmmm+  `ohddhhhyyyyysyssssoooo++++++oooo+.                               
     +ddddddddddmmmNNNNNNNNNNmmd.   -ydddhhyyysssssssssoooo+++ooooooo.                              
     .hdddddddddmmmNNNNNNNNNNmmm+    `+ddddhhyyysssyyysssoooooooooooso`                             
      :ddddddddddmmNNNNNNNNNNNmmd`     -sdddddhhyyyyyyyysssooooooooosso                             
       odddddddddmmNNNNNNNNNNNNmm:      `:ydmddddhhyyyyyyyysssooooosssy-                            
       `ydddddddmmmNNNNNNNNNNNNNmy        `:ydmmmddhhyyyyyyyssssooosssys                            
        `ydddddmmmmmNNNNNMMMNNNNNm:          -sdmmmddhhhyyyyyyysssssssyy`                           
         .yddmmmmmmNNNNNNNNNMMNNNNy           `/sdmmmdddhhhhhyyyysssssyh+                           
          `smmmmmmNNNNNMMNNNNMMNNNN.             .ymmmmmddhhhhhhyyysssyyh/                          
           `ymmmmNNNNNNMMMMMMMMNMNN/               :ymmmmdddhhhhhyyysssyyy:                         
            `hmmNNNNNNMMMMNMMNNMMMNs                 /dmmmmddhhhhhyyysssyyy-                        
             .hmNNNNNNNMMMMMMMMNNMNy                  .odmmdddhhhhyyyyssssyy-                       
              -dNNNNNNNMMMMMMMMMMMNh                    -hmmdddhhyyyssyysssyy.                      
               .dNNNNNNNMMMMMMMMMMNm                     `smmmddhyyyssssyyssyy-                     
               `-dNNNNNNMMMMMMMMMMMN`                     `+dmdddhyysssssyyssyy/                    
                 .dNNNNNNMMMMMMMMMMN`                       -hddddhhyyyyyyssssyh+                   
                  -mNNNNNMMMMMMMMMMm                         `hddmmdhhhyyysssssyyo                  
                   +NNNNNNMMMMMMMMMs                          .ymmmmmdhyyyyyyssyyhs.                
                   `mNNNNNNMMMMMMMN/                            /mmmmdhhyyyhhyyyhdhd+               
                   `mNNNNNNMMMMMMMN/                             `+mmmdhhhhhdyhhyhhhhy.