,--,                                       
                    ,----..              ,---.'|                                       
           .---.   /   /   \  ,-.----.   |   | :       ,---,                           
          /. ./|  /   .     : \    /  \  :   : |     .'  .' `\                         
      .--'.  ' ; .   /   ;.  \;   :    \ |   ' :   ,---.'     \                        
     /__./ \ : |.   ;   /  ` ;|   | .\ : ;   ; '   |   |  .`\  |                       
 .--'.  '   \' .;   |  ; \ ; |.   : |: | '   | |__ :   : |  '  |                       
/___/ \ |    ' '|   :  | ; | '|   |  \ : |   | :.'||   ' '  ;  :                       
;   \  \;      :.   |  ' ' ' :|   : .  / '   :    ;'   | ;  .  |                       
 \   ;  `      |'   ;  \; /  |;   | |  \ |   |  ./ |   | :  |  '                       
  .   \    .\  ; \   \  ',  / |   | ;\  \;   : ;   '   : | /  ;                        
   \   \   ' \ |  ;   :    /  :   ' | \.'|   ,/    |   | '` ,/                         
    :   '  |--"    \   \ .'   :   : :-'  '---'     ;   :  .'                           
     \   \ ;        `---`     |   |.'              |   ,.'                             
      '---"                   `---'                '---'                               
        ,----,                                                                         
      ,/   .`|                                          ,--.                           
    ,`   .'  :,-.----.      ,---,         ,---,       ,--.'|                           
  ;    ;     /\    /  \    '  .' \     ,`--.' |   ,--,:  : |                           
.'___,/    ,' ;   :    \  /  ;    '.   |   :  :,`--.'`|  ' :                           
|    :     |  |   | .\ : :  :       \  :   |  '|   :  :  | |                           
;    |.';  ;  .   : |: | :  |   /\   \ |   :  |:   |   \ | :                           
`----'  |  |  |   |  \ : |  :  ' ;.   :'   '  ;|   : '  '; |                           
    '   :  ;  |   : .  / |  |  ;/  \   \   |  |'   ' ;.    ;                           
    |   |  '  ;   | |  \ '  :  | \  \ ,'   :  ;|   | | \   |                           
    '   :  |  |   | ;\  \|  |  '  '--' |   |  ''   : |  ; .'                           
    ;   |.'   :   ' | \.'|  :  :       '   :  ||   | '`--'                             
    '---'     :   : :-'  |  | ,'       ;   |.' '   : |                                 
              |   |.'    `--''         '---'   ;   |.'                                 
              `---'                            '---'                                   
                   ,----,                    ,----,                                    
                 ,/   .`|                  ,/   .`|            ,----..            ,--. 
  .--.--.      ,`   .'  : ,---,          ,`   .'  :   ,---,   /   /   \         ,--.'| 
 /  /    '.  ;    ;     /'  .' \       ;    ;     /,`--.' |  /   .     :    ,--,:  : | 
|  :  /`. /.'___,/    ,'/  ;    '.   .'___,/    ,' |   :  : .   /   ;.  \,`--.'`|  ' : 
;  |  |--` |    :     |:  :       \  |    :     |  :   |  '.   ;   /  ` ;|   :  :  | | 
|  :  ;_   ;    |.';  ;:  |   /\   \ ;    |.';  ;  |   :  |;   |  ; \ ; |:   |   \ | : 
 \  \    `.`----'  |  ||  :  ' ;.   :`----'  |  |  '   '  ;|   :  | ; | '|   : '  '; | 
  `----.   \   '   :  ;|  |  ;/  \   \   '   :  ;  |   |  |.   |  ' ' ' :'   ' ;.    ; 
  __ \  \  |   |   |  ''  :  | \  \ ,'   |   |  '  '   :  ;'   ;  \; /  ||   | | \   | 
 /  /`--'  /   '   :  ||  |  '  '--'     '   :  |  |   |  ' \   \  ',  / '   : |  ; .' 
'--'.     /    ;   |.' |  :  :           ;   |.'   '   :  |  ;   :    /  |   | '`--'   
  `--'---'     '---'   |  | ,'           '---'     ;   |.'    \   \ .'   '   : |       
                       `--''                       '---'       `---`     ;   |.'       
                   ,----,                                                '---'         
                 ,/   .`|                                     ,----..                  
  .--.--.      ,`   .'  :                ,---,       ,---,   /   /   \                 
 /  /    '.  ;    ;     /       ,--,   .'  .' `\  ,`--.' |  /   .     :                
|  :  /`. /.'___,/    ,'      ,'_ /| ,---.'     \ |   :  : .   /   ;.  \               
;  |  |--` |    :     |  .--. |  | : |   |  .`\  |:   |  '.   ;   /  ` ;               
|  :  ;_   ;    |.';  ;,'_ /| :  . | :   : |  '  ||   :  |;   |  ; \ ; |               
 \  \    `.`----'  |  ||  ' | |  . . |   ' '  ;  :'   '  ;|   :  | ; | '               
  `----.   \   '   :  ;|  | ' |  | | '   | ;  .  ||   |  |.   |  ' ' ' :               
  __ \  \  |   |   |  ':  | | :  ' ; |   | :  |  ''   :  ;'   ;  \; /  |               
 /  /`--'  /   '   :  ||  ; ' |  | ' '   : | /  ; |   |  ' \   \  ',  /                
'--'.     /    ;   |.' :  | : ;  ; | |   | '` ,/  '   :  |  ;   :    /                 
  `--'---'     '---'   '  :  `--'   \;   :  .'    ;   |.'    \   \ .'                  
                       :  ,      .-./|   ,.'      '---'       `---`                    
                        `--`----'    '---'