@@@@@@@@@XX@@@@@XX@@@@XSX@@@@XS8X@@@@@@@@@@                                           @@@@X@@                                                                    
                                 @@@@@@@@@@@@@@XSX@@@@X88@@@@@XSX@@@@@@ @@@@                               @   @ @@@@@XXXXX@@@                                                                   
                                  @ @@@@@@@@@@@@XX@@@@@SSX@@@@@X@@@@@@@@@ @@                               @@@@@@@@@@@@X@@@@@@@@@       @                                                        
@                                   @@@@@@@@@@@@@@@@@@@XX@@@@@@@@@@@@@ @@   @                             @@@@@@@@@@@@@@@@X@@@@@@@@                                                              
                                      @@@@@@@@@@@@@@@@@@@@@@@@@@ @@ @@                                   @@@@@@@@@@@@@@@@X@@XXXX@@@@@@                                                           
                                       @@@@@@@@@@@@@@@@@@@@@@@@@@@@@                                   @@@@@@@@@@@@X@@@@@@@@@XXSXXXX@@@@                                                         
                                        @@@@@@@@@@@@@@@@@@@@@@@@@@                                     @@@@@@@@@@@@XXXXX@@@@  @@XXXXX@@@@@@                                                      
                                             @@@@@@ @@@@ @@@@ @                                      @ @@@X@@@@@@@XXXX@@@@@@     @@@@@@@@@@@@                                                    
                                                  @ @@@@@@@           @                            @@@@@@@@@@@@@XXXXXXX@@@@@@@@     @@  @@ @@@@@                                           @     
                                                                                            @   @   @@@@@@@@@@@@X@@XXXX@@@@@@@@@ @@@  @@   @@@@@@                                                
                                                                                            @@   @@@@@@@@@@@@@@X@@@XX@XXX@@@@@@@@@@@@  @@@   @  @@                                               
                                                                                 @            @@@@@@X@@@@@@@@@XXXXXXXXXXXXXX@@XX@@@@@@@@@@@@@@  @@@                                              
                                                                    @       @  @            @@@@@@XXXXX@@@@@@XX@@XXXXXXXXSSSSXX@X@@@@XX@@@@@@@@  @                                               
                                                                           @@  @@           @@XX@@XXXXX@@@@@@@@@@@@@XXXXSXSS88SSXXXXSXXXXX@@@@                                                   
                                                                      @@       @@@    @@@@@@@XXXXXXXXX@@@@@@@@@@@@@@@@@XXXXSSS888SSSXXSXXXX@@@@@@@           @                                   
                                                                      @     @@@X@@@@@@@ @@@@XXXXXXXXXX@@@@@@@@@@@@@@@@@XXXXSSSSS8S8SXXSSXXX@@X@@@@@          @                                   
                                                                      @@      @X@@@@@@@@@XXXXXXXXXXXXX@@@@@@@@@@@@@@X@@@XXXXXSSSSSSXSSSSSSSX@@@@@@@@@@@@@@                                       
                                                                     @        @X@@@@X@@@@XXXXXXX@XXX@@@@@@@@@@@@@@@@@@@@@XXXXXXSSSSSSSSSSSXXX@@@@@@@@@@@                                         
                                                                    @@      @ @X@@@@X@@XXXXXXXXXXXX@@@@  @@@@@@@@@@@@@@@@XXXXXX@XXSSSSSSSSXXXX@@@@XX@@@ @                                        
                                                                    @      @@@@XX@@@X@@XXXXXXSS8SSSX@@@@@@@@@@@@@@@@XXXX@X@@XSSSXXXSSS888SSXSXX@@@@@@@@@@@                                       
                                                                   @   @    @@XX@X@XX@XXXXXXXX88SXXXX@@@@@@@@@@@@@@@XXXXXXXXXXXSSSXSSSS888SSSSXX@@@@@@@@@@@                                      
                                                      @@                     @@XXSXXXXXXXXXSXXXXX@@@@@@@@@@@@@@@@XXX@X@XXXSXXXXXSSSSXXSSS888SSSXXX@@@@@@@@@@                                     
                                                                             @XXXSSXXXXXXXSSSXX@@@@XXXX@@@@@@@@@@@XXXXX@@XXXXXXXXXSSSSSSSS8888SSSXX@@@@@@@@@@                                    
                                                                             @@XXSXXXXXXXSXXXXX@@@@@X@XXXSX@  @@@@@@XXXXXXXXXXXXXXXSSSSSXXSS8O8SSSSX@@@@@@@@@@                                   
                                                    @@                        @XXXXXXXXXXXXXX@@@@@@@  @@XSSX@@@@@@XX@@XXXXXXXXS8SXXXXS88SXSS8888SS88X@@@@@@@@@                                   
                                                    @                    @    @@XXXXSXXXXXX@@@@@@@@@@ @@@XXXX@@@@@XXXXXXXSXXSSSSSSXXXXX88SXSSS88SSS88X@@@ @@@                                    
                                                @@                       @ @@@@XXXXSSXXXXXX@@@@ @@@@@@@@@@@@XXX@ @@@@@XXXSSSS8SSSSSSXXXSS8SS8S88SXXS8SX@@@ @@@@       @                          
                                                @@   @@                     @@@@@XXXSXXXXXX@@@@@@@@@@@@@@@@@@XX@@@@@@@@@XXS8SS8SSSSSSSSSS8SSS88SSSXXXSSX@@@ @@@@      @                         @
                                                     @@  @@              @@    @XXXXSSSSXX@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@XSS888SSS888SSSS88888S8SX@@XXX@@@@@@@                                  
                                                @@       @@@        @   @@@@@@@@XXXXSXSSSXX@@@@@@@@@@@@@X@@@X@@@XX@@@@@X@@@XXS8888SS88888S8888S8SSXX@@XXX@@@ @  @     @                          
                                                      @     @  @  @ @@@@@@X@@@@@XXXXXXSSSXXX@@@@@ @@@@@@@@@X@@XXXXXX@@@@@@@@@XS88O8SSSS88SS8888S8SXX@@@@@@@@@@         @                         
                                                      @@    @  @ @@@@@@@@@XXXX@XXXXXSSSSSSXXSSS@@@ @@@@@@@@XXXXXXXXSXX@@XX@@XXXS8888SSXSSSS88S8888SXX@@@@@@@  @       @@                         
                                                    @ @  @@@@@ @@@@@@@@@@XXXXXXXXXSSS8SSSSSSSOOS@@@@@@@@@@@XXXXXXXXSSSSXXXXXX@XXSSS88S8SXXS88SXS888SX@@@@@@   @@   @@   @@                       
                                                  @ @@ @@@@X@@@@@@@ @@@XXXXXXXSSSSSS8888SSSS8O&OSX@@@@@@@@@XXXSXSSSXSSSSSSSXXXXXXXSSSSSSSXXXSXXS8888X@@@@       @ @   @@@@                     @@
                                                @ @@@@ @@@@@@@@@@@@@@@@@XXXXSSSS8888S8888888O&&&OSX@@  @@@@XXXSS8SSSSS888888SXXXXXX88SSSXXX@XXSS8O8SS@@@@ @   @ @ @  @@@ @@@                    @
                                                    @@@     @@@@@@@@@@@@XXSSS88888OOO8888888OO&&O8X@@@@@@@@@XXSS888888888OOO88SXSXS888SXXXX@@XXXSOOSX@@@@@@   @      @@  @@@                     
                                                   @@@@    @@@ @@@@@X@@XXXS888OO8OOOOOO888888OO&*&8X@@@@@@@@XXXXSS8888O8S8OOOO8SXSSS88SXXXXXX@@XXSO8X@@@@@@           @@  @@                     
                                                    @@@@@  @@@@@@@@@@XXXXS888OOOOOOOOOOO8OO88O&&*&&8X@@@@@@@XXXSSSS88888SSS8S88SSSS888SSX@@XX@@@@@X8X@@@@@@ @         @ @ @X@               @    
                                                      @@@@X@X@@@@@@X@XXXSS88O&&O&&&&&&OOOOOOOO&&**&O8X@@@@@@@@XXXSSSS88S8SSXSS888S8888SSXXX@@@@@@@@XX@@@    @  @        @@@@@@               @   
                                                   @  @@@X@@X@@X@@XXXSXS88OO&&&&**&**&&&&OOOOO&*;*&OO8X@@@@@@XXXSSSS8SS888SSSSS888888888SX@@@@@@@@@@XX@ @ @   @          @ @@@                   
                                                   @@@ @@XX@@XXXXXXSS8S8OOO&&&*&*******&&&&&OO&****O88SX@@@@XXXXSS8S8888S888SXXSSSS8888SSXXX@@@@@@@@@@@           @@   @  @@@X@                @ 
                                                  @@@@XSXX@@@@@XXXXS888O&&&&&*;;*;**;;;*****&&&*;*;*O88SXXXXXXXXSSS8S8888O888SSXXXXXSSS8SXXX@@@@@@@@@@@@          @    @@  @@@@                  
                                                  @@XXSSX@@@@@XXXSS8OOOO&&&***;*;;;;;;;;;**;*&***;;;&O88SXXXXXXXXXSSS88OOO8O8SSSXSXXXXSSSX@@X@@@@@@@ @@@                @     @                  
                                           @      @XSSXXXX@@@XSSS888OO&&&******;;;;;;;:;;;;;;;***;;;*&OOO8XXXXXSSSSS8888O88S88SSXSSXXXXXSX@@X@@@@@  @@@@@       @        @    @@                 
                                                  XSSXXXSX@@@XS8888OO&&**;;*;;;;;;;::::::;;;;;;;;;:;;*&O8OSSXXXXS88SS888888SSXS88XXXXX@@@XX@@@@@@@@@ @ @             @   @   @ @@                
                                                 XXXX@XSSXX@XS8888OO&&****;;;;;;:::::::::::;;;;;;::;;*&O888SS8XSSSSS8SSS8OO88SXSSSXXXXXX@@@@@@@@@@@@    @ @                    @@                
                                               @@XX@@XSSXX@@X8OOOOOO&&***;;;;;::;::::::::::::::;::::;;&OOO888OXXSXSS8888888888X@XXXXXXXXXX@@@@@@@  @ @       @            @                      
                                               @XX@@@SO8XX@XS888OOO&&&***;;;;:::;:::::::::::::::::::;;*&O&OOOOOSSSSSS8O88SSXXXXXX@@XXXXXXXX@@@@@   @  @@@ @                     @                
                                               @X@@@XS8SX@@S8888OO&&&**;;;;;;:;::::::::::::::::::::::;*&O&O8OOO8SSSSS888O8SXX@@@X@@@@XXXX@@@@@@@@  @ @@@@          @                             
                                              @X@@@XXSSS@@XSSS88OO&&****;;;;::::::::::::::::::::::-:::;*&OOOOOOOSSSSS888OO8SXX@@@@@@XXXX@@@@@@@@@    @@                         @@  @            
                                              @X@@@XXSSX@@XSS88OO&&&**;;;;::;:::::::::::::::::::::::::::*OOOOOOO888SSS888OO8SX@@@@@@@@@@@@@@@@ @@@ @     @@                      @@              
                                              @@@@@XXSXX@@XSS8OO&&&&**;;;;;::::::::::::::::::::::::::--::;&OOOO&OO8888OOOOOO8SX@@@@@@@@@@@@@@@@ @       @@@        @@               @ @@ @@@@ @  
                                             @@@@@@XXSS@@@XSS8OO&&&***;;;;;:::::::::::::::::::::--::-:::::;&OO&&&OOOOOOOOO8O88SX@@@@@@@@@@@@@   @         @         @                  @   @ @   
                                             @@@@@@XSSX@XXXS8OO&&&&***;;;;;::::::::::::::::::::--::-::::-::;*&&&&&OOOOOOOOO8888SX@@@@@@@@@@@@ @  @ @     @@@                 @ @@  @   @  @@@@@@ 
                                             @X@@@XXSXX@@XSS8OO&&&***;;;;;:;::::::::::::::::::::::::-:----::;*&&*&OOOOO&OOOO8SSXXX@@@@@@@@  @@      @    @@ @                           @ @@  @@ 
                                             @X@@@XXXS@@@XX88OO&&****;;;;;::::::::::::::::::::::::::::-----::;&***&&OOO&&OOOO8SXXXXX@@@@@@@@@@@@         @@                @ @        @@@ @  @@@ 
                                             @@@@@@XXX@@@XS8OO&&&&***;;;;;::::::::::::::::::::::-::::-------::;***&&OOOOOOOOOO8SSSXXXXX@@X@@@@@@@@  @     @        @         @         @       @ 
                                      @      @@  @@@@@@@XXS8OOO&&***;;;;;;:;:::::::::::::::::::::::::--------::;****&OOO8OOOOOO88SSSXXXXXX@@@@@@@@@@@   @                    @@          @    @@ 
                                    @ @@@@   @@  @@@@@@@XXSOOO&&&***;;;;:;:::::::::::::::::::::::-::----------::;*;;*&&OO8OO8O88888SXXS8SX@@@@@@@@@@ @@       @         @   @@@     @@    @@ @@@ 
                                    @           @@@@@@@@XX8OOO&&&***;;;;:::::::::::::::::::::::-::-::----------:::;;;;*&OOO88888888SS8SSXX@@ @@@      @@@  @            @     @@      @ @    @@@ 
                        @          @            @  @@@@XXS8OOO&&&**;;;;;;:::::::::::::::::::::::::::::------------:;::;**&OO888888S888SXX@@@  @@  @   @@ @             @@     @@@          @@@@@ 
                                    @@             @@@@XS88OO&&&&**;;;;;::::::::::::::::::::::::::---------------::::;:;;**&&O88S88888SXX@@@@@   @@    @ @     @               @@     @@@@@@@@@@ 
                                    @@           @ @@@@XS8OOO&&&***;;;;;;:::::::::::::::::::::-:-----------------::::::::;;;**&&OO88888XX@@ @   @@  @@@@@@@              @@ @  @@   @@@@@@@@ @@@ 
                                   @         @     @@@XXS8OOO&&&***;;;;;;::::::::::::::::::::::-:------------------:::::::::::;;;&O8OOOSXX@@@@@@@@  @ @@  @             @@@@   @@@  @ @@@@@@@@@@ 
                               @                   @@@XS8OOOO&&&**;;;;;;::::::::::::::::::::::-:---:-----------------:::::::::::::*&OOOO8XX@@@@@@   @@ @                  @@         @@@@@@@@@@@ 
                               @          @       @@@@XS8OOO&&&&***;;;;:;::::::::::::::::::::::-:::-------------------:::::::::-:::;*&OOO8XXX@@@@@@@@@  @@@               @@   @      @@@@@@@@@@ 
                   @                   @@@@      @@@@@XS8OOO&&&&**;;;;;::::::::::::::::::::::-:::-::---------------------::::--:-::::**OOO8XX@@@@ @@@@  @@@@@            @@@   @ @    @@@@@@@@@@ 
                                       @@ @@     @@@@XX88OOO&&&****;;;:;:::::::::::::::::-:-::-:-::------------------------:-:::::::::;*&O8SX@X@@@@@@@ @@@@ @  @@        @@@          @@@@@@@@@@ 
                                        @  @    @@ @@XS8OOOO&&&***;;;;:::::::::::::::::::::-:-----:------------------------:::-:-:::::::;&O8XXXXX@X@@@@@@@@@             @           @  @@@@@@@@ 
                                      @@ @@@ @     @@XS8OOOOO&&***;;;;:;::::::::::::::::-:::-:-:::-:-------------------------:::-::::::::;*&OSXXXXX@@@@@@ @@  @         @@ @         @  @@@@@@@@ 
                                        @@ @    @@@@@X8OOOOO&&&***;;;;::::::::::::::::-::-:-::-::::---------------------:-:---::::::::::::;;*OS@X@@@  @@@ @@  @@           @          @@@@@@@@@  
                                        @@ @@      @@X8OOOOO&&&***;;;;::::::::::::::::::-:-:-::-:-:------------------------:-:-:-:::::::::::;*OS@@@@@@  @@@@@              @          @@@X@@@@@  
                                       @@ @@@    @@@@S8OOOOO&&&***;;;;:::::::::::::::::-::::-::--::--------------------------::::::::::::::;;;*OX@@@@@ @@@@@               @@         @X@@@@@@@  
                                       @@@@ @    @ @XS8OOOOO&&****;;;;::::::::::::::::::---:-::--:------------------------:--:::::::::::::::;;;&OX@X@@@@@ @    @           @         @@@@@@@@    
                                     @    @@       @XS8OOOOO&&***;;;;;;::::::::::::::::----:-:-:----:----------------------:-::-::::::::::::;;;**OSX@@@@@@                           @@@@@@      
                                    @   @   @      @X8OOOOO&&&****;;;::::::::::::::::::::::----:---:-::-------------:--:-::-:-:::::::::::::::;;;**OXX@@@@@                             @         
            @                            @@@      @@X8OOOO&&&&***;;;;;::::::::::::::::::::--:--:-::--::::--------------::---::::::::::::::::::;;**&OSX@@@@@                                      
                                      @    @  @   @@S8OOOO&&&&&**;;;:;::::::::::::::::::--:-::---:----:-:--------------:::-:-::-:::::::::::::;;;;*&&8SX@@@@@                                     
                                      @  @         @S888OOO&&&****;;;;::::::::::::::::::-:-::---:-:----:-:-------------::-:-::::::::::::::::::;;**&OO8SX@@@@                                     
                                         @        @@S88OO&&&&&**;*;;;::::::::::::::::::::---::::-:-:-:-:-::-------------:-::-::::::::::::::::;;;;*&&O8SXX@@@                                     
                                         @     @@  XS88OOOO&&&****;;;;:::::::::::::::::--:---:-::--:--::--::-------------:-::::-:::::::::::::;;;;*&&OO8XX@@@@@@                @                 
                                               @@ @XS88OOOOO&&***;*;;;::::::::::::::-::-::::-::-:---:--::--:-----------::::::--::::::::::::::;;;;**&OO8SXX@@@@@@                                 
                                   @         @@  @@SS888888OO&***;;*;;;:::::::::::---::-::-::::::-::--:-::--------------::-:-:::::::::::::::::;;;**&OO8SXX@@@@@@                                 
                                             @@ @@XXSS88S8OOOO&&&**;;;::::::::::::::-::-::-:::-:-::----::-::-----------:::-::::::::::::::::::;;;***&OO8SXX@@@@@@@@                               
                                          @@@@@@ @XSXSS8888888OO&&**;;;;::::::::::-:::--:-:-::::::::::-:::-:------------:-:-:-::::::::::::::::;;;**&OO8SXXX@@@@@@@                               
                                           @@@@@ @XXS8OO&OOO8OOO&&&&*;;;::::::::::::-::----:-:-:-:::-::-:-:::-----------:-:--:::::::::::::::;:;;;;*&&O8SSXXX@@@@@@                               
                                            @@@@@XXSS8O&&&&&O8OO&&&&**;;::::::::::::::-:---::-::::::::::::--:----------::-:-::::::::::::::;::;;;;;**&O8SSXX@@@@@ @@                              
                                            @@@@@XSS8OO&&&***&OOOO&&&&&*;;:::::::::::::-:-:-::::::-:-:-:-:-:------------::-::::::::::::::;:;:;:;;;**&O88SXXX@@@@@@@@              @ @            
                                             @@@@XSS8OO&&***;;*&OOO&&&&&**;;::::::::::::::::::--::::::--:::--------------::--:::::::::::;:;:;:;;;;**&&OSSXX@@@@@@@@                              
                                           @@@@@XSS88O&&***;;;;**&&&&&&&&**;::::::::::::::-:::::-::-:::::::-:-----------:::::::::::::::::::;:;;;;;**&&O8SXX@@@@@@@@                @             
                                           @@@@@XSSS8OO&&**;;;;;;**&&&&&&&&*;;;::::::::::::::-:::::::::::-:-----------:::::::::::::::::::;;;;;;;;;**&&OOSSXX@@@@@@@                              
                                          @@@@@XS8S88OO&&***;;;;;;***&&&&&*&*;;;;::::::::::::::::::::::-::::::::---::::::::::::::::::::::;:;;;;;;;**&*&&OSSXX@@@@@@ @   @    @          @        
                                           @@@XXS88S8OO&&&*****;**;*****&*****;;;;;:::::::::::::::::::::::::::::-:::-:-:::::::::::::::::;;;;;;;;;*****&&O8SSX@@@@          @                     
                                           @@@XS88888OOOO&&*&*****;*************;;;::::::::::::::::::::::::::::::::::::-:::::::::::::::::;;;;;;;;******&&OO8XX@@@@@        @            @        
                                           @@@XS88O888OO&OOOOOO&&&***************;;;;:::::::::::::::::::::::::::::::::-::::::::::::::::::;;;;;;;;;******&&&8SX@@@@@      @@@    @                
                                         @@@@XS88OO88OOOO88S8888OOOOO&&&*&********;;;;:::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;********&&O8X@@@@@@   @@@XSSX@   @              
                                          @@@XS8OOOOO8OO8XS888888OOOOOOO&&&&*******;;;:::::::::::::::::;:::::;::::::::::;;;;;:;:;:;;;;::::;;;;;;*;*******&&O8XX@@@@@ @@ XSOOOOS@                 
                                          @@@XSOOOOOOOOO8XSSSS88SSOO&&&&OOO&&********;;:::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;:;;;;;;::;;;;;;*;********&&&8SX@@@@@   @8OO&OOOX                 
                                          @@@X88O&&&OOO8XXSSSXSS8XXS88O&&&&OO&&**&****;::::::::::::::::;;;;;;*;*;******;***;;;;;;;;;;*;;:;;;;***********&&&&OSX@@@@   @@8OO8OO8S@ @ @@           
                      @                   @@@S8OO&&&&O8SXXXXX8O&&88SSXX8OO&&OOO&*&&&**;:::::::::::::::;;;;;;;*;****&&&&*******;;;;;;;*;;;;;;;;;**;*******&&&OSX@@@@@@  @XSS88O8S@@@  @           
