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