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