..SS@@..8888XX888XX8888..@@SS.                                             
                                          88S..888888888888888888888888888.SS88                                         
                                    ::SSXX88888..::::::;;;;;;;;;;;::::::..88888XXSS::                                   
                                ..SS888888..:;;::::::8888XXXXXXX8888::::::;::..888888SS..                               
                              88@@8888::;;:::8888SStt;;;;;;;;;;;;;;;ttSS888::::;;::8888@@8                              
                              88@@8888::;;:::8888SStt;;;;;;;;;;;;;;;ttSS888::::;;::8888@@8                              
                             ;8888..;;::::88%;;tttt%%%%%%%%%%%%%%%%%%%tttt;%%88::::;;..888;;                            
                         ;;88888;;::::88%%tt%SS%%%%%%%%%%%%%%%%%%%%%%%%%%%S%%tt%%88::::;;88888;;                        
                       tt@@88.;;::88SS%%SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS%%SS88::;..88@@tt                      
                     tt..88:::::SS%%SSXXSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSXXSS%%SS:::::88..tt                    
                   ;;@@88:::::88SSXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXSS8::::::88@@;;                  
                 ..8888::::::8XX888888888888888888888888888888888888888888888888888888888X88::::::8888..                
               ..::88::::::@@X888888888888888888888888888888888888888888888888888888888888XX@@::::::88::.               
              .8888..::::88888888888888888888888888888888888888888888888888888888888888888888888::::..888..             
              .8888..::::88888888888888888888888888888888888888888888888888888888888888888888888::::..888..             
            ..;@@88;;::..88888888888888888888888888888888888888888888888888888888888888888888888..::;;88@;;..           
          ....%88::::..8888SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS8888..::::8%%....         
          ..tt888::::..XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX..::::888tt..         
        ..::%%8;;::..@@XX88@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@88XX@@..::;88%%::..       
        ..;;XX8::::..888888888888888888888888@@888888888888888888888888888@8888888888888888888888888..:::88XX;;..       
      ..::8888:::....8888888888888888888888888888888888888888888888888888888888888888888888888888888....:::8888::..     
      ..;;XX88;::....8888888888888888888888888888XX8888888888888888888XX8888888888888888888888888888....:;;88XX;;..     
      ::tt....:....SS888888888888888888888888888888XX888888888888888XX888888888888888888888888888888SS...::....tt::     
      ::tt....:....SS888888888888888888888888888888XX888888888888888XX888888888888888888888888888888SS...::....tt::     
    ..::8888:::......88@@@@@@@@@@@@@88XX@@88@XX@@8888@@@@XXXXXXX@@@@8888@@X@@88@@XX88@@@@@@@@@@@@@88.....::::8888::..   
    ..;;%%88;;:......@@XXXXXXXXX@@@@@@XX@@@@XSSXX88XX;;...........;;XX88XXSXX@@@@XX@@@@@@XXXXXXXXX@@.....::;;88%%;;..   
    ..;;SS88:::........XXXXXXXSS......8888XXX@@XXXX88tt...........tt88XXXX@XXXX8888......SXXXXXXXXSS.....::::88SS;;..   
    ::tt8888::......................::888888@;;888888@@...........@@888888;@@888888::......................::8888tt::   
    ::%%@@..::......................%%8888%%X::XX;;8888...........8888;;XX:XX%%8888%%......................::..@@%%::   
    ::SS88..::......................SS@@88XX%..SS%%@@88...........88@@%%SS.%%XX88@@SS......................::..88SS::   
    ::SS88::::......................;;88SS.......SSSS88...........88SSSS.......SS88;;......................::::88SS::   
  ..::XX88::::........................XX%%.........SSSS...........SSSS.........%%XX........................::::88XX;;.. 
  ..::XX88::::........................XX%%.........SSSS...........SSSS.........%%XX........................::::88XX;;.. 
    ::XX88..::...........................................................................................::::..88XX::   
    ::@@@@..:::..........................................................................................::::..@@XX::   
    ::@@88..:::..........::;;S............................................................tt::...........::::..88@@::   
    ::@@XX88;;:..........%%tt8XXXX..%%.............................................SS::88X88%%tt.........::;;88XX@@::   
    ::XX::88;;:..........::88%@@888888@@88XX.;;XX%%;;::...........::;;%%SS:..@@8888888888X%%88tt.........::;;88::XX::   
    ..SSSS88:::::........;;@@@  ttXX@@8888@@@@@@@88888888@@XXX@@88888888@@@@@@@88888888..tSSXXtt........:::::88SSSS..   
    ..tt8888..:::........SS888XXSS%%tt..SS88tXX88SS88@@@@8888888@@@@888888X..88SS  tt%%XX.XX@@..........:::..8888tt..   
      ;;888888;::..........@@8  XXSS@@8888@@SSS%%SS@@888888888888888XXSS%%SXX@@8888XXSS@@8@@%%..........:;;888888;;     
      ;;888888;::..........@@8  XXSS@@8888@@SSS%%SS@@888888888888888XXSS%%SXX@@8888XXSS@@8@@%%..........:;;888888;;     
      ..@@;;88;::............XttSS8888888888@XXSStt::..         ....;;%%SSX888888888888::@@@SS..........:;;88;;@@..     
      ..SSXX...::::........%%88888  ::88SSttttttttt;;::..     ..::;;;;ttttttt%%XXXXSStt88888..........:::....XXSS..     
        tt88::8::::...........XX@@@@XX88%%88.88%%::                   ;;SSX;;@@88@@XX88@@X;;..........:::88::88tt       
        ..@@SS8::::..........%@@888888@@88@@X@@8888tt  8888@8888@@  SSXX88XXX8888888888888............:::88SS@@..       
          %%@@:88::::.........tt@@XXXXXX@@@@88888@@8888888888888888888@@88888@@@@XXXX@@@@X..........::;;8::@@%%         
          ::88%SS..::...........::88SS%%%%%%%SSSSSSXXXXXXXXXXXXXXXXXXXSSSSS%%%%%%%%SS88tt...........::..S%%88::         
            %%@::88;;::...........::88%%tttt;;;ttttttttttttttttttttttttttt;;;ttttSS88.............::;;88:@@%%           
            ::@%%@@88::::.........::::88tt;;;::::;;;;:::::::::::::::;;;;;;;;;;;SS88::...........::::88@@%@@::           
            ::@%%@@88::::.........::::88tt;;;::::;;;;:::::::::::::::;;;;;;;;;;;SS88::...........::::88@@%@@::           
              t88tt88..::::...........::88SS;::::::::::::::::::::::::::::::;;XX88XX  .........::::..88tt8tt             
              .SS@@::....::::.........  88SS@%%;;:::::::::::::::::::::::;;S88::SS...........::::....::@@S..             
               ::@@SS..88..:::............::S%%@@SStt:::::::::::::;;ttXX@@:88.............::::..88..SS@@:               
                 ;;88%%..SS..:::...............88::::XXXXXXSXXXX@@SS::::XX...............:::..SS..SS88;;                
                   tt88%%::888;;::...............  ..ttXX88@@@88SStt..  ...............::;8888..SS88tt                  
                     %%88SS::@88::::::.............................................::::::8@@::SS88tt                    
                     ..tt88SS:..SS88;;::::::.................................::::::;;88SS.::XX88tt..                    
                         tt@@@tt..tt88..;;:::::...........................:::::;;..88tt..t@@@@tt                        
                         tt@@@tt..tt88..;;:::::...........................:::::;;..88tt..t@@@@tt                        
                           ;;X88SS::..;;..88.;;:::::::::::::::::::::::::::;..88..;;..::SS8XX;;                          
                             :%%88@@%%::....8..88..::::;;;;;;;;;;;::::..88.88....::%%@@88%::                            
                              ..;;SS88@@SS;;:....;;8888XX..888..XX8888;;...::;;SS@@88SS;;.                              
                                  ..;;SS8888XSStt;;::..::.......::..::;;ttSXX8888SS;;..                                 
                                      ..;;%%X888888XXXXSSSSSSSSSSSXXXX88888XX%%;;..                                     
                                            :;;tt%%SS@@@@8888888@@@@SS%%tt;::                                           
                                                 ....::::;;;;;;;::::....