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