###########################################################################
# #             #   #  #   #      #          # #   #            #         #
#   ######### #   # #    # #  # #   # ###### # # # ### # # # #  # ####### #
# # #         ##### #### # #### ##### ##   # #   #   #          # #    ## #
# #############   #      #   !           # # # # ###   ########## #    ## #
# #   #   #   # # ##### ## ######### ##### # ###   # #          # #### ## #
#   #   #   #   #          #            #  #   ### # #   #  # # #   ## ## #
############################^############  ####### ########## # ### ## ## #
#       #%  #   -   #      ###  #                           # # # # ## ## #
# ##### ### # #  ^ -# ##   #    # #######  ### ###  ####### # # #$# ## ## #
# # @ #       #     #  ### #      #  ^  #  #? $ ?#      $=# #   # #    ## #
# < #$#=## ######## #    #      # ### ###  #######  ####### ##### ######  #
##### ###/?   #   # ###### #    #                                    ^ # ##
#  =# @ #-  #   # #        #    # ### ############ ######## ##### ######  #
## ## ########### ############### #     #  # ^ - # #!!!!! # #   # #   ### #
#   #!##  #          #            #    =#  #^>^$   !!!!!! # #   # # # #   #
# ###?#   # ##### ######## ###### ######################### #   # # # # ###
#  ## ### #     # #  #   # #    #                           #       # #   #
#         ##### #   ## # # ## # ##### ####### ##### ########### ### # ## ##
### #######     # #    # #    #     # #       #   # #             #   #   #
# # #   #   # ### # ## # #### # ##### ####### ## ## ###########   # # ### #
# ;  ?#   #   #   # #  #      #                                   # #     #
###########################################################################
