##        #         #                                                                      
                                    #     ##   #  ###         ###                                                               
                                    # #  # #   #  # #    #    ##                                                                
                                    # #  ###   ##  ##    #    ###                                                               
                                     ##           ###   #                              o__ __o                   o              
                                                                                      /v     v\                 <|>             
                                                                                     />       <\                / \             
                     //   ) )       //   ) )                                       o/                  o__ __o/ \o/    o__ __o/ 
                    //___/ /       ((                                             <|       _\__o__    /v     |   |    /v     |  
                   / ____ /          \\                                            \\          |     />     / \ / \  />     / \ 
                  //                   ) )                                           \         /     \      \o/ \o/  \      \o/ 
                 //             ((___ / / _____   ___    _  _                         o       o       o      |   |    o      |  
                                         (  _ \  / __)  ( \/ )       |                <\__ __/>       <\__  / \ / \   <\__  < > 
                                          )___/  \___\ ( \ _/_           ___                                                 |  
                                         (__)  ) (___/ | (__) )      )  |___)                                        o__     o  
                                           |__/  |__/| |  |__/      /   |__                                          <\__ __/>  
                                                          __/    __/                                                            
         o                                                                                                                      
       _<|>_                                                                                                                    
                                                                                                                                
         o       o__  __o                                                                                                       
        <|>     /v      |>                                                                                                      
        / \    />      //                                                                                                       
        \o/    \o    o/                                                                                                         
         |      v\  /v __o                                                                                                      
        < >      <\/> __/>                __|         |           _)                                                            
         |                               (_ |   _` |  |   _` |     |    -_)                                                     
 o__     o                              \___| \__,_| _| \__, |     |  \___|                                                     
 <\__ __/>                                              ____/   __/                                                             
                                                                                                                                
                                                                                                                                
                                                                                                                                
                                                                                                                                
                                                                                                                                
                                                                                                                                
                    dP""b8     db      88        dP""b8   88888   888888                                                        
                   dP   `"    dPYb     88       dP   `"      88   88__                                                          
                   Yb  "88   dP__Yb    88  .o   Yb  "88  o.  88   88""                                                          
                    YboodP  dP""""Yb   88ood8    YboodP  "bodP'   888888                                                        
                                                                                                                                
                                                                                                                                
                                                                                                                                
                                                                                                                                
                                                                                                                                
                                                                                                                                
                                                                                                                                
                                                                                                                                
                                                                                                                                
                               :'######:::  :::'###::::  '##:::::::  :'######:::  ::::::'##:  '########:                        
                               '##... ##::  ::'## ##:::   ##:::::::  '##... ##::  :::::: ##:   ##.....::                        
                                ##:::..:::  :'##:. ##::   ##:::::::   ##:::..:::  :::::: ##:   ##:::::::                        
                                ##::'####:  '##:::. ##:   ##:::::::   ##::'####:  :::::: ##:   ######:::                        
                                ##::: ##::   #########:   ##:::::::   ##::: ##::  '##::: ##:   ##...::::                        
                                ##::: ##::   ##.... ##:   ##:::::::   ##::: ##::   ##::: ##:   ##:::::::                        
                               . ######:::   ##:::: ##:   ########:  . ######:::  . ######::   ########:                        
                               :......::::  ..:::::..::  ........::  :......::::  :......:::  ........::