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