Übungen

Laurie Frick Mein Schulweg Flüssiges Exercise flexbox Exercise flexbox-food Klick mich p5 - triangle p5 - search history p5 Give me cat facts Mousemove TikTok-Cats

IDA Digital Design 2022


Chalid Baumann

Galerie


Hauptprojekt

Laurie Frick
Mein Schulweg
Flüssiges
Exercise Flexbox
Exercise Flexbox Food
Klick mich!
p5 - triangle
p5 - search history
p5 Give me cat facts
Mousemove
TikTok-Cats













                                                                                                                                                                                                                                                          
                                                                                                                                                                                                                                                          
                                                                                                                                                                                                                                                          
                                                                                                                                                                                                                                                          
                                                                                                                                                                                                                                                          
                                                                                                                                                                                                                                                          
                                                                                                                                                                                                                                                          
                                                                                                                                                                                                                                                          
                                                                                                                                                                                                                                                          
                                                                                                                                                                                                                                                          
                                                                                                                                                                                                                                                          
                                                                                                                                                                                                                                                          
                                                                                                                                                                                                                                                          
                                                                                                                                                                                                                                                          
                                                                                                                                                                                                                                                          
                                                                                                                                                                                                                                                          
                                                                                                                                                                                                                                                          
                                                                                                                                                                                                                                                          
                                                                                                                                                                                                                                                          
                                                                                                                                                                                                                                                          
                                                                                                                                                                                                                                                          
                                                                                                                                                                                                                                                          
                                                                                                                                                                                                                                                          
                                                                                                                                                                                                                                                          
                                                                                                                                                                                                                                                          
                                                                                                                                                                                                                                                          
                                                                                                                                                                                                                                                          
                                                                                                                                                                                                                                                          
                                                                                                                                                                                                                                                          
                                                                                                                                                                                                                                                          
                                                                                                                                                                                                                                                          
                                                                                                                                                                                                                                                          
                                                                                                                                                                                                                                                          
                                                                                                                                                                                                                                                          
                                                                                                                                                                                                                                                          
                                                                                                                                                                                                                                                          
                                                                                                                                                                                                                                                          
                                                                                                                                                                                                                                                          
                                                                                                                                                                                                                                                          
                                                                                                                                                                                                                                                          
                                                                                                                                                                                                                                                          
                                                                                                                                                                                                                                                          
                                                                                                                                                                                                                                                          
                                                                                                                                                                                                                                                          
                                                                                       .. ... .                                                                                                                                                           
                                                                                       ...........     .........                                                                                                                                          
                                                                                      .............,,::+++%%#%%%++:,,..                                                                                                                                   
                                                                                     ........,:+%+%%##################%+::,.                                                                                                                              
                                                                                 .........,::+%%###########################%+,.                                                                                                                           
                                                                                ........,:+%%%################################%+,.                                                                                                                        
                                                                                ......,,+%%######################################%:.                                                                                                                      
                                                                              ......,,:+###########################################%+.                                                                                                                    
                                                                              ....,,,+%################################@#############%:.                                                                                                                  
                                                                             ....,,,+%######################@@@@#########@@###########%+,.                                                                                                                
                                                                              ..,,,:#####@@@@@@@#############@@@@@@@@@@@################%+.                                                                                                               
                                                                             ...,,:%###@@@@@@@@@@@#############@@@@@@@@@@@################%,                                                                                                              
                                                                             ..,,,%####@@@@@@@@@@@@@@@###########@@@@@@@@@@@@##############%:.                                                                                                            
                                                                            ...,,+####@@@@@@@@@@@@@@@@############@@@@@@@@@@@@##############%+.                                                                                                           
                                                                            ..,,,%###@@@@@@@@@@@@@@@@@@@####@##@@@##@@@@@@@@@@@##############%%,                                                                                                          
                                                                            ..,,:%###@@@@@@@@@@@@@@@@@@@@@####@@#@@@##@@@@@@@@@@@@#############%:.                                                                                                        
                                                                           ...,,:%##@@@@@@@@@@@@@@@@@@@@@@@##@@@@@#@@@#@@@@@@@@@@@@############%%+.                                                                                                       
                                                                           ...,:,%#@@@@@@@@@@@@@@@@@@@@@@@@@@##@@@@@#@@@#@@@@@@@@@@@@############%+.                                                                                                      
                                                                         . ...,,:##@@@@@@@@@@@@@@@@@@@@@@@@@@@##@@@@@@@@@@@@@@@@@@@@@@@###########%%,                                                                                                     
                                                                         .....,::##@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@############%,                                                                                                    
                                                                    .........,,,:##@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#############%,                                                                                                   
                                                                   ..,::+:%+%%%%%%#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@##@@@@@@@@@@#############%,                                                                                                  
                                                                 ..,::,,:+%#######@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#@@@@@@@@@@#############%,                                                                                                 
                                                                ..,+:.:%%#########@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#@@@@@@@###############%.                                                                                                
                                                               .,::..+%##########@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#@@#@@@################+.                                                                                               
                                                              .,,:.,+%########@@@@@@@###############@@@@@@@@@@@@@@@@@@#@@@@@@@@@@@@#@#@#@@#############%##,.                                                                                              
                                                             .,.:,,+%#######################################@@@@@@@@@@@@@#@@@@@@@@@@###@@@##############%#%..                                                                                             
                                                            ...,,,:%########@##################################@@@@@@@@@@@@@@@@@@@@@#####################%%,.                                                                                             
                                                           ...:,,:+########@@@###################################@@@@@@@@#@@@@@@@@@@@@##@###@@@###########%+..                                                                                            
                                                         ....,,.,+%#######@@#@########%%%%#########################@@@@@@@@@#@@@@@@@@@###@@################%...                                                                                           
                                                         ..,,:.,+%#######@@@#########%%%%%%%%#######################@@@@@@@@@##@@@@@@@@##@@@@###############+..                                                                                           
                                                         ..,:,,:+#######@@@########%%%%%%%%%%%%%%%####################@@@@@@####@@@@@@@@##@@@@##############%:..                                                                                          
                                                         .,,:,,%########@@@#######%%%%%%%%%%%%%%%%%%%#################@@@@@######@@@@@@@@@#@@@@##############%,.                                                                                          
                                                        .,,,,,:#######@@@@@######%%%%%%%%%%%%%%%%%%%%%%%%##################@######@@@@@@@@@#@@@@##############+..                                                                                         
                                                        ,,,:,,%######@@@@@@#####%%%%%%%%%%%%%%%%%%%%%%%%%%%%#######################@@@@@@@#@##@@###############,.                                                                                         
                                                        ,,,,.+#######@@#@@#####%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%######################@@@@@@@####@@##############+..                                                                                        
                                                       .,,:,,%######@@@@@@####%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%################@####@@@@@@@@###@@##############,.                                                                                        
                                                      .,:,:,+#######@@@@######%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%####################@@@@@@@@###@@#############+..                                                                                       
                                                      .,:,::#######@@@@@######%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%####################@@@@@@@####@#############..                                                                                       
                                                      .:,:,%#######@@@@@#####%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%###################@@@@@@@####@###########%:.                                                                                       
                                                     ..:.::#####@#@@@@@@#####%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#################@@@@@@@@###############%+..                                                                                      
                                                     .,:::%#######@@@@@#####%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#################@@@@@@@#@##############%,.                                                                                      
                                                    ..,,:+#######@@@@@@#####%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%##################@@@#@@@#############%+.                                                                                      
                                                    ..:,:%######@@@@@@@####%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%##################@@@#@#@#############%:                                                                                      
                                                   ...::+#######@@@@@@@####%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%##################@@@@@@##############%.                                                                                     
                                                   ...:+%######@@@@@@@@###%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%##################@@@@@@##############:                                                                                     
                                                   ...:%######@@@@@@@@@###%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#################@@@@@@##############, .                                                                                  
                                                  ....+%######@@@@@@@@###%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%##################@@@@@@#############+..                                                                                  
                                                  ...,+######@@@@@@@@@###%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#################@@@@@@@############+:.                                                                                  
                                                  ...,%######@@@@@@@@@##%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%################@@@#@@############++..                                                                                 
                                                  ...:%######@#@@@@@@###%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%+%%%%%%%%%%%%%################@@##@############++..                                                                                 
                                                 ..,,+#######@#@@@@@@###%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%++++%%%%%%%%%%%%%###############@@##############%+,.                                                                                 
                                                 ...,%#######@@@@@@@@##%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%++++++++%%%%%%%%%%###############@@@############%+,..                                                                                
                                                 ...:%######@@#@@@@@###%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%+%%%+%%%%%%%%+++++++++%%%%%%%%%%###############@##############+,..                                                                                
                                                  .,:%#####@@##@@@@@###%%%%%%%%%%%%%%%%%%%+%%%%%%%%%%%%+++++++%%%%++++++++++++++%%%%%%%%%##############################%,.                                                                                
                                                ...:+%########@@@@@@###%%%%%%%%%%%%%%%%%%%%%%+++%+++++++++++++%++++++++++++++++++%%%%%%%%%##############################%.                                                                                
                                                 ..:+%########@@@@@####%%%%%%%%%%%%%%%%%%%%%++++++++++++++++++%++++++++++++++++%+%%%%%%%%%%##############################:                                                                                
                                                 ..,+%########@@@@@####%%%%%%%%%%%%%%%%%++++++++++++++++++++++++++++++++++++++++%+%%%%%%%%%%############################%%                                                                                
                                                 ..:+########@@@@@@####%%%%%%%%%%%%%%%+++++++++++++++++++++++++++++++++++++++++%%%%%%%%%%%%%%###########################%+.                                                                               
                                                 ..,+########@@@@@@####%%%%%%%%%%%%%+%+++++++++++++++++++++++++++++++++++++++%%%%%%%%%%%%%%%%%%##########################%.                                                                               
                                                ..,,+#######@@@@@@@####%%%%%%%%%%%%%%%%++++++++++++++++++++++++++++++++++%%%%%%%####%%%%%%%%%%%%##########################,                                                                               
                                                ..,:+%######@@@@@@@####%%%%%%%%%%%%%%%%%+++++++++++++++++++++++++++++++++%%%%%#########%%%%%%%%%%#########################%,.                                                                             
                                                ...:+%##%####@@@@@@####%%%%%%%%%%%%%%%%%+++++++++++++++++++++++++++++++++%%%%%%%%%%%%%%%%%%%%%%%%%%########################+.                                                                             
                                                ...,:%#######@@@@@@####%%%%%%%%%%%%%%%%%%%+++++++++++++++++++++++++++++++++%%%%%%%%%%%%%%%%%+++++%%%#######################%,                                                                             
                                                ...:,+%##%###@@@@@@####%%%%%%%%%%%%%%%%%%%%%%%%%%+%+++++++++++++++++++++++++++++%%%%%%%%%++++++++++%%######################%:.                                                                            
                                                ...,.:%##%###@@@@@@#####%%%%%%%%%%%%%%%%%%%%%%%%%%%%%+++++++++++++++++++++++++++%%%%%%%%%%++++++++++%%######################%.                                                                            
                                                ...,.+:%%####@@@@@@#####%%%%%%%%%%%%%%%%%%%%%%%%%%%%%+++++++++++++++++++++++++%%%%%%%%%%%%+++++++++++%%#####################%.                                                                            
                                                .....::%%%###@@@@@######%%%%%%%%%%%%%%%%######%%%%%%+++++++++++++++++++++++++%%%%%%%%%%++++++++++++++%%%####################%:.                                                                           
                                                .....,:+%%###@@@@@######%%%%%%%%%%%%%%#########%%%%%++++++++++++++++++++++++%%%%%%%%%%%%%%++++++++++++%%%####################%..                                                                          
                                                .....,::%%%###@@@@######%%%%%%%%%%%%%%%##%%%%%%%%%%%++++++++++++++++++++++++%%%%%%%%%%%%+++++++++++++++%%%###################%:.                                                                          
                                                 .....,:+%%%###@@#######%%%%%%%%%%%%%%%%%%%%%%%%%%%++++++++++++++++++++++++%%%%%%%%%%%%%%++++++++++++++%%%####################%,                                                                          
                                                   ....::%%%###@########%%%%%%%%%%%%%%%%%%%%%%%%%%%%++++++++++++++++++++++%%%%%%%%%%%####%%%++++++++++++%%%###################%:.                                                                         
                                                   ....,:+%%%###########%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%++++++++++++++++++++%%%%##%%##########%++++++++++++%%%###@##############%+..                                                                        
                                                   ....,,++%%###########%%%%%%%%%%++++%%%%%%%%%%%%%%%%%++++++++++++::++++%%%%#############%%##%%+++++++++%%%%###@#############%+:..                                                                       
                                                     ...,,+%%%##########%%%%%%%%++++++%%%%%%%%%%%%%%%%%%+++++++++++::++++%%%##########@@###++###%%++++++++%%%##@#############%%%+,.                                                                       
                                                      ..,.:+%%#####@####%%%%%%%++++++++%%%%%%%%%#%%%%%%%%++++++++++:::+++%%%#####%##%######+%%%%%+++++++++%%%%#@@############%%+:,..                                                                      
                                                      ...,.++%#####@####%%%%%+++++++++%%%%%%%%%%%###%%%%%%%++++++++:::+++%%%%####%%#####%##%%%+++++++++++++%%%#@@@###########%%%::...                                                                     
                                                       ..,.,++####@@####%%%%+++++++++%%%%%%%%#%%%####%%%%%%+++++++++::+++%%%%############%%%++++++++++++++++%%##@@############%+:,...                                                                     
                                                       . ...:+%##@@@####%%%%++++++++%%%%%#############%%%%%%+++++++::::+++%%%%######%%%%%%++++++++++++++++++%%%##@###########%%+,,..                                                                      
                                                          ..,:+##@@@#####%%++++++++%%%%################%%%%%++++++++::++++%%%%%##%%%%%%%%++++++++++++++++++++%%##############%%+,,..                                                                      
                                                          ..,,:##@@@#####%++++++++%%%%#########%@%####%%%%%%+++++++++:+++++%%%%##%%%%%%%%+++++++++++++++++++++%##############%%+,,..                                                                      
                                                          ...,,%#@@@#####%++++++++%%%##%%###@@#########%%%%%%++++++++++++++%%%%%%%%%%%%%%+++++++++++++++++++++%#@###@#######%#%:,,..                                                                      
                                                          ....,+#@@@#####%+++++++%%%##%+%###@@########%%%%%%%+++++++++++++++%%%%%%%%%%%%%++++++++++++++++++++++#@############%%:,,.                                                                       
                                                          .. ..:#@@@#@###%+++++++%%###%++##%#########%%%%%%%%%++++++++++++++++%%%%%%%%%%+++++++++++++++::+:++++######@#######%%:,,..                                                                      
                                                              .,%#@@@@###%++++++%%%####%%#############%%%%%%%++++++++++++++++++%%%%%%%%%%%++++++++++++::::::+++%###@@########%%+,,..                                                                      
                                                              ..+#@@@####%++++++%%%%%%#########%%%%##%%%%%%%%++++++++++++++++++++%%%%%%%%%%++++++++++::::::::++%###@@#######%%%%,...                                                                      
                                                             . .,#@@@####%++++++%%%%%%%%%%%%%%%%%%##%%%%%%%%%++++++++++++++++++++++%%%%%%%%%%++++++++::::::::++%##@@@#######%%%%:,..                                                                      
                                                              ...#@@@####%++++++++++%%%%%%%%%%%%%%%%%%%%%%%%%+++++++++++++++++++++++%%%%%%%%%++++++++::::::::++%##@@@@######%%%%:...                                                                      
                                                              ...%#@@####%++++++++++++++%%%%%%%%%%%%%%%%%%%%%++++++++++++++++++++++++++%%%%++++++++++:::::::::+%##@@@@######%%+%+,...                                                                     
                                                               ..:#@@@####++++++++++++++++%%%%%%%%%%%%%%%%%%+++++%+++++++++++++++++++++++++++++++++++:::::::::+%##@@@@######%%%%+...                                                                      
                                                                .,#@@#####++++++++++++++%%%%%%%%%%%%%%%%+%%%+++%%%++++++++++++++++++++++++++++++++++++::::::::+%#@@@@@######%%%+%...                                                                      
                                                                .,%@@@####%++++++++++%%%%%%%%%%%%%%%%%%%++%++++%%++++++++++++++++++++++++++++++++++++:::::::::+%#@@@@@@#####%%++%,...                                                                     
                                                                ..+@@@####%+++++++++++%%%%%%%%%%%%%%%%%%++++++%%%+++++++++++++++++++++++++++++++++++::::::::::+%#@@@@@@######%++%:...                                                                     
                                                                 .:#@@####%++++++++++++%%%%%%%%%%%%%%%%%++++++%%%%%++++++++++::++++++++++++++++++++:::::::::::+%#@@@@@######%%+++:...                                                                     
                                                                 ..#@@@####+++++++++++%%%%%%%%%%%%%%%%%%+++++%%%%%%++++++++++::++++++++++++++++++++:::::::::::+%#@@@@@@######%%+++,..                                                                     
                                                                 ..%@@@@###+++++++++++%%%%%%%%%%%%%%%%%%++++%%%%%%%+++++++++++++++++++++++++++++++::::::::::::+%#@@@@@@@#####%%+++,,.                                                                     
                                                                  .+#@@@###++++++++++++%%%%%%%%%%%%%%%%+++%%%%%%%%+++++++++++++++++++++++++++++++:::::::::::::+%#@@@@@@@#####%%+++,..                                                                     
                                                                  .:#@@@#@@%++++++++++++%%%%%%%%%%%%%%++%%%%%%%%%%+++++++++++++++++++++++++++++++:::::::::::::+%@@@@@@@@#####%%+++,..                                                                     
                                                                  .,%#@@@@@%+++++++++++++%%%%%%%%%%%%+%%%%%%%%%%%%++++++++++:++++++++++++++++++++:::::::::::::+#@@@@@@@@#####%%++:,..                                                                     
                                                                  .,+##@@@@#++++++++++++++%+%%%%%%%%+%%%%%%%%%%%%++++++++++::++++++%++++++++++++++::::::::::::+#@@@@@@@@@#####%%+:,..                                                                     
                                                                  ..:##@@@@#++++++++++++++++%+%%%%%%%%%%%%%%+%%%++++++++::::+++++++%%+++++++++++++::::::::::::+#@@@@@@@@@#####%%+::..                                                                     
                                                                  ..,##@@@@#+++++++++++++++++++%%%%%%%%%%%++++++++++++::::::+:::++++%++++++++++++:+::::::::::+%@@@@@@@@@######%%+::,.                                                                     
                                                                  ...%##@@@@+++++++++++++++++++++%%%%%%%+++++++++++++:::::::+::::+++%%%++++++++++++::::::::::+%@@@@@@@@@#######%+::..                                                                     
                                                                  .,.:##@@@@%++++++++++++++++++++%%%%%%++++++++++++++::::::++::::+++++%++++++++++++:::::::::++#@@@@@@@@@@#####%%+::,.                                                                     
                                                                   ,,,##@@@@%++++++++++++++++++++%%%%%%++++++++++++++:++++++:::::++++++++++++++++++::::::::+++#@@@@@@@@@@######%+::..                                                                     
                                                                   ,,.%##@@@#++++++++++++++++++++%%%%%%++++++++++++++++++%%++++:+++++++++%++++++++::::::::++++#@@@@@@@@@@######%%+:,.                                                                     
                                                                   .,.+##@@@#+++++++++++++++++++%%%%%%%+++%%%%++++++++++%%%%%+++++++++++++++++++++++::::::+++%@@@@@@@@@@#######%%::,.                                                                     
                                                                   .,.:%##@@@%++++++++++++++++++%%%%%%%%++%%%%%%++++++++++++++++++++++++++++++++++++:::::++++%@@@@@@@@@@######%%%::,..                                                                    
                                                                   .,,,+####@#++++++++++++++++++%%%%%%%%%%%%%%%%%++++++++++++++++++++++++++++++++++++:::+++++#@@@@@@@@@@######%%%+,,..                                                                    
                                                                    ,,,:####@#+++++++++++++++++%%%%%%%%%%%%%%%%%%%+++++++++++++++++++++++++++++++++++::++++++#@@@@@@@@@@######%%%+,,..                                                                    
                                                                    .,,,%####@%++++++++++++++++%%%%%%%%%%%%%%%%%%%%%%+++++++++++++++++++++++++++++++++++++++%#@@@@@@@@@@######%%%%:,,..                                                                   
                                                                     ..,+####@#++++++++++++++++%%%%%%%%%%%%%%%%%%%%%%%++++++++++++++++++++++++++++++++++++++%@@@@@@@@@@@######%#%%:,,..                                                                   
                                                                     .,.:#####@%++++++++++++++%%%%%%%%%%%%%%%%%%%%%%%%%+++++++++++++++++++++++++++++++++++++##@@@@@@@@@@######%%%%:,,..                                                                   
                                                                      ..,%####@#++++++++++++++%%%%%%%%%%%%%%%%%%%%%%%%%++++++++++++++++++++++++++++++++++++%#@@@@@@@@@@@#######%%%:,,..                                                                   
                                                                       .,+#####@#+++++++++++++%%%%%%%%%%%%%%%%%%%%%%%%%%%++++++++++++++++++++++++++++++++++%#@@@@@@@@@@@#######%%%+,,..                                                                   
                                                                        .:####@@@%++++++++++++%%%%%%%%%%%%%%%%%%%%%%%%%%%+++++++++++++++++++++++++++++++++%%@@@@@@@@@@@@########%%+,,,                                                                    
                                                                        .,%####@@#++++++++++++%%%%%%%%%%%%%%%%%%%%%%%%%%%+++++++++++++++++++++++++++++++++%#@@@@@@@@@@@########%%%+,,,.                                                                   
                                                                         .%####@@#%++++++++++++%%%%%%%%%%%%%%%%%%%%%%%%%+++++++++++++++++++++++++++++++++%%#@@@@@@@@@@@########%%%+:.,                                                                    
                                                                         .+####@@##++++++++++++%%%%%%%%%%%%%%%%%%%%%%%%%++++++++++++++++++++++++++++++++%%##@@@@@@@@@@#########%%%+:.,.                                                                   
                                                                          :#####@##%+++++++++++%%%%%%%%%%%%%%%%%%%%%%%%%%%%+++++++%%%%%+++++++++++++++++%%#@@@@@@@@@@##########%%%+:.,.                                                                   
                                                                          .%####@@##+++++++++++%%%%%%%%%%%%%%%%%%%%%%%%%%%%++%%%%%%%++++++++++++++++++++%#@@@@@@@@@@@##########%%%+:...                                                                   
                                                                          .+########%++++++++++%%%%%%%######%%%%%%%%%%%%%%%%#%%%%%+++++++++++++++++++++%%#@@@@@@@@@@########%%%%%%+:,..                                                                   
                                                                           :#########++++++++++%%%%%%%%%%%%%%#############%%%%++++++++++++++++++++++++%%#@@@@@@@@@@@#######%%#%%%%+,,..                                                                   
                                                                           .%#######@#++++++++++%%%%%%%%%%%%%%%%%%%%%%%%%%%%%++++++++++++++++++++++++%%%#@@@@@@@@@@@######%%%#%#%%%,,..                                                                   
                                                                           .%%#######@%+++++++++%%%%%%%%%%%%%%%%%%%%%%%%%%%%+++++++++++++++++++++++++%%#@@@@@@@@@@@#######%%%#%%%%%,,..                                                                   
                                                                            :%#########++++++++++%%%%%%%%%%%%%%%%%%%%%%%%%%+++++++++++++++++++++++++%%#@@@@@@@@@@@@#######%%%#%%%%%:,..                                                                   
                                                                            ,%##########+++++++++%%%%%%%+++%%%%%%%%%%%%%%%+++++++++++++++++++++++++%%%#@@@@@@@@@@@######%%%%%%%%%%%:,..                                                                   
                                                                            .%%#########%++++++++%%%%%%+++++%%%%%%%%%%%%%+++++++++++++++++++++++++%%%#@@@@@@@@@@#@######%%%%%%%%%%%:,..                                                                   
                                                                             :%##########%++++++++%%%%%%%+++++++%%%++++++++++++++++++++++++++++++%%%#@@@@@@@@@#@#@######%%#%%%%%%%+:,..                                                                   
                                                                             .%###########%+++++++%%%%%%++++++++++++++++++++++++++++++++++++++++%%%##@@@@@@@@@@@#@#####%%%#%%%%%%%%:,..                                                                   
                                                                              +%###########%++++++%%%%%++++++++++++++++++++++++++++++++++++++++%%%%#@@@@@@@@@#@#@#####%%%%%%%%#%%%%+,..                                                                   
                                                                              :%##########@#+++++++%%%%++++++++++++++++++++++++++++++++++++++++%%%#@@@@@@@@@@#@#######%%%%%%%%%%%%%+,..                                                                   
                                                                              .%##########@@#+++++++%%%+++++++++++++++++++++++++++++++++++++++%%%#@@@@@@@@@@@#########%%%%%%%%%%%%%+:..                                                                   
                                                                               +%#########@@@#++++++++%%%%%+++++++%%%+++++++++++++++++++++++++%%##@@@@@@@@@@#########%%%%#%%%%%%%%%+:..                                                                   
                                                                               ,%#########@@@@#+++++++%%%%%%+%%%%%%%%%%++++++++++++++++++++++%%%#@@@@@@@@@@@#########%%%%#%%%%%%%%%+:..                                                                   
                                                                               .%%#########@@@@#+++++++%%%%%%%%%%%%%%%%++++++++++++++++++++++%%#@@@@@@@@@@@@#######%#%%%##%%%%%%%%%+:,.                                                                   
                                                                                :%#########@@@@@#+++++++%%%%%%%%%%%%%%%+++++++++++++++++++++%%#@@@@@@@@@@@@@#######%#%%%#%%%%%%%%%%+:,.                                                                   
                                                                                .%#########@@@@@@%+++++++%%%%%%%%%%%%%%+++++++++++++++++++++%##@@@@@@@@@@@@#######%#%%%%#%%%%%%%%%%+:...                                                                  
                                                                                 :%#%######@@@@@@%%+++++++%%%%%%%%%%%%%++++++++++++++++++++%%#@@@@@@@@@@@@@#######%#%%%%#%%%%%%%%%%+:,..                                                                  
                                                                                 .%##%######@@@@@%%++++++++%%%%%%%%%%+++++++++++++++++++++%%##@@@@@@@@@@@@########%#%%%%#%%%%#%%%%%++,..                                                                  
                                                                                  :##%######@@@@@%%%++++++++%%%%%%%%%+++++++++++++++++++++%###@@@@@@@@@@@@#######%%#%%%%%%%%%%%%%%%++,...                                                                 
                                                                                  .%#%%##@#@@@@@@#%%%+++++++++%%%%%%%++++++++++++++++++++%#####@@@@@@@@@@@#######%%#%%%%%%%%%%#%%%%++:...                                                                 
                                                                                   :##%##@@@#@@@@#%%%%+++++++++++%%%%+++++++++++++++++++%######@@@@@@@@@@@#######%%%%%%%%%%%%%#%%%%+:+...                                                                 
                                                                                   .%#%%##@@@#@@@#%%%%%++++++++++%+++++++++++++++++++++%#######@@@@@@@@@@@#######%%%%%%%%%%#%%#%%%%+,+:....                                                               
                                                                                    ,#+%%##@@#@@@%%%%%%%++++++++++++++++++++++++++++++%#######@@@@@@@@@@@########%%%%%%#%%%#%%#%%%%+::+,..                                                                
                                                                                    .+%:%###@#@@#%%%%%%%%++++++++++++++++++++++++++++%########@@@@@@@@@@@########%%%%%%#%%##%%#%%%%+:,::...                                                               
                                                                                     .%,,%##@@@@%%%%%%%%%%++++++++++++++++++++++++++%#########@@@@@@@@@@@#######%#%%%%%%%%#%%%%%%%%%+,,:,...                                                              
                                                                                      ,%,,:%#@@#%%%%%%%%%%%%++++++++++++++++++++++%%##########@@@#@@@@@#########%%%%%%%#%%##%%%%%%%%+:,:,,..                                                              
                                                                                      .:+.,,#@#%%%%%%%%%%%%%%+++++++++++++++++++%%%%###########@@#@@@@@#########%%%%%%%#%###%%#%%%%%++:.:,...                                                             
                                                                                       .::.,%#%%%%%%%%%%%%%%%%%%%%%%%%+++++%%%%%%%%%###########@@#@@@@##########%%%%%%%%%###%%#%%%%%%%:.,,,..                                                             
                                                                                        .+:,+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%###########@@#@@@#########%%%%%%%%#%%###%%#%%%%%%%+,,,,..                                                             
                                                                                         .++%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%##########@@@@@@@#@#######%%%%%%%%%%####%%#%%%%%%%%:.,,....                                                           
                                                                                         .,+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%##########@@@@#@@#@#######%%%%%#%%%%#####%#%%%%%%%%%,,,,...                                                           
                                                                                         .:%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%##########@@@@#@##@#######%%%%%#%%%##@###%#%%%%%%%%%+,,,...                                                           
                                                                                        .+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%##########@@@@@@##########%%%%%%#%%##@###%%%%%%%%%%%+:,,,.. .                                                         
                                                                                       ,%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%##########@@@@@##########%%%%%%##%%#@####%%%%%%%%%%%%+,,,,..                                                          
                                                                                     .+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%##########@@@@@##########%#%%%%#%%##@#@##%%%%%%%%%%%%%+,,....                                                         
                                                                                    ,%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%######@@@@@@####%#####%#%%%##%%##@@@###%%%%%%%%%%%%+:,,....                                                        
                                                                                  .:%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%######@@@@@@####%###%#%#%%%##%%###@@@##%%%%%%%%%%%%%+:,.....                                                       
                                                                                 ,%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#####@@@@@@####%###%#%#%%%##%%###@@###%%%%%%%%%%%%%%+,.....                                                       
                                                                               .+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%######@@@@@@########%#%%%%%%%%####@@@##%%%%%%%%%%%%%%%+,....                                                       
                                                                             .:%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#####@@@@@@########%#%%%%#%%%####@@@##%%%%%%%%%%%%%%%+:,...                                                       
                                                                           ,:%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#####@@@@@@###%####%#%%%%#%%%#@##@@@###%%%%%%%#%%%%%%%+:,...                                                      
                                                                        .:+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#####@@@@@@###%%###%##%%%#%%%####@@@###%%%%%%%##%##%%%%+:....                                                     
                                                              ...    .,+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%####@@@@@@@@##%%###%##%%%#%%%#####@@###%%%%%%%%#%%#%%%%+:,...                                                     
                                                            .,:+,.,:+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%####@@@@@@@@##%%%#%###%%%#%%%#####@@@###%%%%%%%##%##%%%%+:,...                                                    
                                                        .,.,::::+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%####@@@@@@@@##%%##%#%%#%%#%#%#####@@@###%%%%%%%######%%%%:,,... .                                                 
                                                      .,:+++++::+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%####@@@@@@@##%%%##%#%#%%%#%#%#####@@@####%%%%%%%######%%%+:,,.....                                                
                                                 ..,,:++++++++::+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#####@@@@@@##%%%##%#%#%%%#%#%######@@####%#%%%%%%#####%%%%+:.,....                                                
                                                .::+++++++++++:::+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%######@@@@@@####%##%#%#%%%#%########@@@####%%%%%#%########%%+:++::,,..                                             
                                               .,:::+++++++++++::+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%######@#@@@@####%##%%%#%%###%#######@@@#####%%%%%%#%#######%%%%%++++++::,.                                         
                                            .,:++:::++++++++++++:+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#########@@@##%#%##%%##%%###%#######@@@######%%%%#%########%%%%%%%%%%++++++:.                                      
                                         .,+%%%%+:::+++++++++++:::+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#########@@@##%%##%#%##%%###%########@@#######%##%%#########%%%%%%%%%%%+++++++,.                                   
                                      .:+%%%%%%%+:::+++++++++++++:+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%##########@####%##%%###%%##%%########@@@######%%##%%##########%%%%%%%%%%%+++++++:.                                 
                                   .,+%%%%%%%%%%+:::+++++++++++++:+%%%%%%%%%%%%%%#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%###########@###%%##%%###%%%#%%#######@#@@##########%%############%%%%%%%%%+++++++++,                                
                                  ,+%%%%%%%%%%%%+:::++++++++++++:::+%%%%%%%%%%%%%%###%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%###########@#%#%%##%####%%#%%%#######@#@@##@########%%############%%%%%%%%++++++++++:.                              
                                .+%%%%%%%%%%%%%%+:::++++++++++++:::+%%%%%%%%%%%%%%%%##%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%##########@@###%%##%###%%%#%%########@#@@##@#########%############%%%%%%%%%+++++++++++,                             
                               ,+%%%%%%%%%%%%%%%+:::++++++++++++:::+%%%%%%%%%%%%%%%%%####%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%###########@###%%#%%###%%%#%%##########@@@@@@######@################%%%%%%%++++++++++++,                            
                             .++%%%%%%%%%%%%%%%%+:::+++++++++++++:::%%%%%%%%%%%%%%%%%%%####%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%##########@@###%##%####%%%%%%%###@#####@@@#@########################%%%%%%%++++++++++++:,                           
                            .+%%%%%%%%%%%%%%%%%%+:::+++++++++++++:::%%%%%%%%%%%%%%%%%%%%######%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%##########@####%##%####%%%%%%%####@#####@@#@@#######@################%%%%%%++++++++++++:+,                          
                           .+%%%%%%%%%%%%%%%%%%%+::::++++++++++++:::+%%%%%%%%%%%%%%%%%%%%%######%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%################%##%###%####%%%%###@@####@@##@#######@################%%%%%%%+++++++++++:::,                         
                          .+%%%%%%%%%%%%%%%%%%%%+::::++++++++++++:::+%%%%%%%%%%%%%%%%%%%%%%%%####%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%################%##%###%##%#%%%%####@####@@@@@@###########@############%%%%%%+++++++++++::::.                        
                         .+%%%%%%%%%%%%%%%%%%%%%+::::++++++++++++:::+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%################%##%##%%#%%%#%%%%#@#######@@@@@@######@###@@###@########%%%%%++++++++++++::::.                       
                        .+%%%%%%%%%%%%%%%%%%%%%%+::::++++++++++++::::%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%################%#%###%%%##%##%%###@@#####@@@@@@#@#####@##@@@###########%%%%%%++++++++++:::::,                       
                        +%%%%%%%%%%%%%%%%%%%%%%%+:::++++++++++++++:::%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%################%#%####%%%#%##%%#%##@@####@@@@@@@######@##@@@###########%%%%%%+++++++++++:::::.                      
                       :%%%%%%%%%%%%%%%%%%%%%%%%+:::++++++++++++++:::%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%################%#%#%###%%%%###%%###@#####@@@@@@@#@####@##@@@###########%%%%%%++++++++++:::::::                      
                      ,%%%%%%##%%%%%%%%%%%%%%%%%+:::++++++++++++++:::+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%################%##%%###%%%#####%####@@####@@@@@@@@@#@##@##@@@###########%%%%%%++++++++++::::::,                     
                      +%%%%%%##%%%%%%%%%%%%%%%%%+:::++++++++++++++:::+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#################%%##%%##%%######%%####@@###@@@@@@@@@@@@#@##@@############%%%%%%++++++++++:::::::                     
                     ,%%%%%%%%%%%%%%%%%%%%%%%%%%+:::++++++++:+++++:::+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#################%%##%%###%%#####%%####@@@##@@@@@@@@@#@@#@@#@@@###########%%%%%%++++++++++:::::::.                    
                    .+%%%%%%%%%%%%%%%%%%%%%%%%%%::::++++++::::++++:::+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#################%###%%#%######@#%%####@#@#@@@@@@@@@@@@#@###@@@###########%%%%%+++++++++++:::::::                    
                    :%%%%%%%%%%%%%%%%%%%%%%%%%%%::::++:::+::::++++::::%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%##################%#%##%%##########%####@@@##@@@@@@@@@@@@@@##@@###########%%%%%%%+++++++++::::::::.                   
                   .%%%%%%%##%%%%%%%%%%%%%%%%%%%::::+:++++:::::+++::::%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#################%%%###%%##########%###@@#@#@@@@@@@@@@@@@@##@@############%%%%%%%+++++++++:::::::,                   
                   :%%%%%%%#####%%%%%%%%%%%%%%%%::::+++++++::+++++::::%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#################%%####%%##############@@@#@@@@@@@@@@@@@@################%%%%%%++++++++++:::+::::.                  
                  .%%%%%%%%%######%%%%%%%%%%%%%%::::++++++::::++++::::%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%###############%%%#####%%#############@@@##@@@@@@@@@@@@@@#@#############%%%%%%++++++++++::++::::,                  
                  :%%%%%%%%%#######%%%%%%%%%%%%%::::+++++:::::++++::::+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%##############%%##%####%###@#########@@##@@@@@@@@@@@@@@#############%%%%%%%%+++++++++++:++:::::.                 
                 .%%%%%%%#%%%#######%%%%%%%%%%%%::::++++:::::::+++::::+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%############%%%%%##########@#######@@@#@@@@@@@@@@@##@############%%%%%%%%%++++++++++++++:::::.                 
                 :%%%%%##%%%%########%%%%%%%%%%%::::++++++:::::++++:::+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%############%%%%##################@@@#@@@@@@@@#@@#########%%%##%%%%%%%%%%+++++++++++++++++++,                 
                .%%%%%%##%#%%####%%##%%%%%%%%%%%::::++++::::::+++++:::+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%##########%%##%#####@@###########@##@@@@@@@@#@########%%%%%%%%%%%%%%%%%+++++++++++++++++++:.                
                ,%%%%%%#%%##%%##%%%%#%%%%%%%%%%%::::+++:::::::+++++:::+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#########%%%########@@############@@@@@@@@@#########%+%%%%%%%%%%%%%%%%%++++++++++++++++++:,                
                +%%%%%%%%###%%##%%%%##%%%%%%%%%%::::++:::::::::++++::::%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#########%%#############@########@@@@@@@#########%%+%%%%%%%%%%%%%%%%%+++++++++++++++++++:.               
               ,%%%%#%%%####%%%#%%%%##%%%%%%%%%+::::++::::::::+++++::::%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#####%####%%#############@#########@@@@@#####%##%%++%%%%%%%%%%%%%%%%%+++++++++++++++++++:.               
               :%%%%%#%%%%%%%%%#%%%%##%%%%%%%%%+::::++::::::::+++++::::%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%###%%#####%#%############@###########@@#####%%%%%%+:%%%%%%%%%%%%%%%%%+++++++++++++++++++:,               
              .%%%%%%#%%%%%%%%%##%%###%%%%%%%%%+::::++:::::::::++++::::%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#%%%#######%#%%######@@##########@@#########%%%%%%+:%%%%%%%%%%%%%%%%%+++++++++++++::++::::.              
              :%%%%%%%#%%####%%%#%%%###%%%%%%%%+::::++::::::::++++:::::%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#########%#########@###########@@@@@#####%%%%%%+:%%%%%%%%%%%%%%%%++++++++++++++::++::::,              
             .+%%%%%%%#%%%###%%%#%%%###%%%%%%%%+::::++:::::::::+++:::::+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%##########%%###################@@@@######%%+%+%+:%%%%%%%%%%%%%%%%++++++++++++++++:::::::              
             ,%%%%%%%%#%%%##%%%%##%%###%%%%%%%%+::::+++::::::+++++:::::+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%##############################@##@@#####%%%+%+%+:%%%%%%%%%%%%%%%%+++++++++++++++++::::::.             
             ++%%%%%%%%%%%##%##%##%%%%#%%%%%%%%+::::+++::::::::+++:+:::+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%##############################@########%%%++%+++:%%%%%%%%%%%%%%%+++++++++++++++++++:::::,             
            .%%%%%%%%#%##%%%###%%##%%%%%%%%%%%%+::::+++:::::::++++:::::+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#####################################%%+:+%+++:+%%%%%%%%%%%%%%+++++++++++++++++++::::::             
            ,%%%%#####%##%%####%%###%%%%%%%%%%%+::::+++::::::::+++:+:::+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%####################################%%%+:+%+++:+%%%%%%%%%%%%%%%++++++++++++++++++:::+:+.            
            +%%%%#####%##%%####%%####%%%%%%%%%%:::::+++:::::::++++:+::::%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%####################################%%%+:+%+++:+%%%%%%%%%%%%%%++++++++++++++++++++++++::            
           .%%%%%%%###%##%%%###%%#####%%%%%%%%%:::::+++:::::::++++:+::::%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#################################%#%%%%+:+%+++::%%%%%%%%%%%%%%++++++++++++++++++++++++::.           
           :%%%%%%%%##%##%%#%%#%%######%%%%%%%%:::::+++::::::+++++::::::%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%##############################%%#%%%%:::++++::%%%%%%%%%%%%%%+++++++++++++++++++++++:::.           
          .%%%%%%%%###%##%%##%%%%######%%%%%%%%::::++++:::::::++++::::::%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%######################%%######%%%%%%+:,:++++::%%%%%%%%%%%%%%++++++++++++++++++++++::::,           
          ,%%%%%%%#####%#%%####%%#######%%%%%%%::::++++::::::+++++::::::+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#################%##%%%%%%##%%%%%%%+:,:++++::%%%%%%%%%%%%%%+++++++++++++++++++++::::::.          
          +%%%%%%%%#####%%%#####%#######%%%%%%%::::++++::::::+++++::::::+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#################%%%%%%%%%%#%%%%%%++:,:++++::%%%%%%%%%%%%%%++++++++++++++++++++:::::::,          
         .%%%%%%%%%##%%##%%####%%########%%%%%%:::+++++::::::++++:::::::+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#%%%%%########%%%+++%%%%%%%%%%%+++,:++++::%%%%%%%%%%%%%%++++++++++++++++++++:::::::,          
         :%%%%%%%%%#%%%%#%%##%%%%########%%%%%%:::+++++:::::+++++::::::::%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%######%%++++++++%%%%%%%%+++,:++++::%%%%%%%%%%%%%%++++++++++++++++++++::::::::          
         +%%%%%%%%##%%%%#%%%%##%%########%%%%%%:::+++++:::::+++++::::::::%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%####%++++++++++%%%%%%++++,:++++:,%%%%%%%%%%%%%++%++++++++++++++++++::::::::.         
        .%%%%%%%#####%%##%%####%%########%%%%%%:::++++::::::++++:::::::::%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%####+++++++++++%++%%%++++,:++++::%%%%%%%%%%%%%%+%+++++++++++++++++++:::::::,         
        :%%%%%####%%#%%#%%%####%%###%%###%%%%%%:::++++::::::++++:::::::::+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%###%+++++++++++++++++++++::++++::+%%%%%%%%%%%%%%++++++++++++++++++++::::::::         
        +%%%%%%#%%%%##%#%%%####%%##%%%%##%%%%%%::+++++::::::++++:::::::::+%++%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%###++++++++++++++++++++++::++:+::+%%%%%%%%%%%%%%%+++++++++++++++++++::::::::.        
       .%%%%%%%%%%%%####%%%%###%%##%%%%##%%%%%%::+++++::::::+++++:::::::,+++++%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%###+++:++++++++++++++++++::++:+::+%%%%%%%%%%%%%%%%+++++++++++++++++++::++++:,        
       :%%%%%%%%%%%%%###%##%%##%%#%%%%%##%%%%%%::++++:::::::++++::::::::,++++++%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%##%+++:+++:::++++++++++++::++++:::%%%%%%%%%%%%%%%%%%+++++++++++++++++::+++++:        
       +%%%%%%%%%%%%%##%%###%%%%##%%%####%%%%%+::++++:::::::+++:::::::::::+++++%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%##++++:+++::+++++++++++++::++++:::%%%%%%%%%%%%%%%%%%+++++++++++++++++::+++++:.       
      .%%%%%%%%%%######%%####%%%##%%%###%%%%%%+::++++::::::++++:::::::::::+++++++%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#%+++:++++:::++++++++++++::+++++::%%%%%%%%%%%%%%%%%%%+++++++++++++++++:+++:::.       
      ,%%%%%%%%%#%%####%%####%%%#%%%####%%%%%%+::++++::::::+++++::::::::::+++++++++%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%##%+++:++++::::+++++++++++::+++++::%%%%%%%%%%%%%%%%%%%%+++++++++++++++++++::::,       
      :%%%%%%%%#%%%%##%%%%%#%%%##%%%####%%%%%%+::++++::::::++++::::::::::,+++++++++%%%%%%%%%+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%##++:+:++++::::+++++++++++:,+++++::%%%%%%%%%%%%%%%%%%%%+++++++++++++++++++:::::       
      %%%%%%%%####%%##%#####%%%###%%####%%%%%%+:+++%:::::::++++::::::::::,+++++++++++%%%%%%%++%++%%%+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%##%++:::++++:::++++++++++++:,+++:+::%%%%%%%%%%%%%%%%%%%%+++++++++++++++++++:::::.      
     .%%%%%%%#####%%#%%#####%%####%%%###%%%%%%+:++++:::::::++++::::::+:::::+++++++++%++%%%%%%%%++%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%##++:+:+++++::::+++++++++++:,+++:+::+%%%%%%%%%%%%%%%%%%%+++++++++++++++++++:::::.      
     ,%%%%##%%%%%%%%#%%%####%%####%%%##%%%%%%%+:++++:::::::++++::::::::::::%++++++%%+%+%+%%+++%++%++%+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#%++:::+++++::::+++++++++++::::+:+::+%%%%%%%%%%%%%%%%%%%%+++++++++++++++++::::::,      
     :%%%#%%%%%%%%%%%%%%###%%######%%%%%%%%%%%+:++++::::::++++:::::::::::::%++++++%%%%%%%%%++%%%+++%+%%%+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%##++::::+++++::::++++++++++::::++:+::+%%%%%%%%%%%%%%%%%%%%++++++++++++++++:::::::,      
    .%%%%%%%%%%%%%%%%%%%%##%%######%%%%%%%%%%%+++++:::::::++++::::::::::::,+%++%+++%%+%%+++%%%%++++++%%%%+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#%++:::+++++++::::+++++++++::::+++:::+%%%%%%%%%%%%%%%%%%%%%+++++++++++++++::::::::.     
    ,%%%%%%%%%####%%%%%%%#%%#######%%%%%%%%%%%+++++:::::::++++::::::::+::::+%+++++%+++%+%%++++++%++++++++%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%##%+::::+++++++:::::++++++++:::,::+++:+%%%%%%%%%%%%%%%%%%%%%+++++++++++++++::::::::.     
    :%%%%%%%#######%%%%%%%%########%%%%%%%%%%%+++++::::::+++++::::::::+:::::%+++%%%++%++%%++%+%+%+++++%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#%++:::++++++++::::::+++++++:::,+:+:+::%%%%%%%%%%%%%%%%%%%%%++++++++++++++++:::::::,     
    +%%%%%%#%%%%%#%%%%%%%%%#########%%%%%##%%%+++++::::::++++:::::::::+:::::%%%+%%%%%%++++++%++%%++++%%%%+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#%+::::++++++++::::::+++++++:::,::+:+::%%#%%%%%%%%%%%%%%%%%%%+++++++++++++++::::::::     
   .%%%%%%%%%%%%#%%%%%%%%%##########%%%%%##%%%++++::::::+++++:::::::::::::::+%%+%%%+%%+++%++%++%%++++%%%%+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%##++:+::++++++++::::::+++++++:::::++:+::%%#%%%%%%%%%%%%%%%%%%+++++++++++++++++:::::::.    
   ,%%%%%%%%#####%%%%%%%%###########%%%####%%%++++::::::+++++::::::::::+:::::%+++%%%%%+++%++%%%+++++++%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%##%++++::+++++++:::::::++++++++::::++:+::%%#%%%%%%%%%%%%%%%%%%+++++++++++++++++:::::::,    
   :%%%%%%######%%%%%%%%############%%%####%%%++++::::::+++++::::::::::+:::::+++++%%%%++%%+%%%%+++%+++%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%##++:+::::++++++:::,::::+++++++:::,++:+::%%#%%%%%%%%%%%%%%%%%%%%+++++++++++++++:::::::,    
  .%%%%%%%#####%%%%%%%%####%%%#####%%%%#####%%++++:::::+++++:::::::::::+:::::++++%%++%++%%%%%%+++%+++%%%%+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#%+::::+++++++++:::,,::++++++++:::,++:+::%%##%#%%%%%%%%%%%%%%%%%+++++++++++++++::::::::    
  ,%%%%%%#####%%%%%%%%%##%%%%%%####%%%%#####%%++++::::++++++::::::::::::+:::::%+++%%%++%%%+%+%+++%+++%%%%+%+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#%++:+::++++++++++::,,::::++++++:::,:+:+::%%#####%%%%%%%%%%%%%%%+++++++++++++++++:::::::.   
  :%%%%%####%%%%%%%%%%##%%%%%%%###%%%%%#####%%+++:::::++++++::::::::::::+:::::+%+%%%%%+%%++%%%%%+++%%%%%%++%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%##%+::::::+::++++++:::,::::++++++:::::+:++:%%%#####%%%%%%%%%%%%%%%%+++++++++++++++:::::::.   
  +%%%%%##%%%%%%%%%%%##%%%%%%%%##%%%%%########+++:::::++++++::::::::::::+:::::+%%%%%%++%%++%%%%+++++%%%%%++%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#%++:+:++++++++++++::,,,:::+++++++::::++:+:%%%#######%%%%%%%%%%%%%%+++++++++++++++:::::::,   
  +%%%%##%%%%%%%%%%%##%%%%%%%%###%%%%#########++++:::++++++::::::::::::::+:::::%++%%%%%%%%%%%%%+%%%%%+%%%%%%+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%++:+::++::+:+++++++::,,:::+++++++:::,++:+:+%########%%%%%%%%%%%%%++++++++++++++++:::::::,   
 .%%%%##%%%%%%%%%%%#%%%%%%######%%%%%#########%++::::++++++::::::::::::::+:::::+%+%%%%%%%++%%%++%%%%%+%%++%++%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#%+::+:++++::++++++++:::,::::+++++++::::+:+++%########%%%%%%%%%%%%%%+++++++++++++++::::::::.  
 :%%%%##%%%%%%%%%%%%%%%%#######%%%%%%#####@###%%+::::++++++:::::::::::::::::::::%+%%%%%%%%%%%%+%++%++++%+%%%++%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#%++:+::+++++++++++++::::,,:::+++++++::::+:+++#########%%%%%%%%%%%%%%+++++++++++++++::::::::.  
 +%%%%#%%%%%%%%%%%%%%%%%#####%%%%%%%#######@@@%+::::++++++::::::::::::::::+:::::+%%%%%%%%%%%%%%++%%+%+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%##%++::::+++++++++++++++:::,,:::++++++++::,+:+++########%%%%%%%%%%%%%%%%++++++++++++++::::::::,  
