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