                               :=+#%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*:                          
                          .-+#%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#-                        
                       :+#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%-                      
                    :+%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#:                    
                  -#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*.                  
                =%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%-                 
              -%@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+                
            :#@@@@@@@@@@@@@@@@@@%#*****************#%@@@@@@@@@@@@@@@@@@@@@@@@@@@#:.:.           
           +@@@@@@@@@@@@@@@@%#+=++*#%%@@@@@@@@@@@%##***#@@@@@@@@@@@@@@@@@@@@@@@@@%==+:          
         .#@@@@@@@@@@@@@@@#+-=+#%@@@@@@@@@@@@@@@@@@@@%#**#%@@@@@@@@@@@@@@@@@@@@@@@@##%:         
        :%@@@@@@@@@@@@@@%=:-*%@@@@@@@@@@@@@@@@@@@@@@@@@@#**#@@@@@@@@@@@@@@@@@@@@@@@@@@%.    .:::
       :%@@@@@@@@@@@@@@+::+%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#**%@@@@@@@@@@@@@@@@@@@@@@@@@*....:===
      :%@@@@@@@@@@@@@@=.-*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#**%@@@@@@@@@@@@@@@@@@@@@@@@@+---=**#
     .#@@@@@@@@@@@@@@- -#@@@@@@@@@@@@@@@@@%###%@@@@@@@@@@@@@#*#@@@@@@@@@@@@@@@@@@@@@@@@@%****%%@
   .:*@@@@@@@@@@@@@@- :*@@@@@@@@@@@@@@@@%#******#%@@@@@@@@@@#**%@@@@@@@@@@@@@@@@@@@@@@@@@@@%@@@@
  .-+%@@@@@@@@@@@@@+ .+@@@@@@@@@@@@@@@%#***********%@@@@@@@@#**#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#
.:=*%@@@@@@@@@@@@@%:.:%@@@@@@@@@@@@@@%%%%#**********%@@@@@@@#**#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#+
-+#%@@@@@@@@@@@@@@+ .=@@@@@@@@@@@@@@@@@@@@***********%@@@@@#***%@@@@@@@@@@@@@@@@@@@@@@@@@@@@%#+-
+#@@@@@@@@@@@@@@@@- .*@@@@@@@@@@@@@@@@@@@@#***********#%%%#***#@@@@@@@@@@@@@@@@@@@@@@@@@@@@%*=:.
#@@@@@@@@@@@@@@@@@: .#@@@@@@@@@@@@@@@@@@@@%******************#@@@@@@@@@@@@@@@@@@@@@@@@@@@@%+-.  
*%@@@@@@@@@@@@@@@%: .#@@@@@@@@@@@@@@@@@@@@@#***************#%@@@@@@@@@@@@@@@@@@@@@@@@@@@@%=:.   
=*#@@@@@@@@@@@@@@%-  +@@@@@@@@@@@@@@@@@@@@@@@##*********##%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@=.     
::=#@@@@@@@@@@@@@%+  -@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+       
  .-+%@%##@@@@@@@%*: .*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*        
    .=##+-*@@@@@@@*=  :%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*         
      :=-:.*@@@@@@#+-  -@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+          
        .   *@@@@@@*+:  -@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@=           
             *@@@@@@++:  :#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%@@@@@@@@@@@@@@@@@@@@#:            
              *@@@@@@==-  .+@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%@@@@@@@@@@@@@@@@@@@@@@@=              
               =@@@@@@+-=.  :*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+.               
                -%@@@@@*-=-.  :*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%+.                 
                 .*@@@@@%=:=-.  .=#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%*-                    
                   -%@@@@@#-:--:   .-*%@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%#*+:.                      
                     =%@@@@@*-::--.    .-=*#%@@@@@@@@@@@@@@@%%#+=-::..                          
                       =%@@@@@#-..:--:.      ..::-------::..                                    
                         -#@@@@@%+:..:---:..                                                    