@            @  @@@@@ @                   @@XS8O&&*&O8SXXS88O&*;&88OSSSXSOOOOOOO&*&&**;::::::::::::::::;;;;;;;;;****&&&&****;;;::::::;;;;***;;***********&&OOSX@@@    @@XXS8OO8S@@@@  @          
                                        @@@@X88O&***&O88S8OO&*;*&OO8X&;SOO88OOOOO&&&&*;::::::::::::::::;;;;;;;;*;********;;;;:::::::::::;;*&&************&&&O8X@@@@@   @XSS8888SX@@@  @          
                        @                @@@XSO&&&**&&O8S8OO&***&OO8XO*SOOO&OOOOO&&&&&;:::::::::::::::;;;;;;;;*;;;;;;;:;:::::::::::::::::;***************&&&O8X@@ @    @S8888888@@@@ @@          
                                       @@ @@X8O&&*****&OS8O&&****OOOOXXOOO&:;&OO&&&&&&;;::::::::::::::;;;;;*;;;;;;;;;:::::::::::::::::::::;;*************&&&O8X@@@@ @@ X8O8OOOOOX@ @ @           
                                      @@@ @@X8O&&&****&OS8O&&**;*&OOOOOOO&;::;&O&&O&O&;;:::::::::::::;;;;;;;;****&**;;;;:::::::::::::::::;:;;************&&&O8X@@@@   @XOO8O&OO8@@@@  @@@        
                   @@ @           @  @@@@ @@S8O&&*****&O8S8O&&*;;*&OOO&O&*:::;*&&&OOO&*:::::::::::::;;;;;;;;*&&OOOO&&&&**;;;:::::::::::::;;;;*************&&&OSX@@@ @ @8O8SO&&&8@@@@@@@ @        
                                 @@  @@@@  @S8O&&******&888OO&&*;;;*&&**;:::::;*&&OOO&;;:::::::::::;;;;;;;*&OOOO&&&&&&&&&****;;;::;:::;;;;;;;*************&&&OSX@@@   @SSS8&&OO8@@@@@@@ @@       
                                           @SOO&&******&88OOOOO&&*;;;;;::::;:;*&&OOOO&;:::::::::::;;;;;;;**&OO&&&&&&O&&&&&&**&&**;;;;;;;;;;;;*****;******&&&&OSX@@@@ @XXSS8OOO8@@@@@@@@@@@  @    
                  @   @                    @SOO&&&*****&OOOO&OOO&&**;;;;;;****&&&&&&O&;;::::::::;;;;;;;;;*&OO&&OOOOO8O88888OO&OOO&&*;;;;;;;;*****;*;;;***&&&&O8XX@@@@ @@S88OOO8@@@@@@@@@@@  @@   
             @ @@                          @SOO&&&*****&OOO&&&&&&****;;;;;;****&&&&O&*;;::::::::;;;;;;;;*&&&&&&&OO&&*&O8SXXXXXSOOOOO&*;;;;;;*****;;;;*;**&&&&O8XX@@@@@@XOOOOO&8@ @@@@@@@@@       
            @@@@@                   @   @  @SOO&&*******&O&&&&&&**&**;;;;;;**;***&&O&*;;;::::::::;;;*;;;*&&&&&&***;::&OO8;*XSSSSS8OOO&**;;;*****;;;;;******&&O8SX@@@@@@8&OO&&&8@@@@@@@@@@ @  @   
     @         @@                @  @ @@@  X8OO&&&******&&&&&********;;*****;*;;*&&O&**;;:::::::;;;*;;;:******;;:::::&OOS**@88O8SSOOOO&*;******;;;;;;;;***&&&O8SXXX@@XXO&&O&*&8X@@@@@@@@@@       
  @@ @@@      @    @ @          @      @@  X88O&&&*******&&&&*****;;;**;***;;;;*&&&O&*;;::::::::;;;;;;;:;&*::*;;;::::*OO8SXSOOOO&OS8OOO&*******;;;;;;;****&&&O8XXXXX@@S&*&O&&OXX@@@@@@@@@@@@@    
     @   @   @   @@           @       @@  @X8OO&&&&*********&*******;*;*;;;;;;**&&&&*;;;:::::::;;;;;;;::;&&*;&*;:::::;&OOO8OOOO&;*OS8&&&******;;;;;;;;****&&&O8SXXXXXXSO&OO&&8XX@@@@@@@@@@@ @@@  
