?++                                                                                                                                          
                                                          *+;*                                                                                                                                          
                                                         *;;+*%  +*??%?????**********%                                                                                                                  
                                                        ?;;+**%S*+;;;;;;;;;::::;;;;:;+**%                                                                                                               
                                                       %+:;+*?%*;:::::::::::::::::::::::;+*?.                                                                                                           
                                                       ?;;+*?%+::::::::::::::::::::::::::::;+?                                                                                                          
                                                      %*:;+*%*;::::::::::::::::::::::::::;;;:+%%                                                                                                        
                               *+;+                  ?*;;+*??;:::::::::::::::::::;:::::;;;;++;;+?                                                                                                       
                               *;:;                 +*;:;*??+::::::::::::::::::::;::::;;;+++++::;*                                                                                                      
                              ?+;:;?                *+::+???;:::::::::::::::::::::::;;;++++;;+;;:;+;                                                                                                    
                             .*+;::*               +?+::*??*;::::::::::::::::::::::;;++++;;+;;++;::++                                                                                                   
                             %++;::+S             .?*;:;*??+::::::::::::::::::::::;;;++;;;;;;;+++;,:;**..+***++++++++***%                                                                               
                             ?++;::;**            +*+:;+???;::::::::::::::::::::;;;++++;;+;++;;+;+;::;++;;;;;;;;;;;;;;;;++***                                                                           
                            %?++;::::;*           **+:;*??+;:::::::::::::;:::::;;;+++;;;;;+;;+;;+;+;:::;;;;+;++++;;;;;;;;;;;;*?                                                                         
                            %*++;:::::+           **;:**?*+;:::::::::::::;::::;;;;++;;;;;;;;;;;;;++;::::+**+**+++*++++;;;;+;;;*%%                                                                       
                            ?+++;:::::;?         ?*+:;*??+;:::::::::::::;;:::;;;;+++;;;;;;;;;;;;;;++;;::;;+*++********+++;+++;;+*?%                                                                     
                            *+++;:::;;:+?        ?*;:+??*+;::::::::::;;;;;;;;;;;++++;;;;;;;;;;;;;+++++;:::+****+*********+;+;++;;;*??*                                                                  
                           ?+++;;:::;;:;?        ?+;;*??*;;:::::::::;;;;;::::;+++++;;;;;;;;;;;;;;++;+++;:::+**+***+******+++;++++;;;+**%.                                                               
                           ?+++;;:::;:::+*      ?*+;+???+;;::::::::;;;;;:::::;++++;;;;;;;;;;;;;;+;++++++;:::;*************++;+*++;;;;;;+*%                                                              
                           ?+++;;:::::::+?      ?+;;*??*+;::::::::;;;;;::::::;+++;;;;;;;;;;;;;;;+++++++++;:::+*+**********+;;**+;++++;;;;*?.                                                            
                           *+++;;;::::::;*     %*+;;??**+;:::::::;;;;:::::::;;++;;;;+;;;;;;;;+++++++++++++;;:;+************++**++*****+++;+*?                                                           
                          ?+++;;;;:::::;;+?    ?*+;+??*++;:::::::;;;;::::::;;++;;;;;;;;;;;;;++++++++++++++++;:;************++********?****++*.                                                          
                          %+++;;;;;::::;++?;  S?*;;*??++;;::::::;;;;:::::::;+++;+;;;;;;;;;+++++++++++++++;++;;:+*+*++*******************?***+?                                                          
                          ?+++;;;;;:;;;;++** .%**;;???*+;;:::::;;;;;::::::;;++;;;;;;;;;+;++++++++++++++++++++;:;******+*********++********?****                                                         
                          *+++;;;;;:;;;;+++??S%*+;*??*+;;;;:::;;;;;;::::;;;+++;;;;;;;;;;++++++++++++++++++++++;:+*********+;;:::::::;+******?*+*                                                        
                          ++++;;;;;;;;;;++;*%S?*++???*+;;;;::;;;;;;;;;;;;;+++;;;;+;;;;;++++++++++++++++++++++++;;+***++;;:::::::::::::;;**?*?***%                                                       
                          ++++;;;;;;;;::;;+*S%**;*???*;;;:;::;;;;;;;;;+;;;++;;;;;;;;;+++++++++++++++++++++++++++;;++;:::::::::::::;;;;;;;+*****+?%%?????***+++**;                                       
                          ++++;;;;;;;::::;+*%?*++*??**;;+:::;;;;;;;;;;;;;;++;;;;;;;;;+++++++++++++++++++++++++++;;;::::::::::::::;;+++++;;++++*;+++;;;:::::::::;;*?                                     
                         ;++++;;;;;;:::::;+*?**++*??*+;;;:::;;;;;;;;;;;;;++;;;;;;;;++++++++++++++++++++++++++++;;:::::::::::::::;++******++::::::::::::::::::;;+++;+?                                   
                         *++++;;;;;;:::::;+?***+*??**+;;;;:;;;;;;;;;;;;;+++;;;;;;;+++++++++++++++++++++++++++;::::::::::::::::;++*??***????;;:,::::::::::::;+******+;+?                                 
                         ?++++;;;;;;::::;;+?***+**???+;;;::;;;;;;;;;;;;;++;;;;;;;;+++++++++++++++++++++++;;;:::::::::::::::::;+*?****??????*+;:::::::::::;++*********+;+                 **;            
                         %++++;;;;;;:::;:;;****+????*+;+;::;;;;;;;;;;;;+++;;;;;;++++++++++++++++++++;;;::::::::::::::::::::;++*?****???????*++;::::::::;++************+;+             *+++++++          
                         ?++++;;;;;;:::;::;****+???**+;+;:;;;;;;;;;;;;+++;;;;;;;;++++++++++++++++;;:::::::::::::::::::::::;++*?****?????????*+++;;;;;;;+*************?*+;?          .*+++;+++++         
                         ?+++;;;;;;;::;;::;*****???**+;+;;;+;;;;;;;;;;+++;;;++;;++++++++++++;;;:::::::::::::::::::::::::;;+*****????????????++++++;;;+++********????*??*+*         ?*+;++++++**         
                         ?+++;;;;;;;::;;:::+****???**+;;;;;+;;;;;;;;;;++;;;;;;;++++++++++;;:::::::::::::::::::::::::;;;;++*??**?????????????++++*+;;;++******??*?******?*+?       *+;+++;+++*+?         
                         ?+++;;;;;;;;;;::::+****???**++;;;;;;;;;;;;;;+++;;;;;;+++++++++;;::::::::::::::::::::::::;;;;;;;++*?***?????????????++++++++++*****?*****?**?******     .*+;;+;++++**+?         
                         ?+++;;;;;;;;;;::::+****??***++;;;;;;;;;;;;;;++;+;;;;+++++++;;::::::::::::::::::::::::;;;;;;;;;+**?**??????%%???????*++++++++*****???**?*??******?*?   **+;;+++;++*?**?         
                         ?+++;;;;;;;;;;::::+***???***;+;;;;;;;;;;;;;;++++;++++++++;::::::;;;;;:::::::::::::::;;+;;;;;;++??**?????????????????**++++****???****?*************% **+++++;+++???*+%         
                         ?++;;;;;;;;;;;::;++***????**++;;;;;;;;;;;;;+++;;+;++++++;::::::::;;;;;;::::::::::::::;;;;;;;++***????????????????????**+++**???**?****??***?****?**%*++;+++++**????**%         
                         ?++;;;;;;;;;;;:;;+++**??*?**+;;;;;;;;;;;;;+++;;++++++++::::::::::;+;;;;;;::::::::::::::;;;;++*?**??????????????????????*+;+*?*????******??*****?*???+++++****??????*?          
                         ?++;;;;;;;;;;;:;;+;+**??*?**+;;;;;;;;;;;;;++;;+++++++;:::::::::::;;;;;;;;;:::::::::::::;;;;+*??*????????????????????????*;+*?**???**********??*?*?*+++++**?????????*?          
                         ?++;;;;;;;;;;;;;:;:;+*??*?**+;;;;;;;;;;;;;++++++++++;:::::::::::::;;;;;;;;;:::::::::::;;+++*??*??????????????????????????++*??**??*****?******??**+;++++*?????????**?          
                         ?++;;;;;;;;;;;;+:;::;+??****+;;;;;;;;;;;;++++++++++;:::::::::::;;;;+;;;;;;;;::::::::::;+++*??????????????????????????????*++*??**??***?*???***?*++;+++????????????**%          
                         ?++;;;;;;;;;;;;;::::;+??****+;;;;;;;;;;;;+++++++++;:::::::::::::;;;;;;;+;;;;:::::::::;+;++*???????????????????????????????*++*?**???**?*??????**++++*????????????***%          
                         ?+++;;;;;;;;;;;;::;;;+*?****+;;;;;;;;;;;;+++++++;;::;;;:::::::;;;;;;;+++;;;;;;::::::;;+++*?????????????????????????????????*+*???????*???**??*++;++*?????????????***?          
                         ?+++;;;;;;;;;;;;:::;;;*?**?*+;;;;;;;;;;++++++++;:::;;;;;;;;;;;;+;;;;;+;++;;;+;::::::;+++*??????????????????????????????????*++*??*???**????*++++++*??????????????**??          
                         ?+++;;;;;;;;;;;;::;;;;+?****+;;;;;;;;;;+;+++++;::;;;;;;;;;;;;;;;;;;;;;;+++;;+;;;;:;;;++*?????????????????????????????????????*+*?*????****+++++****?*??????????****??          
                         ?+++;;;;;;;;;;;;:;;;;;+?*?**+;;;;;;;;++;+++++;:;;;;;;;;;;;;;;;;;;;;;;;;+++;;+;;;;;;+++**?????????????????????????????????????**+*??***++;++++++*????*???????*******?           
                         ?+++;;;;;;;;;;;;;;;;;++?*?**+;;;;;;;;+++++++;::;;;;;;;;;;;;;;;;;;;;;;;;+++;;;;;;;;;;++*????????????????????????????????????????++??+++;+;+++++**????*???????*******?           
                         ?+++;;;;;;;;;;;;;;;;:;+?*?***;;;;;;;;++++++;::;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;;+;+++*??????????????????????????????????????????***+++++++++**???**????????********?           
                         ?++++;;;;;;;;;;;;;;;:;+?*?***;;;;;;;++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;++*????????????????????????????????????????????****++++++*?*??******????*********?           
                         ?+++++;;;;;;;;;;;;;;;;*?*****;;;;;;;+++++;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;+;++**???*??????????????????????????????????????????***+*+++*?**????***??************           
                        ??+++++;;;;;;;;;;;;;;;+*??*?**+;;;;;+++++::;;;;+;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;+**???**???????????????????????????????????????*??****++*++*??*******?***********?.           
                        *?+++++;;;;;;;;;;;;;;;+**?*?**+;;;;+++++;::+;;;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;+;;+*????**??????????????????????????????????????????*+**+++++****?**?*?************?            
                        ?*+++++;;;;;;;;;;;;;;++?**??**+;;;;+++++;;:+++;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;+**???**??????????????????????????????????????????**+**++++++**********************            
                        %*+++++;;;;;;;;;;;;;;+*?**??**+;;;+++++:;;:++++;;;;;;;;;;;;;;;;;+++;;;;;;;;;;;;;+**????*?????????????????????????????????????????****+**+++++++++*++++**************            
                        %*+++++;;;;;;;;;;;;;;+*?*???***;;;++++;:;;;;;++;;;;;;;;;;;;;;;;;+*+;;;;;;;;;;+;+*?*???**?????????????????????????????????????????***++**+++++++++++++++*************            
                        ?*+++++;;;;;;;;;;;;;;+*?***?***+;++++;::;;;;;;++;;;;;;;;;;;;;;;;;*+;;;;;;;;;;;;+??????+*????????????????????????????????????????*++++****+++++*++++++++***********?.            
                        ?*+++++;;;;;;;;;;;;;;*??*?*?*?*++++++;:;;;;;;;+++;;;;;;;;;;;;;;;;**;;;;;;;;;;;+*?????*+????????????????????????????????????????++++++**?*+++++++++++++++**********?             
                        ?*+++++;;;;;;;;;;;+:;+?*??*?***++++*;:;;;;;;;;++++;;;;;;;;;;;;;;+**+;;;;;+;;;;+??????+*??????????????????????????????????????**++++++++?*+++++**++++++++**********?             
                        ?*+++++;;;;;;;;;;;;:;+?**?*?****++*+::;;;;;;;;;;+++;;;;;;;;;;;;;+*?+;;;;;;;+;+??????*+??????????????????????????????????????*++++++++**?*+++++**+++++++++**********             
                       .?*;++++;;;;;;;;;;;;:+*?****?****++*+::;;;;;;;;;;+++;;;;;;;;;;;;;+*?+;;+;;;;+;+?????*+*??????????????????????????????????????*++++++++*??*++++++++++++++++********?              
                       ??++++++;;;;;;;;;;;;:+*?**???****+**;:;+;;;;;;;;;;+++;;+;;;;+;++;+*?+;;;;;;+;+*????**+*???????*?????????????????????????????*++++++++*????*+++++++++++++++********?              
                       ??++++++;;;;;;;;;;;;;+*????*?***?*?*;:;;;;;;;;;;;;;++;;;;;;;+++;++??++;;;;;;++?????*++???????**????????????????????????????*++++++++++**?**+++++++++++++++********?              
                       **++++++;;;;;;;;;;;;;+???????***???+::;;;;;;;;;;;;;+++;;;;;;;++;++??*+;;;;;;+*????**+*??????**?????????????????????????????*++++++++++*?***++++++++++++++++*******?              
                       ?*++++++;;;;;;;;;;;;;*?%%%%??*?**??+:;;;;;;;;;;;;;;;+++;;;;;;+*+;+??*+;;;;;;*????***+*?????**?????????????????????????????*+++++++++++*?++**+++++++++++++++*******.              
                      *?*++++++;;;;;;;;;;;;+?%?%%%%??????*+;;;;;;;;;;;;;;;;+++;;;;+;+*+;+??*+;;;;;+?????**+*??????**?????????????????????????????*+++++++++++++++**+++++++++++++++******?               
                      ??++++++;;;;;;;;;;;;;;*%?%%?%%?*???*+;;;;;;;;;;;;;;;;;+++;;;+;;**++??*+;;+;+*?????**+??????**?????????????????????????????*++++++++++++++++**+++++++++++++++******?               
                      ?*++++++;;;;;;;;;;;+;:;*%?%?%%?*?%%?*;;;;;;;;;;;;;;;;;;+++;;;;;*?++??*+;;+;+?????**+*??????**?????????????????????????????*+++++++++++++++++**++++++++++++++******?               
                      ?*++++++;;;;;;;;;;;;;::+%%%%%%???%??*;;;;+;;;;;;;;;;;;;+**+;;;+*?+*??*+;;+;+?????**;*?????*+????*?????????????????????????++++++++++++++++++**++++++++++++++******                
                      ?+++++++;;;;;;;;;;;;;:::?%%%%%??????*;;;;;;;;;;;;;;;;;;+*?*+;++*?**???+;+;+?????**++??????+*?????????????????????????????*++++++++++++++++++**+++++++++++++++****?                
                      ?+++++++;;;;;;;;;;;;;:::?%?%%%%?**??*;;;;;;;;;;;;;;;;;;;+*?++++*%**??*+;;;*?????*++*??????**?????????????????????????????*+++++++++++++++++++*+++++++++++++++****?                
                      ?+++++++;;;;;;;;;;;;;:::?%%%%%%?**??*;;;;;;;;;;;;;;;;;;;+*?*+++*??*??*++;+*?????*++*?????**??????????????????????????????++++++++++++++++++++*+++++++++++++++***??                
                     %*+++++++;;;;;;;;;;;;;;:;%%%%%%?*+*??*;;;;;;;;;;;;;;;;;;;;+??****?????*+;;+?????**+*??????*???????????????????????????????++**++++++++++++++++*+**++++++++++++***?                 
                     %*+++++++;;;;;;;;;;;;;;;+%%%%%%?*+*??*+;;;;;;;;;;;;;;;;;;;+???***?????*+;+*?????**+???????*???????????????????????????????*???++++++++++++++++*****+++++++++++***%                 
                     %++++++++;;;;;;;;;;;;;;;*%%%%%?*+*+*%?+;;;;;;;;;;;;;;;;;;+*????**?????*++*?????**++??????*???????????????????????????????????*+++++++++++++++++**?*+++++++++++***%                 
                     ?+++++++;;;;;;;;;;;;;;;;?%%%%%*++*+*%?+;;;;;;;;;;;;;;;;;;*????????????+++??????**+*??????????????????????????????????????????++++++++++++++++++**?*+++++++++++**?.                 
                     ?+++++++;;;;;;;;;;;;;;;;??%%%%*++*+*??+;;;;;;;;;;;;;;;+;;*????????????+++?????**++?????????????*????????????????????????????*++++++++++++++++++**??+++++++++++**?                  
                     ?+++++++;;;;;;;;;;;;;;;;?%%%%**++*+*??*;;;;;;;;;;;;;;;;;;+????????????++??????*+++??????????????????????????????????????????*++++++++++++++++++**??*++++++++++*??                  
                    ?*+++++++;;;;;;;;;;;;;;;;?%%%?*+++*+*??*;;;;;;;;;;;;;;;;;;+*???????????++??????**+*?????????????????????????????????????????*+++++++++++++++++++**??*++++++++++*??                  
                    ?*+++++++;;;;;;;;;;;;;;;;*%%%*++**++*??*;;;;;;;;;;;;;;;+;;;*???????????+*?????**++??????????????????????????????????????????*+++++++++++++++++++**?%?++++++++++*?                   
                    %*++++++;;;;;;;;;;;;;;;;:*%%?++***+**??*;;;;;;;;;;;;;;;+;;;+???????????*??????*+++???????????????????????????????????????????+++++++++++++++++++*??%?*+++++++++*?                   
                    ?*++++++;;;;;;;;;;;;;;;;:*%%*+**+*+**??*;;;;;;;;;;;;;;;;;;;+*?????????????????*+;*??????????????????????????????????????????*+++++++++++++++++++*??%?*+++++++++*%                   
                    ?+++++++;;;;;;;;;;;;;;;::*%%****+*+**??*+;;;;;;;;;;;;;;;;+++*?????????????????*+;*??????????????????????????????????????????*+++++++++++++++++++*??%?*+++++++++*?                   
                    *++++++;;;;;;;;;;;;;;;+::*%?****+*++**??+;;;;;;;;;;;;;;;;;++*?????????????????+++???????????????????????????????????????????*+++++++++++++++++++???%%*++++++++*?                    
                    *++++++;;;;;;;;;;;;;;;+::*%?******++**??+;;;;;;;;;;;;;;;+;***????????????????*++*???????????????????????????????????????????*+++++++++++++++++++?%??%?++++++++*?                    
                   .*++++++;;;;;;;;;;;;;;;;:;+%?****++++**??+;;;;;;;;;;;;;;;;++*?????????????????*++*????????????????????????????????????????*?*++++++++++++++++++++????%?++++++*+*%                    
                   %*++++++;;;;;;;;;;;;;;;;::+?*****++++**??+;;;;;;;;;;;+;;;;+*??????????????????++*???????????????????????????????????????????*+++++++++++++++++++*????%?++++++++??                    
                   **++++++;;;;;;;;;;;;;;;;::+?***++++++**??+;;;;;;;;;;;;;+;+*???????????????????++*%??????????????????????????????????????????*+++++++++++++++++++*??%?%?+++++++*?                     
                   +*++++++;;;;;;;;;;;;;;;;::*?**+++++++**??*;;;;;;;;;;;;+;+*????????%%%????????*++?%??????????????????????????????????????????*+++++++++++++++++++???%?%?*++++++*%                     
                   *+++++++;;;;;;;;;;;;;;;:::*?*+++++*++**??*;;;;;;;;;;;;;;+????????%%%%?????%??*+*?%??????????????????????????????????????????*+++++++++++++++++++?????%?+++++++*%                     
                   *+++++++;;;;;;;;;;;;;;;::;*?++++++*****??*;;;;;;;;;;;;+*????????%%%%%???%????++*?????????????????????????????????????????????*+++++++++++++++++*?%???%?+++++++?.                     
                   *+++++++;;;;;;;;;;;;;;:::;*?+++++++****??*;;;;;;;;;;;+*????????%%%%%????%???*++???????????????%???????????????????????????????*++++++++++++++++??%?%?%?+++++++?                      
                  .*++++++;;;;;;;;;;;;;;;:::;*?+++++++***???*;;;;;;;;;;;*????????%%%%%%?%??%???*++???????????????%???????????????????????????????*+++++++++++++++*%?????%?++++++*?                      
                  :+++++++;;;;;;;;;;;;;;;:::+**++++++++**???*;;;;;;;;;+*?????????%%%%%%????%???++*??%?????????????????????????????????????????????*++++++++++++++???%?%?%**+++++*?                      
                  :*++++++;;;;;;;;;;;;;;;:::+****+++++***???*;;;;+;;;+*?????????%%%%%%?????%??*++??????????????%%%??????????%??????????????????????*+++++++++++++??%???%%*++++++?                       
                  +*++++++;;;;;;;;;;;;;;:::;+*****+*++**????*;;;;+;;+*????????%%%%%%%%?????%??++*????????????%%%%%?????????????%???????????????????*++++++++++++*??%?%?%?*+++++*%                       
                  ?*++++++;;;;;;;;;;;;;;::;;+?*+*++*++**????+;;;+;;+*????????%%%%%%%%%?%??????++*%??????????%??%%%??????????????????????????????????*+++++++++++??%?%??%?*+++++*%                       
                  ??++++++;;;;;;;;;;;;;::;+++?*++++*++**????+;;;+;++?????????%%%%%%%%%?%?????*++?%?%????????%?%%?%??????????????????????????????????*++++++++++*?%%?%??%?*+++++?%                       
                  %*++++++;;;;;;;;;;;;;:;++++**+*+++++**????+;;;;+*????????%%%%%%%%%%????????*+*?????????????%%%?%????????%%????????????????????????*++++++++++*?%???%?%?*+++++?                        
                  **++++++;;;;;;;;;;;;;;+++++**++++++**?????+;+;+*????????%%%%%%%%%%%????????++?????????????%%%%?%????????%%?????????%??????????????*+++++++++*?%??%?%?%?+++++*%                        
                  +*++*+++;;;;;;;;;;;;;++++++***+++++**?????+;+;*????????%%%%%%%%%%??%???????+*?%?%??????????%%%?%??????%%%%%????????%??????????????*+++++++++*?%?%???%??+++++*%                        
                  **+++++;;;;;;;;;;;;;+++++++**++*+****?????+;++????????%%%%%%%%%%%%%???%???*+????????????????%%?%?????%??%??????????????????????????++++++++**%%????%?%?++++*?.                        
                  ??++*++;;;;;;;;;;;;;+++++++**++++***??????+++*???????%%%%%%%%%%%??%???%???**?????????????????%?%?????%?%%?????????%%%??????????????++++++++**?????%%?%*++++*%                         
                  **++*++;;;;;;;;;;;;++++++++?*++++++*?????*;+*???????%%%%%%%%%%%%??????????+*?????????????????????????%?%??????????%%%%%%???????????+++++++**??????%%??*++++?%                         
                  +*+++++;;;;;;;;;;;++++++++*?*++++++*?????*+*???????%%%%%%%%%%%%????????%?*+????????????????????%%%???%?????????????%??%?%??????????*++++++**%%???%%%%?*+++*%%                         
                  **++*++;;;;;;;;;;;++++++++*?*+*+*+*??????*+?%??????%%%%%%%%%%%%????????%?**???????????????????%%???????????????????????????????????*++++++**%%%%?%?%%?*+++?%                          
                  ?*++*++;;;;;;;;;;;+++++;+*?*++*+*+*???????*???????%%%%%%%%%%%%?????????%?*???????????????????%%%??????????????????%%????%%?????????*+++++**?%%%%?%??%?+++*?%                          
                  %*+;*++;;;;;;;;;;++++++++*?*++*+***??????????????%%%%%%%%%%%%%??%?????%??*??%??%??????????????%???????????????????%%%%%%%?%%???????*++++***%%%?%?%??%?++*?%%                          
                  %*++*++;;;;;;;;;++++;++++?**++*+**??????%????????%%%%%%%%%%%???%%?????%?????%??%????%%????%????????????????????????%?%?%??%%%??????*++++***%%%?%?%??%?++*?%                           
                  %*++*++;;;;;;;;++;;;;+++*?*+*+**+*?%???????????%%%%%%%%%%%%??%%??%??%%%?????????????%???????????????????????????????????%??%????????+++**+?%%??%%%%??*+*?%S                           
                  %*++*+;;;;;;;;;++;;;++++*?**+*****?%???????????%%%%%%%%%%%%???%??%??%%%????????%????%???????????????????????????????????%??%????????+++**+?????%??%??*+*%%S                           
                  %?++*+;;;;;;;;;;;;+++++*?*+*+****?%???????????%%%%?%%%%%%%??????%??%%%????%%???%?????%??????????????????????????????????%%?%????????*++***%%?%%%??%%?**?%%                            
                  %?++*+;;;;;;;;;;;++++++*?**+*****?%???????????%%%?%%%%%%%?????????%%%%???%%????%???%?%??????????????????????????????????%%?%????????*++*+?%%?%%%?%%%?*?%%%                            
                  S?++*+;;;;;;;;;;;++++++??**+*****%%??????????%%%?%%%%%%%?????%%???%%%%?%?????%?%??%%?%??????????????????????????????????%%?%????????*+***%?%?%???%?%?*?%%%                            
                  %?++*+;;;;;;;;;;++++++*?********?%%?????????%%%??%%%%%%??????%%?%%%%%%?%%?????????%%????????????????????????????????????%??%????????*+?**%%?%%%%?%???*%%%?                            
                  ??*+*+;;;;;;;;;+++++;+*?*******??%%?%??????%%%??%%%%%%????????%%%%%%%%%%%?????%???%?????????????????????????????????????%??%????????**?*?%%?%%%%?%????%%%                             
                  *%*+*+;;;;;;;;;+++++++??*+*****?%%%?%??%???%%%?%%%%%%??%%??%%?%%%%%%%%%%%?????%???%????????????????????????????????????????%?????????*?*%%%%%?%%?%???%%%%                             
                  ?%++?+;;;;;;;;+++++++*?*******??%%?%???????%%%%%%%%????%%??%%?%%%%%%%%?%%????????%???????????????????????????????????????%????????????+?%?%%?%%??%??%%%%%                             
                   %*+*+;;;;;;;++++++++*?*******?%%%?%%?%???%%%?%%%%%%?????%????%%%%%%%%%%%????????%?????????????????????????????????????%?%??%?????????+?%?%%?%%%%%?%%%%%?                             
                   %***+;;;;;;;++++++++??*******?%%%?%%%???%%%%%%%%%???????%???%%%%%%%%%%%%%?????????????????????????????????????????%??%%?%??%?????????*?%??%%%%%%??%%%%%                              
                   %***+;;;;;;++++;+++*%?+******?%%%???????%%%%%?%%????????%??%%%%%%%%%%%%%%?????????????????????????????????????????%??%%????%????????**?%??%%%%%%?%%%%%%                              
                   %***++;;;;;++++++++*%*+*****?%%%%????%??%%??%?????%%%??%??%%%%%%%%%%%%%%%?%?%?????????????????????????????????????%???%????%????????*??%%???%%%?%%%%%%%                              
                   %??**+;;;;+++++++++?%*******?%%%%%%??%??%%??%%%%%%%%??%%??%%%%%%%%%%%%%%%?%%%?????????????????????????????????????%???%????%????????*??%%%??%%??%%%%%%.                              
                   S??**+;;;++++++++++??*******%%%%%%%?%????%%%%???%%?????%%%%%%%%%%%%%%%%%%?%%%??????%????%%????????????????????????%???%?%??%???????**%?%%%%%?%%%%%%%%%                               
                   %?*?*+;;++++++++++*%?*******%%%%????%?%%?%%%?????%%?%%??%%%%%%%%%%%%%%%%%?%%%??????%??%%%%%%??????????????????????%???%?%??%???????*???%%?%%??%%%%%%%%                               
                   %?*?*+;;++++++++++???******?%%%%%%%?%??????????????%%?%%%%%%%%%%%%%%%%%%%%%%%?????????%%%%%%?????????????????????????%%%???????????*?%%%%%????%%%%%%%?                               
                    ?*??+;;++++++++++???******?%%%%?%%??????????????????%%%%%%%%%%%%%%%%%%%%%%%%?????%%%?%%%%%??????????????????????????%????????????**?%??%%??%%%%%%%%%                                
                    ?*??*+;+++++++++*?%?******%%%%%?????????????????????%%%%%%%%%%%%%%%%%%%%%%%%%????%%%?%%%%%???????????????????????????????????????*?%%??%%?%%%%%%%%%%                                
                    %*??*+++++++++++*?%******?%%%%%??????????????????%%%%%%%%%%%%%%%%%%%%%%%%%??%????%%?%%%%%%%%?????????????????????????????????????*?%%??%%?%%%%%%%%%%                                
                    %???*+++++++++++?%%******?%%%%%??????????????????%%%%%%%%%%%%%%%%%%%%%%%%%??????%%%%%%%%%%%%????????????????????????%???????????*??%%%%%??%%%%%%%%%                                 
                    %????+++++++++;+?%?******%%%%%%???????????????%%%%%%%%%%%%%%%%%%%%%%%%%%%%??????????%%%%%%%?????????????????????????%????%???????%%%%%%%%%%%%%%%%%%                                 
                    %????++++++++++*?%?*****?S%%%%%????????????????%%%%%%%%%%%%%%%%%%%%%%%%%%%??%%%???%%%%%%%%%??????????????????????????????????????%%%%%%%%%%%%%%%%%%                                 
                    %%???++++++++++*%%?*****%S%%%%%?????????????%??%%%%%%%%%%%%%%%%%%%%%%%%%%%????%%%%%%%%%%%%%??????????????????????????????????????%?%%%?%%%%%%%%%%S                                  
                     %??**+++++++++*%%?*****S#%%%%%%???????????%%?%%%%%%%%%%%%%%%%%%%%%%%%%%%%??%??%%%%%%%%%%%?%???????????????????????????%%???????%%??%%??%%%%%%%%%S                                  
                     %????+++++++++?%%?****?S#%%%%%%????????%%??%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%??%%%%%%%%%%%%%%%%???????????????????????????%????????%??%%%?%%%%%%%%%%?                                  
                     %????+++++++++??%?****?##S%%%%%???????%%%%?%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%???%%%%%%%%%%%%%%%???????????????????????????????????%%??%%%%%%%%%%%%%%                                   
                     %????*++++++++??%?****%##S%%%%%????????%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%???%%%%%%%%%%%???????????????????????????????????????%%?%%%%%%%%%%%%%%%                                   
                      %????++++++++%?%?****S##S%%%%%?????????%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%?%?%%%%%%%%%%%??????????????????????????????????????%%?%%?%%%%%%%%%%%%                                    
                      %????++++++++%?%?****S##S%%%%%?????????%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%?%%%%%%%%%%%%%?%%??????????????????????????%????????%%?%%?%%%%%%%%%%%S                                    
                      S????*+++++++%%%?***?S##S%%%%%????????%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%?%%%%%%%%%%%%%??%%??????????????????????????%%??????%%%%%%%%%%%%%%%%%S%                                    
                      %?????++++++*?%%?***%S##SS%%%%????%???%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%?%%?%%%%%%%%%%%?%???????????????????????????%%??????%%%%??%%%%%%%%%%%S                                     
                      %?????++++++*%%%?***%####S%%%%%??%?%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%??%%%%%%%%??????????????????????????%??????????%%%%%%%%%%%%%%%%%%S                                     
                       %????*+++++*%%%?***%####S%%%%%%?%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%??%%%%%%%%??????????????????????????%%?%%??????%%%%%%%%%%%%%%%%%SS                                     
                       %????*+++++*%%%?***S####S%%%%%??%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%??%??%%%%%%%%%%??????????????????????????%?????????%%%?%%%%%%%%%%%%%%S                                      
                       ?%????*++++*%%%?**?S####S%%%%%???%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%?%%%%%%%%%%%%%%???????????????????????????????%???%%%??%%%%%%%%%%%%%%S                                      
                        S?????++++?%%%%**?S####S%%%%%????%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%?%%%%%%%%%%%%%%????????????????????????%%???%%%??%%%?%%%%%%%%%%%%%%%S                                       
                        S?????++++?%%%%**%S#####S%%%%?%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%?%??%???????????????????%???%%SS%%%%??%%%%%%%%%%%%%%%S                                       
                        .%????*+++*%%%%?*%######S%%%%?%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%?%??%??????????????????????%%%SS%%%?%?%%%%%%%%%%%%%%SS                                       
                         S????*+++?%%%%?*S######S%%%%?%?%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%?%??%????????????????????%%%%SSS%%%?%%%%%%%%%%%%%%%%S                                        
                         %?????+++*%%%%?*S######S%%%%?%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%???????????????????????%??%??SSSS%%%%%%%%%%%%%%%%%%%%S                                        
                          %????*++*%%%%?*S######S%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%?%%????????????????????????%%SSSS%%%%%%%%%%%%%%%%%%%S                                         
                          %????*++*%%%%%?S#######%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%???%%?????????????????????%??%SSSSS%%%%%%%%%%%%%%%%%%%S                                         
                           ?????++*%%%%%?S#######S%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%???%??????????????????????%?%SSS#S%%%%%%%%%%%%%%%%%%%S                                          
                           %????*+*%%%%%?S#######S%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%????%????????????%%%%???%%SSSSS%%%%%%%%%%%%%%%%%%%S                                          
                           ??????++%%%%%?########S%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%??????????????????%%%%?%?%S##SS%%%%%%%%%%%%%%%%%%%S?                                          
                            %????*+?%%%%?########S%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%??%%??????????%%%%%%%%S##S%%%%%%%%%%%%%%%%%%%%S                                           
                            ?????*+?%%%%%#########S%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%??%%????%????%%%%%%%SS##S%%%%%%%%%%%%%%%%%%%%*                                           
                             %????**%%%%%S########S%%%%%%%%%%%%%%%%%%%%%%%%S%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%??%??%%?????%%?%%?%%SS#SS%%%%%%%%%%%%%%%%%%%%S                                            
                             ???%??*%%%%%S########S%%%%%%%%%%%%%%%%%%%%%%%%SS%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%??%?%%%????%%???%%%SS#SS%%%%%%%%%%%%%%%%%%%%S%                                            
                              %??%%*?%%%%S########S%%%%%%%%%%%%%%%%%%%%%%%SSS%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%?%?%%%??%%?%??%??%SSS#S%%%%%%%%%%%%%%%%%%%%SS                                             
                              *??%%??%%%%S########S%%%%%%%%%%%%%%%%%%%%%%%SSS%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%?%?%%??%%????%%?%SSS##S%%%%%%%%%%%%%%%%%%%%S?                                             
                               %?%%%?%%%%SS#######S%%%%%%%%%%%%%%%%%%%%%%%SSS%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%????%%%?%%??%%SSSS#S%%%%%%%%%%%%%%%%%%%%%S                                              
                                ??%%??%%%%S#######S%%%%%%%%%%%%%%%%%%%%%%SSSS%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%?%????%%%%%%%??%SSS#SS%%%%%%%%%%%%%%%%%%%%S                                               
                                ??%%???%%%S#######S%%%%%%%%%%%%%%%%%%%%%%SSSS%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%?????%%%%%?%%?%SSS#SS%%%%%%%%%%%%%%%%%%%%%S                                               
                                 ??%%?%%%%SS######S%%%%%%%%%%%%%%%%%%%%%SSSSS%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%??%%%??%?%%%SSS##S%%%%%%%%%%%%%%%%%%%%%S                                                
                                 %?%%%?%%%%S######S%%%%%%%%%%%%%%%%%%%%%SSSS%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%??%%%%??%?%%SSSS#SS%%%%%%%%%%%%%%%%%%%%%.                                                
                                  %%%%%%%%%S#######S%%%%%%%%%%%%%%%%%%%%SSSS%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%?%?%SSSS#S%%%%%%%%%%%%%%%%%%%%%S%                                                 
                                  .?%%%?%%%%S######S%%%%%%%%%%%%%%%%%%%SSSSS%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%?%?%S#S##S%%%%%%%%%%%%%%%%%%%%%S                                                  
                                   ?%%%%%%S%SS#####S%%%%%%%%%%%%%%%%%%%SSSSS%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%SSS##S%%%%%%%%%%%%%%%%%%%%%%.                                                  
                                    %?%%%%%S%S#####S%%%%%%%%%%%%%%%%%%SSSSSS%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%S##S#S%%%%%%%%%%%%%%%%%%%%%%%                                                   
                                     %?%%%%S%%S####S%%%%%%%%%%%%%%%%%%SSSS#S%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%?%%#####S%%%S%%%%%%%%%%%%%%%%%%                                                    
                                      %%%%%%SSS####S%%%%%%%%%%%%%%%%%SS#SS#S%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%S#S##S%%%SS%%%%%%%%%%%%%%%%%                                                     
                                       %%S%%SSSS####S%%%%%%%%%%%%%%%%S##SS#S%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%S#S#SSS%%SSS%%%%%%%%%%%%%%%%                                                      
                                       .%%SSSSSS####S%%%%%%%%%%%%%%%SS##SS#S%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%SS###SSS%%SSS%%%%%%%%%%%%%?S.                                                      
                                        %%%SS%S%S####S%%%%%%%%%%%%%SS###SS#S%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%SSSSSSSSSSSSS%%%%%%%%%%%%%?%S                                                       
                                         %%SSS%SS####S%%%%%%%%%%%%SS####SS#S%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%SS##SSSSSSSSS%%%%%%%%%%%%??%%                                                        
                                           SSSSSSS###S%%%%%%%%%%%SS##S##SS#S%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%SS#SSSSSSSSS#S%%%%%%%%%%%??%%                                                         
                                            SSSS%S###SS%%%%%%%%%SS###S##SS#S%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%SSSSS###SSSSSS%%%%%%%%%%%??%%                                                          
                                             SSSSSS####S%%%%%%%%S#######S##S%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%SS#SS####SSSSSS%%%%%%%%%%??%?                                                           
                                              ?##SSS###SS%%%%%SS###########S%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%SSSS#######SSSSS%%%%%%%%%%??%S                                                            
                                                ###SS@###S%%%%S######S#####S%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%SS#SS#######S#SSS%%%%%%%%%??%?                                                             
                                                  #SS#@###SS%S#######S######SS%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%S##S#S######S###SS%%%%%%%%??%?                                                              
                                                   ?#######SSS#######S##S###SSSS%%%%%%%%%%%%%%%%%%%%%%%%%%SSSS##S########SSSS%%%%%%%%??%.                                                               
                                                      S#####SS#######S#######SSSSS%%%%%%%%%%%%%%%%%SS%%%SSS#######@#####S##S%%%%%%%??%%                                                                 
                                                        S############S#######SSSSSS%%%%%%%%%%%%%%SSS%%SSSSSS#####@######SSSS%%%%%%??%%                                                                  
                                                          %##########S########SS#SSSSS%%%%%%%%%%SSS%%SS#S##SS###@########SS%%%%%%%%%*                                                                   
                                                             #S###############S#S####SSS%%%%%%%SSSSS##SSS#####@@#######SSSS%%%%??%?                                                                     
                                                               %#############SS#######SSSS%%%SSSSS##SS##S####@###SS###SSSS%%%%%%%*                                                                      
                                                                 .S##########S#####SSSSSSSSSSSS#######SSS##@@###SSSSSSSSSSS%%%%?                                                                        
                                                                    %##########SS#####SSSSSSSSS##SSSSS####@######SS##SSS%%%%%%                                                                          
                                                                      S#############SS####S#####SS##################SSSSS%%%.                                                                           
                                                                       .########SSS###########S############SS###S##SSSSS#%                                                                              
                                                                         #@######S#####################SS#######S#SS##S                                                                                 
                                                                         .@@@@####################################S%                                                                                    
                                                                          #@@@@@@@###########SS%      %%?.. ..                                                                                          
                                                                          %#@@@@@@@@@#%                                                                                                                 
                                                                           @@@@@@##