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