@        @@ @@@@ @@   @          @    @@ @@X8OOO&&&**************;*;;;;;;;;;;;*&&&O&*;;::::::::;;;*;;;::;*******;:::::*&OOOOOO&;;*&OOOO&*****;;;;:;;;;;***&&&O8SXXSSSSX8OOOOOS@X@@XX@@@@@@@@@@@  
  @     @       @@@@@@           @@  @ @@ @X8OOO&&**************;;;;;;;;;;;;;**&&&O&*;:::::::::;;;;;;;;:::;******;;:::;*&OOOO&;***&&OOO&&***;;::;:;;;;****&&OO8SSSSSSXXS88OOOXXX@@XX@@@@@@@@@@@@@
  @        @   @@  @@@@@   @   @ @@@@@@@  @S8OOO&&&&*****;;;;;;;;;;;;;;;;;;;;**&&OO&;;;:::::::;;;;;;;;;:;:;;******;;;;:;;*&&**;*&&&O&&&***;;;::::;;;;*;***&&OO8SXXXXXX8OOO&&OX@@XXXX@@@@@@@@@@@@@
         @@@  @ @ @@@@     @        @@@@  @X8OO&&&&*****;*;;;;;;;;;;;;;;;;;;**&&&O&*;;::::::::;;;;;;;;;:;:;;**;;***;*********&&&&&&&&&*;;;;:::::::;;;;***&&&OO8SXXSXXX8&&O&&8@@XXXX@@@@@@@@@@@@@@
      @ @@@  @  @@@@@@             @ @  @@@SOOO&&&&******;;;;;;;;;;;;;;;;;;***&&&O&*;;::::::::;;;;;;;;::::;;;*****;*******&*&&&&&&&&&*;;;:::::::;:;;;;***&&&OO8SXSSXX8O&&&*&S@@XSX@@@@@@@@  @@@@@
      @   @    @@@@@@ @             @@@   @S8OOO&&&*****;;;;;;;;;;;;;;;;;;;;*&&&&&&*;;::::::::;;;;;;;;:::::;;;*;**;;*;;**;***********;;::::::::::;;;;;**&&&&OOSSSS8SSO*;&&&&S@XXS@@@@@@@@@@@@@@@@
           @   @@@@@@  @@         @  @ @@@@S8O&&&&****;**;;;;;;;;;;;;;;;;;;**&&&&&&*;;:::::::;;;;;;;;:;:::::;;;;;;;;;;;;;;;;;;;;****;;::::::::::::;;;***&&O&OO8SXS88O*;*&&&OX@XXXXX@@@@@@@@@@@ @@
           @   @@@@@  @@          @  @@@X @S8OO&&&*****;*;;;;;;;;;;;;;;;;;***&&&&&&*;;;::::::;;;;;;;;;:;:::::;;;;;;;;;;;;;;;;;;;;;;;;::::::::::::;;;;***&&&OOO8SXS8&;;;***&O@@@X@@@@@@@@@@  @@@@@
  @@@@@@ @@  @@@@@@@ @  @      @  @@@@@@X@@S8OO&&&*****;;;;;;;;;:;;;;;;;;;**&&&&&&&*;;:::::::;;;;;;;;;:::::::::;;;;;;;;;;;;;;;;;;;;;::::::::::::;;;;;***&&OOOOSSSSO*;;****&S@@@@@@@@@@@@@@  @@@@@
    @@@@@     @@@@@@@@@   @@       @@@@X@@@S8OO&&&*****;;;;;;;;;;;;;;;;;;;**&&&&&&&*;;:::::::;;;;;;;;;;:::::::::;;;;;;;;;;;;;;;;;;;:;:::::::::;:;;;;***&&OOOOO8S8O&*;;****&X@@@@@@@@@@@@@@@@@@@@ 
@@ @@     @@@@@ @@@@ @    @@        @@@X@@XSOOO&&&*****;;;;;;;;;:;;;;;;;;***&&&&&&&*;;::::::;;;;;;;;;;;::::::::::::;;;;;;;;;;;;:;:::::::::::;:;:;;;;***&&&OOOO88O&&*;;;;**O@@@@@@@@@@@@@   @@@@ @
@    @@@  @@ @@@@@@@@@@@@@         @@@X@@@@S8OO&&&*****;;;;;;;::;:;;:;;;;***&&&&&&&*;;::::::;;;;;;;;;;;:;:::::::::::;;;;;;;::::::::::::::::::;;;;;;;**&&&&OOOOO&**&**;***&8 @@@@@@@@@@@@@@ @@@@@@
 @ @@@@  @@  @  @@@@@ @@@@@@@     @@@XX@@@@S8OO&&&*****;;;;:;::::;::;:;;;***&&&&&&&*;;::::::;;;;;;;;;;:;::::::::::::::::::::::::::::::::::::;;:;;;;***&&OOOOOO&*;*&****;*O@ @@@@@@@@@@@@@@@@@@@@@
  @@     @@     @@@@@ @@@@@@  @ @ @@@X@@@@XS8OOO&&*&***;;;;;:::;:::::::;;***&&&&&&&;;::::::;;;;;;;;;;;:;::::::::::::::::::::;;:;;:::::::::::;;;;;;;;**&&OOOOO&*::;******&S @@@@@@@@@ @@ @ @@ @@@@
