######## ######## ######## ######## ######## ######## ######## ######## ######## ######## ######## 
#  ##  # ##       ###   ## ###   ## #####    ######## ###  ### ##    ## ##    ## ##    ## ##    ## 
#  ##  # ##   ### ###   ## ###   ## ###   ## ######## ##    ## #  ##  # #  ##  # ###  ### ###  ### 
#      # ##       ###   ## ###   ## ##   ### ######## #  ##  # #    ### #  ##### ###  ### ###  ### 
#  ##  # ##   ### ###   ## ###   ## ##   ### ######## #      # ####   # #  ##### ###  ### ###  ### 
#  ##  # ##   ### ###   ## ###   ## ###   ## ######## #  ##  # #  ##  # #  ##  # ###  ### ###  ### 
#  ##  # ##       ###      ###      #####    ######## #  ##  # ##    ## ##    ## ##    ## ##    ## 
######## ######## ######## ######## ######## ######## ######## ######## ######## ######## ########