####################################################################################################
#S #    # ### ##           ##   #   # ### #  #   ##    #       #   ### ## ####      # ## ## #  #####
#  #  # # ## ##   #  # # # # #          #    # # #####  # ##     #  #       ##    #       ##  #    #
##   #  ##  ###  ## ####  ## # # #   ##    ####  #  ##   #### ## ###   # #   # ##  #  #  ##        #
###      # ##   ##  ###  # #   #### #   #    #   #   ##     ##        ###### ## ## # # ###   #   ###
## # #          #  ###   # #  ## ###  ### # # ##      # #  # ##      #        #       #######    # #
######  ###               ## #  # # #  # #    ### ###  ##   ### ### ##### # #  ## #   # ## ##   ####
####    #   ##    #    # ##       # ## ## ##       #   ##     # #     ##  ##  #     #    #  # ## ###
#  #   #       #      # ######    #    #  ##  ####   #    #   #   ## #     # ###   ##### ##  #     #
# ###  # # # #  ##          ###     # #  ##    #### # #     # ######  #    #  ###### #     ##      #
## ## ##   ###           # # ### #     #   ##     #         ## ### ###  ##  ## #     ### #  #      #
##   #  ## #   #  ##         # ###   #   ## #   ###  ##    #  ### ###  ###   # ## ##  # ###  # #   #
#   # #    # # ### #  ##       #  #  #     ## #  #  #  #   # # # #    #  # ### ##  #   #   ## #  # #
##   #  #  #     ####  ##  #  # # #  #  #  ### #   #  #####    #        #           #  #  # # #  # #
#    ##       ##  # ##  #        #   ####   #  #      ## ####  #  ##   #  #      #   #    # # # #  #
#         #   ###  # # # ##   #  # #  #  ## ##    #    # # #   ## # #  #  # ##  ## ####  #  ## # # #
# #  ### #  #   ##  #  ##  ####    ####  ## #         #### # ### ##  #    #    #      #    ## ##   #
##### #  # # #    # ## # ##          # ### # # # # # #   # #  # #  ### ## #  ## ##     #### # #    #
# # #   ####  ## ##      ##    # #    # # # # # # #  ##   #    #   ##   # ###   #    # ## # #  #  ##
### #   ###      ####### ###  # #  #    #        # ##  ##     #              ## #  ## #   ##     ###
# #     ###    ######## ###   ##  #        #  # #  # #   ##  ##    #  ## ###  # #  #   ###  ###  ###
# #  ## ##  # # ### ### ##    #    # ##   #   # #     #   #     ## ## ###   # #      ####  ####  ###
#  ### ##  ###   #### #     ##   # #   ##           #   ##  # ## ###  # # #   #   ###  #    ##   ###
#### ## #  ### #  # ## ###  ##   #   # #             #   #  # # ##     # ##  ## # # # #  ##  ##    #
### ## #  #  ####   ##  ##  #####   ##  #  # # ## #   ##  # #  #  #     # #   #  #     ## # ##  #  #
# #    #  # #    #    # ##  ##  #   ### # ## ## # ##    # # #   ##     #   # ##  ##  # # #    # ## #
# #  ######  #  #  # #  # #   #   #  ## ##  #    # # ##    #  #  # # #   #  ## #  # ##  #   #     ##
# # # # # ##  #  # #   #  #  # # #   ## #      ##  # ####     #  ### ####   ## #         #    ##  ##
##     #     # ##        #   ###  # #### ## #   ###    ## # #         #  # ###  # ## # #    # #    #
# #  ###   # ### # ## # ##      ##    #  # #  ###  #####     ## ###  #  ## ###  # # #   ##  ###### #
## # # #  ##  #  # ####        #  #      ## #  ##   # #  # #   #   #           #   # #     #  #  # #
## # #  #   ##   #### #  ### ###  ## #  ##  #####  # # # #  # #      #     #   # # #####      # # ##
#  ## ##   # #     # # ### ##  # #     ###   ###  ##   #  # #    #   ## #   # ## ### # #  #      ###
# ## ##  ##  ###   #  #  ####       #        ## ##   ##   ###     ###   # #                  ##   ##
##  #   #  ##### ####  #   #  ##   ##          ###  #  #   # #  #  #  #  #  #  #  ### #      ####  #
# # #  #    # #      ####    #   #  ##  #    # #    ## #   #   #   #  #  # # ###   #  #           ##
##      ###    ##        ###    #    ##   ## ###  #   ##   #  #   #      # # # # #   # # ####  ## ##
##    #   ###    ##   ## #   # ###  #  #  ####      # #    # ###  #     #  #  # #  #    ####  #    #
# # #     ##  ### # #  #     # #      # ## ##  #   # ## ##  #       ## #  #    #  #     ### ##  #  #
#    ###   # ###  ## # # # #   # #  ##      # ###### # ## ##    ##  #     ##  ## ## #   ##       # #
# #  #     #  #  ##   #     #    #  #   #  #       ## #      #   #   ######      # #    ###   #    #
#   #  ## #  #  ##     # # ##       ###  #    ##  ##      ##  # #  #   #  #    #  # #  #  ## # #   #
## ####      ## ### ####  #   #  ### #  #   # #  #  ##  # ## #   # #####   ## ##   #     #  ##     #
##    # #   #  ##   #   ## # #  ##   #   ####  # #        ### #     #### #  ##  #  ##### #  #    # #
#   # #  #    #  ## ####    #  #  ##  #    #  # #    ## # ## ##     # # # ## # #   ## ## ### #     #
#  # # ## #     ##  # #   ##        ##   # ##         #  #  ##      #      ##     #  #    # #####  #
## #### ##   ##### # ###     #  ### #   #  ##  # ##   #    # #       # #  #   # ## #  ###   #   ## #
#      # #  #  # ##  #    ## #   ##   ## # # ### #   ####### # # ## # ###   ## ## ##    ##      ## #
### ##  #  ##  ##   #    ##  #     ###  ###  #   ### #  # #  ######  ### ### # #   #   ##   ###  # #
##       #  ## ##  #   ##    ###       #   # #   # ##      #   ### #  ###  ##    #      ## # # # # #
# # ## ##      ## # #   #  # ##   # # ## #   ## # #   # ##  # #  # #   #   #   #  # ##         # # #
#  #  #     ##      #  ##  ##   ## ####   ## ## ##   ###        ##### ######  ##      ###   #    # #
#  # ## #  #  #    #  ##         # #   #    #  # ## #     ####  ##    #  ##         # ### #  ##    #
# #    ## #   #  # ###    #  #      # # ##  ###   ##  # ## # # #  # #  ##  #     # #  ### ##     # #
#   ## #   #  #      ## #   # # # # ##         #         #  # # ##   # #  #  # ######   ## ###   # #
#  ## ##      #  ### # #   ##  #######  ## # ####### #      # # #     ## # ### #   ##     # #      #
##  ###  ## ###    # ##     #   #   ##  ### # ### ### # # #  ##     #     #  ##       #  ### #     #
# #  # ### ## #       # ##    #      ##                ##   #  ### #     #  #  ###  ###### #   # # #
##        # ### ##  #   ###   ##  ##     #   ## #   ##     ##     ### ## ### ### ## ##       # ##  #
# #  #### ## #    # ##   ##   #   #### #    ###  #   ## ## #  #        #          #  #  ##      #  #
# #     #  #   ####  #  # #   ### ## # ##  ##   ##   #  # ## # ##### # # #    #   # ## #  #### # # #
#   #    ###    #  # ##  ####   #    # #    #  ##  ##   #       ##  ## ###     # ##  ##   ## #  ## #
## #     ##     # # #   # # ## ## #       ##  ##  ##      #   ##  #     ####  ##         #    ##   #
#   #    #  ##     # ##  #   #  #  #   ###    #   # ## ##  #    #  # #  # ###  #    ### ## # #  ## #
#  #   # ###  #       #          ##  ## # # ##   #  ###  # #    ###   #    ##   # ### # ## ## ## # #
###     # ##   #  # #### ###   ## # ## # ##  #          ##       #### #  # ###### #  #  #### #  ## #
# # # #  # #   ### #  #    #  #   ##   ####       ### #  #   #  # #     ##  # # # ####  # ####  #  #
##    ## #      ##   #  #  # # # ##    # ### ####  # ## ###     #   ##### ### ##        ###  #   # #
#  #      # #######   ##   ###  #  ####### # # # #######   #  #      #   ### # # ## # #       #    #
##  #  #  ## ## ##  # ###   ##  ##  ###      ## ## #    #  ##        #   ##   ## #   #      # #    #
### #  #     ####   ###    # # ## #   ## # #  # ####     #  #    #  # #    #   # # ##    #  ##     #
# ##### #    ##  ### ## ####     # #    #  ##  #### # #      #   #   ##   #    #  ##      #        #
# #    # #  #    ###  #  ##    #### # # # ###    #    #  #   # ## #       #       #  #  # #        #
# # ##  ## #### #   #   ### ## ##           ###   ###  ##  ## #      #   # #  # ##    #   ##   ### #
## #  #   ##    # #  ##          # ## # ### # ###               # #   #  ##     #   ###  #### # ## #
# ##  #        # # #  ##  ##  #     #   # # ## #  ###  ## ###### ### #    ## ### # #     # #    #  #
###   # #    #  # ####   # #    # #    ###     ##### # ##   #  ##   # #   ##    #  #        #  ##  #
#   #   # #  #####   # # ####  #    #     # ##   #        ##      #  #    ## ###  #  # ## # ####   #
### ## #  #   #  ## #   # ##  #  # ##    #   #  #      ###   ## ## # ### #      #  ## # # #     #  #
####   #        # # # ##   # #        #  ##    ###   #      #  #  ###  #   ## #  # ##  # # # ##  # #
#  # #   ## #   ##   #  #   ## ### # ##   ## # ##  #  ## ##     #  # # ## #  # ###     ## ##   ##  #
#   # #    ##  # #   #     ##   # ##  ##   # ##  #    ##       ##   ####    ####   #    ## #   #   #
##  #     # #### ###  ##   # #### ###   ### #    ##      #    #   ##  ##      #     ##      # ###  #
# ##  #####  #  #    ##    ### ### #   # # #     ### ####          ## ##   ##   ##     ### ## #    #
# #  ##   # ## ##          #     #  ###  #   # # #       ##  #  ###  ##     ## ##   ##  ##  # #  # #
# ####      #  #  ####   #  ## ###  ######   #  #  #    ## # #    #  #   # # # # # #### ##  # # #  #
# ####   # ### #####   # ##   ## #    #  ##    ## #  ##     ##   #       ##    ###  # # #   # # #  #
#   # ##    #   # #  ##    # # ##     ## #  #    #      #   ##  #    #   #  ## ###       #  ##   # #
###   #    ##         #        #    # ## #  #    # ####   #####  #   # ##  #  ## # #   # #   ### # #
#  #    # #  ### #  ##  #  #   # # ## #     #    # ###   # ## #        # #  #  # #  #   # #  # #   #
##  #  #  #  #     ##  ## #   #### ## # #  ## # # #   # #     ### #  # #    #### # #    ## ## # #  #
## #  # ##  #  ####  # #    #   #  ##   #    ### ##   ## #### #  ## ## # ##  ## #### ##  ### ####  #
#       ### ### ###   # ### ### ##    # # #       ###### # #  ###    ##  #   #  #    #  #  #   #   #
## ###         ## #   ##     #      ##     #     ## ###  #      #        #  ####      ### ###    # #
#   # ## #     #    #   ##     ##       # #  # #   ###   ###  #  ### ###   #    # # #  ###  ## #   #
##   # ##  # #   # #  ###### ##     ###    #  ###  #   # #  ## # ##    ## # ###  # #  # ## #   ##  #
#   ##  #  ##  # #   # ## ##    # ##  ## ##   #     ##  #  ##      #  # #  #     ##  # #   #       #
#   ###  #   ## ##   #   ####  #  #####   #   ##     ##   ##       ###   #    #        #  #   ###  #
##  # ## #   #     # #   #####  #  ## #   # #  ##   #  ###    # # #   ##   # ## # #    #      ##  E#
####################################################################################################
