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