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