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