BBBBBBBBBBBBBBBBB                                                                                                   
B::::::::::::::::B                                                                                                  
B::::::BBBBBB:::::B                                                                                                 
BB:::::B     B:::::B                                                                                                
  B::::B     B:::::B  aaaaaaaaaaaaa   rrrrr   rrrrrrrrr      ggggggggg   ggggg  aaaaaaaaaaaaa   rrrrr   rrrrrrrrr   
  B::::B     B:::::B  a::::::::::::a  r::::rrr:::::::::r    g:::::::::ggg::::g  a::::::::::::a  r::::rrr:::::::::r  
  B::::BBBBBB:::::B   aaaaaaaaa:::::a r:::::::::::::::::r  g:::::::::::::::::g  aaaaaaaaa:::::a r:::::::::::::::::r 
  B:::::::::::::BB             a::::a rr::::::rrrrr::::::rg::::::ggggg::::::gg           a::::a rr::::::rrrrr::::::r
  B::::BBBBBB:::::B     aaaaaaa:::::a  r:::::r     r:::::rg:::::g     g:::::g     aaaaaaa:::::a  r:::::r     r:::::r
  B::::B     B:::::B  aa::::::::::::a  r:::::r     rrrrrrrg:::::g     g:::::g   aa::::::::::::a  r:::::r     rrrrrrr
  B::::B     B:::::B a::::aaaa::::::a  r:::::r            g:::::g     g:::::g  a::::aaaa::::::a  r:::::r            
  B::::B     B:::::Ba::::a    a:::::a  r:::::r            g::::::g    g:::::g a::::a    a:::::a  r:::::r            
BB:::::BBBBBB::::::Ba::::a    a:::::a  r:::::r            g:::::::ggggg:::::g a::::a    a:::::a  r:::::r            
B:::::::::::::::::B a:::::aaaa::::::a  r:::::r             g::::::::::::::::g a:::::aaaa::::::a  r:::::r            
B::::::::::::::::B   a::::::::::aa:::a r:::::r              gg::::::::::::::g  a::::::::::aa:::a r:::::r            
BBBBBBBBBBBBBBBBB     aaaaaaaaaa  aaaa rrrrrrr                gggggggg::::::g   aaaaaaaaaa  aaaa rrrrrrr            
                                                                      g:::::g                                       
                                                          gggggg      g:::::g                                       
                                                          g:::::gg   gg:::::g                                       
                                                           g::::::ggg:::::::g                                       
                                                            gg:::::::::::::g                                        
                                                              ggg::::::ggg                                          
                                                                 gggggg                                             
                                                                                                                    
                                                                                                                    
                                                                                                                    
                                                                                                                    
                                                                                                                    
                                                                                                                    
           ooooooooooo   rrrrr   rrrrrrrrr      ggggggggg   ggggg                                                   
         oo:::::::::::oo r::::rrr:::::::::r    g:::::::::ggg::::g                                                   
        o:::::::::::::::or:::::::::::::::::r  g:::::::::::::::::g                                                   
        o:::::ooooo:::::orr::::::rrrrr::::::rg::::::ggggg::::::gg                                                   
        o::::o     o::::o r:::::r     r:::::rg:::::g     g:::::g                                                    
        o::::o     o::::o r:::::r     rrrrrrrg:::::g     g:::::g                                                    
        o::::o     o::::o r:::::r            g:::::g     g:::::g                                                    
        o::::o     o::::o r:::::r            g::::::g    g:::::g                                                    
        o:::::ooooo:::::o r:::::r            g:::::::ggggg:::::g                                                    
 ...... o:::::::::::::::o r:::::r             g::::::::::::::::g                                                    
 .::::.  oo:::::::::::oo  r:::::r              gg::::::::::::::g                                                    
 ......    ooooooooooo    rrrrrrr                gggggggg::::::g                                                    
                                                         g:::::g                                                    
                                             gggggg      g:::::g                                                    
                                             g:::::gg   gg:::::g                                                    
                                              g::::::ggg:::::::g                                                    
                                               gg:::::::::::::g                                                     
                                                 ggg::::::ggg                                                       
                                                    gggggg