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