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