@ @ @    @@@@@ @@@@@@@@@X@@@@@     @XX@@@@XS8OO&&&&&***;;;;;;;:;:::::::;;**&&&&&&&*;:::::::;;;;;;;;;;::;:::::::::::::::::;::::;::::;;:::;::;;;;;;;;**&&&OOOOO&;;;;*****&O@@@@@@@@@@@  @@@@@@@@@@@
@ @@@@   @@@ @@@@@ @@@XX@@@@@@@@  @@@X@@@@XS8OO&&&&****;;;;;::::::::::;;;***&&&&&&*;;:::::::;;;;;;;;:;:::::::::::::::::::::::::::::::;;;;;;;;;;;;****&&OOOOOO*;;:;;****&X@@@@@@@@@@@@@@@@@@@@@@@@
@@   @ @@@@@@ @@@@@@@@XX@@ @    @@@@@@@@@@XS8OOO&&&***;;;;;;;::::::::::;;**&&&&&**;;;::::::;;;;;;;;:;::;::::::::::::::::::::::::::::::;;;;;;;;;;;***&&OOOOOO&*;;;;*****8@@@@@@@@@  @@@@@@@@@@@@@@
@@      @@@@@ @ @@@@@XX@@@ @@@@@@@@@XX@@@@XS8OO&&&&****;;;;;:;:::::::::;;&&&&&&&&*;;::::::::;;;;;;;;::::::::::::::::::::::::::::::::::;;;;;;;;;;;***&&OOOOOO*;;;;;****O@ @@@@@  @  @@@@@@@@@@ @@@
@@  @ @@ @ @@@@ @@@@@X@@@@   @@@@@@@@@@@@@XS8OO&&&&*****;;;;:;:::::::::;;&&&O&&&*;;;:::::::;;;;*;;;;;;:::::::::::::::::::::::::::::::::;;;;;;;;;***&&&OOOOO&*;;;;****&X@@@@@@@ @@ @@@@@@@@@@@@@@@
 @ @@@@   @@@@@  @@@X@@   @@   @@@@@@@@@@@XS8OO&&&&&****;;;:;::::::::::;*&&&&&&***;;:::::::;;;;;;;;;;;;;::::::::::::::::::::::::::::::;;;;;;;;;;***&&OOOOOO&;*;;;***&S@@@@ @@@@ @@ @@@@@@@ @@@@ @
@@  @@@@   @@@@@@@@@@@@@  @@ @ @@@@X@@@@@@XS8OO&&&*&***;;;;;:::::::::::;&&&&&&***;;;;:::::;;;;;;;;;;;;;;;;:::::::::::::::::::::::::::;;;;;;;;;*;**&&&OOOOOO*;;*;**&&8@@@  @@@   @@@@@ @     @ @@@
 @  @      @ @@  @@@@@@@@  @@@ @@@@@@@@@@@XS8OO&&&&&***;;;;;;:;::::::::*&&&O&***;;;;;::::;;;;;;;*;*;;;*;;;;:::::::::::::::::::::::::;:;:;;;;;;;***&&OOOOOO&;;;***&OS@@@@@ @@@     @       @  @@@@
@ @@@@@@@  @@@  @@@@@@@@@ @@@@@@@@@@@@@@@@XS8OO&&&&****;;;;;:;:::::::;;*&&&&&***;;;:::::::;;;;;;*;**;;;**;;;::::::::::::::::::::::::;:;;;;;;;;***&&&OOOOOO*;*;**&OX@@@@@  @@@@   @    @@   @ @@@@
@@ @@ @@@  @@  @@@@ @@@@@ @ @ @@@@@@@@@@@@XS8OO&&&&&***;;;;;::;:::::::*&&&&&***;;;;:::::::;;;;;;**;;;;;**;;;:;::::::::::--:-::::::::;;;;;;;;;;***&&&OOOOOO&**&&OS@@@@@ @  @@@@        @    @@@@@@
 @@@@ @ @@ @@  @@@@ @@@@@@@ @ @@@@@@@@@@@@XS88O&&&&*****;;;:;::::::::;&&&&&&***;;;::::::::;:;;;;**;;;;;**;;;;;::::::::-:--::::::::::;;;;;;;;;****&&&OOOOOOOOO8SX@@@@@@  @@@@            @    @@@@
@@@ @ @@@    @ @@@@@@@@@@@ @ @@@@@@@@@@@@@SS8OO&&&&&****;;;;;::::::::*&&&&&&**;;;;:::::::::;;;;;;**;;;;;*;;;;;:::::::::-::::::::::::;;;;;;;;;****&&&OOOO8X@@@@X@@@@@@  @    @@    @     @     @@@
    @ @   @@ @  @@@   @@@@ @ @@@@@@@@@@@@@S8S8O&&&&****;;;;;;;:;::::;&&&&&&**;;;;::::::::::::;;;***;;;;;*;;;;;;:::::::::::-::::::::;;;;;;;;;;****&&OOOOOS@@@@@@@@@@@   @@@              @      @@
  @ @    @   @@  @@@@@@@X@@ @ @@@@@@@@@@@@XS88OO&&&*****;;;;;;::::::*&&&&&&***;;;::::::::::::;;;;**;;;;;*;;;;;;;;::::::::::::::::::;;;;;;;;;****&&&OOOO8X@XXX@@@@@@ @@@@@  @        @   @     @ @
@@@   @@ @@@@@@ @@@@@@XXX@@@@ @@ @@@@@@@@@S88OOO&&&***;;;;;;;;;:::::*O&&&&&****;;:::::::::::::;;;*;;;;;;*;;;;;;;::::::::::::::::::::;;;;;;*;***&&&&OOOOS@@XXX@@@X@@@@@@@@@                   @@ @
  @@@@@  @@@ @ @@@ @@@XX@@@@@@ @ @@ @@@@@XS888OO&&&&***;;;;;;;;;;;:;&O&&&&&*;*;;::::::-:::::::;;;*;;;;;;*;:;;;;;;;:::::::::::::::;;;;;;;;;*****&&&OOOO8S@XXXXXX@@@@@@@@@@@@    @    @@ @      @@@
  @@ @@ @   @@@ @@ @@@@@@@     @@@@@@@@@@XS8OOOOO&&&***;;;;;;;;;;;;;&O&&&&****;;;::::-:::::::::;;*;;;;;**;:;;;;::;:::::::::::::::::;;;;;;;****&&&&OOOO8X@XXXX@@@@@@@@@@@@@      @@@@@@         @@
@@  @@@      @@@@@@XXX@@@@  @@ @ @@@@@@@@@SOOOOO&&&***;;;;;;;;;;;;;;*OO&&&**;*;;;:::::::::::::;;;;;;;;;*;;;;;;;;;;:::::::::::::::;;:;;;;;*****&&&&OOO8SXXSSXX@@@@@@@@@@         @@@@@      @    @
@@ @@@   @    @ @@XXXX@@@ @@@@@@@@@@@@@@@@S88OOO&&&&**;***********;;;*OOO&&**;;;;:::::::::::::;;;;;;;;**;;:;;;;;;;;:::::::::::::;:;;;;;;*****&&&&OOOO8XXSSXXXX@@@@@@@@@       @@@@@@   @@@ @@    
@ @    @ @  @@@@@@@XXX@@@@   @ @@@@@@@@@@@X888888OOOOOOOOOOOOOOO&&&&*--;&&&*&*;;;;:::::::::::;;;;;;;;;**;;;;;;;;;;;;;;;:::::::;;;;;;;;;;;****&&&&OOO88XS8SSXXXX@X@@@@@@        @@@@@  @  @    @@ 
@       @ @@ @@@@@@@@@@@@@   @  @@@@@@X@@@@**XXXXSS8O8OOOOO&&OO&O&&** .,:&OO&&&&***;;:::::::;;;*;*****;;:;;;;;;;;;;;;;;;::;::;:;;;;;;;******&&&&OOO88SSSSSSXX@X@@@@@@@     @  @@@@@    @       @
@@  @ @@  @@@XX@@@@@@@@@   @ @@ @@@@X8S@@@@88@XX88O&&&&****;;;;;;;::;:-, :&&&&&&&&&&&&&&&***;;;;**&***;;::;:;;*;;;;;;;;;:;;;:;:;;;;;;;;*****&&&O&OOO8SXSSSSSXXXX@@@@@  @    @  @@@@@ @          @
     @     @@@@@@@@@@@@@ @   @ @@XXX@@@@@@@  XS88O&&&*****;;;;;;;;;;;;*:,:&****;;;;;;;*&&&&&&&&&&&&*;;:;:;:;;;;***;;;;;;;;;;;;;;;;;;;;****&&&&&&OOOO8XXSSSSSSXX@X@@@@@@        @@@ @             
@     @@@ @@@@@@@@@@@@@@@ @@  @@X@@@@@@@@@@@XS8OOOO&&&*******************&&&&&**;;:::::;;*;;*&&&;;&&&*;;::::;:;;***;;;;;;;;;;;;;;;;;;;****&&&&&&OOO8SXXSSSSSXXXX@@@@@ @    @ @@@@@@@       @@ @@@
  @@@   @@@@@@@@@@@@@@@@@@@  @@XX@@@@@@@@@@@@XXSSSS888OOOO&OOOOOOOO&&&&&&&&OOOOO&&&*;;;;;;;;;;;*;;*&&&&**;:::;:;*****;;;;;;;;;;;;;;;******&&&&O&&OO8SXSXXSSXXXXXX@@@ @   @@ @   @@@@   @    @@@  
  @@@@  @@@@@@@@@@X@@@ @@@@@ @XXXXX@@@@@@@@@@@XXXSSSS88O8OOOO8888888OOOOOOOO8888888OOO&&******;;;;;;;;*;&&&;::;;;*****;;;;;;;;;;*;******&&&&&&&&OOO8SXXSSXXSSSSX@@@@@@ @@@@     @@@  @           
 @@ @   @@@@@@@@@@@@ @       @@@XSXX@@ @@@@@@@XXSS8888OOOOOOOOOOO888OO&&&OOOO8O8OOOOOOO8OO&****;;;;;;;;;*&&O&;::;;;**&**;;;;;;;;********&&&&&&&&OOO8S@XXXXXSSSSX@@@      @@ @                   @