.%%%%%%%%%%%%%%%%%%%%%%#####%%%%%%%%#######@@@#++:++++++++::::::::::::::::+::::::%%%%%%%%%+%%%++++%%++%%%+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%++::+:++++++++++++++++::::,,:::+++++++:::+++++########%%%%%%%%%%%%%%%%++++++++++++++::::::::,  
.%%%%%%%%%%%%%######%%%####%%%%%%%%%#######@@@#++::+++++++::+:::::::::::::++:::::+%%%%%%%%++%+%%%++%+%%%%+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%++:+::++++++++++++++++::::::::::++++++::::++++#######%%%%%%%%%%%%%%%%%%++++++++++++++::::::::. 
:%%%%%%%%%%##########%%###%%%%%%%%%########@@@#+:::+++++++::+::::::::::::::+::::::+%%%%%%%%+%++%%+++%%++%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#%%++::::++++++++++++++++::::,,,:::+++++++::::++++######%%%%%%%%%%%%%%%%%%%++++++++++++++::::::::. 
+%%%%%%%%%####%%%%%##%%%%%%%%##%%%%######@@@@@%:::+++++++::::::::::::::::+:++::::::%%%%%%%%%%%%%%+++%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%++::+:+++++++++++++++++++:::,,,:::+++++++:::++++######%%%%%%%%%%%%%%%%%%%++++++++++++++::::::::, 
+%%%%%%%%##%%%%%%%###%%%%%%%###%%%%######@@@@@%+++++++++++:+::::::::::::::::+::::::+%%%%%%%%%%%%%%++%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#%++:+:::::++++++++++++++++:::::,,:::::+++++:::++++######%%%%%%%%%%%%%%%%%%%+++++++++++++:::::::::, 
%%%%%%%%#%%%%#######%%%%%%%%##%%%%#######@@@@@+++++++++++::++::::::::::::::::+::::::+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%###%+++::::++::+:+:::++++++++++:::::,::::::++++++:::++%%%####%%%%%%%%%%%%%%%%%%%+++++++++++++:::::::::: 
%%%%%%%#%%%#######%%%%%%%%%###%%%%########@@@#+++++++++++::::::::::::::::::::::::::::+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%##%++:::+:++++++++++++++++++++++:::,,,::::++++++++::++%%+####%%%%%%%%%%%%%%%%%%%++++++++++++++:::::::::.
%%%%%%#%%%%##%%%%%%%%%%%%#####%%%%########@@@%+++++++++++::+::::::::::::::::::+:::::::+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%####%%+::::+::++++++++++++++++++++++:::,,,:::::+++++++::++%%+####%%%%%%%%%%%%%%%%%%%%+++++++++++++:::::::::,
+%%%%#%%%%#####%%##%%%%#######%%%####%%%##@@@%+++++++++++++++::::::::::::::::::+:::::::+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%###%%####%++:::::::++++++++++++++++:::::::::,,,,,:::::++++++::+%%%+%##%%%%%%%%%%%%%%%%%%%%%+++++++++++++:::::::::,
%%%%#%%%%%####################%%%##%%%%###@@@+++++++++++++++:::::::::::::::::::++:::::::+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#########%%#%%##%++::::::::++::+++++++++++++++++++::::,,,,::::::++++++::%%%:%##%%%%%%%%%%%%%%%%%%%%%+++++++++++++:::::::::,
%%%%%%%%%%###################%%%%%##%%####@@#+++++++++++++++::::::::::::::::::::++:::::,:+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%####################%%+:::::::::+++++++++++++++++++++++++::::,,::::::::+++++::%%%,+##%%%%%%%%%%%%%%%%%%%%%+++++++++++++:::::::::,
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%##########++++++++++++++::::::::::::::::::::::+:::::,::+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%###################%++::::::::::++++++++++++++++++++++++++:::::::::::::++++++::+%%.:##%%%%%%%%%%%%%%%%%%%%%%+++++++++++++:::::::::
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%######@%++++++++++++++:::::::::::::::::::::::+:::::::::%%%%%%%%%%%%%%%%%%%%%%%%%%%#################%%++::::::::::++++++++++++++++++::+++:+++:::::,,,:::::::+++++::+%%.:##%%%%%%%%%%%%%%%%%%%%%++++++++++++++:::::::::
%%%%%%%%%%%%%######%%%%%%%%%%%%#%%%%%%%####@%++++++++++++++::::::::::::::::::::::::+:::::::::+%%%%%%%%%%%%%%%%%%%%%%%################%%%+::::::::::::::+++::++++++++++++++++:::::::::,,,,::::::::++++:::%%.,###%%%%%%%%%%%%%%%%%%%%%+++++++++++++:::::::::
%%%%%####%%%############%%%%%%%#%%%%%%%%###@++++++++++++++++::::::::::::::::::::::::++::::::::+%%%%%%%%%%%%%%%%%%%%%#############%%%%++:::::::::::::++++++::++++++++++++++++++++++::,,,,,::::::::++++:::%%.,###%%%%%%%%%%%%%%%%%%%%%+++++++++++++:::::::::
%%#######%%#######%%%%%%%%%%%%##%%%%%%%%##@#++++++++++++++++:::::::::::::::::::::::::+:::::::::+++%%%%%%%%%%%%%%%%############%%%++:::::::::::::::++++++++++++++++:+++:+++++:+++++:::,,,,::::::::++++:::%+ .###%%%%%%%%%%%%%%%%%%%%%+++++++++++++:::::::::
%%######%%%####%%%%%%%%%%%%%%%##%%%%##%%%###+++++++++++++++++:::::::::::::::::::::::::::::::::::::+++%%%%%%%%%%%%#######%%%%%+++::::::::::::::::::++++++++++++++++++++++:++++:+++:::::,,,::::::::+++++::++ .###%%%%%%%%%%%%%%%%%%%%%%+++++++++++++::::::::
%%#####%%%###%%%%%%%%%%%%%%%%%########%%%##%++++++++++++++++:::::::::::::::::::::::::::::::::::::::::+++++%%%%%%%%%%%%++++::::::::::::::::::::+::+++++++++++++++++++++++++++++++++::::::::::::::::++++::++ .###%%%%%%%%%%%%%%%%%%%%%%%++++++++++++::::::::
%%####%%%###%%%%%%%######%%%%##%%%%%##%%###%+++++++++++++++++:::::::::::::::::::::::::::::+:::::::::::::::::::::++:::::::::::::::::::::::::::::::::++::+++++++++++++++:+++++++++++:::::::::::::::::++++::%  %##%%%%%%%%%%%%%%%%%%%%%%%++++++++++++::::::::
%%%##%%%%#%%%%%%##########%%%#%%%%%%%##%###%++++++++++++++++::::::::::::::::::::::::::::::::+:::::::::::::::::::::::::::::::::::::::::::::::::+:++++++++++++++++++++++++++++::++:+::::,,:::::::::::++++::%. %##%%%%%%%%%%%%%%%%%%%%%%%++++++++++++::::::::
%%%%%%%%#%%%%%############%%##%%%%%%%##%###+++++++++++++++++::::::::::::::::::::::::::::::::::++:::::::::::::::::::::::::::::::::::::::::::++:::++++++++++++++++++++++++++++++:+:::::::::::::::::::++++::%. +##%%%%%%%%%%%%%%%%%%%%%%%%++++++++++++:::::::
%%%%%%%#%%%%#############%%%###%%%%%%%#####+++++++++++++++++:::::::::::::::::::::+:::::::::::::::++:::::::::::::::::::::::::::::::::::::::+++::++:++++++++++++++++++++++++++++:++:+:::::::::::::::::+++::+. :##%%%%%%%%%%%%%%%%%%%%%%%++++++++++++::::::::
%%%%%##%%%%##############%%%####%%%%%%#####+++++++++++++++++:::::::::::::::::::::+::::+:::::+::::::++::::::::::::::::::::::::::::::::::::++::::++++++++++++++++++++++++++++++++++:::::::::::::::::::++++:+, ,###%%%%%%%%%%%%%%%%%%%%%%+++++++++++++:::::::
%%%###%%%%###############%%%#%%###%%%####@%+++++++++++++++++:::::::::::::::::::::::::::+:+:+:::::::::::::::::::::::::::::::::::::::::::++::::+++++++++++++++++++++++++++++++++++++::::::::::::::::::++++:+, ,###%%%%%%%%%%%%%%%%%%%%%%+++++++++++++:::::::
######%%%########%%%####%%%##%%%%#########%+++++++++++++++++::::::::::::::::::::::::+++++::::+::::::::::::::::::::::::::::::::::::::::+++:::++++++++++++++++++++++++++++++++++++::::::::::::::::::::+++:::, .###%%%%%%%%%%%%%%%%%%%%%%%++++++++++++:::::::
#####%%%%######%%%%#####%%%#%%%%%%%###%###%%%%%++++++++++++:::::::::::::::::::::::::::+::+::::::::::::::::::::::::::::::::::::::::::::::::::+++++++++++++++++++++++++++++++++++:::::::::::::::::::::++++:::  %##%%%%%%%%%%%%%%%%%%%%%%%++++++++++++:::::::
####%%%%######%%%%######%%%##%%%%%%%######%%%%%+++++++++++:::::::::::::::::::::::::+::+::++:::::::::::::::::::::::::::::::::::::::::::++::::+++:::++++++++++++++++++++++++:+:::::::::::::::::::::::::++++++  +##%%%%%%%%%%%%%%%%%%%%%%%++++++++++++:::::::
####%%%%#####%%%#######%%%%####%%%%%%#####%%%%+++++++++++++++::::::::::::::::::::::+::::::::+:::::::::::::::::::::::::::::::::::::::::::::::+++::++++++++++++++++++++++++++++::::::::::::::::::::::::++++++. :##%%%%%%%%%%%%%%%%%%%%%%%++++++++++++:::::::
####%%%#####%%%%#######%%%%%%###%%%%%#####%%%%%+++++++++++++:+:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::++++++++++++++++++++++++++++++++:++:::::::::::::::::::::::++++++, :###%%%%%%%%%%%%%%%%%%%%%%++++++++++++:::::::