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