.........                        ...                                                                                                                                                       
                                                                                                                                                                                                          ....... ....:=+**#*********++==-:.  .......:::-:::..............    . .                                                                                                                               
                                                                                                                                                                                                        .:=+=--------------------------------=====++*####%%%%#%%%%%%%%%###*+=:...                                                                                                                               
                                                                                                                                                                                               ..:=+=--------------------------------------------------------==*#******+--------==*##*+......  ...                                                                                                              
                                                                                                                                                                                     .  ...-#*----------------------------------------------------------------------=*#***----------------+%*.....                                                                                                              
                                                                                                                                                                              ........**=---------------------------------------=----------------------------------------=*+--------------------*#-.... . ..                                                                                                    
                                                                                                                                                                              ...+*+-----------------:::::::::::::::::::::::--::::::-+--------------------------------------=------------------------+%-. ..                                                                                                    
                                                                                                                                                                         . ..#*+-:---------::::::::::::::::::::::::::::::::==::::::::::+-----------------------------------------------------------------=@*..                                                                                                  
                                                                                                                                                                    ..  :%*+--:---::::::::::::::::::::::::::::::::::::::::*=::::::::::::----------------------------------------------------===:-------------=%+...                                                                                             
                                                                                                                                                                . ...+*+=:::::::::::::::::::::::::::::::::::::::::::::::::**::::::::::::::=---------------------------------------------%:-::::::::*+------------*%.   .                                                                                        
                                                                                                                                                               ..=#*+:::::::::::::::::::::::::::::::::::::::::::::::::::::-:=:::::::::::::::=-----------------------------------------%:*:::::::::::::::-**---------=%%                                                                                         
                                                                                                                                                            ..+#++:::::::::::::::::::::::::::::::::::::::::::::::::::::::=::+:::::::::::::::::+-----------------------------------+==#=::::::::::::::::::::::::+*=-----+@@:.                                                                                    
                                                                                                                                                        .. +*++::::::::::::::::::::::::::::::::::::::::::::::::::::::::::*=::*::::::::::::::::::*----------------------------------*#-*::::::::::::::::::::::::::::::.++--%@@:.                        .                                                        
                                                                                                                                                  ......++++-::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::#==::-:::::::::::::::::::#:-------------------------------#==*:::::::::::::::::::::::::::::::::..=-#@@@.. .    .... ...=######**********=..... ..                                      
                                                                                                                                                 .. .=+*+::::::::::::::::::::::::::::::::::::*-:+::::::::::::::::::::::::%==::=::::::::::::::::::::**=----------------------------#==:=::::::::::::::::::::::::::::::::::::==-*@@@#. .    .*+:*.::::::::::::::::::::::=+..                                      
                                                                                                                                                 .:+++::::::::::::::::::::::::::::::::::::-*:::::::+:::::::::::::::::::::#===::=:::::::::::::::::::::::.+##=---------------------%===:.::::::::::::::::::::::::::::::::::::::+--=@@%%=..=+==%::::::::::::::::::::::::::::+.                                     
                                                                                                                                            ...=++-=:::::::::::::::::::::::::::::::::::::*:::::::::::+:::::::::::::::::::#====::#:::::::::::::::::::::::::::.::+=---------------%===:=::::::::::::::::::::::::::::::::::::::::+---=@%@#=====#:::::::::::::::::::::::::::::*..                                   
                                                                                                                                          ...+++-::::::::::::::::::::::::::::::::::::::*:::::::::::::::*:::::::::::::::::*====-::*::::::::::::::::::::::::::::::::::-=--------@+===-:#:::::::::::::::::::::::::::::::::::::::::+--=%+=======*::::::::::::::::::::::::::::::+.                                   
                                                                                                                                       ....++--:::::::::::::::::::::::::::::::::-=**+::::::::::::::::::::#::::::::::::::#======-::+:::::::::::::::::::::::::::::::::::::::+%%#-+==-::+::::::------:-:::::::::::::::::::::::::::+@@===========::::::::::::::::::::::::::::::+-..                                 
                                                                                                                                       ..*+:::::::::::::::::::::::::::::::-+*=:::::::::::::::::::::::::::::*::::::::::::@=======:::+::::::::::::::::::::::::::::::::::::::::::::-:::-::::----------::::::::::::::::-::::::::::::*===========::::::::::::::::::::::::::::::::+..                                 
                                                                                                                                      .#+:::::::::::::::::::+*-:::::::.::::::::::::::::::::::::::::::::::::::+:::::::::-#========:::#::::::::::::::::::::::::::::::::::::::::::::::::::-----------::::::::::::::::-:::::::::::::============:::::::::::::::::::::::::::::::::*.                                 
                                                                                                                                  ...#+::::::::::::::::::*-::::::::::::::::::::::::::::::::::::::::::::::::::::+:::::::++=========:::#:::::::::::::::::::::::::::::::::::::::::::::-::-----------:::::::::::::::-::::::::::::::::#==========:::::::::::::::::::::::::::::::::-:                                 
                                                                                                                                  .%+:::::::::::::::::-=:::::::::::::::::::::::::::::::::::::::::::::::::::::::::+:::::%==========-:::=+-::::::::::::::::::::::::::::::::::::::::+==------:----:::::::::::::::-:::::::::::::::::::#=========.:::::::::::::::::::::::::::::::::*                                 
                                                                                                                                 *+:::::::::::::::::=-:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::=:::%=+=========:::::+-::::::::::::::::::::::::::::::::::::::#=+-----:-:::---::::::::::::--::::::::::::::::::::-*=======-:::::::::::::::::::::::::::::::::::-.                               
                                                                                                                             ..-*-:::::::::::::::::*:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::#@=============-:::*:-::::::::::::::::::::::::::::::::::::#++=--::::::::::::::::::::::-:::::::::::::::::::::::++======:=::::::::::::::::::::::::::::::::::*.. .                            
                                                                                                                           ...#+:::::::::::::::::-+:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::=##***=:==+*#*::*--::::::::::::::::::::::::::::::::::=%+++-:::::::::::::::::::::::::::::::::::::::::::::::::*======:=:::::::::::::::::::::::::::::::::::+. .                            
                                                                                                                          ..++:::::::::::::::::::+::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-+----::::::::---:::::::::::::::::::::-%+++=:::::::::::::::::::::::::::::::::::::::::::::::::::#====-:::::::::::::::::::::::::::::::::::::+..                             
                                                                                                                         .:#+:::::::::::::::::::#:::::::::::::::::::--:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-----:::::::::::---:::::::::::::::::-+=%+++=::::::::::::::::::::::::::::::::::::::::::::::::::::====::*:-:::::::::::::::::::::::::::::::::::-..                            
                                                                                                                      ...++:::::::::::::::::::::-:::::::::::::::::::-:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::*----::::::::::::----::::::::::::.+@#%@+++++-:::::::-:::::::::::-:::::::::::::::::::::::::::::::::==+*=---:::::::::::::::::::::::::::::::::::+..                            
                                                                                                                      ..*+:::::::::::::::::::::*::::::::::::::::::::-:::::::::::::::::::::::::-::::::::::::::::::::::::::::::::::::*-----::::::::::::::=+##%%%%#############################%%#*-::-:::::::::::::::::::::::::::::::::::--#---::::::::::::::::::::::::::::::::::::::... .=##*:.                  
                                                                                                                    . -++::::::::::::::::::::::%:::::::::::::::::::::::::::::::::::::::::::::--:::::::::::::::::::::::::::::::::=@:----=#%%%%%%###############%%%@@@@@@@@@@@@@@@@@@@%%%%%##############%#=::::::::::::::::::::::::::+#=-----::::::::::::::::::::::::::::::::::::::+..*+====+*=.                 
                                                                                                                    .=*=:::::::::::::::::::::::+::::::::::::::::::::::::::::::::::::::::::::==-:::::::::::::::::::::::::::::=%@@%@#%########%%#+=-:::::::::::::::::::::::::::::::::::::::::::::::::-+#*#######%#:::::::::::::::=**---------::::::::::::::::::::::::::::::::::::::::#=======#:*.                 
                                                                                                                  ...+-:::::::::::::::::::::::=-:::::::::::::::::::::::::::::::::::::::::::+=-::::::::::::::::::::::::::-%@#####%%#+---------:::::::::::::::::::::::::::::::::::::::::::::::::::::::::-----+########*==+**+====---------::::::::::::::::::::::::::::::::::::::::::::*======-::=..               
                                                                                                                 ...+:::::::::::::::::::::::::=:+:::::::::::::::::::::::::::::::::::::::-=+=--:::::::::-::::::::::.*%###*%*-----------:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::--------*%#####+*=------------::::::::::::::::::::::::::::::::::::::::::::::+=====::::..               
                                                                                                               ..:.#:::::::::::::::::::::::::::#:*::::::::::::::::::::::::::::::::::::-==**=-:::::::::=:::::::=%***-=-----------:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-----------*%#####*+----::::::::::::::::::::::--:::::::::::::::::::::::::::::-::::::.                
                                                                                                               .::#:::::::::::::::::::::::::::::*=:*:::::::::::::::::::::::::::::::::===++==::::::::*::::.#**-------------::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::------------+%######=::::::::::::::::::::--::::::::::::::::::::::::::::::::::*:::=.               
                                                                                                             . :.#:::::::::::::::::::::::::::::::#==::-::::::::::::::::::::::::::::====++*=:::::::*::-%+-------------:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::--------------%######+::::::::::::::-:-::::::::::::::::::::::::::::::::::--:::::.               
                                                                                                             ...%::::::::::::::::::::::::::::::::::===::-:::::::::::::::::::::::::====#+*=-:::::*=#----------------::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-------------=#######*::--:::::-:-:::::::::::::::::::::::::::::::::+-::::::::..              
                                                                                                          .. ..%::::::::::::::::::::::::::::::::::::@==:=*::::::::::::::::::::::-====#+*=-:--+%=----------------:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::--------------*########::-:-:::::::::::::::::::::::::::::::-*-:::::::::::::=.              
                                                                                                            ..%:::::::::::::::::::::::::::::::::::::##=-:==::::::::::::::::::::=====*+#--=#*:-----------------:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::---------------*%######*-:::::::::::::::::::::::::-**--::::::::::::::::::-.              
                                                                                                           ..#=:::::::::::::::::::::::::::::::::::::+#*:::#:::::::::::::::::::+++=*#*###+-------------------:::::::::::::::::::::::::::::::::-:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::----------------%#######-::::::::::::::::+*+=======:::::::::::::::::::::.              
                                                                                                          ..+#::::::::::::::::::::::::::::::::::::::%:::::=-:::::::::::::::::+++=####=---------------------:::::::::::::::::::::::::::::::-::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::----------------*%######***+++++***+=++++++++=------:::::::::::::::::::              
                                                                                                          .=%:::::::::::::::::::::::::::::::::::::+:::::::=*:::::::::::::::-=++*#*=----------------------::::::::::::::::::::::::::::::-::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::------------------%######*===+++++++++++=---------:::::::::::::::::::+.             
                                                                                                          +%::::::::::::::::::::::::::::::::::::*:::::::::-#-:::::::::::::++*##=-----------------------:::::::::::::::::::::::::::::-:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::------------------######%#+++++++++----:::::::-::::::::::::::::::::+.             
                                                                                                        .=%=::::::::::::::::::::::::::::::::::#::::::::::::%=::::::::::--+#**-------------------------:::::::::::::::::::::::::::=::::::::::-::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-------------------######%*++++++++:::::::::::::::::::::::::::::::-.             
                                                                                                     ....**::::::::::::::::::::::::::::::::*#::::::::::::::%==:::::::::%#==-------------------------::::::::::::::::::::::::::-:::::::::::-:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::--------------------#%####%+=+++=+:::::::::::::::::::::::::::::::-: .           
                                                                                                     ...*#:::::::::::::::::::::::::::::=*++::::::::::::::::%==::::::=%#---------------------=------:::::::::::::::::::::::::=:::::::::-:-:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-------------------=#%####%++===::::::::::::::::::::::::::::::::* .           
                                                                                                     ..*%-::::::::::::::::::::::::::*===+::::::::::::::::::%===:::#%#=---------------------=------:::::::::::::::::::::::-::::::::::-=:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::--------------------+*%###%+===-:::::::::::::::::::::::::::::::#..           
                                                                                                     ..#*:::::::::::::::::::::::-*::==+::::::::::::::::::::%===:%%#-----------------------------:::::::::::::::::::::::=::::::::::-+::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::---------------------**%###@==-:::::::::::::::::::::::::::::::=..           
                                                                                                     .*#:::::::::::::::::::::-+:::--=::::::::::::::::::::::%==%%#----------------:-------------::::::::::::::::::::::-::::::::::-=:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::----------------------==%##%+-:::::::::::::::::::::::::::::::.-.           
                                                                                                 . ..=%=:::::::::::::::::::=:::::--::::::::::::::::::::::::#@%#-----------------:---:----+----::::::::::::::::::::-::::::::::::=::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::----------------------*--%#%+::::::::::::::::::::::::::::::::%...         
                                                                                                 .  .#*:::::::::::::::::::=::::--+::::::::::::::::::::::::%%#----------------:::---:----+----:::::::::::::::::::=::::::::::-:=::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::------------------------=-+##@:::::::::::::::::::::::::::::::#.           
                                                                                                 .  +#:::::::::::::::::::=:::::-:::::-::::::::::::::::::#%#*----------------:::-------------::::::::::::::::::-::::::::::--=:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::------------------------+--##@:::::::::::::::::::::::::::::::-..         
                                                                                                  ..#*::::::::::::::::::+:::::::::::--::::::::::::::::=%#%-----------------:::--------:+--::::::::::::::::::--:::::::::--=::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::------------------------=--*#%::::::::::::::::::::::::::::::*..         
                                                                                                 ..*#::::::::::::::::::+:::::::::::---:::::::::::::::%##=-----------------::::--------=--:::::::::::::::::--:::::::::--=:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::------------------------=--*#%::::::::::::-::::::::::::::::#=.         
                                                                                                 ..#+::::::::::::::::::-*:::::::::----:::::::::::::#%##------------------==::-----------::::::::::::::::--::::::::::-+:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::------------------------------+##::::::::::--::::::::::::::::=#=.        
                                                                                                 .*#::::::::::::::::::::=#-:::::::----::::::::::::%##=------------------==::---------*-:::::::::::::::--::::::::::-+::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::--:-::::::::::-:::::::::::::::::--------------------------------=*%::::::::---::::::::::::::::-**:.. .    
                                                                                                 .#*::::::::::::::::::::::#::=:::::----:::::::::%#%#-------------------===:-----------::::::::::::::::::::::::::-*-:::::-:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::--::-:::::::---:-::::::::--------------------------------------=##:::::::---:::::::::::::::::***.. .    
                                                                                                 +#::::::::::::::::::::::::%===::*:--=-::::::::%#%=-------------------===:----------+:::::::::::::::::::::::::-*----:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-:::::::-::--:::-:-----------------------------------------------------=#%:::::---:::::::::::::::::::@**. .    
                                                                                                .*+:::::::::::::::::::::-:::#====-+#-==::::::+##*--------------------=-+:----------:=:::::::::::::::::::::::-+-::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::---:----------------::--------------------------------------------------=%%::::--:::::::::::::::::::::%%: .    
                                                                                                =#:::::::::::::::::::::=:::::+=====%===-::::%#%*--------------------==+:-----------=::::::::::::-:::::::::-==::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::--:::::::-:--------------------------::-----------------------=--------------------------*%#::--::::::::::::::::::::::-%% .    
                                                                                            . ..**::::::::::::::::::::-::::::-*====#-*==:::%#%=:-------------------==+:-----------:=::::::::::-:::::::::::+::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::--------:---------------------------------------------------------------=----------------=*%--::::::::::::::::::::::::::#%.    
                                                                                            . ..*-::::::::::::::::::::::::::::@=++:---#=-=###---------------------==++-------------::::::::::::::::::::=*:-::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-------------------------------------------------------------------------------------------##::::::::::::::::::::::::::::%*  . 
                                                                                              .**:::::::::::::::::::-:::::::::*-:::---%+##%+----------------------=+*:-----------:-::::::::-:::::::::-*-:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::--::------------------------------------------------------------------------------------------##:::::--:::::::::::::::::::::%:.  
                                                                                              .*-:::::::::::::::::::+::::::=:.::::::-=%%#%=----------------------=+=-----------:-:=::::::-::::::::::-+::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-::::::::-------------------------------------------------------------------------------------------=--*#-::-:::::::::::::::::::::::::@.. 
                                                                                             .=+:::::::::::::::::::+::::=:::::::::::-###%:-----------------------+-+-----------:::-:::::::::::::::-*:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-:-::::::::--------------------------------------------------------------------------------------------=---#%:--:::::::::::::::::::::::::.%:.
                                                                                            ..*:::::::::::::::::::::::=::::::::::::::%#%-----------------------:==+-----------:=::::::-::::::::::+=:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::--=::::--::::-------------:-----------------------------------------------------------------------------------=**-::::::::::::::::::::::::::::*.
                                                                                            ..*:::::::::::-:::::::-::-::::::::::::::%##-----------------------:-=+-----------:-::-:::::::::::::-+::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-==:::-:------------------:-----------------------------------------------------------:---------------------------*#::::::::::::::::::::::::::::::*
                                                                                            .=-:::::::::::-:::::-=-:.::::::::::::::%##-----------------------::==+----------::-::::::::::::::-*-::::::::::::::::::::::::-::::::::::::::::::::::::::::::::::=--:::::-------------------:-------------------=--------------------------------------------------=------------------##:::::::::::::::::::::::::::::-
                                                                                            -*:::::::::::::::::---::::::::::::::::%##-----------------------::+-+-----------:=::::::::::::::=+::::::::::::::::::::::::::::::::::::::::::::::::::::::::::==-::::-::::-----------::----:----------------------*-------------------------------------------------------------=-----**::::::::::::::::::::::::::::::
                                                                                            :+:-:::::::::::::::-::-::::::::::::::###-----------------------::==++----------:::::=:::::::::-*-:::::::::::::::::::::::-::::::::::::::::::::::::::::::::-+::::::::-::::::-------:::---:-------------------------%*-----------------------------------------------=-----------==-----#*:::::::::::::::::::::::::::::
                                                                                          ..+::::::::::::-::::-+--::::::::::::::+#%------------------------::==*----------:-==:::::::::::=+::::::::::::::::::::::::::::::::::::::::::::::::::::::::+--::::::::::::::::-----::::-=::----------------------------*+=--------------------------------------------------------==-----++:::::::::::::::::::::::::::::
                                                                                          .-*:-:-:::::::::::::=-:=:::::::::--::-#%=-----------------------::#:*=---------:-::::-::::::::+-::::::::::::::::::::::--::::::::::::::::::::::::::::::=---:::::::::::::::::----:::::-::::::::::-----------------------#++----------------------------------=---------=----------=+------#-::::::::::::::::::::::::::::
                                                                                          .-:-:::::::::::::::=-::-:::::::::==-:%#*-----------------------::-+**---------:=:==::=::::::-+::::::::::::::::::::::--::::::::::::::::::::::::::::::+-+::::::::::::::::::-----:::::+:::::::::::::----------------------=++------------------------------------------------------=+------++::::::::::::::::::::::::::::
                                                                                       ...:::-::::::::::-:::-=-::=::::::::-+==%##-:---------------------:::*=*----------=::-:::=:::::+-::::::::::::::::::::::-:::::::::::::::::::::::::::::--==:::::::::::::::::::----:::::-=::::::::::::::::---------------------=+=-:---------------------------------------------------=+-------%::::::::::::::::::::::::::::
                                                                                        ..+:-:::::::::::-:::*::::-:::-::::=+=##%=-----------------------::=-**----------::-::::+::::*::::::::::::::::::::::-:::::::::::::::::::::::::::::=-+:::::::::::::::::::::---::::::=-:::::::::::::::::::::------------------=+-:---------------------------------------------------=*-------+-:::::::::::::::::::::::::-%
                                                                                        ..::+::::::::::::::-+-:::=:::-::::++##%----------------------:::::++*---------::::=-:--+::--:::::::::::::::::::::=:::::::::::::::::::::::::::::=-+:::::::::::::::::::::::--::::::+-::::::::::::::::::::::::-----------------*-:---------------------------------:-----------------=*--------#:::::::::::::::::::::::%#..
                                                                                        .#:--:::::::::::::-+:::--+::::::::++%#==-------------------::::::#-*+--------:.::::-:-:=:+:::::::::::::::::::::-:::::::::::::::::::::::::::::==+:::::::::::::::::::-::::::::::::=::::::::::::::::::::::::::::---------------+-::-------------------------------=:--------=--------=*------:-#:::::::::::::::::::+@*..   
                                                                                       ..::+:::::::::::-::-=:::::=:::::::-+%#%=:-----------------::::::::+**---------:::::-::=:-*::::::::::::::::::::-:::::::::::::::::::::::::::::==--::::::::::::::::::::::::::::::::--:::::::::::::::::::::::::::::--------------=-::--------------------------------:-----------------+*--------=-::::::::::::::+%+#%.      
                                                                                       .+:-=:::::::::::::-+:::--:::::::::=+#%-==----------------::::::::+-*=---------::-:+=::*:-::::::::::::::::::::-::::::::::::::::::::::::::::==--::::::::::::::::::::::::::::::::::-::::::::::::::::::::::::::::::--------------=-:::-------------------------------=:------=-=-------+*---------+::::::::::##+=++=%:.      
                                                                                       .-:-::::::::::::::-=:::=:*::::::::=@##=:---------------::::::::::=**--------:::-::--::=::::::::::::::::::::-::::::::::::::::::::::::::::==:-:::::::::::::::::::::::::::::::::::+:::::::::::::::::::::::::::::::--------------+-:::-------------------------------=:--------=-------+*-------:--====#%@%=+++++=-+@..      
                                                                                       =:-+:::::::::::=:-=::::-:-::::::::=#%+----------------::::::::::+=*+-------::::::-#::---:::::::::::::::::+::::::::::::::::::::::::::::-+-=:::::::::::::::::::::=::::::::::::::*:::::::::::::::::::::::::::::::---------------+-:::---------------------------------:---------------+*----------%+*@%+++++=--:-:*%.       
                                                                                    ...:::+:::::::::::::-*-::+::::::::::-@#+=--------------::::::::::::***--------::::::+:::*-=:::::::::::::::-::::::::::::::::::::::::::::=*--::::::::::::::::::::::-::::::::::::::=:::::::::::::::::::::::::::::::::--------------*-:::--------------------------------*:------=-=------=+--------:-#@+++-----------*+..      
                                                                                  .. .=:--:::::::::::-:-+::::::#::::::::-#%+--------------::::::::::::==**-------::-::::*-:::-=::::::::::::::-:::::::::::::::::::::::::::=++::::::::::::::::::::::::-::::::::::::::-::::::::::::::::::::::::::::::::::--------------*-:::---------------------------------:--------=-------+--------::==------::::::::%:.       
                                                                                  ..  -:-*:::::::::::---*=::*-:*::::::::*#++------------::::::::::::::***-------::--::::*:::::=::::::::::::=:::::::::::::::::::::::::::-++-::::::::::::::::::::::::-::::::::::::::-:::::::::::::::::::::::::::::::::::-------:------+:::::--------------------------------=:------=--------+---------:-----::::::::::-@..       
                                                                                   . =:--=::::::::::::--=::::::*.:::::::@%-------------::::::::::::::=-**------:::-::::#-::+::-::::::::::=::::::::::::::::::::::::::::+=-::::::::::::::::::::::::-:::::::::::::::=*:::::::::::::::::::::::-:::::::------------------=:::::-------------------------------==:------=-=-----=+---------:-=:::::::::::::-%.        
                                                                                    .=::=:::::::::::---+-::+=:::#:::::::#*=+---------::::::::::::::::-**=-----:::::::-:%:::=:::::::::::--:::::::::::::::::::::::::::*--::::::::::::::::::::::::-=:::::::::::::::+-::::::::::::::::::::::::=::::::------------------=-:::::---------------------------------::-------=----==+---------::-:::::::::::::*+.        
                                                                                    -:--*:::::::::::=--+:::=::::::#-:::+*-:=--------:::::::::::::::::=+*------::::::+-:*::::::::::::::=:::::::::::::::::::::::::::*--:::::::::::::::::::::::::--:::::::::::::::=:::::::::::::::::::::::::-::::::-------------------#--::::---------------------------------=:------==----++=----------:=::::::::::::**.         
                                                                                  . +::*-:::::::::::--==::--::::::::*#:%+=*--------:::::::::::::-:::-**+----=::--:-+--*=::-::-::::::-:::::::::::::::::::::::::::+-::::::::::::::::::::::::::::--::::::::::::::::+::::::::::::::::::::::::+::::::-------------------%:-:::::-=------------------------------*:------+-----**=----------:-::::::::::*#=..         
                                                                                  ..-=:-:::::::::::+--=:::=-:::::::+**%#-:+-------:-::::::::::::::::=**----=::--::--::#:::+::=:::::=::::::::::::::::::::::::::=:=::::::::::::::::::::::::::--:::::::::::::::::=+:::::::::::::::::::::::::-:::::----------:-:-------#:::::::--------------------------------*::-------=---+*=----------::::::::::*%:....         
                                                                                  .*:-#*::::::::::::--*-:-=:::::::::**#+=+--------:-::::::::::::::::+**-----::::-----++:::+::+:::-::::::::::::::::::::::::::===::::::::::::::::::::::::::::-:::::::::::::::::+::::::::::::::::::::::::::-:-:::-------------:------**:::::::--------------------------------+-:-------=---=*------------:::::::%%.               
                                                                                  .:-:.:::::::::::----=:::::::::::-:**#=:*-------:-::::::::::::::::=+*=----:::=#-----*--::::-=::-:::::::::::::::::::::-:::==+:::::::::::::::::::::::::::-:-:::::::::::::::::-:-:::::::::::::::::::::::::+-:---------------:-------%+::-::::--------------------------------=+:------==----+------------:::::%#..                
                                                                                  *:-*=:::::::::::+--==:-+-:::::::--**#==#------::-::::::::::::::::-**---=::-+*::----*-:::::=::-::::::::::::::::::::::--+=+::::::::::::::::::::::::::::-::::::::::::::::::::++:::::::::::::::::::::::::--:----------------:-------#+:-::::::-----------------------------=--*::-----+-----+------------:::@+....                
                                                                               . .--::+::::::::::----*-::=:::::::::+**+-*-------::-::::::::::::::::+**--=::-=*------*+:::*::+:::::::::::::::::::::::::==+-:::::::::::::::::::::::::::::::-::::::::::::::::-=-::::::::::::::::::::::::::-:::--------------:-------++:-:::::::-----------------------------=--*-:-----=----=+-------------::.                     
                                                                                .*:-*.:::::::::::=---=:::::::::::=:**#-:#------::-::::::::::::-::::+*---:::-*----::-*-:::*::*::::::::::::::::::::-::==*-::::::::::::::::::::::::::::-:::::::::::::::::::----:::::::::::::::::::::::::::=:::--------------:-------%*-::::::::-----------------------=--------+-:----------++-------------::.                     
                                                                              ...:::-+::::::::::-+----::=-:::::::-:**%==#-----:::=::::::::::::::::-+*--:::-*----:::**::::-:-#::::::::::::::::::----=*-:::::::::::::::::::::::::::::::-::::::::::::::::----*+:-::::::::::::::::::::::::--::-------------=:--------**:-::-::-::----------------------=--------++::---------++-------------::. .                   
                                                                                %:-#.=::::::::::----=-::=:::::::::-**+:*=-----:::-::::::::::::::::==+-=::+*---:::::*+=::::::%::::::::::::::::----++::::::::::::::::::::::::::::::-::-:::::::::::::::-----*=-::::::::::::::::::::::::::::::--------------:-------**=::::-::--:-------------------------------=+-:---------*--------------::. .                   
                                                                             ...:::=-:::::::::::+---*:::::::::::+:-**+:*-----:::=:::::::::::::::::-=-=::=*----::::=*--::+:::%::::::::::::::-:-:++-:::::::::::::::::::::::::::::::::::::::::::::::::--------:::::::::::::::::::::::::::*:::------------+:--------#*-::::::::-:-----------------------------=--+-:-----=---+---------------:: .                   
                                                                             ..#:-*.*::::::::::-----+:--:::::::::-=*#:-#----::::+::::::::::::-::::=*--:-+---::::::**-:::*:::#:::::::::::::-:-===-:::::::::::::::::::::::::::::-::::::::::::::::::-------*#:-:::::::::::::::::::::::::-::::------------::-------##*-::::::::::--------------------------------++:-----=---*----------------:...                  
                                                                             .=-::=--::::::::::------::+:::::::+:-+*%:**----:::=::::::::::::::::::=++:-++----:::::**=:::+:::+:::::::::::----=+-:::::::::::::::::::::::::::::::::-::::::::::::::--------=@::::::::::::::::::::::::::::-::::-----------+:--------##*::::::--:::----------------------=---------++::----+--=*-------------*-=:...                  
                                                                             .*:=*.+::::::::::-*----:::=:::::::-:-***-*=---:::-=:::::::::::::::::-++::+*------:::=+-::::-::--:::::::::----=*-::::::::::::::::::::::::::::::-:::::::::::::::::---------%@=:-::::::::::::::::::::::::::*::::----------=::-------#@#*::::::-:=:::--------=------------=---------=*-:----+--+*-------------#-+:...                  
                                                                           ..*-::+*+::::::::::-----+::::::::::-:--**--*----::::=::::::::::::-::::-:*:=*--------::**=:::-:::=-::::::::---=*:::::::::::::::::::::::::::::::::::-::::::::::::----------+@@#-:::::::::::::::::::-:::::::--::::---------==:-------=#@#+::::::=:-::::-------=------------+=---------*=:----+--*--------------#-+::..                  
                                                                            .+:-*.=:::::::::::+----#:--:::::::+:--*#:=+=--::::-:::::::::::::-::::=+:+*+---:---:--**=:::+:::+:::::::---:=-:::::::::::::::::::::::::::::::-::-::::::::::::==--------=-*@@:-+:::::::::::::::::-::::::::=:::::---------+::-------@@@%=::::::::=::::--------------------+=---------**::---=--*--------------#=+=:..                  
                                                                          . *-::+**-:::::::::-+----+:=*:::::::-:--*=-*+--:::::+::::::::::::::::::-*+**:------:---*-::::*:::*::--------*-::::::::::::::::::::::::::::::::::-:::::::::::*=--------+---@@*-::::::::::::::::::::::::-:::+:::::----------:-------#%@@@-::::::::-:::---------------------=+------=--*=::---=--*-------------=#++-:..                  
                                                                          .-+--*:+-:-::::::::-----+::-=::::::-:---*-=*+--:::::=:::::::::::::::::-=*+*--------:-=**+::::+-::#:-------*-:::::::::::::::::::::::::::::::-::-::::::::::-+---------=----@@*:-=:::::::::::::::::::::::::::=:::::--------+::-------@+@@@::::::::*::::---------------------=+------=--=*-:---=-=*----=--------+%+*-:..                  
                                                                        ...+---*%=::::::::::-*----*::::::::::*:---*:=*--:::::--::::::::::::-::::==**+------:----**=:::---::%:-----=-:::::::::::::::::::::::::::::::-:::=::::::::-=+--------+-------@#---:::::::::::::::::::::::-:::-:::::--------=-:-------@*-*@@+:::::::#:::::--------------------=+----------*+:---=-=+----=--------#%**-:..                  
                                                                          -=:-*-++::::::::::------#:-:::::::::-----++==-:::::+:::::::::::::-::::=+#*::---:-==:-:**::::-----#:----=-:::::::::::::::::::::::::::::::-::=:::::::--*+-------+---------%@*:==::::::::::::::::-::::::::::#:::::--------=:-------%*---@@%:::::::*:::::--------------------=+----------*-:-----*--------------%%**:::.                  
                                                                         .+=-=*%-:::::::::::=----+#:++::::::=:-----**---:::::+:::::::::::::-:::-:#*+----:-==---:**::::+----+:--*-:::::::::::::::::::::::::::::::-::-+::::::--*=------=------------@@:=-::::::::::::::::-::::::-::::=:::::-------+::-------+-----@@::::::-=:::::--------------------=+----------*+::----*--------------%%+*:-:.                  
                                                                        .*=:-+#=#-:-:::::::-*----**:+=::::::*:------*=-::::::-::::::::::::::::::+**--:--:---:---**::::*----=:=--::::::::::::::::::::::::::::::::::+::::::-+*-------=-------::::--#@%-=*::::::::::::::::::::::::::::=:::::-------::------=*------@@=-:::-+-:::::---------------------+-------=--+*::----+--------------%%++-=:.                  
                                                                        .-+-**#=:-:::::::::------*-:=-:::::::----:+=*+-:::::=:::::::::::::::::::**=-----=:-----=*-::::+---=-:--::::::::::::::::::::::::::::::+::=+::::--#+------+-------:::::::--@@:=-:::::::::::::::::::::::-::::=:::::-------+-:------*--------@#-:::-+-=::::=-------=------------+-------=---*-:---*+----=--------=%%+++=:.                  
                                                                        +=::+%=+-::::::::::*----+*:::::::::=:----:%**+-:::::*:::::::::::::::::-=**:---++-::----+*:::::---:*-:::::::::::::::::::::::::::::::-:::+::::-+*------+-------:::::::::--*%*==+::::::::::::::-=::::::::::::+:::::------=::------+-----::--=@:::::*:=:::::-------=------------*-----------*=:---*-----=--------+%%+++-:.                  
                                                                    ....==-+*#+=::::::::::-=----**:--::::::+:-----#*+=-:::::--::::::::::::-:::--*=---+---------*#::::-::--*:::::::::::::::::::::::::::::::-::+=::--#+-----=------:::::::::::::--@+=+--:::::::::::::-=:::::::::::::=::::::------------=-----::::---%+::::+:-:::::-------=------------*=----------*+:--++--------------**%=+=-:.                  
                                                                    .. *+-:+@-==::::::::::=-----**:*=::::::------=#*=--::::-::::::::::::::-:::-#*---++:------:-**::::+:---#:::::::::::::::::::::::::::::+::=+::-+*=---==-----::::::::::::::::--=%=-++:::::::::::::-=::::::::-:::::-::::::----*-:------+---::::::---#::--*-::::::--------------------*=----------=*:--*#--------------#.%=+:::.                  
                                                                      .==:#*#++-::::::::::*---=***:*=:::::-:----:*#+---::::+:::::::::::::::--:-**--*+-:-------=*-::::*---:#::::::::::::::::::::::::::::::-+::-**---+------:::::::::::::::::::--@+----::::::::::::-=-::::::::-::::=::::::-----::------#---:::::::---+-:*=*---::::--------------------*=-----------*:--*---------------%.%=+.--:                  
                                                                    ..*+:-+@*-=-:::::::::--*+:::::=*-:::::*-----:*#+=-=::::=-:::::::::::::::---*+-++----------+#:::::+--::*::::::::::::::::::::::::::-:-+=:**+--*-----:::::::::::::::::::::::--+++++:::::::::::::---:::::::-:::::+:::::-------------#---:::::::::---#:=**--=::::=-------------------*=-------=---*--**---------------%.%=+.==:.                 
                                                                    .:=+-#%*-*=::::::::::#*:::::::::-:::::=-----=+**=-=::::--::::::::::::::---+*+++-----------*#:::::=::::=::::::::::::::::::::::::+::*++*+==+----::::::::::::::::::::::::::--++-=--::::::::::::-=-::::::::-:::::::::::----+=:-----*--:::::::::::---+::+*:-=::::--------------------*=-------=---*--**-----=---------%.#=+.++:.                 
                                                                   ..**:+%%*-=::::--:::::*:::===---:::+::::----:+#**==::::=::::::::::::::::---**++------------*+::::--:::::::::::::::::::::::::::-::**+*=+---:::::::::::::::::::::::::::::::---:=++:::::::::::::=--:::::::-:::::-:::::------:-----+--:::::::::::::---*:**-:=::::--------------------*+-------=---++=*=--------------+#.*=+.+=:. .               
                                                                   .===-*%*-=+::::--::::+*:-=--::----:::=+-----:+%=*-=-:::+::::::::::::::::--=+*++:-----------*=::::-::::-::::::::::::::::::::::::***#---:::::::::::::::::::::::::::::::::::---+--=:::::::::::-----:::::::+:::::+::::-----=------==-::::::::::::::---%:**--::::::-------------------++-------=---=%**--------------=*+.+-+.=::. ..              
                                                                 . .**-+%%*-+::::::-::::+#:==-:::::---:::*------=#-+-+-:::+-:::::::::::::----+*++------------=#:::::+::::+::::::::::::::::::::=:*#+--::::::::::::::::::::::::::::::::::::::----=++:::::::::::-=----:::::::-::::::::::----++----=-+-:::::::::::::::---#:++---:::::-------------------++-------=---=@**------=-------==-.--+.=.:....              
                                                              .....=+++-##-=+:::::--:::--#:=--:::::::--:::==---++#-=-+-:::--:::::::::::::----+**+------------+*:::::+::::#::::::::::::::::::=:-=---::::::::::::::::::::::::::::::::::::::::--:====:::::::::::-----:::::::*::::::::::-----+------*-::::::::::::::::---#-*=---:::::-------=-----------=+-------=----@+------==------==-..==+ -::..                
                                                                 .-**-++#+-*-:::::--:::*-#:=-:--=-::::---::**-:#*#-===-::=:::::::::::::::----+**----------=--+=:::::+::::#::::::::::::::::+::=---::::::::::::::::::::::::::::::::::::::::::--*=++-:::::::::::+----::::::--:::::+:::-----=------*-:::::::::::::::::---#=*----+::::-------=-----------=+-----------=@#--------------+=-..+-+ .+=..                
                                                              ....=*++-#%--*:::::::-:::=-#:---=====-:-----:-+%:=**-+=--::+-:::::::::::::::---=**--------=---:+-:::::-::-:=:::::::::::::+#::+--::::::::::::::::::::::::::::::::::::::::::::-=+-++=::::::::::-==----::::::*::::::-:::----=+-----*-::::::::::::::::::---**@----=::::-------=-----------=+--------=--*@*------=------==--..*-+..#+:.                
                                                               ..=+*=--*=-+=::::::--::+--%::--=+=--=-::----:=%=+*+-=+-:::+-::::::::::::::----=**----------:::*:::::::::+::::::::::::==#:-+--::::::::::::::::::::::::::::::::::::::::::::::-:#==+-:::::::::-==------::::-=:::::-:::----=+-----*-:::::::::::::::::::---=#@----:::::-------=-----------=+--------=--*@------==------=---..*-+..#+:.                
                                                               .:=**+:*#--+::::::--:::*-=#::::===-=---::----:-*%%=--*--::--::::::::::::::---=+*=-----+--::::=*:::::-:::+=::::::::+=-#-:+--::::::::::::::::::::::::::::::::::::::::::::::::=*-++=::::::::::==-------::::+::::::=::-----*:----*-::::::::::::::::::::----%##----::::-------=-----------=+--------=-**%-------------+==--..*-+..#-:.                
                                                              ..=:%+--#--=+:::::---::---=#::::==+----=-::---::*%%---+-::-::::::::::::::::----*+--=-=---:::::++:::::+:::=+:::::+=--*-:+--:::::::::::::::::::::::::::::::::::::::::::::::::--*-++-:::::::::==--------::::+::::::::-----=-----*-:::::::::::::::::::::--=:#-%----:::::-------------------+--------=-**=------=------=---=:.*-+ .+-:.                
                                                              .==*#=-*#--=-:::::--:::*--=*::::-===------::--=:==%--+=-::=:-::::::::::::::---+*+--==-----::::+-:::::+::::+::+=---=-:+-:::::::::::::::::::::::::::::::::::::::::::::::::::::#+++=:::::::::-=---------:::=::::::-:------+----+:::::::::::::::::::::::--=:---+---=:::::------------------+--------=**#-------=-----*=---=:.*-* ..::.                
                                                          .. .:=.%*--#---#::::::--:::---=*::-::-====----=----=::%--+--::+-::::::::::::::----+*+-*--:::::::--#::::::+::--*::-----:+-:::::::::::::::::::::::::::::::::::::::::::::::::::::-+--==-::::::::-=----------:::=::::::=:----=+----+::::::::::::::::::::::::--+=:--*---*::::-------------------+--------++*+------------------=: *-#...::                 
                                                          ....=.=#--*=--=+::::::--::*----*::-:::-+=------=---#-:#-=#--::+-::::::::::::::----++#=:::::::::::=*::::-=-=*+=-:--=-:=-::::::::::::::::::::::::::::::::::::::::::::::::::::::::++++=::::::::--=:::-------::--:::::::-----+:--=+:::::::::::::::::::::::::--+-::--=--*::::-------------------+-------=#**-------+-----*=---==:.+-#.  :-.                
                                                          . .==.@+--+=--+::::::--:::=----*::::::::+----------#-+*-+*--:-=-::::::::::::::-:--+%+::::::::::::=+:::::+---#+=--:-==-:::::::::::::::::::::::::::::::::::::::::::::::::::::::-*-=+=-::::::::=+-::--------::+::::::+----------=-:::::::::::::::::::::::::--+-::--*--+:::::------------------+-------=#**-------=----==--=-==-.+-#.  =-.                
                                                          ...=.#%--%-=-=*:::::---::+-----*:::-::::-==--------+:=+-++--:---::::::::::::::-:--#*=::::::::::::+=:::::*---+=::-=::=+::::::++:-::::::::::::::::::::::::::::::-::::::::::::::-===+=::::::::=+--:---------:-+::::::------=--==:::::::::::::::::::::::::::--+::::----=::::-:-----------------+-------***-------=-----+-=-====-.+-#. .*=.                
                                                          ..=-.@=-:----=-:::::--:::+-----*:::::::::--=------+-:-=-*=--:=-:::::::::::::::-:-:#+=-::::::::::+*=:::::#---==:::::::::::::-*+::::::+=-::::::::::::::::::-%@#-::::::::::::::-*-*+=-:::::::==:------------:=-:::::=----=+--=+::::::::::::::::::::::::::::--=:::::-*---:::-:-----------------+-------*#+-------+----+--=======.+-#.. #=.                
                                                          .-=.#%----=--*::::::--::=-:----*::::-:::::--=-----#:--=-#----+-:::::::::::::::-::-*+---::-:--+---+-:::::=+:-*=:::::::::::::::::::::::::::::::=*######**+:::::::::::::::::::-:--=+=:::::::=--:::----------:*::::::=---==---=:::::::::::::::::::::::::::::---:::::-=--+:::-:-----=-----------+=-----+=#=-----------=+-=======*.=-#.. #=.                
                                                       . ..=..@--------*:::::---::*-:::--+=:::--:::::--==---%:---=%----=-:::--::-:::::::-:-:++---==*-=-----+::::::--:*=::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-*-++=--:::::--=:--------------+:::::----==-===::::::::::::::::::::::::::::::----:::::-+-*:::-:-----=-----------+------***-------*----==========##=-*  .*=. .              
                                                     .   .=-.%%----=--*-:::::--::-=::::--=+::::-::::::--:---#:-:-=#:---=-:---::::--------::-++-+-**=--=--=:=----::%--*::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-:=-++--:::::--+-:-------------+-:::::+---==*=+.::::::::::::::::::::::::::::::--:=:::::-+-*-::-------=-----------+-----=+*=-----------++=-=======*@=-* . =-...              
                                                     ....-=..@--------#:::::---::*=::::---*::::--:::::-:::--=:---+*---=+-::::--------::--==+%%=--=*+@------=::-::=+#+#:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+--++:::::--=+----------------#::::-:----+==+::::::::::::::::::::::::::::::::--:+:::::--=+=::-+-----+----------=+-----+*+-------+----++==-======+@--+. .-:...              
                                                     ....=..%#----=--=+::::---:::+:::::-:-*::::--::::-====-+:::--*+---++-::::::::------====+%*--+#%*+*@#=:*--::::++##*:-++:::::::::::::::::::::::::::::::::::::::::::::::::::::::::-:=-=+-::::::++-:--------------++-:-:-*---==:+:::::::::::::::::::::::::::::::::--:+::::::-++=:::+-----+----------=+-----**+-----------#+==---=====+@-=-. .:::.               
                                                     . .==.=@-----=--*--::----::+=::::----#=:::-:-:::-----=#:::-=*=---+=--:::::::::::--==-=***#%%@@%*--+@@*-===--#=**#::-::-*==:::::::::::::::::::::::::::::::::::::::::::::::::::::---=+::::::==-----------------+---:-----*-:*:::::::::::::::::::::::::::::::::::-:+::::::--+-:::------=----------++=--==*+-------+---=-*=----======@-=.. ..::.               
                                                     ..-=..%*----=--=#::::---:::*-::::----*#-:::-:-:::-----%:-=-+*------::::::::::::::-=--=*+**+=-=*%@*****+=====*+@#*==------::+=+=::::::::::::::::::::::::::::::::::::::::::::::--+-++-:::::-==----------------=#:-::-=--=-:*::::::::::::::::::::::::::::::::::::-:+:::::::-+=:::------=----------++=---=+=----------==+#-----======@-+.. ..::.               
                                                     ..=:.=%-----=--+=:::----::==:::::----+-#*::::--::-----#:-=++*----:-::::::::::::::--=-=#+-++****++++**==+++=+@@@%+-*@+---::-....+==::::::::::::::::::::::::::::::::::::::::::--:--:+--:::-==-----------------+*--::-===-:+:::::::::::::::::::::::::::::::::::::-:+:::::::----::-:---------------++-===*+=------=---*=+#------=====@-*..   -: .              
                                                     .==..%+-----=--*-::-----::*-:::::---=-:-*#::::---::--=+:--=**---=-:::::::::::::::--===*+#======+*#***---====%@@@+-**@@*##+--:...::==--::::::::::::::::::::::::::::::::::::::----=+:::::-=+------------------+------=::-=::::::::::::::::::::::::::::::::::::::-:+:::::::--++::::---------------++====+=------*---+=*=+------=====%-*..   -- .              
                                                .....-=..+#-----=--+*-------::=+:::::::--*-:-=%#::::::-:::=-:---*#---+=:-::::::::::::-==:++*++========#%#+-----=#%##*--***@@@@@+*#::---::==--::::::::::::::::::::::::::::::::::::::=--+:----=+------------------+*--:-:+-:--:::::::::::::::::::::::::::::::::::::::-:+::::::::-**::::---------------+*-==*==---------=+=#*-------=====%-*..  .=-..              
                                                 ....=:..@+-----=--+--------::*-::::::--=-:::***#=::::::--*::=--*#---+:--:::::::::::::-=--**+---=====+#%+-------*++#*=*++++%@@@@@@+=*:----:-=--:::::::::::::::::::::::::::::::::----+=::::-==------------------=++--:----+#-:::::::::::::::::::::::::::::::::::::::-:=::::::::-*#:::------=---------=*====-------=--=**=#%-------=====%-*     =:..              
                                                ....==..+%-----=--+*-------::=+:::::::--*=:::%*++*#:::::::%::::-=*=--+=-::::::::::::::==--+##==:---=-+#%=-------+++*--++**+++#@@@@@@%*+--:----===:::::::::::::::::::::::::::::::::+-=---:--=-------------------++=-:::+-+::-=#:::::::::::::::::::::::::::::::::::::=:=:::::::::+*-::------=---------++==*=------+--=**+=*#-------=====%-#     =:..              
                                                ...:=...@------=--=*-------::*-:::::::-==::-+#**--=%::::::%::-=:=+=--==-::::::::::::::----+###-:-::::-*#+-------=+++--:::=+++**#@@@@@%%*==-----:+=:::::::::::::::::::::::::::::-::=+=::::-=-------------------+++-:::::+:::::-:*+::::::::::::::::::::::::::::::::::=:=:::::::::-#=-:=-----=---------++===---------=***==+=-------=====%-#    .-:..              
                                                ...=:..+*-----==-=+-------::=+::::::::-#-:::%*+*----%:::::#::=--*+=--==-:::::::::::::-:---==#%*:::-:::+#=------===+=-=:.:-+++++*#%%@%@@%##----:--:=-::::::::::::::::::::::::::::-=-=--:---=------------------+=++::::=-::::::::+:::**::::::::::::::::::::::::::::::=:=:::::::::-#*-:=-----+---------++=+=--------=+*=*=++--------=====%-*    .-:..              
                                                ..==...@------=--+*-------::*-:::::::--+-:::#**=----+*-:::*:::*=#==-==--:::::::::::::-----++=*%--:::::=*-:-----=--*--==+#%@%*++++++**%%@%##+-::---:=-:::::::::::::::::::::::::--:++=:-:--+----------------:-+=++=--::+::::::::::::-*-:::==:::::::::::::::::::::::::=:-:::::::::-**-:=-----+---------+===------+-=+*=+*=**:-------=====*-=    .::..              
                                                .:=...#*-----==-==+-------:=*::::::::-%::::**+*----=+=*=::=::::+*==-=---::::::::::-:--=--==+==*%-::::::+=:-----=-==::=*@%+%@%+++++++++++*%%#*=--:---:-::::::::::::::::::::::::-:-=+:::-==------------------=--==-:::=::::::::::::::::::-=-::=+:::::::::::::::::::::-:-:::::::::-+*--=-----+--------===+------+--=*==+++#*--------======--    .::..              
                                                .=-..+@------==-**-------::+-::::::::-*=::-%**----+*-=-%-:::::::+==-+-:-::::::::::----+=--====--%=:::::+------:--+----*@%#@%*====++++++*++**+*####*=-:=+#*::::::::::::::::::::-:++-::--=----------------:----====--:+::::::::::::::::::::::::==:-*:::::::::::::::::-:::::::::::--*-:=----=+--------+=+------+--=*+==+=+%+--------========.   .::..              
                                             ...==..+#+-----==-=-#-------:-#-:::::::-#::::-*+*=---+++---%-::::::=+=-+-::::::::::-----=+---=-==-+-#+::-:=--------=+----=#@%*=----===++++++*+***++***+=::=:::::::::::::::::::::-::+=----=----------------------==+--:-:::::::::::::::::::::::::::::-+.:*:::::::::::::-:::::::::::--#--=----=+--------*-+-----=--+**===*=+%-:-------========.....::..              
                                           . ..:=..:+%------==-+=+------::=-::::::::==.:::@**==---*+=----%::::::=+--+-:-:::::::-:----==-=-=-=-----+*:-:-::---==-=+-----===--=------===++*%%*+++=:=::::::-::::::::::::::::::::::=+-:--=-----------------:-----==+-:-=::::::::::::::::::::::::::::::::::+-:*-::::::::-:::::::::::--**-=----=+--------+*-----=--+**====*==%-:------=========. . .::..              
                                           ....=-..+**------=-=+#-------:-#-::::::::#=:::-#**==---*------#::::::=+--+:--:::------=----=---=-=--===---:=:::----=-===-------=----------==+%%*+##**+++::::::::::::::::::::::::::-:*--:-=-----------------------=+-+----::::::::::::::::::::::::::::::::::::::-+:*+::::-:::::::::::--=*-=----=+-------+*=-------#**=====*++#--------=-====++=.... -:.               
                                           ...==..+=%------====-#-------:-+-:::::::=+::::#**===--***-----#::-:::==--=:--::-----=---:==----+--::---+--:=-=-----++*--------=------------=#%+===*##*+=+:::::-::::::::::::::::::-::-::-==------------==---------+--=:--:::::::::::::::::::::::::::::::::::::::::::::++#*-:-::::::::--=#:=----==-------+-------=#**======*+++--------=-====#+-:.  .--:               
                                             :=..+=+#------=--*=---------%--:::::::#:::::#*+===--#==-----%:::##:+=--=:::::---=--:----+----+-:------=-=+::------=+--=--==-==-----=---+**---====+****=+:::::::::::::::::::::::-:=::-==-----------+=---------==--=+--+::::::::::::::::::::::::::::::::::::::::::::::::--:==@%%##******:=----==------==----=-=***=======*+#---------=-====#+:=.  .--:.              
                                           ..=-.++=%------==+==#---------+:-::::::++::::=**====--**------*::---%*---=-::::------=----+=---+=-:::-----+:------=-==---=+++==----==+++*=-:::---===+**+**#+:::::::::::::::::::::-:-:--+****------+=-:--------+----=-:--::::::::::::::::::::::::::::::::::::::::::::::::---*::::::-++=-*-------=------*----=-****========++%---------=-====**.=.  .-=:.              
                                           .==.:+==#------===+-=------::#--:::::::#:::::%**====-#*+-------::---+*--=-=-::-:---=-----=+---=+-:::-:---**=--------+--=--=---=====-----:-::::::--====*++++++*#=::::::::::::::::--:+###*******:-+-----------+--::--+-:-:::::::::::::::::::::::::::::::::::::::::::::::::-=-*:::::::::--*-------------*----+-#+**=========++@---------=-====+#.=... :=:               
                                           :=.:+==#+-----====*%---------*--:--:::#:::::-#*=====-%*-------:::---**=-+-==:---------=--=+---+=::::-::-:===-=---=-=+----------------------::::::---===++*::::::::::::::::::::::+##*:::....:+**------------=--:::--=--=:::::::::::::::::::::::::::::::::::+:::::::::::::-=:+:::::::::--+------------*----*%%%+*-=========++#---------=-=====#.=... :=: .             
                                      .....==.*===#------=+===+--------*-------:-::::::##+=====++*-------:::---*#=-+:==:::----------=+---+=::-:-:::-+=----=-+**=------------------------:-::::---===**:::::::::::::::::::++-::------::..-*----------+--:::::--+--=:::::::::::::::::::::::::::::::::*%::::::::::::::-=-+:::::::::--%:----------*---=*#%%%+-===========*---------==--====#:=- ..:=:.              
                                       ...==.#+==+*-----====*#--------:*-------:#::::::#*======%*=-------:::---*#=-+:=::::::-------===-=-+-:-::-:--:+----=-=%+*-=+=#=-----------------:----::::---==::#:::::::::::::::+*=:::--------:::..:+*------+--:::::::--=:-:::::::::--=+:::......:-:::::::%%%#::--:::::::::::=#:=:::::::::-##::----=---*---****%%*--===========*-:-------==--====#-:=....-:.              
                                       . .=.:+===%------====**--------*--------#-:::::=#+=====+#+--------:::--*##--+-=:::::::----=--+=--=+:-:-:=:-::=-=-=-=-=*=-==--=-====+---------==-:--:::::::---::.-:::::::::::=+=..:::---------::::..:-*---=-::::::::::-----::::-=-+--:-::--:--:--::--###@%+**-::::::::::=::##*+:-:::::::::=%*------+--#--*#-***%%---===========*---------==--====#=.=....-:.              
                                       ..==.%====*-----=*==+#--------+#-------*:::::::#*======#**--------:::#+=*#--==-::::::::------+-==-+:---:-:--+=-=-=--+-*----*#.==-=--*%==+==----=*+:--::::::::::::::::::::-++-..::::::-------::::::.:::=+-::::::::::::-=--=::=+=:---::--=+#**=-+#%%%##%++*++=*=---:::-#%%@**--+---::::::::#+*=-----=-#-*#*--**%#%=--===========*----------=--===-#*.=....-:.              
                                      ..==.#====#+-----+===##--------+-------=-::::::=**======#=--------::-::+@##--:+-::::::--:-----*----+----:----+==-----=++-----.....-=----=-=--*-==------::::::::::::::::-++=:..:::::::::------::::::::::::=-:::::::::::-+:-=+=-:-:--++=+##%%@@@@@@#**+****%%#%@@@@@@%@@@++*+::-=:-=:::::::#=+*-------+*#-=#--+*%#%=--===========*---------==--===-#*.=:...-:.              
                                      .:=.=*====*-----=+=-+#---------*---:---=:::::--#*======##+-------==:::@@***=-:+-::::--:-::----+--==+:-:------+------==*:--------:-----------==-------::::::::::::::::+*+:..:::::::::::::-----::::::::::::::=::::::::::-+:-:::--+-+#*#####%%%%@%***+*+*@@@@@@@@@@#****+***#=-=-=-:+::::::#--++-----*%#---**--=##*%---===========+---------==--===-#=.=- ..-:.              
                                      .==.%=====*-----*===##--------+-------=-::::--=#=======%+=------%:-:::@--**--:+=::-:-::::=----+==--*--=----:=+-----=+=+-------------:-::--:-:--::::::::::::-::::::-**-..:::::::::::::::::::::::::::::::::::::=-::-::::=+:::=--***###########**+++++++++++++****++++***@@@@%%%#*=-+:::::*---++---=##-----*=---@**#:---==========----------===--==-#-.:=...-:.              
                                  ....==.%=====*-----=+===%---------#------++::::---#*======#%=-----=*::-:-:---*+--:+==-:::::=::--==+----+-::-----==------=*-----:-:--=:------:=-:--:::::::::::-:::::-**+:..:::::::::::::::::::::::::::::::::::::::::=-:::::++-=*****#*****+-:=+++++++++++++++++++++++#***@@@%***%%##*=++-:-=----*---**------=#----%***:---==========----------===--==-#-..=...::.              
                                  ....=:+#=====*----+====##--------+------*-::::---=#======+#*=----=*:::-:::---*+=:-+=::::--:::--=--+--===:---::--=---=--+=+----------------:=-:-:-:::::::-::-:::--**+:..::::::::::::::::::::::::::::::::::::::::::::::--:::---*#*+****++++=::+%%@%*+++++++++++++++++*%#+===+*#%%%%##*==**#=++:--+-#%=-------**---#***#:---==========----------===--==-#:+.=...::               
                                  . .==:%=====++----**==+%---------%-----*::::-----*+======%%=----=#::::::::---*=-:-+-::--:::-------+=--==-:::---=+------*+------=-:----::------:-:::::::::-::-=**+:..::::::::::::::::::::::::::::::::::::::::::::::::::::--===*##%%=========#@#+%@#============++++*#*==========-+++*--**+=**--=*++%--------#+---@****:---==========----------===--===*:*.=...=:               
                                  ..-=.%======*---=#====#%--------*:----*::::-----#*======*##----#%:::::::-:---*=-:-+-=:::::------==+--=+:::-::::++=-----=+:---=-----:--=:-:=:-:=:::::-::-:=+**=..::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-==*-=*#--------=#@%%@%+=----------====#*+==========+***#*-:#--==++#++++#--------#=--=****#:---==========----------===---==*:*.=-..+:.              
                                  ..=:*#======*---*+*==+%---------%----*--::-----=========%#=--=@%::::::::-:---#=-:-+-::::::----==--++--+::-::--===-----**-=-=---:-::-=--:---:--::::-::=***+:..:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::.::-=++#=--------+#%#+=--------------+#==----=====+**@%+-+:-=:--++*++++@*-------**---%*****----==========----------===---==+:=.-= .*:..             
                                  .==:@======+=--+#-===##--------*=---*=::-------*=======%##--@@%:::::::::=:*--#=:--+-:::::---=----++---+::::--:+=------*+-=-=:::::=-::---::::-::-++**+-:.::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::..::-+*+=------------------------**=-:::----=-*@@%---=**+-:++++++++++@+-------%*--=#****+----=========-----------===-:-==+::.:=..*:..             
                             .   .-=.%=======*---%*+==*%=--------#---*=::-------#=======##*=@@%%::::::::::::%--#-:--+::::::--------=+---*:::-::=+=-=---+#-=--::::=:::-:-::-=+++++=-::.::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::...:::=*#*----------------==+**=-:::::::=:**-:=:+:-%%**--#+++++++++#--------*+--%#*-**-----========*-----------===-:-===::-.=..*:.              
                              ....=:+#=======+--%*=+=+%*--------*=--+=::-------*=======*%#@@%##:::::::::::::%%-#-:--+:::::::-------=+---+:-::=****#+=-=*+:--::--:::-=+++++=-::.::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::....::::-***+------====++++=----:::----::-+-::::=%++++--++++#++++*+-------**---@%*-**:-----=======+-----------===-:-===-:+.=..*:               
                             ....==+@=======*--=*#===*%+--------#--*+---------=+======+#@@%#%%::::::::::::::*@+#-:--+:::::::::-----=+=--*:+###**###%%%%%%###*###**+=-:..::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-***++=+++====------------:-*-::::::+#+++++=--+++%++++%+-------%*--#:@#-**:-----=======+-----------===-:-===-:*.=-:+:               
                             ...-=:%+=======#--*=+*=*%=--------*+-++----------*======+@@%%%@@::::::::::::::::*%#::--+:::::::::-----=+-=*#%#*=:-----:=++++++++--:.::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-=-:::::::::::::::::::::::::::::::::::::::::::+*+=----------=--==--+*=-:::::::+@@*+++++--#++@++++@+:------#*--%.@#-=*:-----=======#----------====-:--===:+.==:+..              
                             ...=-+%========+-%*#-=**#=-------=*-+=----------*=====+@@%%##@%::::::::::::::::::*%:---*:::::::::----=+***=-:::---------::.:-=-::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::#++=:::::::::::::::::::::::::::::::::::::::::::::***--==+=-++=--==---:-::::::-+%@@%+++++--+++%++++#::-----+*=-+..@%--*:-----======+=----------====----==+:-.:=:+..              
                             ..===@==-=====+-=-***=*#=--------*===----------#====%@@#####@@::::::::::::::::::::%:---*:::::::::--=++=-::::::-----------:...:---::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::#@%##==+=-::::::::::::::::::::::::::::::::::::::::::+*#%%==---=+-----:-:::::::==%@%@%#++++=--*+%++++#::-----#*--%..#%--*:-----======+-----------====-=--==*:-:.=-=...             
              ..........   ...-==#*========#-#:*==***=-------+#-=----------*==+@@######%%@@::::::::::::::-:::::+:---*:::::::=##*+:::::::::-:-----------::...::-:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::#@%%-:::-::===::::::::::::::::::::::::::::::::::::::::-+=+=**----#::--:--::::::=+%%%@%@%++++*--*+%+++*+::-----#*---.:#@--*:-----=======-----------====----==#::=.===...             
          ....-***+==+#***+...==+%--=======+*.+#+***---------*-=:---------*=*@@###%%%%%#@%@::::::::::::::-:::::::---*:--:#%%#:...::::::::::----------:::::......::::::::::::::::::::::::::::::::::::::::::::::::::::::::-*###-::::-::::::-#*-:-::::::::::::::::::::::::::::::::::-++-----------:--:-::::::++%%%%%@@@#++++--=*#+++#=::----=*+-#:.=#@#-+:------====++-----------====-=--==%::*.=+-. .             
     . ....*-::::::::::--=++++**%=-=======+**.#*+*#*--------*#*----------*#@@###%%%%%%%%@%@::::::::::::::-::::::----**%%#+......::::::::::::::::::::::::::...  ...:::::::::::::::::::::::::::::::::::::::::::::::::::=**+=-:::::-::::-:::::=#*++=::::::::::::::::::::::::::::::::-==-----------:=-::::::-*+%%%%%%@@@%*++++--#*+++%::::---+*=-#..+**#-*:------====**-----------====-=--==#::+.=*:..              
      ..:*+::::::::::::::----==+*+**+=====**..#=***---------#+--------:=%@@%%#%#%%%%%%%#@@@::::::::::::::-::::::=*###*=:.....::::::::::::::::::::::::::::..... .....::::::::::::::::::::::::::::::::::::::::::::::=++-:-::::::-:::-:::-:::-:::+##*+=:::::::-:::::::::::::::::::::-+=-----=---------::::-==%%%%%%%%@@@#++++--=*+++%::::---%*-=#..#++@=*:------====*#-----------====-=--==#::=.:*:..              
      ..*-::::::::::::::::::::--==++++***=+- :##*#=--------*:---------+@@@###%%%%%%%%%%#@@@::::::::::::::=-=++++-.:.......:::::::::::::::::::::::::::::::......  ....::::::::::::::::::::::::::::::::::::::::::-++=::-::::::=::-::::-:::::::::::--+*==-:::--:::::::::::::::::::::-+=------:--=------::==+%%%%%%%%%%@@@++++=--#+++*::::---#*-%# .*++%-+:------===*++-----------====-+--==*:::..#:..              
     ..+*=*-::::::::::::::::::::::=++++++=#**#+**#-------=%----------*@@%##%%%%%%%%%%%%%@@@:::::::::-===-::...........::::::::::::::::::::::::::::::::::.......     ...::::::::::::::::::::::::::::::::::::-=+=:=:-:::::::-::-:::::::::-::::::-:=-:---:-++--::::::::::::::::::::::+=------------------==%%%%%%%%%%%@@@*++++---*+++::::---*+-++..%++**=:------===*=------------====-*--==*:::-.%: .              
     ..%==*+::::::::::::::::::-:::::::*++====+###-------=*----------#@%###%%%%%%%%%%%#%%@@%:::+#=+:...............:::::::::::::::::::::::::::::::::::::........     . ..::::::::::::::::::::::::::::::::-++-::-:=::::::.-:-::::-:::::::::::-::=::--------++=::::::::::::::::::::::=+-=---:=-:--------==%%%%%%%%%%%%%@@@++++=--*++=:::::-+*=+++..%+++%=:------===*+------------====-*--==*:::*.%: .              
     .*%===*:::::::::::::::::::---:::::::**=++++++---+++-----------*@###%%%%%%%%%%%%#%#*#*+:.......  .......:::::::::::::::::::::::::::::::::::::::::::.........    .....::::::::::::::::::::::::::::-++-:::-:::::::::-..::::-:::::::::::::--:--::-----:--+=::::::::::::::::::::::=*=-----:----:----=*@@%%%%%%%%%%%%%@@+++++---*+-:::::-**-#++.=*+++%-:-------==**------------====-*--==*=::*.#: .              
      %#===%:::::::::::::::::::------:::::::**+++++++*::---------=%%###%%%%%%#%%%#**:..............:::::::::::::::::::::::::::::::::::::::::::::::::::::..................:::::::::::::::::::::::::=+=:::::-::::::::--....::::::::::::-::=:::-:::-=-::-:--++-:::::::::::::::::::::-=*--=-------=::-=**%%%%%%%%%%%%%%%%@%++++#---*-:::::-#*-*+*.=+++++-:-------=**#--*#*******+====:+---=**::+.*- ..             
     .%#===##::::::::::::::::-----------::::::-***#*:::----------%###%%%%#*=-:............:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::..............::.::::::::::::::::::::::-=+-:::::::::::::::::::::::::::::::-:::=:::-:::--:--::-:-:*%+:::::::::::::::::::::--*==:-------:-==****%@%%%%%%%%%%%%@@@++++#=--*=::::::#*+++*.++++++-:-------=**##*****#######+==:+---=*%::-.==...             
     .#*====#::::::::::::::----------------::::::%=::--------=+**#+=-::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::..::::::::::::::::::::::::::::::+*-:::::::::::::::::::-::::::::::-:::-::::::::=-:::::----:-:#+-:::::::::::::::::::::-+#---:-----=-=*****#@%%%%%%%%%%%%@%@#=++#+---*::::::**%++*.*+++++::-----=+**+=------------+##=:+---=*%:::--=...             
      *#====#*:::::::::::::--------------------=#:::-=+*#%*==---:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-:=*-::::::::::::::::::-:::::::::::::::=::::::::=:::::-----:---:**-::::::::::::::::::--:-*%----=--=-=+*******%@%%%%%%%%%%%%@@@+++#++---*::::-*=*+**:#+++++=+++==---------------------=*-=---=*%:::=:=-..             
  ....**====*#=::::::::::------:-:-:----------%=%*:::-*--:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::.::--:::::--*+:::::::::::::::::::::::-=-::::::::::::::::-=::::::--::--=:--:-++:::::::::::::::::----==*#-=--=--=+*********@%%%%%%%%%%%%+*#***++++++++========-----------------::::::::------------=*=---=*@:::+:==..             
