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