#######   ##########  ##########  ####            ####    
 #:::::::#  #::#######  #::#######  #::#           #:::#    
#::####::#  #::#        #::#        #::#          #::::#    
###   #::#  #::#        #::#        #::#         ###:::#    
     #:::#  #::#####    #::#####    #::#           #:::#    
    #:::#   #::#####    #::#####    #::#           #:::#    
   #:::#    #::#        #::#        #::#           #:::#    
  #:::####  #::#        #::#        #::#######     #:::#    
 #:::::::#  #::#######  #::#        #::::::::#   ###:::###  
##########  ##########  ####        ##########   #########