..*%%%%%%#*##%#+=----:--------==+++*#*-:.::::::::::::*::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::...:---:---+*::::::::::::::::::::::::::::::::::::::-:-:-::::::--::::=---:----+:::::::::::::::-:---====#*-=---++**********@@%%%%%%%%%##+--:::::::::::::::::::::::::::::::::::::::::::::::----------++---=*@:::*:-=..             
%%*+-.... .....................:::+::::::::::::::::::+::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::....:------+*:::::::::::::::::::::::::::::::::::::::-:::::::--:::---:----::--++::::::::::::-------===--*=--++*************@@%%%@%%##=--::::::::::::::::::::::::::::::::::::::::::::::::::----------+---=*%=::-..=.              
...............................:::-:::::::::::-::::::+:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::....:-----*=:::::::::::::::::::::::::::::::::::::::::::::--:::-:-:--::::-=:--*=:::::::::--:------+==--=*+++#*************@@@@@%#+----::::::::::::::::::::::::::::::::::::::::::::::::::::---------==---#@+:::..=:.             
... .              .   ......::::-::::::::::::-::::::+::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::....:=-::*::::::::::::::::::::::::::::::::::::::::::::--::-::-:::::::::=:::-=#-:::::::----------==-:--******************#@@*+-----:--:::::::::::........::::::::::::::...::::::::::::::::--------:=---*@#:::-.=-              
.   .              .......:::::::=:::::::::::::::::::-:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::....==--+::::::::::::::::::::::::::::::::::::::::::--::-:::-:::::::::-:::-::=#-:::::-----------==-::-=***************##*+--------:..::::::::::::::::::::::::::::::::...::::::::::::::::::::---:::-=--*@%:::+.==              
.......................::::::::::=::::::::::::-::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::....-====:::::::::::::::::::::::::::::::::::::::::::-::::-::::::::::-::-:::::=#=::::------------=-::--*#***********#*+====+++---:::::::::::::::::::::::::::::::::::.::::::::::::::::::::::::::::::==-*@%-::*.-=.             
...............::::::::::::::::::::::::::::::-::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::...:====:::::::::::::::::::::::::::::::::::-::::-:::::::::::::::::-:-::::::=-:**-::--:-----------::---+****+===-------------==-----:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::++*%@=::+..=.             
::::::::::::::::::::::::::::::::::::::::::::::::::::-:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::....-==+::::::::::::::::::::::::::::::::::::-:::::::::::::::::::::::::::::--:::=#+::--------------:---=+==-------------------------::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::*%%@-::=..=:..           
::::::::::::::::::::::::::::::::=::::::::::::-::::::=::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::...:-=====-:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-:::::::+#+--------------::---=----------------------------:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-%*@::::..==....         
::::::::::::::::::::::::::::::::#:::::::::::.-::::::=:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::...-===::::::--::::::::::::::::::::::::::::::::::::::::::::::::::::::-::::::::--=**-------------:.:----::-------------------=------:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-@%*:::-.==.....        
::::::::::::::::::::::::::::::::-:::::::::::=:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::...::::::::::::::::::::::::::::::::::::::...-==:::::::::::::::::::--::::::::::::::::::::::::::::::::::::::::::::::-==++#####=------------:::--=------------:::------=-------::::::::::::::::::::::::::::::::::::::::::::-::::::::::::::::::-*+*::*.-=.....        
::::::::::::::::::::::::::::::::.:::::::::::-:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::........:::::::::::::::::::::::::::::::::::::..-=-::::::::::::::::::::::::::=*+:::::::::::::::::::::::::::::::::-=++###*######**:----------:----=-::::::::----------=+---------::::::::-+-:::::::::::::::::::::::::::::-::----::::::::::::::::::#+:*..=... .        
::::::::::::::::::::::::::::::::::::::::::::-::::::+::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::.........::::::::::::::::::::::::::::::::::::::.:==::::::::::::::::::::::::::::::::::::::::::::::::::::::-=-.:##*##*****#####**#**---::-::------:=:::::::--------=*+------------:-::+@@@@%%%%#**####***+++=---==--=+====-----::::::::::::::::::::+#*..=-...         
:::::::::::::::::::::::::::::::+::::::::::::+::::::*::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::..........-:::::::::::::::::::::::::::::::::::::::+=:::::::::::::::::::::::::::::::::::::::::::::-===##-:.:#%%@#*******#%%###*#####***+.:.-+=:::--::--:-----==++=-------------:-:*%%#**:::-+@@@*---=++++-:--=+%%%*-::::::::::::::::::::::::::::-:::#..== ..         
:::::::::::::::::::::::::::::::#::::::::::::=::::::=::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::.........-::::::::::::::::::::::::::::::::::::::-++:::::::::::::::::::::::::::::::::::::====*%@%@=*::#%%%@@%@*********%%####*###**--+-:.-=+#:-..-:-#*+=---------------------+##%%%%%*:::-++%@@#---=+++-:--=-=+%#=::::::::::::::::::::::::::::-::::+.==. .         
:::::::::::::::::::::::::::::::*:::::::::::-:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::........:::::::::::::::::::::::::::::::::::::::::+=::::::::::::::::::::::::::--=++*:.-..:@+@@%@%:+%@%@@@@@@@*********%%####*#**------+-.-----:...%-::::::-------------=*#*%%%%%%%%%*::::*+++%@#-:-+++::-----+*%+=:::::::::::::::::::::::::::=::::%#+=...         
:::::::::::::::::::::::::::::::+:::::::::::=::::::=:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::..........-::::::::::::::::::::::::::::::::::::::::++-:::::::::::::-==++#*%@@%%%%%%%:.*--=@@%%*#%%@@@@@@@@@@@********#%%###*#*----------+:-..:--..#*##=::::::::-:=#%##%%%%@@@@%%%%%%@-:::#++++@@%=--++::-----***++---::::::::::::::::::::::::+::::#-+%%-....   .. 
:::::::::::::::::::::::::::::::-:::::::::::-::::::*:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::..........::::::::::::::::::::::::::::::::::::::::::-+=----==+#@%%%##**@%%%%%%%%%%%%%%%*%%%%%%%@@@@@@@@@@@@@@***##****%%##*+::----------+..-----:#--:::::=***##%%%%%%%%%%%@@@@@@%%%%%*:::%++++@+#@=-:-::---=-**#+++-:::::::::::::::::::::::::+::::+::---++++......
:::::::::::::::::::::::::::::::--::::::::::-:::::-*::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::...........:-::::-:::::::::::::::::::::::::::::::::::::+*%%%%***********@%%%%%%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@**#####**%##+::::::::-------+.....-=+--::::::*%%%%%%%%%%%%%%%%@@@@@@@@%%*:::#**++%++*@+--::---==##*#==+=--::::::::::::::::::::::-::::-:::--:...:++*. 
:::::::::::::::::::::::::::::::--::::::::::-:::::-=::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::............-::---=:::::::::::::::::::::::::::::::::::::-+#*************@@%%%%%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@**#####*#%+==-::::::::::----+*-=-=#---::::::%%%%%%%%%%%%%%%%%%%%@@@@@@@@%-::%+****=:::*+-::-*##+=-#+--+==--::::::::::::::::::::::::::=::...........=#
::::::::::::::::::::::::::::::=:-::::::::::=:::::--:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::...........-=+=+++-:::::::::::::::::::::::::::::::::::::-=*************@@%%%%%%%%%%%%%%%@*%%%@@@@@@@@@@@@@@@@#****##*=++===:::::::::::::::------:::::::%##%%%%%%%%%%%%%%%%%%%%@@@@@@@@*::%#:::::::-#****------==---=+==--:::::::::::::::::::::::::=::.....:.......
::::::::::::::::::::::::::::::+--::::::::::+::::--::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::.........-==----=-:::::::::::::::::::::::::::::::::::----=*#*********@@%%%%%%%%%%%%%%%.%=%%@@@@@@@@@@@@@@@@#*****==-+*===::::::::::::::::::::::::::@@%%%%%%@@%%%%%%%%%%%%%%%%%@@@@@@%::+@#****+=-----------==----===-----:::::::::::::::::::::::=:.......-..    
::::::::::::::::::::::::::::::*--::::::::::=::::-=::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::......:-=-----==-:::::::::::::::::::::::::::::::::--------**#******@@%%%%%%%%%%%%%%%%#%%%%@@@@@@@@@@@@@@@%#**==---+#===::::::::::::::::::::::::%%%%%@@%:::%@@%%%%%%%%%%%%%%%%@@@#++++=------------------=------===-------:::::::::::::::::-:::=:........-.    
::::::::::::::::::::::::::::::*--::::::::::=::::-*::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::....:-+------===::::::::::::::::::::::::::::::::----------=*#****%@%%%%%%%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@#*+=----+%=*+::::::::::::::::::::::::*%@%:::::::*%@@%%%%%%%%%%%%%##--------------------------=--------===---------::::::::::::::=:::=-:... ...-.    
::::::::::::::::::::::::::::::+--::::::::::-::::-*::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::..:=+-------===:::::::::::::::::::::::::::::::-------------+***%@@%%%%%%%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@**------+%***====-:::::::::::::::+#+::::::::::::=#@@#%%%%%%%%%%#*---------------------------=---------===--------------:::::::::*:::--::............
::::::::::::::::::::::::::::::+--::::::::::-:::--+::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::....:::::::::::::::::::::::::::::::::.:-=--------===::::::::::::::::::::::::::::::--------------:=*@@@@%%%%%%%%%%%%%%%%%%%%%@@@@@@@@@@@@@@*-------+%*++-========--::::-*-=.::::::::::::::::%@@###%%%%%%##----------------------------=----------=+==---------------:::::::*:::--:::......:....
::::::::::::::::::::::::::::::+--::::::::::-:::--=::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::......:::::::::::::::::::::::::::::::::..-----------===-:::::::::::::::::::::::::::::--------------:-=*@@%%%%%%%%%%%%%%%%%%%%%%@@@@@@@@@@@@@=-------=***+======---::=::::::::::::::::::::::::#@%#####%%##-----------------------------------------=+====-----------=-::::.::=::::-::::........ .
::::::::::::::::::::::::::::::=--::::::::::::::---::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::........::::::::::::::::::::::::::::::::.-=-----------==-::::::::::::::::::::::::::::----------------:-+*@%%%%%%%%%%%%%%%%%%%%%@@@@@@@@@@@@%%-------=+%++-:::::::::::::::::::::::::::::::::::%@#######*--------------------------------------------+=====-------=-::.......::::::-::::......    
::::::::::::::::::::::::::::::=--::::::::::::::--::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::...........::::::::::::::::::::::::::::::.-=------------++=::::::::::::::::::::::::::::---------------::-=*@%%%%%%%%%%%%%%%%%%%%%@@@@@@@@@@%%@--------+*++=:::::::::::::::::::::::::::::::::::-@#####+----------------------------------------------=+--------==--..........::::::=::..... ..    
:::::::::::::::::::::::::::::-=--:::::::::::::--=:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::....     .::::::::::::::::::::::::::::::::=-------------=++-::::::::::::::::::::::::::----------------::-=*@%%%%%%%%%%%%%%%%%%%%%@@@@@@@@%%%@=-------=#++=:::::::::::::::::::::::::::::::::::#%##*------------------------------------------------==-------=+=-.............:::::+:. ..     . ..
:::::::::::::::::::::::::::::-=--:::::::::-:::--*:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::....    ..:-::::::::::::::::::::::::::::::=---------------=+=::::::::::::::::::::::::::----------------::=+*%%%%%%%%%%%%%%%%%%%%%@@@@@@%%#%%@+-------+#++=--::::::::::::::::::::::::::::::-###+----------------------------------------------------------++=.................-:::+... ..    ....
:::::::::::::::::::::::::::::=---:::::::::+:::--#::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::...    .:++:::::::::::::::::::::::::::::.=-----------------=+-:::::::::::::::::::::::::---::::::----:::.-++@%%%%%%%%%%%%%%%%%%%%%@@@@#%%@%%%%-------=*++=----:::::::::::::::::::::::::+#%+------------------------------------------------------------++=...................=:::+......    ....
:::::::::::::::::::::::::::::+--::::::::::*:::--*::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::...... .=++:::::::::::::::::::::::::::::.-=------------------++:::::::::::::::::::::::::-----:----:::::..+**@%%%%%%%%%%%%%%%%%%%%%@%#%%%%%%#@--------%++-----:::::::::::::::::::::-+%#--------------------------------------------------------------**=.....................+:::*.....         
:::::::::::::::::::::::::::::+--:::::::::.*:::--*::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::........=+-:::::::::::::::::::::::::::::::=--------------------+=::::::::::::::::::::::::---------::::::.-**#@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@-------:%+=-----:::::::::::::::::::=+**--------------------------------------------------------------++-.......................+:::*:::..         
:::::::::::::::::::::::::::::+---:::::::::*:::--*::::::::::::::::::::::::...:::::::::::::::::::::::::::::::::::::........:=::::::::::::::::::::::::::::::::+=--==----------------==-::::::::::::::::::::::::----------:--:.***%%%%%%%%%%%%%%%%%%%%####%%%#%%#%*-------=*=-----:::::::::::::::::::=+*=-----------------------------------------------------------=*+-.......................::=:::*::::......    
:::::::::::::::::::::::::::::+---::::::::=*:::--+::::::::::::::::::::::......::::::::::::::::::::::::::::::::::::.........=::::::::::::::::::::::::::::::::+**%@@#*----------------=--:::::::::::::::::::::::-:----------:.*#**%%%%%%%%%%%%%%%%%#####%%%%%%%%%%--------+=-------:::::::::::::::::+++---------------------------------=------------------------=+=:........................:::=:::*::::::....    
:::::::::::::::::::::::::::::*---::::::::=*::---=:::::::::::::::::::::............:::::::::::::::::::::::::::::::.........-:::::::::::::::::::::::::::::::::###*%@@@#+----------------=-:::::::::::::::::::::::------::::::+%%%@@@@@%%%@%%%%%%%#######%%%%%%@%@-----------------::::::::::::::::=++----------------------------------*#---------------------=+=.........................:::::-:::*::::::::..    
:::::::::::::::::::::::::::::*---::::::::-*::----:::::::::::::::::::::............::::::::::::::::::::::::::::::::........-:::::::::::::::::::::::::::::::::+##%@@@@@@**---------------==::::::::::::::::::::::::::::::::::-%@@@@@@@@@@@@@@@%##########%%%%%%%%=------:=-----:::::::::::::::::::++=--------------------=-----------+%%%%%#*---------------=+-..............:::::::::.::::::::-:::*:::::::::..   
:::::::::::::::::::::::::::::*=--::::::::=#::---::::::::::::::::::::::............::::::::::::::::::::::::::::::::::......:-:::::::::::::::::::::::::::::::::*%@@@@@@@@@%*+--------------==:::::::::::::::::::::::::::::::::%@@#@@@@@@@@@@@@%%%%%########%%%%@%@------:%::::::::::::::::::::::::+*--------------------==---------*%%##########+--------=+=............:::::::::::::::::::::::::::*::::::::::... 
:::::::::::::::::::::::::::::*=--::::::::+#::--=::::::::::::::::::::::............:::::::::::::::::::::::::::::::::::.....:-:::::::::::::::::::::::::::::::::=#@@@@@@@@@@@@@*+------------==:::::::::::::::::::::::::::::::::#%@@#@@@@@@@@%%%%%%%%@%%###%%%%%%%@------:#:::::::::::::::::::::::=#=--------------------*+-----+#################%#---++=.............:::::::::::::::::::::::::::::*::::::::::....
:::::::::::::::::::::::::::::*=--::::::::#%::--+::::::::::::::::::::::............::::::::::::::::::::::::::::::::::::::::::-:::::::::::::::::::::::::::::::::*#@@@@@@@@@@@@@@%*=----------===:::::::::::::::::::::::::::::::+=-@@%#@@@@%%%%%%%%%%%%%%%%#%%%%%@%+------+%:::::::::::::::::::::-**--------------------+#*###%###################%%*+=:.. ..........::::::::::::::::::::::::::::-::*::::::::::....
:::::::::::::::::::::::::::::*+--::::::::#%::--+::::::::::::::::::::::.............-::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-*@@@@@@@@@@@@@@@@@*+----------==::::::::::::::::::::::::::::::==---%@%#@%%%%%%%%%%%%%%%%%%%#%%%%@%------+@:::::::::::::::::::::-#---------------------##%%%%%#################%%%=-...............:::::::::::::::::::::::::::::=::*:::::::::::...
:::::::::::::::::::::::::::::*+--::::::::+%::--*::::::::::::::::::::::.............--::::::::::::::::::::::::::::::::::::::::-:::::::::::::::::::::::::::::::::+*@@@@@@@@@@@@@@@@@@##=--------===:::::::::::::::::::::::::::::=-----=*%%%%%%%%%%%%%%%%%%%%@%%%%@@------:@*::::::::::::::::::::*=--------------------*#%%%%%%%############%###=-...............::::::::::::::::::::::::::::::::=::*:::::::::::...
:::::::::::::::::::::::::::::*+---:::::::=%::--*:::::::::::::::::::::::............:-:::::::::::::::::::::::::::::::::::::::::-:::::::::::::::::::::::::::::::::*%@@@@@@@@@@@@@@@@@@@##+=------===::::::::::::::::::::::::::::==--------##%%%%%%%%%%%%%%%%%@%%%#@*-----:%*:::::::::::::::::::*+--------------------*#%%%%%%%%#########%#++=:.............:::::::::::::::::::::::::::::::::::::=::+:::::::::::...
--:::::::::::::::::::::::::::*+---:::::::-%::--*:::::::::::::::::::::::.............-:::::::::::::::::::::::::::::::::::::::::--:::::::::::::::::::::::::::::::::*@@@@@@@@@@@@@@@@@@@@@#**=-----===:::::::::::::::::::::::::::-=---------=#%%%%%%%%%%%%%%%%%@%%%@%-----:-@*:::::::::::::::::=+--------------------##%%%%%%%%%#####*==--.............::::::::::::::::::::::::::::::::::::::::::+::+::::::::::::..
---------::::::::::::::::::::*+---::::::::#:---*::::::::::::::::::::::::.............-:::--::::::::::::::::::::::::::::::::::::-:::::::::::::::::::::::::::::::::=*@@@@@@@@@@@@@@@@@@@@@#*+*+----=+=:::::::::::::::::::::::::::==---------*#%%%%%%%%%%%%%%%%%%%%%@-----:-#@####++***=-:::::=+--------------------##%%%%%%%%%%%#+=-:............::::::::::::::::::::::::::::::::::::::::::::::++::+::::::::::::..
==------------:::::::::::::::*+---::::::::*:---*:::::::::::::::::::--::::::...........::::-:::::::::::::::::::::::::::::::::::::-:::::::::::::::::::::::::::::::::+*@@@@@@@@@@@@@@@@@@@@@@##***---++-::::::::::::::::::::::::::-=---------=#%%%%%%%%%%%%%%%%%%%#%%@----::=@+:--:##+::::::.=+--------------------*%%%%%%%%%*==:............:::::::::::::::::::::::::::::::::::::::::::::::::::++::=::::::::::::..
::=+**#%####+-------:::::::::**---::::::-:+:---*:::::::::::::::::::::--=-::::..........:::-:::::::::::::::::::::::::::::::::::::--:::::::::::::::::::::::::::::::::*%@@@@@@@@@@@@@@@@@@@@@@@%%%##-**-:::::::::::::::::::::::::::+=--------*#%%%%%%%%%%%%%%%%%%####@-----:-#*----::::+%#=:=+---------------------@%%%%%++-.........::::::::::::::::::::::::::::::::::::::::::::::::::::::::-::**::=:::::::::::::.
:#@%##########%%#*#*+--------++---::::::-:=:---*:::::::::::::::::::::----==-:::::::....--:--:::::::::::::::::::::::::::::::::::::-:::::::::::::::::::::::::::::::::-#@@@@@@@@@@@@@@@@@@@@@@@@@@%%%#%*-::::::::::::::::::::::::::-*------##%%%%%%%%%%%%%%%%%%%%%#%%%%----::*%-------:::::=+--------------------+@@%%*=:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-----::**::-::::::::::::::
%@%##############%:::=*+-----+*-:-::::::=-=:---*--:::::::::-=*#%%%%%%%%%%%%#####+-::::::=----::::::::::::::::::::::::::::::::::::--:::::::::::::::::::::::::::::::::#*@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%-:::::::::::::::::::::::::::+**%%##%%%%%%%%%%%%%%%%%%%%%%%##%%@*---::=%#----------==--------------------+%#*=:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-----::--:#*::-::::::::::::::
@@################@::::::::-+**---::::::=-=:---*---:-:-+##########%%%%#%@@%+*+--:-*#%++++==-=:::::::::::::::::::::::::::::::::::::--::::::::::::::::::::::::::::::::+#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%#::::::::::::::::::::::::::::+%%%%%%%%%%%%%%%%%%%%%%%%%%%%##%%%%-:-:::#%---------==-------------------+**=:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::------==--:::#+:::::::::::::::::
@%#############%%@@*::::::::=@*---::::::+*#:---**#################%%%%#%@%%==++-------+%*+++=-::::::::::::::::::::::::::::::::::::-=-::::::::::::::::::::::::::::::::#*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#=:::::::::::::::::::::::::::-+%%%%%%%%%%%%%%%%%%%%%%%%%%###%%%@#:::::=@+------=+-------------------*#+-::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::----===-::::::::#+:::::::::::::::::
%#########%@@@@%%%#%::::::::=%*---::::::+##:---*##################%%%%%%@@====*-------===+#%%*:::::::::::::::::::::::::::::::::::::==-:::::::::::::::::::::::::::::::*##@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%#::::::::::::::::::::::::::::=*%%%%%%%%%%%%%%%%%%%%%%%@#####%%%@::::::##-----**----------------==*#+:::::------::::::::::::::::::::::::::::::::::::::::::::::::::::----==-:::::::::::::#+:-:::::::::::::::
###%%@@@%###########%:::::::=@*---::::::+##:---*##################%%%%#@@+=====*------====+=+%#::::::::::::::::::::::::::::::::::::-==-::::::::::::::::::::::::::::::-#*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@##::::::::::::::::::::::::::::+%%%%%%%%%%%%%%%%%%%%%%%%#####%%%@%:::::-@----=*---------------==*#+::::---------:::::::::::::::::::::::::::::::::::::::::::::::--:-----:::::::::::::::::#+:=:::::::::::::::
@@@%################%-::::-::%*---::::::+##:---*####################%%@@@======:=------=====%-#+-:::::::::::::::::::::::::::::::::::====-:::::::::::::::::::::::::::::*+*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#=::::::::::::::::::::::::::::+%%%%%%%%%%%%%%%%%%%%%%#######%%%@-:::::#=---#*-------------=++#+::::----------::::::::::::::::::::::::::::::::::::::::::::--:-==--:::::::::::::::::::::%+:=:::::::::::::::
#####################@::::-::%*--:::::::*##:---*###################%%%@@=======-*--------====*+%+:::::::::::::::::::::::::::::::::::-===-:::::::::::::::::::::::::::::++*@@@@@@@@@%%@@@@@@@@@@@@@@@@@@@%+.::::::::::::::::::::::::::::*%%%%%%%%%%%%%%%%%%%%########%%%@%:::::-@---=%*----------=#***:::::----------:::::::::::::::::::::::::::::::::::::::::::::-==-:::::::::::::::::::::::::%+:=:::::::::::::::
#####################%=:::-::=*--:::::::*##:---*####################%%@*========----------===+-*%*-::::::::::::::::::::::::::::::::::=-+==-:::::::::::::::::::::::::::-+*#@@@@@%%%%%@@@@@@@@@@@@@@@@@@@@%..:::::::::::::::::::::::::::-*%%%%%%%%%%%%%%%%%%%#########%%%@-:::::%=----=%%%%%%%%%%***-:::::-----------:::::::::::::::::::::::::::::::::::::::::-===-::::::::::::::::::::::::::::#+:+:::::::::::::::
######################%:::-::-*--:::::::*##:---*#####################@@=========:-----------=+::%#*-:::::::::::::::::::::::::::::::::====::::::::::::::::::::::::::-:::+#*@@%%%%%%%%@@@@@@@@@@@@@@@@@@@%%:..:::::::::::::::::::::::::::+*%%%%%%%%%%%%%%%%%##########%%%@*:::::-%-------------++*=:::::::--------:::::::::::::::::::::::::::::::::::::::::-===-:::::::::::::::::::::::::::::::*+:#:::::::::::::::
######################%+::-::-*--:::::::*#%:---#####################%@*=========-=:-----------::%###-::::::::::::::::::::::::::::::::-==-:::::::::::::::::::::::--------#%@%%%%%%%%%@@@@@@@@@@@@@@@@@%%%##=:::::::::::::::::::::::::::::**%%%%%%%%%%%%%%%###########%%%%*::::::%*------::--=+*+:::::::::-----::::::::::::::::::::::::::::::::::::::::::-=--::::::::::::::::::::::::::::::::::++.+:::::::::::::::
#######################@::-::-*--:::::::*#%:---#####################@@==========%-::----------::%+###--::::::::::::::::::::::::::::::-==::::::::::::::::::::::----------%%%@@@%%%%%%@@@@@@@@@@%@@@%%%%%%%%%%+:::::::::::::::::::::::::::-#*%%%%%%%%%%%%%#############%%%#=:::::+#-------::+++:::::::::::::::::::::::::::::::::::::::::::::::::::::::---::::::::::::::::::::::::::::::::::::::=+:-:::::::::::::::
######################%%=:-::-*--:::::::##%:---#####################@===========*::::---------:+@*-##*--::::::::::::::::::::::::::::::=-:::::::::::::::::::::-----------@@@@@@@@%%%%%@@@@@@%%%%%%%%%%%%%%%%%#*:::::::::::::::::::::::::::+#%%%%%%%%%%%%%#############%%%%*-:::::%*------++=-:::::::::::::::...:::::::::::::::::::::::::::::::::-----:::::::::::::::::::::::::::::::::::::::::=+=::::::::......::
########################@:-::-*--:::::::##%:---####################@+==========%=::::--------::*@#-=#*==::::::::::::::::::::::::::::::=-::::::::::::::::::::-----------@@@@%#%@@@@%%%@@@%%%%%%%%%%%%%@@%%%%%%**:::::::::::::::::::::::::::**%%%%%%%%%%%###############%%%%=:::::*#----*+--::::::::::::::::....::::::::::::::::::::::::::::--==---::::::::::::::::::::::::::::::::::::::::::::=+*:::::::.....  ..
########################%:-::-*--:::::::*#%:---####################@==========%:::::::-------::*%*+-+#===:::::::::::::::::::::::::::::==::::::::::::::::::::----------@%%#####%@@@@%%@@%%%%%%%%%@%%%%%%%%%-=%*--::::::::::::::::::::::::::=**%%%%%%%%%################%%%%%:::::-%-=+=::::::::::::::::::...:::::::::::::::::::::::::::--==-----:::::::::::::::::::::::::::::::::::::::::::::-=+#:::..........   
#########################@-::-*--:::::-:*#%:---###################@=========#-:::::::--------::*#*#--#==+-:::::::::::::::::::::::::::-+=:::::::::::::::::::---------=%#%#######%@@@@%%@@%%%%%%%%%@%%%%%%%%@%%%..:::::::::::::::::::::::::::#*%%%%%%%%#################%%%%@-:::::*+-:::::::::::::::::::::::::::::::::::::::::::::::===-------------:::::::::::::::::::::::::::::::::::::::::=-=#.... .....  ....
#########################@-::-*--:::::::*#%:---###################%=====*#+::::::::::--------::%*+#=-=*-=*:::::::::::::::::::::::::::*#-:::::::::::::::::::------=#%%@%@########%@@@@@@@@%%%%%%%%@%%%%%%%%%*--...::::::::::::::::::::::::::*#%%%%%%%%##################%%%%+::=*+-:::::::::::::::::::::::::::::::::::::::::::::-==----------------:-:::::::::::::::::::::::::::::::::::::::-*:=+................
#########################%*::-*--::::---*#%:---*#################%===##::::::::::::::--------::%+*+#--#*-++::::::::::::::::::::::::::##:::::::====++++++++++**+*%%%@@%%@#########%@@@@@@@%%%%%%%%%@%%%%%%%%%%#%*==:::::::::::::::::::::::::+#*%%%%%%###################%%%%@+*=::::::::::::::::::::::::::::::::::::::::::::-=+=--------------------::::::::::::::::::::::::::::::::::::-===-*.+#..::............
##########################%::-#--::::---*#%:---*###############%#%=#==:::::::::::::::--------:-@****--***=+-::::::::::::::::::::::::*%*::+*+%%%%%%%%%@@@@@@@@%%%%%@@@%%@###########@@@@@@@%%%%%%%%%@%%%%%%%%%%%%%#-::::::::::::::::::::::::=#+%%%%%#####################%%*+::::::::::::::::::::::::::::::::::::::::::::==+----====----------------::::::::::::::::::--=====++======--------*:+#::::::..........
##########################%::-#--::::--:##%----*################%**=-::::::::::::::::::-----::-%-****-*#**+*::::::::::::-::::::::::=%@%#%%%%%%%%%%%%%%%%%%%%%%%%%%@@%%%@############@@@@@@%%%%%%%%%%@%%%%%%%%%%%%%#-:::::::::::::::::::::::=#*%%%%####################%*+:::::::::::::::::::::::::::::::::::::::::::-+%%%%%*+========-------------:---------------====------------------::::*:+*::::::::::::::::
##########################%::-#-:::::---##%----*################%#.:::::::::::::::::::::::::::+=--+**-+%-+*+*::::::::------------:#@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@%%%%%@#############%@@@@@%%%%%%%%%%@%%%%%%%%%%%%#*:::::::::::::::::::::::=#@%@####################++-::::::::::::::::::::::::::::::::::::::::::-*###**+==##%%%%+++++==---------------------=------------------::::::::::::*-*=::::::::::::::::
####################%%#####::-#-:::::---##%:---*##################*%::::::::::::::::::::::::::*-----%==%---**#-::--------------=@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@%%%%%@@##############%@@@@%%%%%%%%%%%%%%%%%%%%%%%%%:::::::::::::::::::::::=#%@###################+-:::::::::::::::::::::::::::::::::::::::::::+**+++::::::::+#%#======+++=======----====-------------------::::::::::::::::=-*:::::::::::::::::
###############@%##########::-#-:::::---*%%:---*####################*#%:::::::::::::::::::::::%-----+#-%:--==*%%+------+#####%%%-@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@%%%%%%%@###############%%@@@%%%%%%%%%%%%%%%%%%%%%%%%=::::::::::::::::::::::=*%#################*+-:::::::::::::::::::::::::::::::::::::::::-***+==#.:::::::::::+%@=========-------------------------------::::::::::::::::::--*:::::::::::::::::
##########%%###############::-#-:::::---##%:---*####################%%%**%+:::::::::::::::::::%------%-#:--=====*%%%%#####**===-=@%%%%%%%%%%%%%%%%%%%%%%%%%%%@@%%%%%%%%@################%%@@%%%%%%%%%%%@%%%%%%%%%%%%*::::::::::::::::::::::=+################%+-:::::::::::::::::::::::::::::::::::::::::*#*++==#::::::::::::::::#@#-========-----------------------------::::::::::::::::::--*:::::::::::::::::
#####%%####################::-#-:::::---##@----*#######################%##%#*%%#=:::::::::::::%:-----*-#:--===========-***=====--@%%%%%%%%%%%%%%%%%%%%%%%%%%@@%%%%%%%%%@#################%%%@%%%%%%%%%%%%%%%%%%%%%%#*::::::::::::::::::::::=################%=::::::::::::....::::::::::::::::::::::::-##*====#::::::::::::::::::::**===========-------------------------:::::::::::::::::::--*:::::::::::::::::
##%########################::-#-::::----*#@----*########################%%%%%%#%%#%##%#+-::::-*:::----=#:--===========-***=====-=@%%%%%%%%%%%%%%%%%%%%%%%%%@@%%%%%%%%%%@%#################%%%@%%%%%%%%%%%%%%%%%%%%@**-:::::::::::::::::::::=%##############+=::------:::.....:::::::::::::::::::-::-#%#*%===#*::::::::::::::::::::::+*==================-----------------::::::::::::::::::=--*:::::::::::::::::
###########################::*#-::::----*#@----*##########################%%%%%%%%%%%%%====-:*%#-:::--+#:--===========-***=====--@%%%%%%%%%%%%%%%%%%%%%%%@@%%%%%%%%%%%%%%###################%@%%%%%%%%%%%%%%%%%%%%%**:-:::::::::::::::::::-+%#############*=-----------::....::::::::::::::::--:=#%#*==++++*:::::::::::::::::::::::::=#====================--------------::::::::::::::::::+--*::::::::::::::::+
###########################::%#-::::----+%@----*################################%%%%%%@====::%+=:+*+::*#:--============**+=====-=@%%%%%%%%%%%%%%%%%%%%%@@%%@%%%%%%%%%%%%%####################%@%%%%%%%%%%%@%%%%%%%%**---::::::::::::::::::-+###########**+---====++===--:::.:::::::::::::::---**+-*=====-#*:::::::::::::::::::::::::::-#+===================-------------::::::::::::::::::+--*::::::::::::::##=
###########################::%#-::::----=%%----*#################################%%%%#@===*::#=====-**##---===========+**======-=@%%%%%%%%%%%%%%%%%%%%@%%%%%%%%%%%%%%%%%%####################%%%%%%%%%%%%%%%%%%%%%%**---:::::::::::::::::::+*########*#*-----:------====--::::::::::::::::=**=-:::%======+::::::::::::::::::::::::::::#-##===================-------------:::::::::::::::::*--*:::::::::::+##*==
###########################-:@#-::::-----%%----*##################################%%%%%===+::*========##:--===========***======-=@%%%%%%%%%%%%%%%%%%@%@%%%@%%%%%%%%%%%%%%######################%%%%%%%%%%%%%%%%%%%%+*----:::::::::---------=*########*--=---:::::----=====-:::::::::::=+++-::::::*+===*+-::::::::::::::::::::::::::::-:--#%==================-----------------:::::::::::::#--*:::::::-+*##*====
###########################-:%#-::::----:#%----*#################################%%%%%@==#=:-*========#*:--===========#**======-=@%%%%%%%%%%%%%%%%@%%%%%%@%%%%%%%%%%%%%%%#####################%%@%%%%%%%%%%%%%%%%%%#*=---:::::::------------#%#####*===------::::::----===--:::::::-+*+----::::::#===#*::::::::::::::::::::::::::::::#:-===%%+===============-----------------:::::::::::::%--*:::=+++*#*+=----=
###########################=:#*:::::----:##----*#################################%%%%#%=%==:=#========%+:--==========-#**======-=@%%%%%%%%%%%%%%%%%%%@%%%@%%%%%%%%%%%%%%%#####################%%%%%%%%%%%%%%%%%%%%%%#+:---::::--------------#*####+==-----------::::----=+--:::::-**=------:::::*+==*#::::::::::::::::::::::::::::::*---=--=*#%%+===========-=++++******#***********#####**%--#++++**++=========
###########################+:+*:::::----:##----*#################################%%%%%##+==:+%========#-:--==========-#*+=======+@%%%%%%%%%%%%%@%%%%%%%%@%%%%%%%%%%%%%%@%########################%%%%%%%%%%%%%%%%%%%#*-----::---------------*%##*+==-------------::::---==-:::::**---------:::::*==*#:::---:::::::::::::::::::::::::#--------+###%%%%#***#******+======#*=++-----------##@*%--*--=============--
###########################*:-*:::::-----%#----*##########################%#####%%%%%##====:*%========#::--==========-#*+=======+%%%%%%%%%%%%@%%%%%%@%%%@%%%%%%%%%%%%%%@##########################@%%%%%%%%%%%%%%%%%%%-----::-----=*****----=%%++=--------------::::::::+=::::+*----------:::::*@=+#:::-----:::::::::::::::::::::::#---=-------=*#####**+++*#*========%*+++---------##=*=@-%--*==========-------
############################:-*:::::-----%#----*#######################%%%%%%%%%%%%#*%=====:+#========@::--==========-#*========*%%%%%%%%%%%%%%%%%%%@%%@%%%%%%%%%%%%%%%%##########################%%%%%%%%%%%%%%%%%%%%-----------**=----=**-#%*+=-------------::::..:::=+-::=+------------:::::*#@%:::------:::::::::::::::::::::::#----------------==+==--##+=======%*+++-------=%+===%%#-#--*===------:::::::-
############################::*::::------%*----*######################%%%%%%%%%%%%%#%======:=#======%%@-:--==========-#*========#%@@%%%%%%%##%%%%%%@%%%%%%%%%%%%%%%%%%%%%##########################@%%%%%%%%%%%%%%%%%%%-:------------------+#*+--------------::....::::--:-++-----------::::::+-=*:::-------::::::::::::::::::::::*-----------------------=*#=======%#+++------+%+++=+=#@--#--*----:::::::::::::
############################::*::::------%*----*####################%%%%%%%%%%%%%%%%======-:=*=====%#%@-:--==========-#*========#%%#%%%%%####%%%%%%@%%@%%%%%%%%%%%%%%%%%%###########################%%%%%%%%%%%%%%%%%%#+-----==-----------=%#--------------::::::::::--::+#=-----------::::::-+:+-:::-------::::::::::::::::::::::#--=--------=-----------##*======##+++-----+%+=++===%%%--*--+-::::::::::::::::
############################::%::::------%*----*####################%%%%%%%%%%%%%@%=======-:=+===+%=*%@:---==========-#*+=======#%###########%%%%%@%%@%%%%%%%%%%%%%%%%%%%###########################%%%%%%%%%%%%%%%%%%%#-::--==--::-------%#-:----------::::::::::-=-::++=+----------:::::::-*::*:::---------::::::::::::::::::::=+:----------==----------##======*#+++----+@+=++++===%@+--+--+:::::::::::::::::
############################::@::-::-----#*----*##################%%%%%%%%%%%%%%@%========-:++==*%++*@@:---===========#**=======#############%%%%%@%%@%%%%%%%%%%%%%%%%%%%############################@%%%%%%%%%%%%%%%%%%#::::=+-:..:-----##*::::--------::::::::-=--=+=:-%----------::::::-++::#:::----------::::::::::::::::::::*-:=---------==---------+#*=====+#+++----@+===+++===*@@---+--=:::::::::::::::::
############################-:%::::------+*----*######################%%%%%%%%%%@=========:-#==##+++=@@:---===========#*+=======#############%%%%%@%@%%%%%%%%%%%%%%%%%%%%%###########################%%%%%%%%%%%%%%%%%%%##::--*-::.::----*##::::----:-:::::::-==--**:::-%---------::::::-=#-::+-::-----------::::::::::::::::::::#--:--------=-+---------##======#*++---@#====++++===%@*---=--=:::::::::::::::::
############################*:#::-:-------*----*######################%%%%%%%%%@==========:-#=#+++=--@@:---==========-*+========*###########%%%%%%@@%%%%%%%%%%%%%%%%%%%%%%############################%%%%%%%%%%%%%%%%%%%**:::=+:::::::--+**-:::--::::::---++==**-::::-%--------:::::::*#==:::#:::------------::::::::::::::::::+=-=-=-------=-=---------#*=====#%++--%%=--===++++==+%%----=--=:::::::::::::::::
#############################:*::-:-------#----*#######################%%%%#%%@===========:=+%*++----#@:---===========*+========+###########%%%%%@%%%%%%%%%%%%%%%%%%%%%%%%#############################@%%%%%%%%%%%%%%%%%%%*-:-+=::::::---+++--:::------+++*#+-::::::=#=:::::::::::-*#===-:::--::-------------::::::::::::::::::+--:-=-------=-=--------+*+====#%++--@#----===++++==#@+-------=:::::::::::::::::
#############################:*::-:------:#----*#######################%%%%%%@============:=%#+------*@:---==========+#+========+###########%%%%%@@%%%%%%%%%%%%%%%%%%%%%%%#############################%%%%%%%%%%%%%%%%%%%%%+*--+-::::::----=++--:-=#####*::::::::::+#=::.:::.=#@@-==#==:::::%:::-------------:::::::::::::::::.#---=-------=--=--------%#====+*++-%#------===+++===@#---:=----:::::::::::::::::
#############################:+::-:------:%----*#####################%%%%%%%%============::=-+#-------%:---==========+#*========*###########%%%%%@%%%%%%%%%%%%%%%%%%%%%%%%##############################%%%%%%%%%%%%%%%%%%%%%%*-+=-::::::::::-*:::--+-:::::::::::::%#=::::::::::%@+==+#+:::::#::---------------::::::::::::::::==:--=----------=--------#*====+*+-%+-------===+++==##---::*----:::::::::::::::::
#############################:+::-:-------%----*#####################%%%%%%#============**:=--%-------#----==========+**========*###########%%%@@@%%%%%%%%%%%%%%%%%%%%%%%%###############################%%%%%%%%%%%%%%%%%%%%%@*+++:::::::::::#:::::::::::::::::::##+-::::::::::*@*=#*##::::-*::---------------::::::::::::::-------=---------=--------+#====##+=%=--------===+++==@=---::#----:::::::::::::::::
#############################-+::-:-------%----*#####################%%%%%#+==========#-:::=--#=------%-----=========+*+========############%%%%@%%%%%%%%%%%%%%%%%%%%%%%%%###############################@%%%%%%%%%%%%%%%%%%%%%@+*#*-::::::::-#:::::::::::::::::+**+----:::::::::@##::::::::#+:-----------------:::::::::::::--*==-+--------+-=--------##===*#+#%=---------===+++=##---:::*---::::::::::::::::::
+**##%##%####################*+::-:-------%----*#####################%%%#%+=========#-:::::=---#------+-----==========*=========############%%%%@%%%%%%%%%%%%%%%%%%%%%%%%%################################%%%%%%%%%%%%%%%%%%%%%%@:-#%#:::::--=#:::::::::::::::-#*++-:::::::::::::*%:::---:::*-:----------------:::::::::::::::-*:=-=---=----+-+--------%+===**%%------------==+=+=@---::::*---::::::::::::::::::
::::::::*#####################+::-:-------#----*####################%%%%%+=======+#::::::::=:::#+-----=-----=========+*=========############%%@@%%%%%%%%%%%%%%%%%%%%%%%%%@################################@%%%%%%%%%%%%%%%%%%%%%%+:::*#*=---=+::::::::::::::-=##++=-:::::::::::::=---------:*::-----------------::::::::::::::----=----------=+--------#===*-@#-------------===+=@=---::::*---::::::::::::::::::
--------:::*%#################=::-:-------*----*###################%%%#%=======*:::::::::::=::::**-----:----=========+*-========############%%%@%%%%%%%%%%%%%%%%%%%%%%%%%@#################################%%%%%%%%%%%%%%%%%%%%%%*:::::-*###+:::::::::::::--%=#++=-::::::::::::::#:--------=*::------------------:::::::::::::=*+-----=-----==+-------*#==++@#=-------------==+++%---:::::+--=::::::::::::::::::
----------:::*################=::-:-------*----*###################%%%%*===*%::::::::::::::=::::#==----:-----========+*-========############%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@#################################%%%%%%%%%%%%%%%%%%%%%%#+:::::::::::::::::::::--=%#+++=-:::::::::::::-#----------=*:-------------------:::::::::::::-=-:=---=------++-------%+==#@#=--------------==+=@=--::::::---=::::::::::::::::::
------------:::%##############=::-:-------#----*##################%%%%#==*-::::::::::::::::=:::::%------:----========**-========############%%@%%%%%%%%%%%%%%%%%%%%%%%%%%@#################################%%%%%%%%%%%%%%%%%%%%%%%*:::::::::::::::::::---%#*+++--:::::::::::::-%%:---------=#---------------------::::::::::::=---=---=----=-*=-------%==+@#=----------------=++#---:::::-:--+::::::::::::::::::
---==--------:::=#############+::---------*----*#################%%%%%*-+:::::::::::-**+==:=+:+%-%++---------========**-========#############%@%%%%%%%%%%%%%%%%%%%%%%%%%%@##################################@%%%%%%%%%%%%%%%%%%%%%*--------------------##+++++-::::::::::::::#%#*----------=#+---------------------:::::::::::=+-==---=----+=*=------+%==%#+-----------------=+#%--::::::+---*::::::::::::::::::
-+##+=*-------:::@############*-:---------*----##################%%%%#:=::::::::*=========:=+===*@%-#--=-----========**-========#############%%%%%%%%%%%%%%%%%%%%%%%%%%%%@#############################%#---%%%%%%%%%%%%%%%%%%%%%%#+----------------+#*#+++++::::::::::::::*.#@%%*---------+#+---------------------:::::::::::*--=---==----+-*-------#+=+%*------------------=+#*-:::::::#---*::::::::::::::::::
+===+=---------::*%############-:=--------+----#################%%%%%%%=:==*%%*===========:=*===-*@=-#-+------=======**-========#############@%%%%%%%%%%%%%%%%%%%%%%%%%%%%###########################%=-----*%%%%%%%%%%%%%%%%%%%%%%*-------------=##=#+++++++--:::::::::++*..:*@@=+--------+#%----------------------::::::::::*-=----==----=-*-------#==%#--------------------=%+-:::::::*---*::::::::::::::::::
*===------------::%###########%=:=--------+----#################%%%%%%#**=================:=#===::@+--**------=======**-========############%@%%%%%%%%%%%%%%%%%%%%%%%%%%%%#########################@=-------+%%%%%%%%%%%%%%%%%%%%%%*----------=##+#*:@@++++++--:::--::*+=*=..:.=@@---------++#---------:-------------:::::::::#------==----=-*------=%=*%---------------------=#=-:::::::#---*::::::::::::::::::
+=*------------::::%##########@+:=--------=---=################%%%%%%==+==================:-#+==::%#---#:-----=======**-========############%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*::::::+%%%#############%@%--------*#%%%%%%%%%%%%%%%%%%%%*--------+*%#*===+.:=#@%++=---::::*====#-..:. .@@+-------++#*--:--:::::-------::::::::::::::*-=---==-----=-*------=#=@%#--------------------+*==:::::::*---*::::::::::::::::::
=*------------:::::%##########@+:=--------=---=###############%%%%%%======================:-#+=::-#*---+------=======**-========############%%%%%%%%%%%%%%%%%%%%%%%%%%%%%=::::::::::=@%%%#####%%@@%-=--------##%%%%%%%%%%%%%%%%%*------*#%%+==*=====..====%%+--:--*===*=+#:..:....#@#------+++%-----:::::-------:::::-:::::::-=-----==-----==+----==++#@*%#------------------=+#=::::::::=---*::::::::::::::::::
+-----------:::::::###########@*:=------------=###############%%%%#=======================::*+:::##----=-------======#*-========###########%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#:::::::::::::::-%@@@@@@#-%------------=*#########*#*---+*%%%%*=======+====...===..-*+-+*=======+*:..:   ..*@%-----+++##-:-:::::::::::::::::::-::::::--=----===-----++------#=%+@#%%------------------=%*-::::::-----+::::::::::::::::::
-----------:::::::*%##########@*:=------------=##############%%%%*========================:::+::=#+------------======**-========###########@%%%%%%%%%%%%%%%%%%%%%%%%%%%%*::::::::::::::::::::::-=+-=------------------=*%@%*+=###*#==========+*===#.:.===.....:+=====*==#-:...     .-@%----=+++#--:::::::::::::::::::::::::::+-=----===-----*=----==%#===@%%@-----------------=##-::::::=----+::::::::::::::::::
+=-------::::::::#+@##########%*:+------------+#############%%#%+=========================:::+:=*+-----=--------=====#*-========##########%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%=::--:::::::::::::::::-#+=---------------*%@%#*====*%#***#+==========**===:.: -==......========+#-:.:.     ...%%=--=++++#:--:::::::::::::::::::::::::#:---=====---=-*-------#%====+%%@+---------------=##=-:::::+----=::::::::::::::::::
+++=----:::::::#+=-%%###%%%###%*:+-------:----+#############%%@==========================::::+*=-------==--------====#+-=======+##########@%%%%%%%%%%%%%%%%%%%%%%%%%%%%*:------:::::::::::::-#++----------==+#%@@#++==+=+@#*****+#===========#+==+....-==. ...+=====+==+*=:.:.     ....+%*--++++*#:::::::::::::::::::::::::::#-=---====---=-*-------%+======#%@%--------------==%--:::::*-----::::::::::::::::::
*++++-::::::::*==:::#=:::::%%%#*-+------------+############%%@=========================:::::-%---------=+---------===*+-=======+#########@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%+---------::::::::::%++=------=++++#@@*++=++===#@##****=+#*===========#===*.:..:=:... .*=====+==+-=..:..      ....%*-=++++#*-:::::::::::::::::::::::::#==--=====---=-*------=%========+%%%-------------==##--::::*---::::::::::::::::::::
-+*#+==:::::-==::+-:::::::::%@*=-*------------+#############@=======================:::::--:-+---------=+---------===*+--======*########%@%%%%%%%%%%%%%%%%%%%%%%%%%%%%*-----------::::::.%+++---=++=++%@#+=++++====+%@@%****==**=============#===:.:...=:..  .========*%.=..-..      .....##+=++++#=:::::::::::::::::::::::::+==--=====---=-*------%#==========%%@=------------==%=-::::*---::::::::::::::::::::
----*%===::=-+:::::::::::::::@=:=*------------*###########%@%====================::::--=##-::=---------==---------===*+--======*######%%@%%%%%%%%%%%%%%%%%%%%%%%%%%%%#-----------::::::%+++-=++++*@%+=====+======#%*@@#****=+#+=+============#==*.:.. :=:....+=====*==#%.=..-.       ..:....=.+##*+**:-::::::::::::::::::::::**=-=====---=+=*------%============#%@*-----------===%--:::+----:::::::::::::::::::
----:-*%=%=::::::::::::::::::@-:=*------------*##########@%@================::::--=*#*----=::=--------:-=---------===*+--======#**+====+%%%%%%%%%%%%%%%%%%%%%%%%%%%%#=----------:::::##=+++#@%#+===+==+=+++==++#**%%@****++=#===#===========+*==*.-. .==:....*=========+.=..-.       ..:....=......+%#:::::+#-:::::::::::::::*#--=====----+=+-----+%=============*%@#----------===#*--::=----:::::::::::::::::::
-----::-%+==:::::::::::::::::@::++------------*########%%@%=---++++==-----+*###+----------+::-=-----::::----------===*+--======#:::====*%%%%%%%%%%%%%%%%%%%%%%%%%#*-----------:::::+@%@%*==++=========++++=+#++=*%@@***+++*#====*===========#+=+..:...==-....=====#==+#..=: -.       ..:....=:. . ... =#%%=::-*@#-::::::::::-+*--=====---=*+=-----%#==============*%%#*---------==%#+-:-----=:::::::::::::::::::
------:::+%+=-::----------:::@::#+------------########@%%%%-----:+**#*--------------------+:::=---::::::==---------==**--======#::::-==#%%%%%%%%%%%%%%%%%%#**#=-------------:::::-@@===============++++++#+++++*%%@***+++#==================#==#.... .===...#=====+==## .=:.-..    .  .-....=-....     ..-.:#%%%:*%%*:-:::::=*+-======----**=-----@================+%%%#--------==**#--=----+:::::::::::::::::::
-------::::%#+=--------------@::#+------------######@%%%%@-%@@+---------------------------=:::+--:::::::+=---------==**--======#:::::::=*%%%%%%%%****---------------------::::==#%===============++=+#+++++++++@%%***+=+%===================#===.:...-===...+====+===#@..=:.-..    .  .-....==....      .- ..   .**#%@@#-:::=#=-======----**=----=%=================+%%@#--------==%-*-+----*:::::::::::::::::::
--------::::-%*+:------------@::**------------*##%@%%%%%@=@%==+*%++------------------------:::*---::::::*+---------==**--======#::::::::-*-::::::::--------------------#=#@%%%%*==================++++++++++++@%@***+%%-+======*============%=*..- ..====..======#===##..=:.-..    .  .-. ..-=. ..      .=..  ...*+++++*@@%=+#--======----+*----=*#===================%%@#*-------=+%--*----*:::::::::::::::::::
---------:::.:%#+------------@:-**------------*%%%%%%%%%@@========*%@+---------------------=::*----:::::*----------==**--======#::::::::::::::::-------------------=*=##=========================++++++++++++%%@**#@#. #=======#============#=# .: ..====..#=====+===##..=:.-..    ....-....:=. ..     ..=..    .++++++++++%%#-=======----+*----=%=====================%#%%#------==#*-*----*:::::::::::::::::::
----------:::::*%#=----------%:-**------------*%%%%%%%%@+=============#@*------------------*::=:-----:::*-:--------==+*---=====#:::::::::::::-------------------=*#%==========================++++++++++++++#@@*%@#=. ++=======*===========+#==.:. ..=.==..+====+===**=..=:.-..    ....:. ...=....     ..=..    :++++++*++++**-=======----+*-----@======================##%%#------==%=*----*:::::::::::::::::::
-----------:::::-%#=--------+#:-*#------------*%%%%%%%%+=================+%%---------------*:::-------::*:=---------=+*---=====*::::::::::-------------------###++==========================++++++++++++++++@%@#@#++..#====================*+#..-...-=.-=.*=====#===**...=:.-..    . ...... .=:..      ..=..    =+++++++++++#*========----+*=---=%=======================#%%#%=-----==@+----#:::::::::::::::::::
------------::::::##+-------@+:-*#------------*%%%%%%%=======================%%+-----------+:::+--------+==---------=+*---=====+::::::::-----------------#***=+============================++++++++++++++++%@*%##+*..*========++===========#=%..:...== :=.*=====*===#+...=-.=..    . ...:....=:..      ..=..  . #+++++++++++%=========----+*----+*+=========+++=+++*#%%%%%@#@#%+-----=++----*:::::::::::::::::::
------------:::::::##*------%=--+#--------=---*%%%%%@*=======++=================+%#+--------:::#--------+*----------=+*---======::::::::---------===+##+*-===============================++++++++++++++++++@#*+@==*..*========+*===========#=+.... .=-.:=*==========#*...=-.=..    . ...-.. .==..      ..=..  . %+++++%+++++#=========----*+----%###%%%%%%%%%#*+-+##*######@@@%%#-----==----+:::::::::::::::::::
-------------:::::::+##-----#---+*--------=---*%%%%@%+++++++========================+#%+----=::---------*=-----------=*---=====-::::::::---==+++##+====================================+++++++++++++++++++%#*+#*#*..+=========**===========#*..:....=. .=#=====*====+*.. =-.-..         -....:=..       .=...  .#+++++++++++#=========----*=----@++++++*:==---..::..=-... .*#@@@%#----=-----=:::::::::::::::::-:
--------------:::::::-##---:*:--+*--------=---*%%@%=====================================**#%#::::-------*@:----------=*----====::::::-===+*#*+========================================++++++++++++++++++++%*++#==*.-+=========#+===========#%..-...==...+===========+#...--.-..         :.....=...      .-... ..#+++++++++++#=========----*=----%++++++#.-=-=.:.::. =-...   .#@@@%#---*-----=:::::::::::::------
---------------::::::::##-:=*:--+*:-------=---#@*===========================================#:::=@@@@%%%+==:---------=*----====**###**==============================================+++++++++++++++++++++%#+++##=.-+==========*============#*..:...==...#===========+*...--.-..         .:....=...     ..-.... .#++++#++++++#=========----*=----#++++++@..===.:..-..==... .. *#*@@@%=-#-------:::::::::---------
---------------:::::::::##-+*---=*-----------=*==============================================:::-==+**+=+*=-----------*----===+===================================================+++++++++++++++++++++++%+++#=+#.*===========#===========*#.... ..=- .:+==========++=...:-.-..         .-....=:..     ..::. ...+++++#+++++*+=========----*-=-=-#++++++#..===.. .-..==.... ..****%@@%+*-----*--:::::------------
-------:::------:::::::::*##*---=*--------:--=*===============================================:::=======+=%-----------*----===+==================================================+++++++++++++++++++++++%*++*#+=.++===========#===========#%..:. .-=...#===========*=:.. .-.=..         .-....-=..     ...-. ..-=++++#+++++*==========----*----**+++++++..===.. .=..==...  .:****#@@@@*----=+*=--::-------------
-----::::::-----::::::::-=%@*---=*-----------+*==============================================*:::=======*=+-----------*----===+================================================+++++++++++++++++++++++++%++*#=*%.+============#===========#@..-...==...*===========#=.  ..-.=..         ......:=..     ...-....*=++++*+++++*==========----*----#+++++++. .===.  .=..==-.. ..=*****%@@@#----=++#+::--::----------
--::::::::::::--:::::::-===@+----*-----------**==============================================#:::-======**+*----------*-----==*==============================================+++++++++++++++++++++++++=%++%*===.%+============*===========**..:...==..#============#+.  ..=:-..         ..-....=..     ...-....#++++*#+++++*==========----*----#++++++%...==-:  .=..-==.. ..*******%%%*----+=++%+---------------
::::::::::::::::::::::=====#*----*-----------*#==============================================+::::======**-*----------+=----==*============================================+++++++++++++++++++++++++++*#+%===#*=+============*+===========#-.....:=:..#============#+.. ..=:-..         ..-....=:.     ...= ...#++++%*+++++*==========----*----#++++++@...-=.:   -.-::=.. ..#*******.%+----+=+++#=--------------
:::::::::::::::::::::======#*----*-----------+#================================================:::======+#-+*:=-------==----==*===========================================++++++++++++++++++++++++++++#%%===-+:#=============%============%:.:.. ==..*=============#*..  .=:-..         ...:...==.      ..=.  .#+++=#*+++++*==========----*----#++++++@...:=... .:-=..=..  .%******#..-----*-=+++++-------------
:::::::::::::::-::::======+*#----*-------:---+#===============================================#:::-======#--#---------==----==#=========================================+++++++++++++++++++++++++++++#@*====#+%==============@===========+%..-...==..*=============#+    .=.-:          ...-. .:=.      ..-.  .#=+++#++++++*==========----*---=#+++++++....=:.. ..==..=-.. .%******%.::----*+-==+++#-:----------
::::::::::::::::::-=======***---=*-----------+#===============================================*:::-======+--**--------==-----=#=======================================+++++++++++++++++++++++++++++++@+=====*%*==============%===========#+..-..:=-.*==============#+     -.-:          ..... ..=.       .-...:+=++**+++++*+==========---=*---+*+++++*. ...==.. ..==..==.. .%******%.=-----#@#-==++++-----------
:::::::::::::::::-========#++---#*-------=---=#+===============================================-:::======----*-:=-----+=-----=#=====================================++++++++++++++++++++++++++++++++@======*%#===============%=======-===#...:..==..*========+=====#-     :.-:.          ...-. .=-       ..: .=+=++#*+++++#===========---++---*++++++%. . -==.. ..-=..:=....%*****#%.+-----#%@#-==++=+----------
::::::::::::::::==========#==---#*-------+---=#++==============================================#:::=======---+*-------+=-----=#====================================+++++++++++++++++++++++++++++++*@=======#%===============##=====----=-#...:..==.#=========#-====#.     .:--.          .......-=..     ..-..++==+**+++++%===========---*+---#++++++%. . ===.. ..-=...=:. .#*****##.+-----#@#@%-===++=---------
:::::::::::::::=========-%%-----%*-------*---=#+++=============================================#:::-=====+:---*--=----+-------*==================================++++++++++++++++++++++++++++++==%#=======*@================%*=====------@..:..-=-.*========@*=====#.     .-:-.              -...=:.... . .-..#=++=:#+++++#===========--=*=---#++++++%....===.   .==...==...#*******.*------#@#@%=====+=--------
::::::::::::::=========*%*%-----%*-------*--:=#++++=============================================-:::=====+=---=#:-=---=-------*================================++++++++++++++++++++++++++++++++%%=========%=================#*=-----------..-..==:*-=======*@%=====#.     .-.-.              .:..==...  . .-..#++++.#+++++#===========---#=---#++++++#....=-=:   .=.-..-=...******=+.*-----=.=@%@@---====-------
::::::::::::-========*@***%-----@*-------#---=#++++=============================================#:::======*----*+-----=-------+===============================+++++++++++++++++++++++++++++++%%==========%+=================#*=---------=...- .==-*=======-%@%+====#.     .-.=.              .:..==.. . . .-. #+==#.%+++++#===========---#=---#+++++*+.. :=-==  ..=.=...=..:******=+.#-----+..:%@@@=======------
:::::::::::-=======%@#***-#-----@#-------*---=#==+++============================================+-::-=====*-----*-:-----------+==++=========================++++++++++++++++++++++++++++++#@%============@================-***=------==-+...- -=-#--=-=--=*#@%*====#.     .:.=.              ..-.:=-      .:..*+==#.%++++**===========---#---=#+++++#- ..=--==...:-.:-..==.=******++.#----==....#@@@+==-==------
::::::::::======*%@%***++=*-----@#-------*---=*====++============================================+:::=====++-----*-----------=++++=========================+++++++++++++++++++++++++++++%@#=============%-============-----%.*=-----=---+...-.==:+===-====*+%%#====#.     ...=.              ...:.=-. .    .-:+===+.%++++#*===========---#---=*+++++%: ..=.===...=...=..==.+******++.*----==... .*@@@*=====-----
:::::::::====*##%@***++++#+----+@*-------+--==*======+===========================================+:::=====+#-----+#--=-------=++=========================++++++++++++++++++++++++++++#@@%===============%=-==========------#.*=---------+.....==#===-----#.=%%%====*.     ..:-..  .          . ...==:..    .-=+=+=: #++++%*===========---#---+*+++++@. ..=.-.=:..=.. .-.:=.+*******=.*---:*==.    .#@@#-=-==----
:::::::====*#%#@**+++++++%-----*%*-------+--+=##=========================================++++++++==:::====+%------*#:-+------=+=========================++++++++++++++++++++++++++*@%%%================@=============----==#.*=---------*..:.==+=-==--==#..=#%%====+.     . :.-.. .            ..:.=-.     .-*===+..=++++%+===========---#---**+++++%. ..=.-.=-..=.. .-..=-*******#-.*----#==.    ..=#@@=-------
::::=====+%**@+++++++++++%-----*#*-------=--*=%#*#========================================+++++++++:::++===%-------**--=-----=========================++++++++++++++++++++++++++#*=#%**===============+#===========-=----=+*.*----------+..:.==#--==--=*:..=#%%=====.     ....=.. .              .:=::.     -+=+=+..:++++#============---#---#++++++%. .--.-.==.:-.. ..=.==#******#:.+----*==.    ....=%@%--=---
::=====*%**%#+++++++++++=%-----*##-------=--*=#*%###=======================================++++++++=::-+===#--------*+--=----+======================+++++++++++++++++++++++++%#====#*#+===============@===========-------=%-.*-----------..-==#=---=--*=...=+%*-====-     ....=.....              .==-.    ..*===+...++++*============---#---#++++++%...=.:-.==.=:.... .-:=%******#:=+----*==-...    ...%@%#=---
======%#**#+++++++++++++=%-----*##-------=--*=#***%###======================================+++++++=:::+===*--------=*=------+=====================+++++++++++++++++++++++@#=======#+%#==============%=============-------%..#---------=:..-=+*-==-=-+#....==%*======      ..:=.. .               ..=:..   ..*===*...*++#*-============--#---#++++++#. .=.:-..=:=.....  :.=%******#.#+-----===. .      ...@@%%=-
=====##*#++++++++++++++++%-----##*-------=--*=#*****%#*#======================================++=====::-===*=--------+*+-----*===================+++++++++++++++++++++*@#==========#*%*=============+%=============------=#..#--------==:..==#--=====*:....=-*#=====+     ....-:...               ..=--..  .:*==++...*++#*-============--#---#+++++++. .=..-..===....  ..-=%******# %+----.===.....    ....+%@%@
====%*#*++++++++++++==++*#-----##*----------*=*+******%**#==========================================-:::===*%---------**+---=#=================++++++++++++++++++++#@*=============%#%==============%-=============---=--**..#---------=...=*==--===*:.. ..=.=#*====+.        :-..                ..:=::..  =+====...*++%#-============--*---#+++++++. -:..-..==-.      ..-%******#.%=----.-==:...          =.*@
===@##++++++++++++====++#*-----%##----------*=++++******%**#+========================================+::===*%-----:----+*----#===============+++++++++++++++++++##+================%@%=============%+==============---=-=#+..*-------=-=..:=#==---=#.. . .:=.=-+=====.        .-...               ...=.-.. .+====-...+=+%*-============--*---#++++++*. =.:.-..-=.         .#*****#%.%=---=..===..           ... 
=*@#++++++++++++======++%+-----%#*----------*++++++++*****%#***======================================::::==#@-----------=*-+--+=============++++++++++++++++*#*===========++=======#@*============*%=================-==-#...+---------+..=#=----=*.-.....-=.--+=====.....    .-:..                ..=-.:. .+===+:.. *++#*-============--*--=*++++++*..=...-...==....     .#*****#%.%=---*..===..             . 
%@++++++++++++========++%=----=%#*----------*+++++++++++****%%***+=====================================::==*%+:----------=*-----+=========++++++++++++++*##+=++===++++++++++=======%@=============%==================-==+#...*-------=-+..++=---=+..... ..==..=-+=====. ..    .-...                ...=.-...+===+.:..+#+#*-============--*--++++++++#.--...- .:==...      .#*****#%.%+---#..-==-.               
*+++++++++++==========++%-----+##*----------**++++++++++++++**#%**=*============-:-===================:-::=*%-------------=*-@@--=======++++++++++++##*++++++==++++++++++++========%%============%====================--+#..-+---------+.=#====+=..-... ..==..=.+====+....    ..-:.               ....=:.:..*===+.-..:++#*-============--*--*+++++++#.=.:..-..-==. ..     :******#%-#+---*...===.               


    

i'm clmb

a software engineer with more hobbies that i can handle;

no domain expertise, just a generalist.


how do we discern between what needs to be changed and what should be accepted as an immutable aspect of our existence?


you can contact me at: