.... .... . ... .     .......                .       .   
   ..  .. . .... ....  .''-----'               .            
   ..... ... . ...   .'~++====+-. ...           .   . . .   
   ....... .....    -+szhhhhhhh=(~(~-. .  .   . .   .       
   ......... .. ..'(sDDDDDDDDDDDhzzs+-   .    ...  .. .     
   .......... .  (zDBBBDDBBBBBBBBDDhz=(.  .    ..   . ..    
   ....... . ..-+DBBDBBBBNBBBBBBBBDDDDz<.      .   .... .   
   ...... .  ~shBBBBBBBNBNNNNBBBBBBDDDhh+' .   ...  . . .   
   .........'sNBBBBBBBBNBBBNBBBBBBBDDDDhh+.   . ...   ...   
   ........ ~hBBBBBBBBBBBBNBNBNBBBBBBBBDhz(    . .  ....    
   ........(hBBBBBBBBBBDhDBBBBDBBBBBBBBBDDs'     .    . .   
   ...... -zNBBBBBBBDDhsszzzhzzzhDBBBBBBBDh~    ..    ...   
   ...... <BNBNNNBDzs============szDNNNBBDh<.    ..   . .   
   ...... =NNNNNBhz=++++++=+<<++++=zBBBBBBD+.    ...   .    
   .......sNNNNBzs=<+<<+++<<<<<<<<<=DBBBBBD+     . ..       
   .......=NNNDhs=++<+<<<((((<<<<<<=hBBBBBB=.     ...  .    
   .......<BBBzs==+++<<<<((((((((((+hDBBBBDh(      ..   .   
   ...... (BBhzs==++<<<<<((((((((<(+zDBBBBDD+. .   ...      
   ...... ~BBzss=++<<<(<(((((((((((<sDBBBBBh<       ...     
   .......-DDzs===+<<<<<<((((((((((<sDBBBBBD<.       ...    
   ...... -DDs==++<<<<<<((((((((((((=DBBBBBD=. . .    ...   
   ...... -hDs==++<<<<<<((<<((<(((((+zBBBBDD=. . ..    ..   
   .......'shzzzzs=++<<++=sss=+<(((((=hBBBBh<   .. . . ..   
   ......  +hhDBBBzs=+<=szDDhzz=+<((~<zBBBBD<  . .  . .     
   ........~DBBBBDDzs<<=szhDhhzzs<((~(sDBBBD(  .. ..  . .   
   .......'(zBDDDBDDhs=szhDDBDhzzs++<=DBBBD='..        .    
   .......<s=DDDBBDDDsszszzzBBDhzhzs==DBBh=<-.  .      .    
   .......~<+hDDhDhhz<<zsssssss=szs=((zDh=+++'    .  . .    
   ........-(zhhzzsz=(<ss=s==++<+=<(~(=Ds<<<+-.      . .    
   ........~+sszss=s<(<==<+=++<<+<((<(=Ds<((<-    . .       
   .... ...-ss=ssss=<(<<=+<<<+++=<(<((sD==<(<-.      .. .   
   ....... 'zzzzzzs+<<<++=======<((<(<==(<<<('              
   ......  '=zss===+<(<<+<<<<<<((<((<(<<(<<<-.        . .   
   . ... . .+s==+=s=<<+<<++<<((((((((<+<<((('               
   .. . .  .<s==+=hz=ss==+++<(<(<((((<<<~-~-.           .   
   ..   .  .(zs===hDhzss=<<+<<<<(<((<<<<((('                
   .  . ..  ~zs==szDhs==+<<<<<<<<(<<<<+++=+.                
   .. ..    ~zs=sszzzss=+++++<<<<<<<<<++<==.                
   .. .. .. -szsszzz===+====+<<<<<+<<+=+<<~                 
   .  ...   'szsszDhzssssssss+<++++++==+<<-             .   
    ..   .  .+hssszhhzzs=====+<<++=+=s=+<<-             .   
   .. ..  . .(hzs=szzsz===<<++++++===s=<<<-                 
   ...  .    .shzssszzzs=++<+++++==sss=<<<<~'.              
   ....  .  . -zhss=sss==++++=+=+=szs==<<<=s=+-             
   ...    ..  .(hhs====<<<<+=====szzs++<<<+sz=-.        .   
    ..... .    .+Dhs==++<<++=sszzzzs==+<<<<==(-'            
   .. . .     . .+hhs======sszhDhhs==+<<<<<+(---.      .    
   . ... .      . +DzzzzzszhDDDhzs==++<<<<<(-~--'.          
    ...           -hBDDDDDDBDDhzss==+<<<<<(~~~~--.     .    
   ........ .     .zBBBBBBDBhzzzs===+<<<<<(~~~~--'.   . .