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