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

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

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