######################################################################################################################################
######################################################################################################################################
######################################################################################################################################
######################################################################################################################################
######################################################################################################################################
######################################################################################################################################
######################################################################################################################################
######################################################################################################################################
######################################################################################################################################
######################################################################################################################################
######################################################################################################################################
######################################################################################################################################
######################################################################################################################################
######################################################################################################################################
######################################################################################################################################
######################################################################################################################################
######################################################################################################################################
######################################################################################################################################
######################################################################################################################################
######################################################################################################################################
######################################################################################################################################
######################################################################################################################################
######################################################################################################################################
######################################################################################################################################
######################################################################################################################################
######################################################################################################################################
######################################################################################################################################
#####################################################*,,,,,,,,,,,,,,,,,,,,,,,,,,######################################################
#####################################################*,,,,,,,,,,,,,,,,,,,,,,,,,,######################################################
#####################################################*,,,,,,,,,,,,,,,,,,,,,,,,,,######################################################
#####################################################*,,,,,,,,,,,,,,,,,,,,,,,,,,######################################################
#####################################################*,,,,,,,,,,,,,,,,,,,,,,,,,,######################################################
#####################################################*,,,,,,,,,,,,,,,,,,,,,,,,,,######################################################
#####################################################*,,,,,,,,,,,,,,,,,,,,,,,,,,######################################################
#####################################################*,,,,,,,,,,,,,,,,,,,,,,,,,,######################################################
#####################################################*,,,,,,,,,,,,,,,,,,,,,,,,,,######################################################
#####################################################*,,,,,,,,,,,,,,,,,,,,,,,,,,######################################################
#####################################################*,,,,,,,,,,,,,,,,,,,,,,,,,,######################################################
#####################################################*,,,,,,,,,,,,,,,,,,,,,,,,,,######################################################
#####################################################*,,,,,,,,,,,,,,,,,,,,,,,,,,######################################################
#####################################################*,,,,,,,,,,,,,,,,,,,,,,,,,,######################################################
#####################################################*,,,,,,,,,,,,,,,,,,,,,,,,,,######################################################
#####################################################*,,,,,,,,,,,,,,,,,,,,,,,,,,######################################################
#####################################################*,,,,,,,,,,,,,,,,,,,,,,,,,,######################################################
#####################################################*,,,,,,,,,,,,,,,,,,,,,,,,,,######################################################
#####################################################*,,,,,,,,,,,,,,,,,,,,,,,,,,######################################################
#####################################################*,,,,,,,,,,,,,,,,,,,,,,,,,,######################################################
#####################################################*,,,,,,,,,,,,,,,,,,,,,,,,,,######################################################
#####################################################*,,,,,,,,,,,,,,,,,,,,,,,,,,######################################################
#####################################################*,,,,,,,,,,,,,,,,,,,,,,,,,,######################################################
#####################################################*,,,,,,,,,,,,,,,,,,,,,,,,,,######################################################
#####################################################*,,,,,,,,,,,,,,,,,,,,,,,,,,######################################################
#####################################################*,,,,,,,,,,,,,,,,,,,,,,,,,,######################################################
#####################################################*,,,,,,,,,,,,,,,,,,,,,,,,,,######################################################
###########################,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,###########################
###########################,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,###########################
###########################,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,###########################
###########################,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,###########################
###########################,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,###########################
###########################,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,###########################
###########################,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,###########################
###########################,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,###########################
###########################,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,###########################
###########################,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,###########################
###########################,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,###########################
###########################,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,###########################
###########################,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,###########################
###########################,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,###########################
###########################,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,###########################
###########################,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,###########################
###########################,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,###########################
###########################,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,###########################
###########################,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,###########################
###########################,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,###########################
###########################,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,###########################
###########################,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,###########################
###########################,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,###########################
###########################,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,###########################
###########################,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,###########################
###########################,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,###########################
###########################**************************+,,,,,,,,,,,,,,,,,,,,,,,,,,***************************###########################
#####################################################*,,,,,,,,,,,,,,,,,,,,,,,,,,######################################################
#####################################################*,,,,,,,,,,,,,,,,,,,,,,,,,,######################################################
#####################################################*,,,,,,,,,,,,,,,,,,,,,,,,,,######################################################
#####################################################*,,,,,,,,,,,,,,,,,,,,,,,,,,######################################################
#####################################################*,,,,,,,,,,,,,,,,,,,,,,,,,,######################################################
#####################################################*,,,,,,,,,,,,,,,,,,,,,,,,,,######################################################
#####################################################*,,,,,,,,,,,,,,,,,,,,,,,,,,######################################################
#####################################################*,,,,,,,,,,,,,,,,,,,,,,,,,,######################################################
#####################################################*,,,,,,,,,,,,,,,,,,,,,,,,,,######################################################
#####################################################*,,,,,,,,,,,,,,,,,,,,,,,,,,######################################################
#####################################################*,,,,,,,,,,,,,,,,,,,,,,,,,,######################################################
#####################################################*,,,,,,,,,,,,,,,,,,,,,,,,,,######################################################
#####################################################*,,,,,,,,,,,,,,,,,,,,,,,,,,######################################################
#####################################################*,,,,,,,,,,,,,,,,,,,,,,,,,,######################################################
#####################################################*,,,,,,,,,,,,,,,,,,,,,,,,,,######################################################
#####################################################*,,,,,,,,,,,,,,,,,,,,,,,,,,######################################################
#####################################################*,,,,,,,,,,,,,,,,,,,,,,,,,,######################################################
#####################################################*,,,,,,,,,,,,,,,,,,,,,,,,,,######################################################
#####################################################*,,,,,,,,,,,,,,,,,,,,,,,,,,######################################################
#####################################################*,,,,,,,,,,,,,,,,,,,,,,,,,,######################################################
#####################################################*,,,,,,,,,,,,,,,,,,,,,,,,,,######################################################
#####################################################*,,,,,,,,,,,,,,,,,,,,,,,,,,######################################################
#####################################################*,,,,,,,,,,,,,,,,,,,,,,,,,,######################################################
#####################################################*,,,,,,,,,,,,,,,,,,,,,,,,,,######################################################
#####################################################*,,,,,,,,,,,,,,,,,,,,,,,,,,######################################################
#####################################################*,,,,,,,,,,,,,,,,,,,,,,,,,,######################################################
######################################################################################################################################
######################################################################################################################################
######################################################################################################################################
######################################################################################################################################
######################################################################################################################################
######################################################################################################################################
######################################################################################################################################
######################################################################################################################################
######################################################################################################################################
######################################################################################################################################
######################################################################################################################################
######################################################################################################################################
######################################################################################################################################
######################################################################################################################################
######################################################################################################################################
######################################################################################################################################
######################################################################################################################################
######################################################################################################################################
######################################################################################################################################
######################################################################################################################################
######################################################################################################################################
######################################################################################################################################
######################################################################################################################################
######################################################################################################################################
######################################################################################################################################
######################################################################################################################################
######################################################################################################################################