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