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