szi - a simple crackme
c++, win32 api
not packed or obfuscated
goal: keygen and solution
valid key: t58-6t8-y24
revme 2013
                                                                                          .                                                                                    
                                                                                      `.````    :`  `:..,                                                                      
                                                                              `. ,.`:````.,.`.` .                                                                              
                                                                         ````'::'',..````,,`...,`       `                                                                      
                                                                 ``` ` ,.:;;,`.` .            `  ``,   ```   .`                                                                
                                                                    .,..+; .    : `.;..`,;   `       ,   `     .                                                               
                                                                 .. ``+,.  `;+,:++++#';+;`''+:`   `   .` ``` `` `                                                              
                                                               ,.```;;,`.+::` +,':':,+,:',;,'':,;., ` ` ` `, `.  .`                                                            
                                                             `.``` '.;.#`,'' `+#+'.''+';'+;,'' :'. .` :    `  . ` .`                                                           
                                                           ``.:, .`:#+':;;:` ;+.++:''+;#+ ',++#;#:+'+'+,,.  `  ```                                                             
                                                             '  ;,''#;:`;`. ;++';;;++#'',:++;.+:.;:++ ;:';.     ``   `                                                         
                                                        `  `:, +`;#:.,`;+,``''''++;#';;'+++#+;,,+;;,++`' ;.  `    .                                                            
                                                      `  ` .. ',''.:':;',.  '',++:+''+;+:#'.'''',,#+:.'+:`.; ,     `   `                                                       
                                                      `  ``: +.#;':,,,.';: `+'.;+::,++,'':;;+:`;;'`++,.;',;`` `    .`   `                                                      
                                                   `    `,.`+++;,,`.,.`::`,.:;;;;++..+;#'#:+;,:;,+;++;.;,+':, ..         `                                                     
                                                 ,      ``,+;',,.'. ;'.::.`;;'':+'#+:++;#:+;+';'++.+::'+:+`:;`   .  `     `                                                    
                                               ,`     ` , .:+;:,,''+'.,,,,,''.+.'#+'+#;++:+' ;+'++''; :;''  '+`   `. `    `.                                                   
                                                      ` ,.:;;'::+;'# .#';,':#+#';'+;'`;,':+.'+'':':+:` :+':,:++.  `   `    `.                                                  
                                                     `.,.;;'+.+:+'++'++;.;,: ###@;+##; .,;'++##;'+++,`'`,++;;;;::`  ; .    ``                                                  
                                                     ..`.+;+'.+;+,.##+,..: .`. ;;;''''+++,;,,;+#'#'#+';:'++:,.'::'    ``  ` `,                                                 
                                                    ..,,':;++'#:.++;```:` `  `   ``````.,,';#;#++#+#+:;,+;;;;`'::,:`   ``  . .                                                 
                                                   ,.:;+#++#'###`     ` .`  `':. :;,``.: ,;;'++'++'+++#++:+'+.++.;`,    `  .                                                   
                                                   `'.+#;''##+: `    `` ;`:,``  ,  `,`..::;:;;:.+';++',:+`' ,+++:;,.`   ``    `                                                
                                                 , '.,##''''      . :'.. `     ..`.,,,,.``.:;;,.`''#';+.'.;+';+'+' +'    ``    `                                               
                                                ``:.:#++'#.  `  ..`                       `.`, ,'++''+.';##;;+#:+','';    .``                                                  
                                               `:`'.'#+;'.  ```,                           ,   ..++#`',+,':':++:'+:';'    `.`   .                                              
                                              ` .`:;#'++# ```                              ;`  :`,++.+#.+.'++++#+++++;:     ` ` `                                              
                                             `   :;+,++#;,. `                              :` ..;.;;+:+; '':+'#''+#+',':.                                                      
                                             `. , ,:+:;#;` `                              .``. `:,,,.+'#,'+'',;'+++++'''    ` `                                                
                                            ``  , '.'+'#`                               `. `,`..:.:,`+#''::'++;+++'',''::`  .,.`                                               
                                           ` : ` +..+++;` `                            `.  . `,`.:', ,,:;+':+''++':++;+.::  ` ..                                               
                                         `    ` ,#;:+''.                                 ``  ,.,;';,`;++;+:';'';++.++'+.,'   ``  `                                             
                                         :`'  : '#,+##., `                                ` ..;;:';;:.,;'++','++,#.,',+' +      `,                                             
                                        ``:. ``+`+:+## ,`                             .    `.`::,:':;:`+:##+.;+++';;;++:`;.    ` ,                                             
                                       `.:`.  '+'+,++#`,:                           `  `. `. .',`:::+':..##++###:';'';+,:, :`  ` `.                                            
                                       `.`': .::+'++:';                           ``   `: ` .,,..:;.'+',###+ +#+ ;#:' +,;`;+   ..`                                             
                                          ;, '+'##+++:' ,                        .     ``.` ,`,.,,+''': ;+#:+`++;;#+;+.+:;',, `. `                                             
                                       .`.`,,: ++'+++,+`                             .  ,` ,.,`,:;++,;.'.;+`.+##,':+'.,'+:+`` ` `.                                             
                                      `. ; ,'+,'#+;.+`,                             .  ..`:;.` ':''';,:.;.',:''''':+',++,`',;```;'                                             
                                       ``: :': +#+';+;.                            ,    `,.  .`:'::',;:;,.:'''`;#'',+ +';+::+; `;+                                             
                                         . ;+':+#`'',                                 `,`    :`, `,:;..,`::++:'+;#:+#'`;'`+#+````'`                                            
                                       .`. +' ''# ::;                                   ,   , , .,`.,;`: `.::;::++:;''''++'';+,, :,                                            
                                        ```+,:+++:';.                                  `     `  , :,.`.`,.;;'+++#::'#;+;#'++;:+'.,:                                            
                                      :  ``#,:+#+''+:                                 ` `    .  ` ,, `:  ,,:,+:'+'+;;#.,++#+#;;;+';                                            
                                        ``:#.+;'+,''.                                .`      ` `    .`  . ,::#'';#+''++###++#;##;+;                                            
                                       . ,'+`+`':'+;  `                             `                 .'.,;,+'''#'.+++;`:#+'+#++;';`                                           
                                       , ,+.`+:;.+;,`   `  ``` `             `    ,` `   `` .  . ` `  ;, ,,;+;';+#;++;+,++ #;#::+:'.                                           
                                       ``,+,,''',',`   `..``.:,            ``  ::`: ` .`  .`. ` `` ` `  ',,';'#`#:#+''.+#:'#++.+;.;                                            
                                       .``+`+'+#,+: ,.`.   :.'++`.        `  ,,'::., ..`::.:  ` :.     ,::.:.'#.+;''#;+,++#'#'+++`+:`                                          
                                       ,.`#,;'+';;;: :..;';;#++;';``    ``  +,:'';':#++':'  ::;;.     ..:..:,+'+''';++,#+#++'+'''::.`                                          
                                       .,'+,'.+:;;+,`.`++,':'+#::+`        #+;'#::'#+#;;,++':;',`. : ,.,.:;+',;,+;+++++#++;++++;+,.'                                           
                                       `:,#+':;,':#' ,,+#+'###+###:  .`   ;;#'+;+;@#;++#,'#';',,;' ., ,.',`::..:;,:+'#+'++++++++':'+.`                                         
                                        :`+#'';`+;#;::'###;`,'#++++,:    .;;+'#;;@'@##+'+';;+:++,++,`,:,``#+:`;,:;'###';'+'.+'',:''+..                                         
                                       `:'#';+'+;:@#,'+@.+:.:''''@@' ,   ,;+#@;.#+:#` ,  :':+;''.#,'.:, ,:+#';;::'##'#;`++;+#+;;:',+                                           
                                       ` #+`;++`+;@@+##';@@@@@#'.#;.``   :;+##,,+'+.`:++';:;+@+'+:#+,,`.;,#+'#':'+#+++',+;'#,'+:;`++  `                                        
                                       :`:` `'#;''@@#;:+@##'#@@@.:+',.   ';##''@', '##+@####,+#.##@@'; :.':#'+,.;''+++##,#.,,#'+,';+..`                                        
                                      .',.`+.,:,++#'+#@@#.,#@@+#@'@':,, ..;+,#@@.:#@+.:@@@+#@+;#'+@#':,..;':;#,;.++,#'++.,+++++'+;.':`                                         
                                       ,`.,',`',+#@':+#@#:;.##'##++;`, ` ;':'@#@@@,,:, '#@###@@#@#+,,```::':'#:;#;';'##':+++;++ ;;++.  `                                       
                                       : `:'```''++,`+#,#.,,`,':+;':..   ;++:##@'+#:`.``@@#:#;+:#;  `  ...'++:#'#'+.++:+##++.++':.;;' ``                                       
                                      ` ` .+':,,;,:`::+.. `.  :` `,.  ` `:+++@@##::.',++##,#', ,:     .,;:#``;':''+:+.+:####''+.+;',+,.                                        
                                    `.' ``.++#;+,`'., :;`  . ,;;:  ,    `;''+#@##';,':` ` ;+:;':   `.  `;+.:'+.#;+'' +:+++:+;+#,#,`:;:  `                                      
                                     `. ,,,;'##.'.'....`. `;+':+:` , .  .:+:###+`;' ,.  '+;#',.`.`    ,;',;:##'#+++',';':#+,+:+'+#:.:` :;                                      
                                     ' ``;.:+:+:':'` :    `+; ,;;  :.`  ,'#:##@##',`,'+#'##:.        :,',,,;##+';'#+'+#,+##,+`:#::++:'  `                                      
                                    ,` .`:.:++'+;'+, .      ``  ` `,..  ,:+;'###,. . .,.,           :.,';,;;''@#';+:++,,'#+.'++;+''';:`                                        
                                   `+. :,'.;+:;'+;'```            .:`   :+;,+;;,.  ``        `     :,.`;,:++'+#+';'''#,,+++'`+`+#'+.';   .                                     
                                   :'  `,'.:+'+,';+ `             :::   ,:.,''.`.,           .      ` ,,+::;;+'';;'`,'+##:'+,'++'+'`',   ;                                     
                                  `': ` `':'+''',.' ```        `  ,.,   ,',:;`,.,`            `    ` ;`''::':#::;;;`++'+;'#+';+;+'#,';   ,                                     
                                  .`  .  :''+++,;,'.```        `  ,` ,  ,;,' .,,                 `  ;..;;;;';#;':''`#+`++++;+:+;'++'+;    `                                    
                                  :,  . ,`' '+#+,;..,.`          ..`    `;';. , :               `  ;,:;;'.#,,#',,;:';':;,#+'# '.++++;;.   `                                    
                                  ', .  : ;'''++,.:,.``           `,    ``,,.::. `                . ;+;+;;''+;;..'.',+;::#+#+++,++++' :   `                                    
                                 :'  ;; : ;`:;,'+:+,.`.           `:`:  .::,:`; .                `` ,;+;;;:+'.#;.'++;+';'+;#:+,,;;'#+':   ,                                    
                                  +  '`,; ..; '++#+:.`        `     ,   .;,;;;              . .  ``,`:+,,;';+;+::.,.++#'++;;:+':,';,+,:   `                                    
                                  ; `: '.`;;.;:'++,; ,        `    ``   ,;#+;'':           `   ` ```;,`.;:';':+,.,'::+++++;.;';+:;:.+,'                                        
                                  , ,,`;``.+.#'+++##`:.         : :..   '`#''',';             ``` ,,..:...;;;,;,,#',;'+';+:,+,;++;::+,+                                        
                                  ` `, ,``:;.'#+++:'`:.        `, +':   ,,#+';`+::            .,..,,:..;:,+:;.;;:+;+'+'++'::';,'#;'.;;+    .                                   
                                  `` , ,.';'.+,;+',';.         ,;`;,.   .,####,#;,            ,`,,,:'``:;,+;;,:;,;:'+,:++';,+'+'','`,'+    .                                   
                                  .  : ,:::+++''+,,+;:.         +.;,,   ,`+#+'+@@;          .;`;;`,'+::';.+;,,:' :''' ,'''+;;':++,; ++;`   `                                   
                                  ;  ; ,;,':'++;;++,#:::`     `.##'``.. :+#@@@###;:        ` ,;`,:,+';':,`.,',:;,.;++ +;+'''++''+;''';';  `                                    
                                  , .: ,::;;+'+`'#'.#+:;        :,,+'+..@##@@@@#++`   ` ` ``.. ,,:;:.;::`...::+' .:': +;+##+;#;;++'+.+#+. :                                    
                                  . ,: ::,,'+',.,':`#+ :     `` ; +#++:#+@###;:;#``  `.  `,. ,:`:`' ;,,; ;;++';: ''.:' +.+'+++::#+'',''+  , ,                                  
                                  , ,, ::,;',++,,'+`++`';`  `     ,'#+#'@@###+:#;  `  ` `  `,`;' '; ,;`,``++::'::::',,,';';''#;;+:::':''; ` .                                  
                                  , ,.`;:,`;+;'`';' +#..,`: `  `.  :'####'+;#';#:.  :` ` .`.`.+.., ,:'.`,,####'.:`+.;, ;,';'++;;#+'+:,`+` . ,                                  
                                 `, ```;,,::.,+ ':+ :+,`,,  .   `   .:;:;',+:'+,',  ` ,  .`..` ;':`,;,`,.#+++,#': +:.: '::,'';''#'';.,,#: ` :                                  
                                 ,` ` `:.,`;`:+`''':+'``,; :  `     ..+@#.`;'#`:.. .  ` ,` ` ..,,``,`, .+++:'++: `'`,``'`:,`,'+;:,;`:,.'+,; :                                  
                                 ,    ..,:,,..'`'+'++#;,.` : :.       ;;:+#.'+.,`.;+':,,.   ...:+`, `.,#'#';;';,. ':``+; `;,,`+..'`; ,`+;.+`:                                  
                                 .    : ,:;`.`:,;;;+'+#,`,.` ,;`     .''.,`+';.`+;##++;   `   `:;.;.:.+++;:#;'+   ,. :';, :`';;`,+ `,,.,'.',,                                  
                                 ``  ., ;:: ,,+:;::.;'++`, ,,.;;'   `;,;:.+#` `';+@+,`   ``` `;',;.`'#++,++#;:+ ;'#,;;'. `: :`:.++ ;, :;+;.,,                                  
                                  ,  :. ;;, :.+'+':,:.+:,:`, ;###++:#+,`###++.'##@@,;,`    `::.;;':;+++'#'.'`'#.. ,,:';   ; ' ::;+.. ;;';;:`;                                  
                                  '  '` ,'. ;,#;+:+'+'''',;. ,;+##@@@@#@##@++#@@@#,,,`    ` ,.;'``;;'###+,+ ';:.  ,:'',,..;`: +:.;:, ;;;,;:';                                  
                                  ;  :, ;;`:',+ ':++',.+,, `,.+`` `;;+@@####@#'+,.`  `      ```.,.''++#+#.#::+;,`''.:; : ,:;.+,;.+:, :: `+' '`                                 
                                  :  `: :, ;;`+ :;+;:`++'; .;`;```  ..','+##'`.: : .`      ` .,`';:+;'#;;;.:.+:` ' ,;`'  ;' :`,''+:;,'``'+:;:                                  
                                  ,   ` `` :'.; ,'+'+#''#'` `;;;. `   ;##',.`:.`` `        :`;+.;+#;'++.;+:,':':: ,; `:.;,' ;'`'',,+,,+`''' +                                  
                                  .    .   .:...;+++++'+##, ..;'.``  `'#####++.;'.   `     ::,;'++##@';+''::++#. `;:  ;   ,:`:#'``','. +`'';'                                  
                                  `   .'   `;: +'++.:;#+:#@` ```     :@#@;+###;,.,,'` `  ::;;,;;##:+;;,.,'..';+:`:; ,,   .'.; ''  ,,.;' :'',+                                  
                                  `   ;`  ,::: ',+''+,+#':++` : `  ` `;#@+#+:,: :;..   :::;,;''+,':+;,,..':,'';;;, :,   ;;,`,:;+  ,;.;  .':`'                                  
                                      :`    `, ,:;,;'++++.'#'' .  `,`:++.,:,;`.,,,';,:  `;+:.';''#;:::;. .,`;,`'`: ` `. .'``: ;' :.:,,.;;:`':`                                 
                                   .  `     ,: `'`:.##''+.++#'+ ` `        ..: ;,`;#`,  ``# '#@+. ,:,'`+,:+'',   `  ,  `'`.: ..+':`;;; .,:,;,                                  
                                   ,  ``    , ,:;::,++;+'+:;,+#': .    .     .`,.:,.,:`.++#;;:;','.:'.'. `,`;.   .,   `` ,+ ,:`':,:: , ,:, :.,                                 
                                 ` :  ,:      :;''#,''+#''+',++@.;  ` `   ..`  ,`.+;;,`++;#:;; .'.,:`+ `,:;+`,       ;  ',.  ';;:'+. :: ,,;;.'                                 
                                   .  ::       `;`+;';';:#':'`+,@+;`   `,,   ` `+ #:`'+#++;:':,:',';;   :;'+ :      . ``,..;:`+:.;,; ' ,+,`:,'                                 
                                 ` ` ;`;     `:  `++.:+ ,+,`'#'+'+#+```     ,.::;;;''#'+'+,+:, ;.`;.`   `''; .     , ; .`',, .+;`'`' +` ` `.:'                                 
                                 ` `.`  :``. ,,:`,'':'':+#+','';;;#+:  .'.  `:,',,:,;+':++#:;;`:+.`,.    , ` ..   ;,`  .. :  '++`  ; +     `:'                                 
                                 : :.`   :`: , `':'+'; +:'#`'+,;,;,+.+,.:` .';',:`;;+',,';.': .+,;: `   `, `,,.  .. `; .    ::'; + : '`  `,`',                                 
                               ` ,`,: ., .;. ',;'+';#;'''+#++'`',;,+:#+#####@#':+,,'`. ,;:,,+,`+.,  `   `, `:`.    ,  `  ` .;;'';  , +`.``, +,                                 
                                 `,.. :;: ;  ;+'+#;'####''##,':' ++#:#+`':#;####'+:; ;,'',.::.:';,,``   .,  .:.  ``  .   `.: +:';. , +`; .  +`                                 
                                `.;`. `.. '  .'.+;;;'+++;.''';`',+:''@###+##@#+++#,;:;';:,,`,; ; ;      `` `..      .   ,::;`+'' . ..'` `. `:.                                 
                                 .: . ., :'  .' ;.,+#+#'',+++,';;+'+#+@;+#.@##,+.#,:;';' .,; : '::  `    `  ,:     .    .;. `+'':; ..'` ..````                                 
                                 .` , :,:',  ,'`.++++++'+'##+;;;;+++#'#;++:#'+'+'#;;:+;..,:`+. :;,.         `  `  .   ; ``  `'+' ` .,',. , . ``                                
                                   :' '``+`  '`;:#+++++``':#++.;;++'#'#:+;+':#:+#+;;;,;'.;;,#.`:.   `       `, `   ``  . `,.`'+:   `;+.   ;;`,`                                
                                   ,: ;``',, .`+ '`,++,' ##++ +':++.++#;;;:' .'';+`'`:...':.;'.`'  `.`  .   `  `      .`,,`  '+;,: .,+ .`   `'`                                
                                    .;;;,+:'  ;' ' #+ ;''##++++ .:',##+;;,. `;,':;.;.'.  '.', . ;   .   ,   ;,,.`    . `,'   ++;,, ,;+.      +.                                
                                    ,+;+:;,;  :,,' '.`+++:++'#'''.''#.#+,'` ``, ,+;`;;:,,;.'`., .       `   ,`,.    .`:`, ` ;'+::` . ,`      ;`                                
                                     ;+'`:;:  ; +`:.'';:++#:`+,.'';;+,#+.;,  ..  ,  ;:'` :,;;` ,             ` ;   `:  . `,` ;+:: ,, ..      .                                 
                                     .;;';+.:  `' :.`'+,+:+'#:':.+,.,,#:`:,`  ;,  , ::; ``:`` :`             .;,,       .  ``'+ ,: , ``        `                               
                                      ++#:, .  '';+ ''++++,.:;+`#,';, #; ``       ` .''   ;```. .            . .,`      .,: `:' '. '  `       ;                                
                                      `'+.  :  : ;`;,'.++,`:#;:++`,`;`++  `         `;:   .::   ,            ,`.`     .  `;  :+ +',,`         ;                                
                                       ''#;.`' `,+`:'+;; ',,++++:;: `,#:  .           .   `':`              `,``    ;`  ,    .#..: ..       ` :`                               
                                       .':.',' `..,;;+'`'+.',++'..' , +;``.           .    : ,``             .'`      `:    .`';   .;       ` ``                               
                                        ';'+:.   `+.;+'++''#;'+ '': ;.'',.,`          .    , ,`,             ;.       `   ,` ,',``  '`      `  :                               
                                        ,;;,:`:`,``','#';+++'#:.+'. ,,'+:,`          `.      :,           `  : .            .::; .  '`      `  ,                               
                                         #`+'  :` ;#,#;':;.+,';;':: ,,:#`.`          `        ,             :.;`     `      ; ', :` ;       .                                  
                                         '.+,` ;; `+ '+++`+'`:':+.+`+,'#``;:         `                      ,  `    ,       `;:...` ;       .  `:                              
                                        ;:''+' :`, ,;,+++  ;`+,;''+,;::#::;`                                .``:    `:.  : `+`:` .  ,       .  `'                              
                                         ,:,',.:  .;+..++.+,+'+;+''+' '# .;`                               .  `., .      ',` ,'  ```,       `   ,                              
                                        `'`;:;+` :: +. '++'.+++.'#.':''; ':.                               . ` .  `     `` `.:;  `.,;             ,                            
                                         ' +'';,`   ;+,#+;+;';;;;:'';+;`;,``                               ,:,        ` `  `,::  `.;             ;  `                          
                                         ` +'`, , :, .;'+++.':;+,;'+;' ',  .                                 '         :   ` ,;'  .:             ,.;                           
                                         :.+' .`   ``:``+#+`:.;,'.+:' :+.  ::                               .;'       .     :,;`  `:              ;.`.                         
                                         .'+;`   ;`,`:; '++ ;;.'.+;# ,; :  :                                `:;`,   ` `  ,`  ;;    :            :  +:                          
                                          ''```  ` `; +.++'#;.':+'+.+.  .  ,                                `  :,`   ,.    , ;;  `                  +`'                        
                                          +,`'`   ,   :++':'`+;:;;+; .     :                                ` .` `    `    , ,;  .               `  `'.                        
                                          ' ,.,      :;''+:#+,+;:'`. .     `                                ``;. .`  . ..``  `;  `               ,   : ,                       
                                          '    ,   ,  '+++;#`;`+;   :                                         `, `.    .  .   : ``                    +                        
                                          '           ',,+;' `.,` `,``                                       :,:              , ``               ``    ;,                      
                                          :        `:`;;:;+:`;   :                                           . :` .      :.  `, .`                ,    ,``                     
                                         ;:           ';';;,:   :   .                                         `..`   ` `    .,. ..`               .     :                      
                                          :         ;`;'.',`     .  `                                      ` `..`,`. ` `,   ,:` ,.`                     ,``                    
                                     .  .,`        `' ;:':                                                `, ` '.   `       ;:  ,`                 .     +,.                   
                                     `  ,'         :' ;,,:                                                ..  .:    ` `     ;:  ,                        :: `                  
                                         ,      `   ; :`:`                                                 ``  ..`   ,.     ;.  ,                         :,  `.               
                                       ; .      `   ` :.'                                                  ``  `:``   ,`    `   ,                   ,    .+;'''''';,           
                                       ` `        ,:   ,.                                                  :   `'  `   `        .`                    `:+;,`,`,`,'+';          
                                      . ,     `.  . ,.::                                                   . ` .;              `.`               `,:+;  .`   .`;,;  `:.        
                                      ,,      ``     :;`                                                   `   `:` . . :,    ` `,               ,.  `       .', ,,       ,     
                                      :.       .  `  .'.                                                        ; `.   ,     ` `:            ;. `        `.``   `+..`     `.:  
                                     ,:`     `. . .  `;.                                                    `   +  `   `        :         ,,  `        ..``  `:::.:        `   
                                    ``:`     ``   : ` `,                                                        ;,  `   . . `   ;      ,;            ,:`   ,,:`   `          . 
                                   :  :`       ````:` ,,                                                        , .     `    `  ,    :`            :,` `.`.             `,.    
                                 `    :`  `   `.  ;, ``.                                                        ` `.`      `` `.. `;             `,  ` `          `..          
                                ,.    '.  ` ,  .  '; ```                                                         `. :    , ``  ;;:             .               ``              
                               .     . , .  . `.` +,:                                                             : `,      . ,;, `       `  ..`         `  `                  
                             ,         '     ` `: . , ,                     ``                                     , :      `:;,..         `.` `         `                     
                            .       `  .       .,,``.`                           `                                 ` ``    .,``;```                   ``         `         `,  
                                    `          `: :  :                                                           `. .,   ,,``  :.   .`              `      ``       `.``       
                                    `   .   `: ...`` :.,`                                                          . , ,,``.  `,` ` ``   `             `       `               
                                   ,    '  `,     .`..   : `.`.`......`                                         .   `.,  ` ,    . ``   `      ``           `                   
                                        , `.   ,  `:,` `   ..                                                     `` ;     `  .  `   . `     .   `     `                       
                                        . ``  ,  ``' ``       ,                                                    ,,      ` ` `   . `     `  ``                               
                                  .     ``+   `    . `,         ,                                                  ``      : `   ..``     ` `    `                             
                                  `     `,;.   `  ; ,.,           ,                                               `   `  ` ``  `:       ,``   ``                               
                                       `` ', `   .                  .                                                   ` `   `             `                                  
                                      `:;`.:     ;  ., `              .                                        `   .  ,``                `..  `,                               
                                 ,     `:``':,                          `.                                    .   ` ` `              ``.  .`                                   
                                 .      :.' `:        `                    ` `                               :     :`             ``.``                                        
                                 ,      ``: ,:`                 `                                          `:     `             .`.                                            
                                 .       ,.``:' .                                                         `,    `             .:                                               
                                 `        `:`,:,               `                                         :.    `            `                                                  
                                         `  ; `:,.            `                                         ``   `            `                                                    
                                  ,      `   ;,`:,+;          `                                         `   `          `                                                       
                                              .,::::;'    , ``                                        `    `         `                                                         
                                   .           `:  ``' ::;,,.`                                       ``            `                                                           
                                    ,          ` ' `, .''':'.                                       .` ``        `                                                             
                                     `.           . ` `:.: ':`                                     .` ..       `                                                               
                                           ``        :..;`:#,                                     ,` `.      `                                                                 
                                             `      .;;',:';''.`'.                               ,````    `.                                                                   
                                            `      `,., ,`,:;.;;.:.:,;`                         `  ``  ,  `                                                                    
                                            `      :``.,`: .:,` ,,.., ` `.:`. . ,     `        . ` .,   `                                                                      
                                                  ,,`.:.:': ,`,. . ` `:`  `:,: ;:.    .       . ;`    `                                                                        
                                                  . ..` .``  .,`.,..,     ,      ;: .,;,::;:;: .`  ` `                                                                         
                                           ,     `` ,``      ,    `  .,:;'.::`:.., .,.:.; ` . ,.   `                                                                           
                                                 ` , ``,:``,.  , `       `,'`'..,,.,,...;  . ,.   `                                                                            
                                                 `..``.,    . `    .    ,  .`   ,`,`` ,`.`; .,  `                                                                              
                                                 `  :` .` .`  ` ,  , .  ,  ..       ``  ::`,;  .                                                                               
                                          .       `. `.    . ``   ..`: ,` ``    `.     `: `,  ` `.`                                                                            
                                          `       .`  :`       `     , `  `` ` `` ` ```  `, ` . .`                                                                             
                                                  ..``, ``,``  . `   ` `   `     ` ` `,``. ,.`.                                                                                
                                       `       `  ,,` .      ` ```` .`   ``     `  ``` `. :`.                                                                                  
                                              `   ` `    . `  `  `` ..``  ``  ``   `` ```                                                                                      
                                         `    `      ``           ` ` ``.`` `    ` ````.` .                                                                                    
                                                 `   ,  .  `..` ` .    .``   .` . ..:,   ,    `                                                                                
                                                 `   `      `  ````  ` , ` `   ` `,`    .     ,                                                                                
                                                 `   `    ` `    ``  ` :`   , ```,        ` .`;                                                                                
                                                `  `        `        ````       :      ,  : ,.'                                                                                
                                              ` `  `     `  ` ` `    . `     ` `      `   ` ,                                                                                  
                                        `       `  `                 ,`  `  ` `       ,    , `                                                                                 
                                             ` `    `   `            .   ` .`,     ':  ` ., ,.                                                                                 
                                                                         `. .        .  .; ` ,                                                                                 
                                                                           .      `     ;` ` .                                                                                 
                                                 `     `                 ``     `..     .:                                                                                     
                                               ` ` `                     `        : . ''`                                                                                      
                                               `   `                    .  ,         :+;  :                                                                                    
                                                      `                    ,  .      `;,                                                                                       
                                                `                      .   `         ,'    `                                                                                   
                                                  .  `                .    '  ` `          `                                                                                   
                                                  `      `                 .:;      :                                                                                          
                                                      `              `    `  ' `  `,                                                                                           