@@@@@  @@@@@@@@@@@@    @@     @@X88SXX@@@@@@@@XS8888OOO&&&&&&OO&&OOOOO&&*&&&OOOOO&&&&&&OOO&&&&&**;;;;;;;;*&O8O;:;;;;;*****;**;;*;******&&&&&&&&&OOOSXXXX@X888SX@@@@@@   @@  @             @  @@ @
@ @@@@@@@@@@@@@ @@@@@         @@X8O88SX@@@@@@@X88OOOO&&&&&**&&&*&&&OOO&&****&OO&&&&**&&&&O&&&&OOO&**;;;;;**&SS&;;;;;;;*****;;**********&&&&&&&&&OOOS@XXXXXS8SS@@@@@@@      @@@          @   @@@ @
@@@@@@@@@@@@@@@@@@@           @@SSS8OOSXXXS8XXXS8OOO&&&&&***&&****&&O8O&&****&&&&***;*****&**&OOOOOO&*;;;;*O8SO;;;;;;;;;*****;***********&&&&&&&OO8XXXXXXXXSSX@@@ @@ @    @   @  @    @      @ @ 
@@@@@@@@@@@@@@@@ @@          @@@S8XXXXXSSXO;OXXXSS88OO&&&&******;*&&O88O&****&&**;;:;;;;***;**&&&&OOO&**&&&O8S&;;*;;;;:;;******;********&&&&&&&OOOSXXXXXXXXXX@@@ @@                   @          
@@@@@@X@@@@@@@@@@@            @XS8SX@@@@XXO;O8OO888SS88888O&OO&&**&&O88OO&&*&&***;;::;:;*;;**&&&&&&OOO&&&&&OSS&***;;;;;;;;****;********&*&&&&&&&OOX@@XX@@@@@XX@  @@@@   @@  @               @  @@
@@@@@@@@@X@@X@@@@            @@X8SSX@@@@@@@SXS8OOO&&&&&OOOOOOO8OOOOO*;&8OOOOO&&&&&&***&*&&&&&OO&&O&&**;;&&&OS8&&*;;;;;;;;;;;;**;;******&&&&&&&&OO8X@@X@@@@@@XX@@@@@@    @   @               @ @@@
@@@@@@@@@@XX@@@@@ @       @  @@S88SXX@@@@@@@@@XXS8OO&&&*&***&&&&&&&O- :OOOOOOOOOOOOO&OOOO&O&&&&::*&*******&OS8*;;;;;;;;;;;;;;;;**;*******&&&&&OOOSX@@@@@@@@@XX@@@@@@ @@@@@          @      @@@ @@
@ @@@@@@@@XX@@@ @@@@        @@@X88SXXX@@@@X@@@@@@XXS88OOO&&&&&&&&*&O:.*OOOOOOOOOOO&&O&&&&&&&&&&;;&&&&&*****OS8*:;;;;;;;;;;;;;;;;*********&&&&&OO8X@@@@@@@@@@XX@@@@@@  @@@@                     @@
@ @@@@@@@XX@@@@@@@@    @    @@@XSSXXX@@@@@@@@@@@@@XXXSS8888OO888OOOO&;OS88O88OOOOOOOOOOOOOOOOOO88SS8&&*;;*&OS8*;::;;;;;;;:;;;;;**********&&&&OOOSX@@@ @@XX@@XX@@@@@@@                         @@@
@@@@@@@@XX@@@  @@@          @@@XSSSX@@@ @@88@@@@@@XXSS888888888888888XS8888888S8888888888SS8SSSSSSSO&*;;;*&OS8*::::;;;;;;;;;;;;**********&&&OOO8X@@@@@@XSX@@XX@@@@@@@@@@                   @    @
@@@@@@@@@X@@@   @@          @@@XS8SX@@@@@@&*@@@@@XXSS8OOOOOOOOOOOO&OO8O8O88888888SS888888888888S888O*;;;;*&OSO;:::;;;;;;;;;;;;**********&&&&&O8S@@@@@@@XSX@@@XX@ @@@@@@@@@                    @@@
@@@@@@@@@@@   @@@@         @@@@@XSX@X@@@@@OO@@@@@@@X88OOO&&&&&&&&&&&&OOOOOOOOOOO8888888888OO88O888O&*;:;**&OSO;::::;:;;:;;;;;;*********&&&&OOO8X@@@@ @@XSSX@@XX@@@@@@@  @@  @@                 @ 
@@@@@@@@X@@   @@@@@@@      @@@@XXXXX@@XXXXX@@@@@@@@X88OOOO&&&&&&&&&*&&&&OOOOOOO&&OO888O888OOOOOOO88&;;;;**&OXO;:::;;;;;;;;;;;;;;**;****&&&&OO8X@@@@@ @@XSSX@ @X@@@@@@@@@@   @                @   
@@@@@@@@X@@ @@@@@@@@      @@@@@XXXXX@@X@XSXX@@@@@@@XSOOOOO&&&&&&&&***&&OOOOOOO&&&&&OOOOO&&&OOOO&O8O&;;;;;*&8SO;:;;;;:;:;:;;;;;;;;******&&&&OOS@@@@@@@@XXSSX@@@X@@@@@@@@X@ @@   @            @ @@@
@@@@@@@@@    @@@@@@@   @  @ @@@XXXX@@@@@@XX@@@@@@X@@XSOOOOO&&&&&&*&::&&OOOOOO&&&&&OO&&&*&&OOO&;&OO*;;;;;*&8SO;:;:;;;:;:;;;;;;;;;*****&&&&OO8X@X@@@@@@XXXSX@ @@@@@@@@@@@@  @                  @@@
@@@@@@@@@  @@@@@@@@@        @@@XXXXXX@@@XXSX@@@@@@@@@X8OOO&&&&&&&*&: ,&&&OOOOO&&&&&&&&&&&&&&OOO*&O&*;;;***&8S&;::;;;;;:;:;;;;;;;*;****&&&OO8X@XX@@@@@@XXXXX@ @@X@@@@@@@@@ @                    @ 
@@@@@@@@@  @@@@@@@@@@@    @@@@@XXXXXXX@X@XSX@@@@@@@X@XS8OOO&&O&&&&**::&&&&OOO&&&&&&&&&&&&&&&OOOOOO&;;;;;**&8S&;:;:;;;;:;;;;;;;;;*****&&&OO8S@@XX@@@@@@@XXXX@   @@@@@@@@@@ @@                   @@
@@@@@@@@ @ @@@@@@@@@      @@@@@XXXXX@@@XXX8X@@@@@@@@@@XS8OOOOOO&&&&&&&&&&&&&&&&&&OOOO&O&&OOOOOOOOO&;;;;;**&8S&;:;;;;;:::;;;;;;;******&&OO8S@@@@X@@@@@@@@@XX@@@  @@@@@@@@@@@@              @@@ @@ 
@@@@@@@  @ @@X@@@@@@       @@@@XXXX@@XXXXXSX@@@@@@@@@@@X8OOOOO&&&&&*&&&&&&&&&&&&OOOOOOOOOO&&&&&&O&&;;;;***OSS&;;:;;;;;;;:;;;;;*;****&&&OOS@  @@X@@@@@ @@@@@@@@  @@@@@@@@@@@@              @@@ @@ 
@@@@@@   @ @@@@@@@@@       @@@XXXXX@XXX@@@@@@@@@@@@@@@@XS8OOOOO&&&*&&*&&&&&&&*&&OOOOOOOOOOO&&&&*&&&;;;;;*&OSS&:;:;;;;;;;;;;;;;*****&&&O8SX@@@@@@@@@@@@ @@@@@@  @  @@  @@@@@@           @  @@@ @  
@@@@@@@@ @@@X@@@@X@@@@   @ @@@XXXX@XSSX@@@@@@@@@X@@X@@@@XS88OOOO&&&&**&&&&&&**&&&&&&OOOOOO&&&&&&&&&;;;;**&OSS&;:;;;;;;:;;;;;;*****&&&OOS@@@@@@X@@@@X@@ @@@@@@@    @ @ @@@@@@           @@@@@@ @@ 
@@@ @@@@@@@@@@XX@X@@@@@@@  @@@XXXX@XSX@@@@@@@@@X@@@@@@@@@X888OOOO&&&&&&&&&&&*&&&&&&&&&&&&&&&&&&*OO&;;;;**&OXX&::;;;;;;;;;;;;;****&&&OOS@@@@@@@@@@@XSX@ @@@@@@ @    @  @@@ @@@  @@ @     @@@@@@@@@
@@@@@@@@@@X@@@@@@@@@ @   @ @@@XXXXX@@@@@@@@@@@@@@@X@@X@@@XS888OO&&&&&&&&&&&*&&&&&&&&&&&&&&&&&&&&OO&;;;;**&8XX&;;;;;;;;;;;;;;***&&&&OOS@@@@@@@ @@@@XS@  @@@@@@@ @     @    @@@@@@@@@    @@@@@@@@@@
@@@@@@@ @@XX@@X@@@@@       @@@XXXX@@@@@@@@@@@@@@@XX@X@X@@@X8OOO&&&&&**&&*********&&&&&*&&***&&&&OO&*;;**&&SXX&:;;;;;;;;;;*****&&&&OOS@@@@@@@  @@@@XS@@@@@ @@@@            @@@   @@@@ @  @@@@@@@@@
@@@@@@@  @@@@@@@@@@         @@@XXX@@@@@@@@@@@@@@@@@XX@@X@@@X88OOO&&&*************************&&&&O&;;;***OSXX&;;;;;;;;;;;*****&&&O8XX@@@@@@   @@@@XX@@@@@@@@ @    @       @@@  @@ @@@   @@@@@@ @@
@@@@@@@@  @ @@@ @@         @@@@XX@@@@@@@@@@@@@@@@X@XX@@X@@@@XS8OOO&&&*&&&&********&&******;***&&&&*;;;**&OSXX&:;;;;;;;;******&&&O8X@@@@@@ @  @@@@@@X@@@@@@  @@             @@  @@@@@@    @@@@@@@@
@@@@@@@@ @@ @@ @@@  @     @@@@@XX@@@@@@@@@@@@@@@@@X@@@@@XX@@XSSOOO&&&&OO&&&**&**********;;*;**&&&&*;;***&OSXX&;;;;;*;;*;****&&OOSX@@@@@@@@@  @@@@@@X@@@@@@  @@            @@@@@ @@@@@    @@@@ @@@
@@@@@@@@    @  @@@@@@      @@@XXX@@@@@@ @@@@@@@@@@X@@@@@@X@XXXS8OO&&&&&&&&**&&*******;***;;**&&&&&;;;;*&&8XXX&:;;;*;******&&&OOS@@@@@@@@@@@@@@@@@@@@@@X@@@@                @@@@ @@@@@@  @@@@@@@@@
@@@@@@@@  @  @   @@         @@XX@@@@@@@@@@@@@@@X@@XXX@@X@X@X@XS8OO&&&&&***&******&*;;;;;;;****&&&*;;;;**OSX@X&;;;;;*******&&O8X@@@@@@@@@@@@@@@@@@@@@@XXX@@@                @@@@@@@@@@@@@@@@@@@@ @
@@@ @@@@     @@ @@@     @ @@@@XX@@@@@@ @@@@@@@@@@@XXX@XXXX@X@XSS8O&&*&********;*&&*;:;**;;***&&&&*;;;**&OXXXX&;;;******&&&OOS@@@@@@@@@@@@@@@@ @@@@@@@@X@@X@@@            @ @@@@@@@@@@@@@@ @@ @@@@
@@@@@@  @ @   @@@@@   @ @ @@@@@@@@@@@@@@@@@@@@@@@XXXX@@@XXXX@XX88O&****************::*&&*&**&&&&&*;;;*&&OXXXX&;;******&&&O8X@@@@X@@@@@@@@@@@@  @@@@@@@@@X@                   @@@@@@@@@@ @  @     
@@@X@@@@@@   @@ @@@    @  @@@@XX@@@@@@@@@@@@@@@XXSX@@@@@XXXXXO*O8&&&&*&**;*******;;;*&O&&&**&&&&&*;;;*&&8XXXX&;****&*&&OOSX@@@@@@@@@@@@@@@@@@ @@@X@@@@@@X@@     @@           @@@@@@@@@@   @     @
@@@XX@@@@@   @@ @@  @@ @ @@@@@XX@@@@@@@@X@@@@@X8OO8X@X@@@XXSO;;8S88O&-*&*;;*;;*;;:;&OOO&****&&&&&*;;**&OSXX@X*;****&&&O8X@@@@@@@@@@@@@@@@@@@@@@@XX@@@@@@@@@    @   @@       @@   @@@@@@         @
   @XX@@@@    @  @@ @  @@@ @@@XX@@@@@@@X@@@@XS8OOOOS@@X@X@X8;*OXXXS8&-:&********;;*&O&&&***&&&**&*;;**&OXXX@X*;***&&&O8X@@X@@@@@@@@X@@@@@@@@@@@XXX@@@@@@@@@      @         @   @@@  @@@          
     @@@@@    @ @@     @   @@@XX@@@@@@@@@@@@SOOOOOO8@@@@XX@&;OSSXS88&*-;********;*&&O&&&&***&&&&&*;;*&O8XXX@X&**&&&OOSX@@@@@@X@@@@@@@@@@X@@@@@@XX@@@@ @@@@     @@@    @   @X@   @@   @@          
 @@  @@@ @    @@  @@  @@@@@@@@XX@@@@@@@@@XXS8OOSSSSXX@@XXXXXXSSSXXS8&&******&***;;*&O&OO&**&&OOOO&;;*&OXXXX@S&*&&&O8XX@@@@@XXX@@@@X@@@XXX@@@@@@X@@@@@ @@@@    @@@@        @X@ @@@@  @@@          
