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