######## ## ####### ############## ###### ####### ######### ######...
## ## ####### ## ###
## ## ## ## ## ## ##
## ## ## ## ## ## ##
######### ## ## ## ## ##
## ## ## ## ## #########
## ## ## ## ## ## ##
## ## ####### ######## ## ##