@@@@ @@@@@      @  @ @@@@@@@@@X@@@@@@@@@@XSOO8SXXXXXX@@@@XX8SS8SSSS8O&&********;;;***&&O&**OOO&OOO&**O8XXXX@X&&&&O8X@@@@@@XXX@X@@XXXX@XXX@@@@@@@@@@@@@@@     @@@@@@      @@@@@ @@@@  @          @
@    @@@@@@      @   @@@@@@@@@XX@@@@@@@@@XOOOSXXXXXX@XXXXXXS88SSS88OO&&***&****;;;**&*&O&*&OOO&&OO8OOOSXXXX@S&&OOSX@XX@XXXXXXX@@XXSX@XXXX@@@@@@@@@@@@@@@     @@@@@@@      @@@                   @
  @@@@@@ @@ @        @@@@@@@@@XS@@@@@@@XX8O8SX@XXXSX@XXXXXXSSSSSSS:&O&&&&&&****&&*&&&&&&*&&OO&&&&&O8SXXXX@@XOO8SXXX@XXXXXX@@@@XXXX@@XXX@@@@@@@@@@@@@@@      @@@@@@@ @@  @@@             @    @@ 
@   @@@@  @@@@@@@@@@ @@@@@@@@@XX@@@@@XXSSO8X@@@XXXXXXXSS8888OOOOOO:&OOO&OOO&**&OO&&&&&&*&*&OOO&O**&8SXXXXX@X8SXXXXXXXSSSX@@@@@@XX@@@XX@@@@@@@@@@@@@@@@  @  @@ @@@@@@     @@         @        @@@
 @@   @ @  @@@@@@@@@ @@@@  @@@X@@@@@@@XS88X@@@XSSSSS888OOOOOOOOO&&OO&&&&&O88888888OOO&&&***&OOO&O&&&O8SXXXX@XXXXXX@XXSSSX@@@@@@@XX@@XX@@@@@@@@X@@@@@@@@        @@@@@@@@@@@@@                   @@
 @@@@       @@@@@@@  @@@@@ @@@@@@@@@@@@X88SS8S88888S8SS88S88888OOOOO*:;*&&O888888SSSSSS8O&&OOOOOO&&OOO8SXX@@XXXX@@XXXSSXXX@@@@ @@@@@@@@@@@@@@@X@@@@@@@@@@      @@@   @@@@ @                     @
      @@  @@@@@@@@ @  @@@@@@@XX@@@@@XXSOOO8888SSSSXSSSSSSSS8888OOO&;,,:*&&OOO888888S8SSS8OO888888OO8888SXX@@XXX@@@XXXXXXX@@@@@@@@@@@@@@@@@@@@@@@@@@X@@@@@@ @@ @@@@@@@@@@@  @    @               @
   @@ @@  @@@@@@@@ @   @ @@@XXX@@XSS8OOOO8SSXXXXXSSSXSSS8SS8888OOO&:-:*&OOOO8888S88SS8OOO888SSSSSXXS8SXX@@@@@@@XXXXXX@@@@@@@  @@@@@@X@@@@@@@@@@@@@@@@ @ @@  @@@@@ @@@@@      @@               @
     @@   @@@@@            @XXXS8OOOOOOO8SXXXXXSSSXXXSS8S88888OOO&*:, ,:*&&OOOOO8O888888888S8SSS88SSSX8SXXX@@@@X@XXXXX@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@ @  @@@@@    @@@               @
    @@   @@@@@            @@XSSO8OOOO8SXXXXXXXXXSSSSS888O88OOOOO&*;-  ;*&&OOOO888888888888SSXXSS888SSS8XXX@X@@@@X@@@@XX@@@@@@@@@@@@@@@@@@@@@@@@@@@  @@  @@@  @@@  @@@@@@  @@@@@              @ @
  @      @@@@ @          @@X8888888SXXXXSSXXXXXSSS888888888OOOO&*;:  ,:;*&OOOO888888888OO88SSXXXXXSSS888XX@@@@@@@@@@XX@@@@@@@@  @@@XX@@@@@@@@@@@@@ @@ @@@@  @@@ @@  @@X@@@@@@@               @@ 
