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