. ...-:=ilinzupSXX#######21ndo2nIii||.             
                               . -;=+isuSnXXXXXwwoonsaXXooonvli||+              
                          .......-:.:;<xnxowwowxYXX#S1noooSnvl|+|+.             
  .   .    .   . .      .     ....-:;==ixnXZ##Z#XwXnnvnxInvvnl|=:.              
          .         .       .     . =+<ivomZ#ZXZZSI++|ii||i|+~-. ..             
  .            .                   . .--++?Y11I11I1==||==:::=_|===              
              .         .. . ..._,<_=_=>..---+==ixvxx|-----::<|||=              
        .  .    .  .  . . .  :++XYhdmmm#Xc   . :=xvx}  .     .:==-              
              .   .          ..;)XXXXX!"^`       <nXi_...__<|i||=.              
           .  . .           .    =wXss.            :===:=i|i|iiii;              
       .     ....         ...:<%dZZXC|              .=ii%|i|iiiii;              
     .     .  .....    . _. .=I3XXS1+-               -Ixvvx|||i||=              
                . .-:.. _x+:|||+i|~                   -{vllvvlli|+=,            
    .            . .. .++==+=a|l|: ....               .-ni%IIIll>||i;.          
               .        ..--+=======..                 .*i|i|llli||i|;          
  . . .      .   .    .    . :::=|;:                   .:|xsi|iil||i|i,.        
   . .  .   .   .           . :;=:.                    -=>|*l||lsxsii|+<,  .    
   . . :.  .              . ..:==.                    .-::=||+illvnnvv|;| .     
  .  -_c .. ..  .   .      . :=-                .::::;===|I*{xiIvnnnnvv1i|..    
    . x^.. : .  .  .    .   ..            .   ..=|::;..:=+<|=>liiInooonxii|,    
     _+:.  ...     .       .        .   .:_:_;==>|a%|==:=+=|Iillvnooo2nXnxii;.  
   .--.    -.     :              . .;. .<uii%=;+<>!"~- ..:+=<lxxx2XXmmXoqoi>+=. 
       .  ... .  .            .::=;;=;.=+!{}` :.:...____xu>==|lnXSXZ#Z##ZZXn>;:.
         . .    . . .  . . ...iixxou1==s=- .  =^}3XmZXYXY|xsxxIxxXZ#Z#mX#ZqXxi .
       .  .. . .    .. .....:=xuXZ#2v>`=:..     .-:|||sauqqodqoX2XZU##Z####Zo>=.
        : . . . . .. ....:=:=id####mwc..:>;:==iiumU####Z#Z######UZ#UZ##Z#Z#Xma%;
       . .. .. -.-. ==;;=;==xqZ#UZ#ZeSs.=++::=<ZX#Z###Z###UZ#Z##Z##U##Z#mZ#XXZSi
      . .....::::..:||<>=|xxq#U#U##Zodm(... :<={wX#U#X##Z#U####Z##UZ#Z##ZZZXSXUo
      . .   ..:=;;:><xSsuqZ#UUZ#Z#Z###UCx;<xuXwwZZ#Z#Z#U##Z#Z#Z###Z###Z###XZXSXX
     .    ...==|=|==liomX#Z##Z########UmdqdX###Z#Z#####Z#Z######Z###UU#Z#Z#ZZXZS