@@ @@@@ @@@@@@@           XS8OOOOOO888SS8SXXXXXS88888888888OOO&*;;-,  .-;;&&OOOOO8O888S8OO888SSSXXXXXSSSSSX@@@@@@@@@@X@@@@@@@@@ @@XXX@@@@@@@@@ @@  @@@@@@@@@ @      @XX@@@@@ @@@           @   @@
    @@  @@@@@             X88OOOO&&O&&&OOOOOOO88SS888888888O&&&*;:   .-:;;&&&OOOOOO88888OO8SSSSSSSSSXS8SSSXX@@@@@@@@@@@@@@@@@@@@@XXXX@@@@@@@@@@@    @@ @@@     @  @XX@@@@@@  @              @ @@
  @ @@   @@@@            @S8OOOOOO&&&&&&&&&&&&&&O888OOOOOOOO&&*;;:   .-::;**&&&OOO88888O88888SSSS88SXSS888SX@@@@@@XX@@@@@@@@  @@XXXXX@@@@@@@@@@ @@     @@     @  @XX@@@@@@@            @@     @@
 @@@@@  @@@@@@@@@@     @ @X8OOOOOOO&&&&&&&&&&&&&&&&&&*******;;;::-,    ::;;&&OOOO88888OO8888SS8SSS8888OOOO8X@@@@@XXX@@@@@@@@ @X@XXXXX@@@@@@@@  @@@    @         @X@@@X@@@@@            @@     @@
 @ @@@@ @@@@@@@@ @       @X8OOOOO&&&&&&&&&&&&&&&&&&&*****;;;;::--.    --::;*&OOOOOO888OO8SSSS8888OO&&&&OOSX@@@@@XX@@@@@@@@@@@X@XXXX@@@@@@@@@@@@      @@@     @@XXX@@@@@@      @@      @@@@  @@@
   @@ @ @@@@@@@          @X8OO&&&&&&&&&&&&&&&&&&&&&*&****;;;:::--,.    ,--:::;*&*&&&OOOOOOOOOO&&&&&*&*&&&O8XX@@XX@@@@@@@@@@@@@X@@@@@@@@@@@@@@@@@    @  @@@   @@@XXX@@@@@    @ @@@@@@ @     @@  @@
   @@@   @@@@ @          @XS8O&&&&***&&&&&&&&&&&&**&*****;;;::---,.    -:::;;;;;***************;;***&&&O8S@@@@X@XXX@@@@@@@@@@@@@@@@@@@@@@@XX@@@ @@   @       @@@@@@@@@@@@@@@@@@@@  @ @    @@ @@@
 @@ @@   @@@@@@          @@XSOO&&&********&****&&******;;;;;::::-,   .-:::;;;;*;;;;;;;;;;:;;;;;;;**&&O8X@@XX@XXX@@@@@@@@@@@@@@@@@@@@@@@@XSXXX@@@@@@@@@     @@@@@@@@@@@@@@@@@@  @  @ @ @@   @@ @
  @ @    @@@@@@          @@@@X8O&******;;;*;;;;;*;*;;*;;;;;;::::--, ..-::::;;;;;;;;;::;:::;::;;;;;*&O8X@@@@X@@XX@@@@@@@@@@@@@@@@@@@@@@@XXXXXX@@@@@  @@@   @@@@@@@@@@@@@@@@@@@@@     @@      @@@@
 @@@@@  @@@@@@@@         @@@@@@X8O&****;;;;;;;;;;:;;;;;;::::::::--  .--:::::::::::::::::::::;;;**&O8XX@@@@@XX@@@@@X@@@ @@@@@@@@@@X@@@@@XXX@@@@@@@@@@@@@  @@@@@@XXXXX@@XX@@@@ @@@  @ @@   @     @
  @@@@@  @ @@@ @         @@@@@@@@@S8O&***;;;;;:::::;**::::::::-:--  ,----:::::::::::::::::;;;*&&OSX@@@@@@@@@@@X@@@X@@@@@@@@@@@XX@@@@@@@@@@@@@@@@@@@@ @ @@ @@@XSSSSXX@XXX@@@@@@    @      @      
 @@@@ @   @@@@@@ @       @@@@@@@@@@@@XS8O&&*;;;;:::;&*:::::::------,,----::-::::::::::;;;;&&O8XX@@@@@@@@@@@X@@@@@@@@@@@@@ @@@@X@@@@@@@@@@@@@@@@@@@  @@@@@@@X@XXSXXXXXXXX@@@@@@  @@      @@ @    
    @    @@@@@@          @@@@@@@@@@@@@@@@XS88O&&**;**;::::::::::-------:::::::;;;;**&&&8O8X@@@@@@@@@@@@@@@@@X@@@X@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@XXXXXXX@X@@ @@@@@  @    @  @@ @   
 @  @@@@ @@@@@@         @@@@@@@@@@@@@@@@@@@X@@XXSS88O&&&&&**;;;;:::-::;;*****&&OO88SXXX@@@@@@@@@@@@@@@ @@@@@@@@@X@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@XXXX@XX@@  @@@@@ @ @@ @@ @@     
 @  @@@@   @@             @@@@@@@@@@@@@@@@XXXXXXXX@XXXXSXSS8OO&&&**;*&OO888SXXXXXXX@@@@@@@@@@@@@@@@@@@@@@@@@@X@@@@@@@@@@@@@@@@@@@@@@@@@@@X@@@@@@@@  @@@@@@@@@@@@XXXXXX@@@@    @@@@@   @ @  @@    
@@  @ @  @@@@@@@          @@@@@@@@@@@@@@@@@@@XXXXXXXXXXSSSS8OO&&**;*&OO88S8SSXXXXXX@XX@@X@@@@@@@@@@@@@@@@@@@@X@@@@@@@@ @@@@@  @@@@@@@@@ @X@@@@@@@@@@@@@@@@@@@@@@@XXXX@@@@   @ @@X@      @@   @@@ 
@@    @@  @@@@           @@@@@@@@@@@@@@@@@@@@@@XXXXXXSSSSS88OO*;:;::;OO88SSSSXXXXXXX@@@@XX@@@@@@@@@@@@@@@@@@@X@@@@@@@@@@@@@ @ @@@@@@@@@@@@@@@@@@X@@@@@@@@  @@@@@XXX@@@@@    @   @@@     @@   @   
@@    @@ @@@@  @         @@@@@@@@@@@@@@@@@@@@@@@@XXXXXXXSS88O&;.::.&O88SSSSXXXXXX@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@  @@@@@  @@@@@@@@@  @@@@@@@@@@@@@@@@@@  @@@@@X@@@@ @@    @@  @@@     @@     @ 
@    @@@ @@@@            @@@@@@@@@@@@@@@@@@@@@XXXXXXXXXXSS8OO&:  ::..:O8SSSXXXXXXX@@X@@@@@@@@@@@@@@@ @@@@@@@X@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@  @@@X@@ @ @@@@@@@@@@@  @@    @  @@@@    @@  @ @ @
   @@@@@@@@@@@            @@@@@@@@@@@@@@@@@@@@@@X@XXXXXSS88OO&-  -;,.-*8SSXXXXXXXXX@@@@@@@@@@@@@@@@@@@@@@@@XXX@@@   @@@@@@@@@@@@@X@@@@@@@@@@@@@@@@@XX@  @@@@@@@@     @ @@       @@@@  @  @   @@ @
   @@@@@  @@@@          @@@@@@@@@@@@@@@@@@@X@@X@@XXXXXSSS8OO&*  ;-,-;OSSSXXXXXX@@@@@@@@@@@@@@@@@@@@@@@@@@@XX@@@  @@@@@@@@@@@@@XXX@@@@@@@@@@@@@@ @@@    @@  @     @  @@@        @@@       @@ @@@
@@@@@@@@  @@@          @  @@@@@@@@@@@@@@@@@X@@@XXXXXXXXXS8OO&*  :::-:;&8SXXXX@@@@X@@@@@@@@@@@@@@@@@@@ @@ @@@X@@ @@@@@@@@@@@@@@@@@X@@@@@@@@@@@ @@@@@      @        @   @@        @@@@@@   @@@ @@ 
 @ @@ @@ @@@@  @    @    @@@@@@@@@@@@@@@@@@@X@XXX@XXXXSSS88O&*  :;-:;;&8SXXXX@@X@@@@@@@@@@@@@@@@@@@@@@   @@XX@@ @@ @@@  @@@@@@@@@@@@@@@@@@@@@@            @ @       @@@@@  @   @@@@  @@ @ @@@@@@
 @@ @@@@@@@@@            @@@@@@@@@@@@@@@@@@@XX@X@XXXXXXSS8OO&;.  ::::;&OSSXXXXX@@@@@@@@@@@@@@@@@@@@@ @@@@@@@X@@@@@@@@@@@@@@@@@@@X@X@@@@@@@@@             @@@@@@    @@@@@@@@@@   @@ @     @ @@@@ @
  @@@@  @ @@@@           @@@@@@@@@@@@@@@@@@@@@@@XXXXXXSSS88OO* .;;;**O88SSX@@X@@@@@@@@@@@@@@@@@@@@@@ @  @@@@@@  @@@@ @@@@@@@@@@@X@@@@@@@@@ @@@@          @@@@@@    @@@@@@@@@           @   @@@@ 
  @@@@    @@@@          @ @@@@@ @@@@@@@@@@X@@@@@@@@XXXSSS8OO&*:.**;*&O8SSSXXXX@@@@@@@@@@@@@@@@@@@@  @ @ @@@@@@  @@@@@@@@@@@@@@@X@@@@@@@@@@@@@@@          @@X@@@  @@@@ @@@@@X@    @    @@        
@@@@@@@@@ @@@@      @    @@ @@@@@@  @@@@@@@@X@@@@@@XXXSSS88OO*;:***&O888SXX@@@@@@@@@@ @@@@@ @@@ @@@@@  @  @@@ @@@@@@@@@@@@@@@@XX@@@@@@@@@   @ @@       @  @@@@@@@@@@  @@@@XX@ @@            @@  
@@@@  @@ @@@@@          @ @@@@@@ @@@@@@@@@@@X@@@@@XXXXXSS88OO&*:;;**&OOO8SXXX@@@@@@@@@@@@@@@@@    @@  @   @@@@ @@@@@ @@@@@@@@@@@@@@@@@@@@@ @@           @   @@@@@@@@@@  @ @@@@@@@             @  
 @@@@@@@ @@@@            @@ @@ @@@@@@@@@@@@@@@@@@@XXXXXSSSS8O&;:*;;;&OO88SXX@@@@@@@@@@@@@@@@@@@@@@@ @ @  @@@   @@@ @@@@@@@@@@@@@@@@@@@@@@@@@  @@ @       @ @@@@ @@@@@@@@@@@@ @@ @ @          @   
 @@@@@@    @@ @        @@@@   @@@@@@@@@@@@@@@@@@@@XXXXXSSS8OO&::**;;&O88SSXX@@@@@@@@@@ @@@@  @@      @   @@@   @@  @@X@@@@@@@@@@@@@@@@@@@@@@  @@       @@@@@@@@@@@@  @@@    @@  @     @     @@   
@@@ @@@   @@@@         @@@@@@ @@@@@@@@@@@@@@@@@@@XXXXXXXSS8OO&;;;;;*OO8S8SXX@@@@@@@@@@@@@@@@@@@ @@ @@  @@ @@   @ @@@@@@@@@@@@@@@@@@@@@@@@@@@   @@     @ @ @@@@XX@@@ @@@@  @@@         @@@   @@ @@
@@@@@@  @ @@@@         @@ @@@@@ @@@@@@@@@@@@@@@@XX@@@XXXSS88O&*;;:;&OO88SXXX@@@@@@@@@@@@ @@@@@@@ @@      @@@ @@@@@@@@@@@@ @@@@@@@X@@@@@@@@@@  @@@@@@     @@  @@@@@@@@@  @@@@    @      @@    @@@@
@@@@@@   @@@@@         @@@@@@@@@@@@@@@@@@@@@@@@@@XXXXXXSSS8OO&**;:;&OO8SSSSX@@@@@@@@@@@ @ @  @  @@@   @@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@  @@@@@@    @@     @@  @@     @@@@     @@         @@  
@@@@@@@@ @@@@@         @@@@@@@@@@@@@@@@@@@@@@@@X@@@@@XXSS888O&*;;;*&OO8SSSXX@@@@@@@@@@@@  @ @@@@ @  @   @@@@@  @@@@@@@@@@@@ @@@@X@@@@@@@@@@    @@@@@@@  @    @@@ @  @   @@@@@@ @@@@     @        
@@@ @@@@@  @@      @@   @@@@@@@@@ @@@@@@@@@@@@@@@XXXXXXXXSS8O*;**&&&O8SSXXXX@@@@@@@@@@@@@@@     @@   @ @ @@@@@@@@@@@@@ @@@  @@@XX@@@@@@@ @   @@@@@XX@@  @@@  @@@ @@@@  @X@@@@  @@@@ @@      @@ @ 
@@@@@@ @@@@@@ @   @@   @@@@@@@@@@@@@@@@@@@@@@@@@XXXXXXXXXSS8&***&&&OO8XSXXXX@@@@@@@@@@@@@@@@@@ @  @@     @@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@  @@@@@@XX@@ @@@   @@@@ @@  @XX@@@ @@@   @@       @@ @@
   @  @ @@@@@@@    @ @@@@@@@@@@@@@@@@@@@@@@@@@@@XX@XXXXXSSSOO&&&&&O88SSSXXX@@@@@@@@@@@@@ @@@@ @@@  @   @@@@@@  @@@@@@@@@@@@@@@@@@@@@@@ @@@@@@  @@@XX@@      @@@@@@@@@@@XX@@@ @@@  @@@@     @@@ @X
