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