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