@@  @   @@@@@@@@@  @  @@@@@@@ @@@@@@@@@@@@@@@@@@@XXXXXXXXXS8OO&&OOOO8SSXXXX@@@@@@@@ @@@@@@@  @ @@@  @@ @ @@@@ @@@@@@@@@@@@@  @@@@@@@@@ @@@@  @  @@X@@@     @@@@@XX@ @ @XX@@ @    @@ @@     @@  @@
@@@@@@@@@@ @@@@ @ @    @@@@@ @@@@@@@@@@@@@@@@@@@@@@XXXXXXXXS88OO88OO88SXXXX@@@@@@@@@@@ @@  @@@   @@       @ @@@@@ @@@@@@@ @@    @@@@@@@@@@@  @ @@@@@@@  @@ @@@@@XXX@   @@@          @@@ @       @
 @@ @@@@@@@@@@@   @    @@@@@@@@@@@@@@@@@@@@@@@@@@@@XXXXXXXXSS8O88S8OO8SXXXX@@@@@@@@    @  @@     @@ @ @  @@@@@@@@@@@@X@@@  @@@  @@@@@@@@@    @  @@@@@@@ @@@@@@@@@@@@ @@@@@  @         @@        @
   @@@XXS8SSSX@    @@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@XXXXXXXXSSS8O8SSS8O8S8SX@@@@@@@@     @@@   @  @        @@@@@@@@@@@XX@@ @@@@@@@@@@ @@@   @@    @@@@@    @@@@@ @@@@@ @@@@@      @     @@@  @    @
@@XXXXS8OOOOOO8SX@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@X@XXXSSS8S88SXS8O8SOSX@@@@@  @  @     @  @     @   @ @@@@@@@@@@@@@ @ @@@@@@@@@@@@@@@@@@@     @@@@ @@   @@@ @@@@@@@@ @@ @ @@         @@      @
XSSSS8OO&&&*&&&O8SX@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@XXX@@XSSS8SSSSSSS888O8XX@@@@@@@ @      @@      @@     @@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@  @ @@@@@   @@@@@@@@@@  @@@@   @          @@@@@@@ @ @
SSSSOO&&****&**&&O8S@@@@@@@@@@@@@@@@@@@@@@@@@@@@X@@@@@@@XXXSSXS8SSXX8888SSX@@@@@@@      @@       @@     @@@@@@ @@@@@@@@@@XXXX@@@@@ @@@@  @@     @@@@@@   @@@@@@@    @ @@@   @  @@@@@@@@@@@@@@@@@@
8XSO&&**;;******&&&OSX@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@XXSSXSSSXXX88SSSXX@@@@@@         @ @        @    @@@@@@@@@@@@@@@@@@@@@ @@@@  @@@@@@      @@     @@@@@@ @     @@   @@@@@@@@@@@@@@@@@@    
X8O**;;;;;*;;*****&&O8X@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@XXXSSXXXSXXXSSSSSXX@@@@@@@ @    @@  @@ @@    @   @@@@@@@@@@@@X@@@@@@@@@@   @  @@@@@@   @  @@@@@   @@@ @    @@ @@@@@@@@@@@@@@@@@ @@@@@   @
SO&*;;;;;;;;;;*****&&&OS@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@XXXXSXXXXSXXXSS8SXX@@@@@@@@       @@@@        @ @@@@@  @@@@@@@@@@@@@@ @@@ @@   @@@@@@    @@ @@  @@    @@  @@@@@@@@@@@@@@ @@@@@ @@@@@@@@  
8&*;;;;;;;;;;;;;*****&&OS@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@XXXXSXXXXXXXXXSXXXX@@@@@@@@@ @  @   @     @      @@@@ @@@@@@@@@@@@@@         @@@@@@@@@ @@@@@@@ @ @    @@@@@@@@@@ @@@ @@    @@@@@@  @@@   
O&*;;;;;;;;;;;;;;;;***&&O8X@@@@@@@@@@@@@@@@@@@@@@@@@@@@@X*&XXSSXXXXXXXXXXX@@@@ @@@@@    @@               @@@@ @ @@@@@@@@@@@@@@   @    @@       @ @@@@@@@@@@@@@@@@@@@@@@@@@  @   @ @@ @@@ @@@ @@ @
&*;;;;:;:;;;;;;;;;*;***&&O8X@@@@@@@@@@@@@@@@@@@@@@@@@@@@XO8XXXSSXXXXXXXSXX@@@@@@  @      @@@@ @@         @@@@   @@@@@@@@@@@@ @  @@@@@  @@@ @@@ @ @ @@@@@@@@@@@@@@@ @@@@@@  @@@ @@@@@@@@ @ @@@@@@@
&*;;:::::;;;;;;;;;;;;****&&8X@@@@@@@@@@@@@@@@@@@@@@@@@@XX@@XXXXXXXXXXXXXXXX@@ @ @       @@  @         @  @@@@  @@@@@@@@X@@@@   @@  @@ @@@  @ @  @@@@@@@@@@@@@  @  @@ @ @@@@@@@@@  @ @@  @ @@@@@@@
*;;:;:::;::;;;;;;;;;;;*;**&&OS@@@@@@@@@@@@@@@@@@@@@@@@XXXXXXXXSSXXXXXXXXXX@@@ @   @   @ @@     @      @ @@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@ @  @@  @@ @ @@@@@@ @@@ 
*;;;::::;:;;;;;;:;;;;;;*;**&&&8X@@@@@@@@@@@@@@@@@@@@@@XXXXXXXSXXSXXX@XXXXX@@@ @ @ @    @  @             @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@ @@@@@@ @@@@@@@@@@@@@@@ @@ @@@
*;;;:;:::;;;;;;;;;:;;;;;;;**&&&O8X@ @@@@@@@@@@@@@@@@@@X@X@XXSSSXXX@@XXXXXX@@@@      @       @           @@  @@@@@@@@@@@@@@@@@@@XXXX@@XXX@@XXXSSXX@@@@@@@@@@@@ @@@@  @ @ @@ @  @@@@@@@@@@ @@@@ @@@
**;;;;;;:;;;;;;:;;:;:;;;;****&&&OOS@ @@@@@@@@@@@@@@@XXXXXXXXSSSXXXXXXXXXXX@   @   @  @@                 @X@  @@@@@@@XXXXXXSSSS888SSSSSSS8888OOOO8X@@@@@@@@@@@@@@@@@@@@    @@ @@@@@@@@@@@ @  @ @@@
**;;;;;;;;;;;;;::::;;;;;;;;**&&&&&&OS@@@@@@@@@@@@@@@@@XX@XXXSSSSSSXXXX@@X@@       @@        @@@         XX@@@@XXSXSS888S88OOOOOOOOOOOOOOOOOOOO&&O8@@@@@@@@@@@@@@@@ @@ @@ @@@@@@@@@@@@@@ @@  @ @@@
&*;;;;;;;;;;;;;;::::;:;;;;;*******&*&8X@@@@@@@@@@@@@@@XX@XXXSS88SSXXX@@@X@@@@  @    @                   XX@XXSS888OOOOO88OOOOOO&&&&&&&&&&&&&&&&&&OX@@@@@@@@@@@@@@@@@@@@@@@@ @@@ @@@@@@@@@@  @ @@@
&**;;;;;;;;;;;;:::::::;;;;;**;;;;;****O8X@@@@@@@@@@@@XXXXXXXS88SSSXXXX@@@@@@@  @    @            @@ @@ @XSSS88OOOO&&&&OOO&&&&&&&&&&&&&&&&&&&&&&&&&S@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@  @@@
&&**;*;***;;;;;:::::::;;;;;;;;;;;;;****&8X@@@@@@@@@@@XXXXXXSSS8SSSXSXX@@@@@@@  @   @@ @                 S888OOO&&&&&&OOO&&&&&&&&&&&&&&&**&&&&****&8@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@ @@@ @
&&***********;;:;::::;;;;;;;;;;;;;;;;;**&OX@@@@@@@@@XXXXXXXXSS8SSSXXXX@@X@@@@@@       @          @@    @88OOO&&&&&&&&OO&&&&&&&&&&*&&&*************OX@@@@@@@@@@@@  @@@@@@@@@@@@@  @@@ @@@  @@@@  @
O&&&*&*******;;;::::;;;;;;;:;;;;;;;;;*;***OX@@@@@@@@@XXXX@XXXSSSSXXXX@@@@@@@                @@   @   @ @8OO&&&&&&&&&OO&&&*************************&X @@@@@@@@@   @@ @@ @ @@@@@@@  @ @@@@  @@@@ @@
OO&&&&&&&&***;;;:::;;;;*;;;:;::;;;;;;;;;**&OS@@@@@@@@@@@@@@XXSSSXXXXX@@@@@ @   @                       @8O&&&&&&&&&OO&&&&*&*****************;*****&8@@@@@@@@@@ @ @@ @ @@ @@@@@@@@@@    @@@@@@@ @@
OOO&&&&&&&&***;;::;;:;*;;;:;::;;;;;;;;;;;;*&OX@@@@@@@@@@@@@XSSSXXXXXX@@@ @@@               @@        @ @O&&&&&&&&&O&&&&**************;****;*;*;****O@@@@@@@@@@@@@@@  @@@ @@@   @@@ @@@@@@@@  @@@ 
88OOOOO&&&&&&*;;;;;;:;;;;::::::;:;;;;;;;;;;**OX@X@@@@@@@@XXXSSXXXX@XX@@@@@@           @            @  @@O&&&&&&&&&&***************;*;****;*;;;;;*;*OX@@@@@@@ @@@@@@@@@ @@@     @ @@ @ @@ @ @@ @@@