------------------------------------------------------------------
----#-------------------#------------------#------#----#----------
---#------#-------#------#-------##---------#----#-----#-----#--#-
--#--------#-----#--------#---###---#####-#------#---#####---#--#-
--#--------#-----#--------#-----#-------#--#----#--------#---#--#-
-#----##----#####----##----#----#-------#------##-------#----#--#-
-#----##----#---#----##----#-######-----#-----#-#------#-----#--#-
-#-----------#-#-----------#----#-------#----#--#-----##-#---#--#-
--#----------#-#----------#-----#-------#-------#---##-#--#-------
--#-----------#-----------#----#--------#-------#------#----------
---#----------#----------#-----#----#####-------#------#-----#--#-
----#-------------------#-----#---------#-------#------#----------
------------------------------------------------------------------