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