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