@evomap/evolver 1.88.4 → 1.89.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.cursor/BUGBOT.md +182 -0
- package/.env.example +68 -0
- package/.git-commit-guard-token +1 -0
- package/.github/CODEOWNERS +63 -0
- package/.github/ISSUE_TEMPLATE/good_first_issue.md +23 -0
- package/.github/pull_request_template.md +45 -0
- package/.github/workflows/test.yml +75 -0
- package/CHANGELOG.md +1123 -0
- package/README.md +86 -553
- package/README.public.md +594 -0
- package/SECURITY.md +108 -0
- package/assets/gep/events.jsonl +3 -0
- package/examples/atp-consumer-quickstart.md +100 -0
- package/examples/hello-world.md +38 -0
- package/index.js +30 -1
- package/package.json +6 -17
- package/proxy-package.json +39 -0
- package/public.manifest.json +141 -0
- package/src/evolve/guards.js +721 -1
- package/src/evolve/pipeline/collect.js +1283 -1
- package/src/evolve/pipeline/dispatch.js +421 -1
- package/src/evolve/pipeline/enrich.js +434 -1
- package/src/evolve/pipeline/hub.js +319 -1
- package/src/evolve/pipeline/select.js +274 -1
- package/src/evolve/pipeline/signals.js +206 -1
- package/src/evolve/utils.js +264 -1
- package/src/evolve.js +350 -1
- package/src/gep/a2aProtocol.js +4395 -1
- package/src/gep/autoDistillConv.js +205 -1
- package/src/gep/autoDistillLlm.js +315 -1
- package/src/gep/candidateEval.js +92 -1
- package/src/gep/candidates.js +198 -1
- package/src/gep/contentHash.js +30 -1
- package/src/gep/conversationSniffer.js +266 -1
- package/src/gep/crypto.js +89 -1
- package/src/gep/curriculum.js +163 -1
- package/src/gep/deviceId.js +218 -1
- package/src/gep/envFingerprint.js +118 -1
- package/src/gep/epigenetics.js +31 -1
- package/src/gep/execBridge.js +711 -1
- package/src/gep/explore.js +289 -1
- package/src/gep/hash.js +15 -1
- package/src/gep/hubFetch.js +359 -1
- package/src/gep/hubReview.js +207 -1
- package/src/gep/hubSearch.js +526 -1
- package/src/gep/hubVerify.js +306 -1
- package/src/gep/learningSignals.js +89 -1
- package/src/gep/memoryGraph.js +1374 -1
- package/src/gep/memoryGraphAdapter.js +203 -1
- package/src/gep/mutation.js +203 -1
- package/src/gep/narrativeMemory.js +108 -1
- package/src/gep/oauthLogin.js +143 -0
- package/src/gep/openPRRegistry.js +205 -1
- package/src/gep/personality.js +423 -1
- package/src/gep/policyCheck.js +599 -1
- package/src/gep/prompt.js +836 -1
- package/src/gep/recallInject.js +409 -1
- package/src/gep/recallVerifier.js +318 -1
- package/src/gep/reflection.js +177 -1
- package/src/gep/selector.js +602 -1
- package/src/gep/skillDistiller.js +1294 -1
- package/src/gep/solidify.js +1699 -1
- package/src/gep/strategy.js +136 -1
- package/src/gep/tokenSavings.js +88 -1
- package/src/gep/workspaceKeychain.js +174 -1
- package/src/proxy/extensions/traceControl.js +99 -1
- package/src/proxy/inject.js +52 -1
- package/src/proxy/trace/extractor.js +534 -1
- package/src/proxy/trace/usage.js +105 -1
- package/CONTRIBUTING.md +0 -19
- package/assets/cover.png +0 -0
- package/scripts/a2a_export.js +0 -63
- package/scripts/a2a_ingest.js +0 -79
- package/scripts/a2a_promote.js +0 -118
- package/scripts/analyze_by_skill.js +0 -121
- package/scripts/build_binaries.js +0 -479
- package/scripts/check-changelog.js +0 -166
- package/scripts/extract_log.js +0 -85
- package/scripts/generate_history.js +0 -75
- package/scripts/gep_append_event.js +0 -96
- package/scripts/gep_personality_report.js +0 -234
- package/scripts/human_report.js +0 -147
- package/scripts/recall-verify-report.js +0 -234
- package/scripts/recover_loop.js +0 -61
- package/scripts/seed-merchants.js +0 -91
- package/scripts/suggest_version.js +0 -89
- package/scripts/validate-modules.js +0 -38
- package/scripts/validate-suite.js +0 -78
- package/skills/index.json +0 -14
- /package/assets/gep/{genes.seed.json → genes.json} +0 -0
- /package/{skills → bundled-skills}/_meta/SKILL.md +0 -0
package/src/gep/curriculum.js
CHANGED
|
@@ -1 +1,163 @@
|
|
|
1
|
-
var _0x5a6d2d=_0x4dc1;(function(_0x17ce6f,_0x4cbaa9){var _0x1d0bc0=_0x4dc1,_0x123e61=_0x17ce6f();while(!![]){try{var _0x420840=parseInt(_0x1d0bc0(0x2b7,'\x45\x50\x6a\x72'))/(0x17d4+-0x6c1+-0x17*0xbe)+-parseInt(_0x1d0bc0(0x2b4,'\x73\x70\x28\x59'))/(-0x11*-0x1c8+0x161*0x11+0x1*-0x35b7)+parseInt(_0x1d0bc0(0x2ce,'\x37\x74\x54\x72'))/(0x1*-0x1ea0+0x5*-0x7b7+0x4536)*(-parseInt(_0x1d0bc0(0x225,'\x34\x41\x49\x36'))/(-0x24*-0xa3+-0x297+-0x2e7*0x7))+parseInt(_0x1d0bc0(0x230,'\x5d\x65\x64\x5d'))/(0x207f+-0x12*0xb5+-0x13c0)+-parseInt(_0x1d0bc0(0x210,'\x52\x38\x6e\x47'))/(-0x6*-0x509+-0x707+-0x1729)+-parseInt(_0x1d0bc0(0x2be,'\x5a\x76\x59\x30'))/(-0x173+-0x2314+0x248e)*(parseInt(_0x1d0bc0(0x268,'\x30\x70\x6e\x5e'))/(-0x197f+0x2a1*0x8+-0x1*-0x47f))+parseInt(_0x1d0bc0(0x2e1,'\x5d\x65\x64\x5d'))/(-0x20b2+0xd64+0x1357);if(_0x420840===_0x4cbaa9)break;else _0x123e61['push'](_0x123e61['shift']());}catch(_0x51820a){_0x123e61['push'](_0x123e61['shift']());}}}(_0xe60b,-0x41*-0x162a+0x74b33+0x914c5*-0x1));var _0x21b124=(function(){var _0x3fc344=!![];return function(_0x31b0cd,_0x370c5f){var _0x454ff9=_0x3fc344?function(){var _0x17190f=_0x4dc1;if(_0x370c5f){var _0x1d0c07=_0x370c5f[_0x17190f(0x2f0,'\x45\x50\x6a\x72')](_0x31b0cd,arguments);return _0x370c5f=null,_0x1d0c07;}}:function(){};return _0x3fc344=![],_0x454ff9;};}()),_0x2656a2=_0x21b124(this,function(){var _0xb88dd2=_0x4dc1,_0x39e8c0={};_0x39e8c0[_0xb88dd2(0x25b,'\x21\x26\x52\x5d')]=_0xb88dd2(0x228,'\x54\x33\x21\x66')+_0xb88dd2(0x2a7,'\x42\x78\x4e\x79');var _0x21ddb8=_0x39e8c0;return _0x2656a2[_0xb88dd2(0x2f3,'\x2a\x35\x68\x65')]()['\x73\x65\x61\x72\x63\x68'](_0x21ddb8[_0xb88dd2(0x26e,'\x35\x69\x2a\x30')])[_0xb88dd2(0x1fa,'\x21\x26\x52\x5d')]()[_0xb88dd2(0x238,'\x39\x39\x23\x4e')+'\x74\x6f\x72'](_0x2656a2)['\x73\x65\x61\x72\x63\x68'](_0x21ddb8[_0xb88dd2(0x208,'\x2a\x35\x68\x65')]);});function _0x4dc1(_0x5d4a4a,_0x103a5e){_0x5d4a4a=_0x5d4a4a-(0xc46+0x48d+-0xee6);var _0x42dec4=_0xe60b();var _0x169475=_0x42dec4[_0x5d4a4a];if(_0x4dc1['\x4f\x78\x48\x69\x50\x63']===undefined){var _0x4b7721=function(_0xa5d164){var _0x380d1f='\x61\x62\x63\x64\x65\x66\x67\x68\x69\x6a\x6b\x6c\x6d\x6e\x6f\x70\x71\x72\x73\x74\x75\x76\x77\x78\x79\x7a\x41\x42\x43\x44\x45\x46\x47\x48\x49\x4a\x4b\x4c\x4d\x4e\x4f\x50\x51\x52\x53\x54\x55\x56\x57\x58\x59\x5a\x30\x31\x32\x33\x34\x35\x36\x37\x38\x39\x2b\x2f\x3d';var _0x10a554='',_0xc7fb36='',_0x138375=_0x10a554+_0x4b7721,_0x10b846=(''+function(){return-0x1b4b+0x18a2+0x2a9;})['\x69\x6e\x64\x65\x78\x4f\x66']('\x0a')!==-(0x2c9*0xa+0x95b+0x2534*-0x1);for(var _0x281ef5=-0x1bff+0x19*0xe5+-0x67*-0xe,_0x1d8f28,_0x3b5634,_0x129518=-0x2551+-0x10a8+0x151*0x29;_0x3b5634=_0xa5d164['\x63\x68\x61\x72\x41\x74'](_0x129518++);~_0x3b5634&&(_0x1d8f28=_0x281ef5%(-0x4b4+0x36a+0x2*0xa7)?_0x1d8f28*(-0x116f*0x1+0xcca+0x4e5)+_0x3b5634:_0x3b5634,_0x281ef5++%(0x1764*0x1+0x1695*-0x1+-0xcb))?_0x10a554+=_0x10b846||_0x138375['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x129518+(0x2*-0x10d3+-0xf*-0xaf+0x176f))-(-0x2c*-0x36+0x771*-0x5+0x1bf7)!==0xb*0xd1+0x1058*0x2+0x1*-0x29ab?String['\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65'](-0x259e+-0x76*0x43+0x457f*0x1&_0x1d8f28>>(-(-0x2232+0x1eac+0x388)*_0x281ef5&-0x20e*-0xb+0x2417+-0x3aab)):_0x281ef5:0x865+0x84f+-0x10b4*0x1){_0x3b5634=_0x380d1f['\x69\x6e\x64\x65\x78\x4f\x66'](_0x3b5634);}for(var _0x1a5981=0x4d7*0x6+0x2317+-0x4021,_0x42b1a6=_0x10a554['\x6c\x65\x6e\x67\x74\x68'];_0x1a5981<_0x42b1a6;_0x1a5981++){_0xc7fb36+='\x25'+('\x30\x30'+_0x10a554['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x1a5981)['\x74\x6f\x53\x74\x72\x69\x6e\x67'](0x22e+-0x11*0x1de+-0x10*-0x1da))['\x73\x6c\x69\x63\x65'](-(-0x1f3*0x13+-0x7*0xf+-0xc7c*-0x3));}return decodeURIComponent(_0xc7fb36);};var _0x327339=function(_0x5c003f,_0x24871f){var _0x306eff=[],_0x45e505=-0x114e+0x1*-0x1bdf+0x2d2d,_0x5c1f7d,_0x7e33d3='';_0x5c003f=_0x4b7721(_0x5c003f);var _0x17e1eb;for(_0x17e1eb=-0x25b5+0x23b*-0xa+0x3c03;_0x17e1eb<-0x88e+0x44f*0x9+-0x1d39;_0x17e1eb++){_0x306eff[_0x17e1eb]=_0x17e1eb;}for(_0x17e1eb=-0x1bc2+-0x19db*0x1+0x9*0x5f5;_0x17e1eb<-0xaf*-0x31+0x20db+-0xe*0x4ab;_0x17e1eb++){_0x45e505=(_0x45e505+_0x306eff[_0x17e1eb]+_0x24871f['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x17e1eb%_0x24871f['\x6c\x65\x6e\x67\x74\x68']))%(-0x231a*0x1+0x6*-0x36d+0x38a8),_0x5c1f7d=_0x306eff[_0x17e1eb],_0x306eff[_0x17e1eb]=_0x306eff[_0x45e505],_0x306eff[_0x45e505]=_0x5c1f7d;}_0x17e1eb=-0x33*-0x3b+-0xa59*-0x1+-0x161a,_0x45e505=-0x1*0x182f+0x1211*-0x2+0x3c51;for(var _0x1fc6ba=-0x1c8+-0xb*-0x239+0x16ab*-0x1;_0x1fc6ba<_0x5c003f['\x6c\x65\x6e\x67\x74\x68'];_0x1fc6ba++){_0x17e1eb=(_0x17e1eb+(0x18df*0x1+0x63a+-0x1f18))%(-0x8*-0x1dd+-0x454+0x994*-0x1),_0x45e505=(_0x45e505+_0x306eff[_0x17e1eb])%(-0x18a7+-0x100*-0x18+0x1a7),_0x5c1f7d=_0x306eff[_0x17e1eb],_0x306eff[_0x17e1eb]=_0x306eff[_0x45e505],_0x306eff[_0x45e505]=_0x5c1f7d,_0x7e33d3+=String['\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65'](_0x5c003f['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x1fc6ba)^_0x306eff[(_0x306eff[_0x17e1eb]+_0x306eff[_0x45e505])%(0x24e6+-0x299+-0x214d)]);}return _0x7e33d3;};_0x4dc1['\x41\x72\x61\x74\x62\x4a']=_0x327339,_0x4dc1['\x45\x76\x64\x73\x53\x76']={},_0x4dc1['\x4f\x78\x48\x69\x50\x63']=!![];}var _0x387e04=_0x42dec4[-0x9dc+0x1*0x2303+0x1*-0x1927],_0x1a7b11=_0x5d4a4a+_0x387e04,_0x496b21=_0x4dc1['\x45\x76\x64\x73\x53\x76'][_0x1a7b11];if(!_0x496b21){if(_0x4dc1['\x52\x77\x6f\x66\x51\x5a']===undefined){var _0x18c39a=function(_0x10cb1c){this['\x4a\x41\x75\x4a\x4b\x6f']=_0x10cb1c,this['\x49\x57\x51\x75\x4e\x78']=[0x5ce+0x25ee+0x1*-0x2bbb,0xbf6+-0x2555+0x195f,0x23ab+0x2*0x1141+-0x462d],this['\x50\x63\x44\x73\x62\x63']=function(){return'\x6e\x65\x77\x53\x74\x61\x74\x65';},this['\x41\x76\x55\x63\x5a\x79']='\x5c\x77\x2b\x20\x2a\x5c\x28\x5c\x29\x20\x2a\x7b\x5c\x77\x2b\x20\x2a',this['\x59\x66\x52\x6b\x78\x6d']='\x5b\x27\x7c\x22\x5d\x2e\x2b\x5b\x27\x7c\x22\x5d\x3b\x3f\x20\x2a\x7d';};_0x18c39a['\x70\x72\x6f\x74\x6f\x74\x79\x70\x65']['\x54\x71\x4b\x49\x56\x67']=function(){var _0x216a22=new RegExp(this['\x41\x76\x55\x63\x5a\x79']+this['\x59\x66\x52\x6b\x78\x6d']),_0x441062=_0x216a22['\x74\x65\x73\x74'](this['\x50\x63\x44\x73\x62\x63']['\x74\x6f\x53\x74\x72\x69\x6e\x67']())?--this['\x49\x57\x51\x75\x4e\x78'][-0x77f+0x83*-0x6+-0x386*-0x3]:--this['\x49\x57\x51\x75\x4e\x78'][-0x587*-0x6+-0x110d+-0x101d];return this['\x75\x71\x54\x51\x4a\x65'](_0x441062);},_0x18c39a['\x70\x72\x6f\x74\x6f\x74\x79\x70\x65']['\x75\x71\x54\x51\x4a\x65']=function(_0x49d77d){if(!Boolean(~_0x49d77d))return _0x49d77d;return this['\x62\x43\x54\x53\x71\x7a'](this['\x4a\x41\x75\x4a\x4b\x6f']);},_0x18c39a['\x70\x72\x6f\x74\x6f\x74\x79\x70\x65']['\x62\x43\x54\x53\x71\x7a']=function(_0x525457){for(var _0x172657=0x161+-0x201b+0x1eba,_0xa38c9a=this['\x49\x57\x51\x75\x4e\x78']['\x6c\x65\x6e\x67\x74\x68'];_0x172657<_0xa38c9a;_0x172657++){this['\x49\x57\x51\x75\x4e\x78']['\x70\x75\x73\x68'](Math['\x72\x6f\x75\x6e\x64'](Math['\x72\x61\x6e\x64\x6f\x6d']())),_0xa38c9a=this['\x49\x57\x51\x75\x4e\x78']['\x6c\x65\x6e\x67\x74\x68'];}return _0x525457(this['\x49\x57\x51\x75\x4e\x78'][-0x1*-0x2694+-0x3f5*0x4+-0x1c*0xd0]);},(''+function(){return 0x180*0x7+-0x2d5*-0x2+-0x2*0x815;})['\x69\x6e\x64\x65\x78\x4f\x66']('\x0a')===-(0x22c4+-0xac9*0x2+-0xd31*0x1)&&new _0x18c39a(_0x4dc1)['\x54\x71\x4b\x49\x56\x67'](),_0x4dc1['\x52\x77\x6f\x66\x51\x5a']=!![];}_0x169475=_0x4dc1['\x41\x72\x61\x74\x62\x4a'](_0x169475,_0x103a5e),_0x4dc1['\x45\x76\x64\x73\x53\x76'][_0x1a7b11]=_0x169475;}else _0x169475=_0x496b21;return _0x169475;}_0x2656a2();'use strict';const _0x2172e3=require('\x66\x73'),_0x8da2a3=require(_0x5a6d2d(0x263,'\x37\x74\x54\x72')),{getEvolutionDir:_0x18c111,getMemoryDir:_0x523c03}=require(_0x5a6d2d(0x243,'\x53\x26\x28\x35'));var _0xb4702=0x1*-0x155+0x76f+-0x30d*0x2+0.8,_0x9842f3=0x3*-0x255+0x3d2+-0x1*-0x330,_0xadb5e1=0x1ec7+-0x7bf*0x1+-0x1708+0.3,_0x5c8ed5=-0x241f+0x1*0x42b+-0x2*-0xffb;function _0xe60b(){var _0xf37deb=['\x72\x43\x6b\x5a\x57\x35\x33\x64\x52\x38\x6b\x46','\x6a\x78\x31\x68\x57\x36\x4e\x63\x4f\x47','\x57\x4f\x43\x32\x57\x50\x74\x64\x4b\x4a\x5a\x63\x56\x53\x6f\x6c\x57\x51\x57','\x57\x51\x34\x44\x57\x34\x78\x64\x4e\x5a\x43','\x6d\x6d\x6f\x56\x57\x37\x34\x32','\x71\x47\x76\x59\x57\x34\x37\x63\x49\x53\x6f\x34','\x6d\x32\x58\x63\x6a\x72\x4f','\x6a\x62\x78\x64\x47\x53\x6b\x4d\x57\x34\x47','\x70\x48\x6e\x57\x64\x4a\x62\x62\x57\x50\x61','\x7a\x59\x52\x63\x4e\x38\x6b\x33\x57\x37\x6d\x57\x63\x71','\x57\x52\x74\x63\x54\x43\x6b\x43','\x57\x36\x66\x4e\x74\x4a\x56\x63\x49\x71','\x72\x38\x6b\x5a\x57\x35\x56\x64\x55\x71','\x57\x51\x42\x64\x47\x78\x33\x63\x49\x53\x6f\x56\x57\x51\x70\x64\x4d\x49\x43','\x64\x66\x66\x65\x65\x49\x38','\x46\x5a\x46\x63\x54\x43\x6b\x4e\x75\x53\x6f\x4c\x57\x4f\x5a\x64\x56\x38\x6b\x62\x66\x31\x53','\x57\x51\x37\x63\x4b\x38\x6f\x66\x57\x4f\x4f','\x6b\x53\x6f\x31\x57\x36\x71\x57','\x74\x53\x6f\x57\x57\x4f\x5a\x63\x4c\x38\x6f\x45','\x6e\x76\x62\x7a\x57\x35\x74\x63\x4d\x71','\x76\x53\x6b\x4e\x57\x35\x33\x64\x52\x53\x6b\x46\x63\x33\x74\x64\x4e\x71','\x6d\x6d\x6b\x75\x74\x53\x6f\x47\x57\x36\x6d','\x69\x75\x76\x50\x57\x52\x52\x63\x4d\x71','\x61\x77\x7a\x52\x70\x57','\x57\x34\x7a\x35\x57\x4f\x46\x64\x48\x43\x6b\x55','\x57\x37\x39\x4d\x57\x51\x68\x64\x4a\x38\x6b\x31','\x69\x61\x2f\x64\x48\x43\x6b\x56','\x57\x34\x52\x64\x48\x38\x6f\x31\x77\x4c\x33\x63\x4f\x5a\x56\x64\x50\x47','\x57\x35\x33\x64\x4e\x43\x6f\x5a\x73\x76\x47','\x6a\x53\x6f\x37\x57\x36\x71\x59\x67\x63\x4a\x64\x47\x47','\x7a\x53\x6f\x37\x66\x61\x56\x64\x51\x43\x6b\x42\x78\x33\x74\x63\x4f\x38\x6b\x50\x57\x34\x48\x66','\x57\x36\x52\x64\x4a\x43\x6b\x38\x73\x61','\x57\x35\x72\x30\x57\x51\x4a\x64\x4a\x53\x6b\x42','\x43\x38\x6b\x37\x57\x35\x2f\x64\x49\x6d\x6b\x4f','\x71\x49\x6d\x4f\x7a\x66\x74\x64\x53\x61\x76\x57\x57\x35\x4b\x45\x63\x64\x48\x34','\x71\x43\x6b\x5a\x57\x35\x33\x64\x55\x38\x6b\x46\x65\x78\x6d','\x57\x51\x53\x34\x57\x34\x5a\x63\x47\x53\x6b\x6e','\x6e\x68\x6a\x63\x6b\x57','\x6a\x38\x6b\x7a\x77\x4b\x68\x63\x53\x47','\x57\x52\x56\x63\x4c\x43\x6f\x50\x71\x4e\x38','\x70\x62\x44\x49\x63\x71\x38','\x6a\x58\x58\x47\x61\x57','\x57\x51\x44\x74\x57\x35\x75\x36\x6d\x75\x64\x64\x47\x53\x6f\x6f','\x57\x52\x33\x63\x49\x43\x6f\x42\x57\x50\x6a\x32\x57\x51\x38\x7a\x57\x34\x69','\x57\x36\x46\x63\x49\x38\x6b\x6b\x77\x59\x64\x64\x56\x61','\x57\x50\x34\x34\x57\x51\x37\x64\x54\x72\x42\x63\x4e\x38\x6f\x41\x57\x52\x4f','\x44\x43\x6f\x37\x6b\x43\x6f\x77\x57\x36\x46\x64\x4e\x31\x71\x39\x6c\x57','\x45\x43\x6b\x32\x57\x4f\x33\x63\x47\x38\x6b\x65\x57\x52\x75\x7a','\x45\x4a\x6c\x64\x4e\x53\x6f\x55\x57\x52\x76\x56\x66\x43\x6b\x56\x71\x76\x71\x66\x7a\x47','\x70\x32\x50\x35\x57\x52\x46\x63\x56\x47','\x71\x6d\x6b\x38\x57\x51\x6c\x63\x49\x57\x47\x56\x6b\x53\x6b\x38','\x57\x35\x33\x63\x49\x6d\x6f\x48\x77\x4c\x56\x63\x52\x4a\x52\x64\x4f\x57','\x57\x4f\x5a\x64\x52\x43\x6b\x2f\x57\x35\x6d\x6a','\x57\x51\x70\x64\x51\x53\x6b\x4f','\x57\x37\x6c\x64\x48\x38\x6b\x62\x7a\x66\x43','\x57\x36\x56\x64\x53\x38\x6f\x53\x43\x4c\x61','\x61\x72\x54\x6e\x61\x47\x6d','\x57\x4f\x56\x64\x4f\x53\x6b\x68\x57\x50\x78\x63\x48\x4d\x42\x63\x47\x59\x43','\x57\x51\x33\x64\x52\x43\x6f\x48\x57\x50\x78\x63\x54\x77\x64\x63\x55\x63\x6d','\x57\x52\x46\x63\x53\x43\x6b\x65\x57\x4f\x72\x7a','\x76\x62\x50\x67\x43\x53\x6f\x30\x79\x38\x6b\x6f\x57\x37\x79','\x70\x32\x74\x64\x55\x43\x6f\x37','\x57\x37\x64\x63\x4b\x53\x6f\x42\x57\x50\x69','\x74\x43\x6f\x35\x42\x38\x6b\x74\x72\x53\x6f\x75\x72\x61','\x57\x4f\x33\x63\x4d\x6d\x6b\x6f\x57\x4f\x76\x44','\x76\x76\x31\x4c\x57\x4f\x69\x44\x57\x51\x78\x63\x4f\x61','\x69\x65\x44\x6f\x57\x4f\x74\x63\x54\x47','\x46\x53\x6f\x6e\x76\x53\x6b\x6b\x69\x61','\x6f\x43\x6b\x4b\x74\x4c\x79','\x57\x4f\x5a\x64\x51\x53\x6b\x31\x57\x50\x4a\x63\x50\x32\x68\x63\x4a\x49\x34','\x78\x47\x76\x55\x57\x35\x52\x63\x4b\x43\x6f\x2b\x57\x52\x33\x64\x4a\x61','\x57\x4f\x35\x6a\x57\x34\x34\x4d','\x44\x6d\x6f\x34\x79\x53\x6b\x66\x79\x71','\x42\x38\x6b\x36\x57\x50\x68\x63\x4a\x6d\x6b\x69\x57\x52\x30\x56\x57\x34\x6d','\x57\x34\x37\x63\x54\x48\x4a\x64\x55\x53\x6f\x70','\x57\x36\x56\x63\x4b\x6d\x6b\x7a\x57\x51\x33\x63\x48\x4b\x31\x54\x66\x71','\x42\x53\x6f\x58\x42\x43\x6b\x66\x57\x34\x44\x77\x57\x37\x6a\x32','\x44\x53\x6f\x61\x57\x52\x64\x63\x51\x43\x6f\x64','\x57\x4f\x42\x64\x49\x6d\x6f\x43\x57\x52\x50\x43\x6e\x6d\x6f\x34\x57\x36\x79','\x57\x51\x52\x64\x4d\x53\x6b\x66\x57\x4f\x64\x64\x4a\x63\x6d\x58\x77\x61','\x43\x38\x6f\x4d\x57\x51\x4a\x63\x52\x6d\x6f\x6c','\x57\x52\x33\x64\x4c\x4d\x6c\x63\x4d\x38\x6f\x4d','\x57\x35\x74\x63\x49\x74\x2f\x64\x49\x38\x6f\x4d\x68\x43\x6f\x6b','\x78\x32\x44\x31\x6a\x57','\x57\x51\x4b\x45\x57\x35\x4a\x64\x4e\x74\x34','\x6a\x75\x35\x37\x57\x37\x78\x63\x50\x61','\x57\x51\x46\x63\x54\x38\x6b\x4e\x57\x50\x6a\x41','\x69\x38\x6f\x31\x57\x36\x61\x55\x68\x73\x70\x64\x4b\x43\x6f\x77','\x57\x52\x33\x63\x4c\x43\x6f\x39\x57\x50\x6e\x5a','\x57\x37\x42\x64\x4c\x38\x6b\x4c\x74\x4c\x6c\x63\x4c\x61\x47','\x57\x50\x64\x63\x56\x53\x6f\x33\x57\x4f\x6e\x4a','\x41\x6d\x6b\x43\x57\x4f\x5a\x63\x4d\x5a\x38','\x57\x50\x6c\x64\x48\x6d\x6b\x74\x57\x50\x33\x63\x48\x57','\x57\x52\x37\x64\x56\x53\x6b\x6f\x57\x52\x4e\x63\x51\x47','\x6d\x43\x6b\x50\x79\x43\x6f\x42\x57\x34\x74\x63\x49\x6d\x6b\x53\x57\x35\x47','\x57\x37\x48\x56\x57\x4f\x52\x64\x48\x38\x6b\x58\x57\x34\x61','\x71\x47\x76\x51\x57\x34\x5a\x63\x4b\x47','\x57\x52\x52\x63\x53\x73\x4a\x64\x4d\x48\x74\x64\x4a\x72\x43\x75','\x57\x34\x78\x63\x49\x6d\x6b\x6d\x57\x36\x47\x71\x7a\x38\x6f\x35\x57\x35\x68\x63\x54\x77\x2f\x63\x52\x49\x79','\x77\x4b\x5a\x64\x48\x43\x6b\x42\x57\x50\x64\x64\x4e\x62\x4b\x53','\x57\x52\x4e\x63\x4d\x47\x4a\x64\x4a\x4a\x79','\x57\x35\x58\x4b\x57\x52\x52\x64\x4a\x61','\x6a\x53\x6f\x77\x57\x37\x53\x77\x65\x47','\x57\x50\x47\x32\x57\x50\x70\x64\x47\x57','\x65\x4e\x6a\x4f\x6e\x47\x78\x63\x4f\x66\x62\x6b','\x74\x38\x6f\x4a\x41\x53\x6b\x43\x57\x37\x61','\x42\x53\x6f\x57\x57\x37\x34\x58\x68\x57','\x57\x52\x70\x64\x4d\x53\x6b\x73\x57\x50\x69','\x42\x53\x6f\x4e\x57\x52\x53','\x57\x37\x52\x63\x4d\x4a\x2f\x64\x4d\x47','\x75\x6d\x6b\x51\x57\x34\x42\x64\x52\x38\x6b\x6f\x66\x4c\x70\x64\x55\x57','\x79\x43\x6f\x6e\x71\x43\x6b\x59\x6f\x61','\x57\x35\x5a\x64\x47\x53\x6f\x4a\x73\x75\x64\x63\x50\x73\x52\x64\x4c\x71','\x57\x36\x5a\x63\x47\x43\x6b\x43\x57\x36\x61','\x75\x62\x62\x66\x7a\x38\x6f\x51\x7a\x38\x6b\x6f\x57\x37\x79','\x57\x52\x65\x78\x57\x34\x47','\x57\x50\x33\x63\x56\x43\x6f\x70\x44\x77\x79','\x6e\x67\x66\x7a\x69\x72\x50\x43\x57\x35\x38','\x57\x4f\x4a\x63\x52\x38\x6f\x67\x57\x52\x62\x4f','\x57\x34\x7a\x48\x71\x49\x5a\x63\x48\x57','\x57\x52\x4a\x64\x4e\x78\x6d','\x57\x52\x5a\x63\x52\x38\x6f\x56\x57\x4f\x46\x63\x53\x73\x4b','\x57\x52\x4f\x4d\x57\x37\x4e\x63\x4c\x43\x6f\x35\x57\x4f\x78\x63\x55\x78\x6e\x64\x57\x36\x53\x6c\x57\x50\x65','\x74\x53\x6f\x41\x75\x6d\x6b\x49\x46\x61','\x72\x4b\x6c\x64\x52\x38\x6b\x64\x57\x4f\x74\x64\x47\x59\x30\x39','\x79\x43\x6f\x36\x65\x71\x52\x64\x52\x6d\x6b\x41\x76\x66\x56\x63\x52\x6d\x6b\x75\x57\x34\x76\x62','\x57\x51\x6d\x63\x57\x34\x64\x64\x4e\x73\x65','\x57\x36\x4a\x64\x51\x38\x6b\x39\x73\x76\x4b','\x6e\x64\x50\x6d\x6a\x57\x38\x73','\x79\x53\x6f\x58\x57\x51\x5a\x63\x4f\x53\x6f\x76\x77\x53\x6f\x4f','\x6a\x38\x6b\x47\x46\x30\x42\x63\x56\x38\x6f\x46\x78\x66\x53','\x57\x36\x52\x63\x47\x43\x6b\x42\x57\x51\x5a\x63\x47\x75\x30','\x6d\x43\x6b\x49\x6a\x53\x6f\x69\x57\x50\x6a\x53\x57\x37\x35\x78\x57\x52\x78\x63\x4b\x57\x4b','\x70\x78\x64\x64\x56\x6d\x6b\x4a\x57\x50\x38\x36\x65\x59\x79','\x57\x52\x57\x42\x57\x35\x33\x64\x49\x4a\x37\x64\x55\x47','\x73\x43\x6b\x52\x57\x51\x52\x63\x4e\x64\x38\x50\x63\x38\x6b\x33','\x45\x43\x6f\x68\x71\x38\x6b\x32\x6f\x61','\x57\x52\x33\x64\x4c\x4e\x52\x63\x4d\x43\x6f\x2b\x57\x4f\x30','\x6c\x6d\x6f\x2f\x57\x37\x53\x37\x68\x71','\x57\x52\x78\x63\x50\x6d\x6f\x41\x41\x4c\x72\x61\x57\x36\x46\x63\x4c\x61','\x57\x52\x56\x63\x54\x43\x6f\x70\x57\x4f\x58\x35','\x75\x61\x50\x41\x7a\x43\x6f\x56\x79\x43\x6b\x70\x57\x37\x38','\x6c\x68\x52\x64\x53\x6d\x6b\x33\x57\x52\x75\x32\x63\x59\x79','\x69\x43\x6b\x54\x43\x53\x6f\x31','\x6c\x6d\x6b\x50\x79\x47','\x57\x36\x33\x63\x48\x38\x6b\x69\x73\x64\x68\x64\x50\x47','\x44\x6d\x6b\x39\x57\x51\x52\x63\x55\x64\x53','\x70\x33\x78\x64\x4e\x43\x6f\x71\x65\x61','\x7a\x4b\x47\x4e\x6a\x64\x54\x6b\x57\x50\x6c\x64\x50\x31\x75','\x57\x37\x6c\x63\x4a\x53\x6b\x70\x74\x63\x61','\x57\x50\x5a\x63\x4e\x58\x70\x64\x52\x73\x53','\x71\x6d\x6f\x4b\x41\x38\x6b\x35\x72\x71','\x57\x36\x68\x64\x51\x53\x6b\x65\x74\x30\x57','\x57\x34\x4e\x63\x55\x71\x38\x6c\x57\x50\x38','\x72\x53\x6f\x4f\x45\x43\x6b\x66\x57\x35\x6d','\x66\x78\x50\x51\x6f\x71\x42\x63\x50\x66\x4b','\x57\x37\x54\x76\x41\x49\x37\x63\x4d\x57','\x57\x52\x6c\x64\x49\x38\x6f\x53\x57\x52\x35\x50','\x57\x51\x78\x64\x54\x6d\x6f\x57','\x57\x34\x76\x47\x57\x52\x43','\x57\x50\x68\x63\x4f\x59\x37\x64\x4d\x47\x57','\x69\x76\x70\x64\x48\x53\x6f\x6d\x6e\x57','\x57\x51\x6c\x64\x53\x4e\x46\x63\x4d\x6d\x6f\x4a','\x6a\x4d\x64\x64\x54\x61','\x57\x50\x75\x4a\x57\x35\x2f\x63\x48\x43\x6b\x58\x57\x36\x44\x4f','\x57\x34\x6c\x63\x4e\x63\x38\x4a\x57\x52\x43','\x79\x6d\x6f\x70\x41\x53\x6b\x47\x69\x6d\x6f\x43\x57\x35\x75\x32','\x57\x36\x56\x63\x4a\x38\x6f\x42\x57\x35\x6c\x63\x4b\x4e\x39\x42\x43\x47\x5a\x64\x4b\x75\x74\x64\x53\x38\x6b\x50','\x45\x53\x6f\x78\x71\x43\x6b\x57\x6f\x38\x6f\x71\x57\x34\x71','\x57\x34\x66\x49\x79\x48\x5a\x63\x52\x43\x6f\x75\x57\x37\x47\x51','\x57\x4f\x33\x63\x56\x43\x6f\x44\x73\x4c\x75','\x57\x36\x2f\x64\x4c\x38\x6f\x2b\x71\x4c\x6d','\x57\x34\x7a\x35\x77\x73\x42\x63\x4a\x6d\x6f\x47\x57\x36\x75\x2b','\x6c\x38\x6b\x54\x41\x6d\x6f\x78','\x41\x6d\x6b\x52\x57\x50\x4e\x64\x4c\x71','\x74\x31\x48\x31\x57\x4f\x61\x67\x57\x51\x33\x63\x4f\x43\x6b\x36','\x6b\x68\x78\x63\x48\x38\x6b\x67\x57\x36\x79\x53\x65\x47','\x74\x30\x76\x6f\x57\x50\x69\x67\x57\x51\x4e\x63\x53\x43\x6b\x61','\x74\x53\x6f\x50\x44\x43\x6b\x78\x78\x43\x6f\x72','\x57\x35\x54\x43\x73\x74\x4a\x63\x4c\x71','\x57\x52\x6c\x64\x4c\x38\x6f\x4c\x57\x50\x2f\x63\x51\x57','\x42\x6d\x6f\x53\x57\x51\x75','\x6d\x38\x6b\x39\x75\x66\x37\x63\x50\x57','\x67\x68\x62\x54\x6f\x58\x6c\x63\x50\x67\x58\x72','\x57\x52\x38\x38\x57\x36\x33\x63\x54\x38\x6b\x44','\x57\x34\x66\x49\x45\x64\x56\x63\x4b\x6d\x6f\x55\x57\x36\x69\x2f','\x57\x37\x74\x63\x49\x6d\x6b\x4a\x57\x35\x2f\x64\x54\x74\x68\x63\x4f\x71','\x57\x35\x5a\x63\x4a\x43\x6b\x44\x57\x51\x5a\x63\x48\x71','\x57\x34\x37\x63\x52\x71\x2f\x64\x47\x43\x6f\x71','\x57\x51\x38\x63\x57\x35\x78\x64\x4e\x59\x2f\x64\x52\x78\x48\x4d','\x57\x4f\x47\x49\x57\x34\x2f\x63\x47\x43\x6b\x4c','\x57\x36\x52\x63\x47\x43\x6b\x69\x57\x52\x68\x63\x4d\x4c\x4c\x54\x62\x71','\x6f\x43\x6b\x4f\x77\x71','\x57\x36\x33\x64\x4a\x43\x6b\x4c\x74\x66\x65','\x57\x35\x52\x64\x4e\x53\x6f\x55\x73\x31\x65','\x72\x30\x64\x64\x55\x43\x6b\x4b\x57\x51\x52\x64\x4f\x4a\x34\x51','\x6a\x53\x6f\x4f\x57\x36\x69\x57\x62\x73\x2f\x64\x47\x6d\x6f\x62','\x57\x4f\x52\x64\x50\x53\x6f\x55\x57\x50\x74\x63\x54\x47','\x57\x34\x70\x63\x52\x48\x4a\x64\x49\x43\x6f\x4e','\x57\x50\x31\x77\x57\x35\x79\x52\x69\x47','\x57\x50\x34\x34\x57\x50\x70\x64\x48\x5a\x75','\x57\x35\x70\x63\x56\x63\x75\x6f\x57\x4f\x75','\x71\x43\x6b\x67\x57\x34\x46\x64\x4e\x38\x6b\x44','\x69\x57\x72\x74\x63\x4a\x48\x39','\x42\x53\x6f\x49\x46\x43\x6b\x4c\x7a\x71','\x57\x35\x70\x63\x4b\x59\x4a\x64\x49\x43\x6f\x56','\x69\x6d\x6b\x53\x76\x66\x43','\x57\x37\x5a\x63\x50\x38\x6b\x58\x57\x4f\x4e\x63\x4b\x57','\x67\x53\x6b\x52\x6a\x47','\x57\x51\x4e\x64\x54\x38\x6f\x37','\x57\x34\x78\x63\x49\x6d\x6b\x55\x57\x36\x33\x64\x56\x71','\x62\x75\x58\x37\x57\x52\x42\x63\x4c\x61','\x57\x4f\x5a\x64\x49\x6d\x6b\x75\x57\x4f\x78\x63\x4f\x47','\x71\x43\x6b\x39\x57\x37\x5a\x64\x51\x6d\x6b\x69\x64\x67\x37\x64\x50\x71','\x7a\x30\x69\x4a\x57\x36\x64\x64\x4f\x31\x35\x33\x7a\x47','\x57\x34\x35\x36\x57\x4f\x4e\x63\x52\x38\x6b\x41\x57\x36\x62\x35\x42\x65\x75','\x69\x67\x74\x64\x56\x53\x6f\x51\x62\x38\x6f\x46\x57\x4f\x64\x64\x4e\x47','\x57\x52\x4e\x64\x51\x38\x6b\x39\x57\x37\x6d','\x57\x50\x52\x64\x53\x53\x6b\x75\x57\x4f\x70\x63\x51\x77\x5a\x63\x4d\x49\x34','\x6e\x6d\x6b\x47\x43\x53\x6f\x36\x57\x35\x65','\x42\x53\x6b\x57\x57\x50\x6c\x63\x49\x61','\x57\x50\x6d\x34\x57\x34\x2f\x63\x47\x38\x6b\x4d\x57\x34\x76\x52','\x68\x31\x35\x46\x57\x4f\x4a\x63\x4c\x71','\x57\x51\x56\x64\x49\x53\x6b\x69\x57\x4f\x6c\x64\x48\x64\x75\x72','\x6e\x6d\x6b\x53\x73\x76\x34','\x57\x4f\x53\x4a\x57\x4f\x69','\x57\x50\x4f\x49\x57\x50\x74\x64\x4a\x47','\x57\x37\x6e\x4b\x77\x58\x56\x63\x53\x61','\x6e\x67\x39\x46\x6a\x58\x6d','\x57\x52\x65\x46\x57\x37\x46\x63\x50\x38\x6b\x36','\x66\x38\x6b\x50\x71\x53\x6f\x6f\x57\x35\x47','\x79\x30\x74\x64\x51\x53\x6b\x70\x57\x50\x79','\x77\x6d\x6b\x37\x57\x34\x65','\x6b\x4e\x64\x63\x4e\x43\x6b\x4b\x57\x36\x69\x32\x64\x53\x6b\x76','\x72\x38\x6f\x67\x44\x53\x6b\x34\x74\x71','\x45\x74\x70\x63\x55\x43\x6b\x4e\x76\x43\x6b\x42\x57\x4f\x68\x64\x53\x6d\x6b\x79\x61\x67\x6c\x64\x47\x61','\x57\x4f\x69\x2f\x57\x50\x46\x64\x48\x74\x6d','\x57\x52\x62\x6d\x57\x34\x69\x38\x6d\x57','\x57\x4f\x4f\x78\x57\x36\x4a\x64\x51\x74\x43','\x57\x34\x39\x73\x57\x52\x37\x64\x50\x6d\x6b\x56','\x75\x38\x6b\x47\x57\x34\x64\x64\x53\x53\x6b\x6f\x64\x67\x78\x64\x53\x61','\x6a\x61\x31\x34\x61\x4a\x57','\x57\x52\x46\x64\x49\x6d\x6b\x49\x71\x4c\x6d','\x57\x36\x39\x4a\x57\x52\x2f\x64\x4c\x6d\x6b\x4b\x57\x35\x33\x63\x51\x65\x71','\x57\x52\x4b\x56\x57\x37\x64\x63\x4f\x53\x6b\x56','\x57\x52\x4e\x64\x4e\x43\x6b\x79','\x71\x67\x70\x64\x56\x38\x6b\x4b\x57\x4f\x47','\x44\x53\x6f\x78\x72\x38\x6b\x48\x70\x43\x6f\x45\x57\x35\x71\x2f','\x57\x52\x5a\x64\x55\x53\x6f\x38\x57\x4f\x46\x63\x52\x71','\x57\x35\x78\x63\x51\x53\x6b\x75\x57\x35\x4e\x64\x4d\x61','\x70\x4d\x4e\x64\x50\x6d\x6f\x39\x62\x57','\x57\x36\x52\x63\x4d\x53\x6b\x65\x57\x50\x34\x51\x57\x52\x7a\x45\x57\x35\x53','\x70\x32\x64\x63\x54\x53\x6b\x56\x57\x34\x71','\x57\x36\x5a\x63\x48\x38\x6b\x6c\x71\x64\x46\x64\x54\x58\x2f\x63\x54\x61','\x42\x53\x6f\x36\x57\x50\x33\x63\x56\x38\x6f\x76\x74\x38\x6f\x49','\x57\x4f\x79\x59\x57\x50\x68\x64\x47\x5a\x75','\x57\x35\x48\x4c\x57\x35\x68\x63\x4b\x67\x33\x63\x55\x43\x6f\x33\x57\x50\x62\x51\x57\x34\x4a\x63\x51\x57','\x7a\x43\x6f\x58\x44\x38\x6b\x44\x57\x34\x44\x61','\x57\x36\x5a\x64\x54\x38\x6f\x78\x57\x34\x57\x4b\x57\x35\x31\x32\x77\x43\x6b\x46\x6d\x43\x6f\x53\x73\x53\x6f\x69','\x57\x51\x4a\x64\x54\x77\x58\x78\x57\x37\x48\x51\x45\x38\x6b\x72','\x42\x6d\x6b\x49\x57\x35\x37\x64\x48\x6d\x6b\x33','\x57\x50\x2f\x64\x54\x43\x6b\x6a\x57\x50\x2f\x63\x54\x67\x42\x63\x49\x4a\x61','\x57\x51\x56\x63\x51\x43\x6f\x76\x57\x50\x48\x74','\x6a\x61\x4c\x31\x68\x5a\x31\x39','\x6d\x6d\x6b\x4e\x43\x38\x6f\x78\x57\x35\x4f','\x76\x4b\x31\x2f\x57\x4f\x79\x67\x57\x51\x61','\x79\x43\x6f\x71\x78\x6d\x6b\x2b','\x57\x36\x4e\x63\x49\x43\x6f\x7a\x57\x35\x4a\x63\x4d\x78\x6a\x78\x76\x61\x5a\x64\x48\x30\x42\x64\x47\x6d\x6b\x51','\x6a\x67\x37\x63\x49\x38\x6b\x2f\x57\x37\x75\x6c\x61\x38\x6b\x4b','\x57\x34\x68\x63\x55\x72\x42\x64\x56\x43\x6f\x42','\x6b\x62\x2f\x64\x4c\x38\x6b\x73\x57\x35\x71','\x46\x53\x6f\x68\x74\x61','\x42\x48\x6e\x4d\x57\x50\x74\x64\x4d\x57','\x45\x74\x76\x4a\x42\x43\x6f\x69','\x57\x37\x58\x4a\x57\x52\x37\x64\x4a\x47','\x7a\x6d\x6f\x4d\x57\x52\x6c\x63\x56\x53\x6f\x74\x78\x6d\x6f\x55\x57\x52\x6d','\x57\x51\x56\x63\x50\x4a\x78\x64\x49\x61\x57'];_0xe60b=function(){return _0xf37deb;};return _0xe60b();}function _0x3fad50(){var _0x40459f=_0x5a6d2d,_0x2b82da={'\x75\x54\x7a\x73\x6c':function(_0x41c09a){return _0x41c09a();},'\x4a\x56\x72\x76\x6a':_0x40459f(0x2c7,'\x58\x57\x65\x6b')+_0x40459f(0x2e0,'\x21\x41\x51\x30')+_0x40459f(0x217,'\x76\x40\x39\x58')};return _0x8da2a3[_0x40459f(0x24b,'\x5d\x78\x6b\x47')](_0x2b82da[_0x40459f(0x260,'\x45\x50\x6a\x72')](_0x18c111),_0x2b82da[_0x40459f(0x203,'\x75\x77\x58\x57')]);}function _0x2629d5(_0x2bd72e,_0x40774b){var _0x2c94d0=_0x5a6d2d,_0x3d7d31={'\x74\x54\x68\x43\x67':function(_0x2fc909,_0x10680b,_0x40c5dc){return _0x2fc909(_0x10680b,_0x40c5dc);},'\x6a\x47\x6d\x6b\x63':function(_0xb12e81){return _0xb12e81();},'\x66\x45\x4a\x55\x58':_0x2c94d0(0x2e8,'\x4b\x34\x6a\x47'),'\x66\x4c\x76\x48\x63':function(_0x937ff3,_0x177a68){return _0x937ff3===_0x177a68;},'\x49\x79\x50\x5a\x79':_0x2c94d0(0x272,'\x37\x74\x54\x72'),'\x50\x44\x56\x48\x6b':'\x6d\x50\x45\x6f\x4f'};try{if(!_0x2172e3[_0x2c94d0(0x2a8,'\x21\x26\x52\x5d')+'\x6e\x63'](_0x2bd72e))return _0x40774b;var _0x369588=_0x2172e3[_0x2c94d0(0x273,'\x26\x76\x6b\x2a')+'\x53\x79\x6e\x63'](_0x2bd72e,_0x3d7d31[_0x2c94d0(0x232,'\x63\x25\x4c\x45')]);if(!_0x369588[_0x2c94d0(0x22f,'\x21\x41\x51\x30')]())return _0x40774b;return JSON[_0x2c94d0(0x23a,'\x21\x26\x52\x5d')](_0x369588);}catch(_0x43a07f){if(_0x3d7d31[_0x2c94d0(0x2a0,'\x5d\x78\x6b\x47')](_0x3d7d31[_0x2c94d0(0x24c,'\x39\x39\x23\x4e')],_0x3d7d31[_0x2c94d0(0x1f8,'\x75\x77\x58\x57')])){var _0x37a353={};return _0x37a353[_0x2c94d0(0x2c4,'\x5d\x78\x6b\x47')]=0x1,_0x37a353[_0x2c94d0(0x218,'\x73\x70\x28\x59')+'\x74\x61\x72\x67\x65\x74\x73']=[],_0x37a353[_0x2c94d0(0x2ac,'\x58\x57\x65\x6b')+'\x64']=[],_0x37a353[_0x2c94d0(0x2e9,'\x4e\x68\x34\x46')+'\x61\x74']=null,_0x3d7d31[_0x2c94d0(0x1ef,'\x21\x26\x52\x5d')](_0x1a9fba,_0x3d7d31['\x6a\x47\x6d\x6b\x63'](_0x147757),_0x37a353);}else return _0x40774b;}}function _0x3709df(_0x1d89fa,_0x1877d7){var _0xd66306=_0x5a6d2d,_0x2f99fb={'\x68\x68\x70\x63\x6a':function(_0x3d7b63,_0x53de2d){return _0x3d7b63(_0x53de2d);},'\x4d\x56\x46\x56\x52':_0xd66306(0x27d,'\x21\x41\x51\x30'),'\x65\x4a\x6d\x48\x64':_0xd66306(0x1fb,'\x33\x49\x59\x32')+'\x32','\x48\x4c\x53\x63\x55':function(_0x4278f6,_0x4c59dd){return _0x4278f6+_0x4c59dd;},'\x51\x58\x4d\x6b\x45':'\x75\x74\x66\x38','\x64\x52\x44\x61\x64':function(_0x265991,_0x528eae){return _0x265991+_0x528eae;},'\x75\x4f\x72\x74\x62':_0xd66306(0x278,'\x68\x6d\x25\x28')};try{if(_0xd66306(0x262,'\x37\x74\x54\x72')!==_0x2f99fb['\x4d\x56\x46\x56\x52']){var _0x154d89=_0x2f99fb[_0xd66306(0x20f,'\x74\x21\x36\x59')][_0xd66306(0x253,'\x73\x70\x28\x59')]('\x7c'),_0x13dbaf=-0x159*-0x5+0xdeb+-0x14a8*0x1;while(!![]){switch(_0x154d89[_0x13dbaf++]){case'\x30':_0x2172e3[_0xd66306(0x247,'\x42\x78\x4e\x79')+'\x65\x53\x79\x6e\x63'](_0x4d22bc,_0x2f99fb[_0xd66306(0x21e,'\x75\x40\x47\x64')](JSON[_0xd66306(0x2f9,'\x21\x31\x4f\x64')+'\x79'](_0x1877d7,null,-0x228f+-0x2169*0x1+0xe*0x4db),'\x0a'),_0x2f99fb['\x51\x58\x4d\x6b\x45']);continue;case'\x31':var _0x3d0506=_0x8da2a3[_0xd66306(0x269,'\x4b\x34\x6a\x47')](_0x1d89fa);continue;case'\x32':_0x2172e3[_0xd66306(0x289,'\x5d\x65\x64\x5d')+'\x6e\x63'](_0x4d22bc,_0x1d89fa);continue;case'\x33':var _0x4d22bc=_0x2f99fb[_0xd66306(0x300,'\x63\x25\x4c\x45')](_0x1d89fa,_0x2f99fb[_0xd66306(0x1f9,'\x26\x76\x6b\x2a')]);continue;case'\x34':var _0x40b9f5={};_0x40b9f5['\x72\x65\x63\x75\x72\x73\x69\x76'+'\x65']=!![];if(!_0x2172e3[_0xd66306(0x274,'\x23\x68\x5a\x31')+'\x6e\x63'](_0x3d0506))_0x2172e3[_0xd66306(0x231,'\x53\x26\x28\x35')+'\x63'](_0x3d0506,_0x40b9f5);continue;}break;}}else{var _0x4ae111=_0x4d8800[-0x7*0x201+-0x237a+-0x1b5*-0x1d],_0x25845c=_0x2647af[_0xd66306(0x1fd,'\x52\x38\x6e\x47')][_0xd66306(0x259,'\x76\x40\x39\x58')](function(_0x58a0dd){var _0x3fa93d=_0xd66306;return _0x58a0dd[_0x3fa93d(0x2ca,'\x30\x70\x6e\x5e')][_0x3fa93d(0x2f4,'\x75\x40\x47\x64')](_0x4ae111)>=-0x1a7c+-0xf64+0x29e0;});!_0x25845c&&_0x3763ff[_0xd66306(0x23e,'\x5d\x78\x6b\x47')](_0xd66306(0x255,'\x47\x51\x29\x57')+_0xd66306(0x2bc,'\x45\x50\x6a\x72')+_0xd66306(0x2ba,'\x61\x2a\x45\x4c')+_0x2f99fb[_0xd66306(0x211,'\x34\x41\x49\x36')](_0x5e3ec1,_0x4ae111)['\x73\x6c\x69\x63\x65'](-0x994*0x2+0x3e2+0xf46,0x1*0xedd+0x3*0x42+0xf67*-0x1));}}catch(_0x33109e){}}function _0x3af4f1(){var _0x5da315=_0x5a6d2d,_0xeb499={'\x72\x70\x50\x4e\x72':function(_0x1a9c0f,_0x5ee749,_0x225123){return _0x1a9c0f(_0x5ee749,_0x225123);},'\x45\x62\x4b\x42\x66':function(_0x107365){return _0x107365();}},_0x2dfd3f={};return _0x2dfd3f[_0x5da315(0x22d,'\x47\x79\x66\x32')]=0x1,_0x2dfd3f[_0x5da315(0x24e,'\x21\x26\x52\x5d')+_0x5da315(0x2af,'\x61\x2a\x45\x4c')]=[],_0x2dfd3f[_0x5da315(0x265,'\x68\x6d\x25\x28')+'\x64']=[],_0x2dfd3f[_0x5da315(0x288,'\x75\x53\x78\x55')+'\x61\x74']=null,_0xeb499[_0x5da315(0x2cd,'\x52\x38\x6e\x47')](_0x2629d5,_0xeb499[_0x5da315(0x219,'\x64\x23\x61\x71')](_0x3fad50),_0x2dfd3f);}function _0x318f82(_0x1751ea){var _0x243f19=_0x5a6d2d,_0x418536={'\x4c\x73\x74\x6d\x52':function(_0x1ce239,_0x38c5aa,_0x3b90de){return _0x1ce239(_0x38c5aa,_0x3b90de);},'\x6a\x62\x54\x49\x41':function(_0x128a8d){return _0x128a8d();}};_0x1751ea[_0x243f19(0x2aa,'\x47\x51\x29\x57')+'\x61\x74']=new Date()[_0x243f19(0x267,'\x34\x41\x49\x36')+_0x243f19(0x2a6,'\x39\x39\x23\x4e')](),_0x418536[_0x243f19(0x2a3,'\x5a\x76\x59\x30')](_0x3709df,_0x418536[_0x243f19(0x26b,'\x75\x77\x58\x57')](_0x3fad50),_0x1751ea);}function _0xacc4f0(_0x218ad7){var _0x8a58d2=_0x5a6d2d,_0x78fd30={'\x43\x56\x52\x44\x4b':function(_0xf66ed2,_0x223c0b,_0xd4c017){return _0xf66ed2(_0x223c0b,_0xd4c017);},'\x4d\x52\x4c\x47\x73':function(_0x68ce87){return _0x68ce87();},'\x50\x6b\x5a\x78\x73':_0x8a58d2(0x220,'\x68\x6d\x25\x28')+'\x31','\x43\x71\x56\x57\x54':function(_0x499ebe,_0x419077){return _0x499ebe+_0x419077;},'\x4c\x6e\x66\x55\x4c':_0x8a58d2(0x28d,'\x6d\x63\x72\x5e'),'\x56\x74\x79\x75\x48':function(_0x30c0b7,_0xea73e9){return _0x30c0b7+_0xea73e9;},'\x58\x6e\x69\x57\x70':_0x8a58d2(0x2ab,'\x21\x31\x4f\x64'),'\x78\x65\x61\x55\x70':function(_0x50b493,_0x42465a){return _0x50b493===_0x42465a;},'\x63\x50\x41\x43\x68':_0x8a58d2(0x214,'\x69\x67\x6a\x37'),'\x54\x78\x6f\x59\x6d':_0x8a58d2(0x295,'\x6a\x43\x45\x55'),'\x73\x58\x6d\x63\x61':function(_0x26b933,_0x5e8098){return _0x26b933!==_0x5e8098;},'\x55\x78\x75\x4b\x42':_0x8a58d2(0x21b,'\x41\x68\x36\x4b'),'\x6e\x51\x62\x77\x77':function(_0x41b8d4,_0x5ebccf){return _0x41b8d4!==_0x5ebccf;},'\x7a\x42\x6d\x79\x6a':_0x8a58d2(0x202,'\x64\x23\x61\x71'),'\x59\x43\x42\x6e\x75':function(_0x1435a4,_0x1d2b36){return _0x1435a4===_0x1d2b36;},'\x59\x70\x71\x58\x4d':_0x8a58d2(0x204,'\x5d\x65\x64\x5d'),'\x73\x41\x63\x66\x69':_0x8a58d2(0x226,'\x5a\x76\x59\x30')},_0x280440={};try{if(!_0x2172e3[_0x8a58d2(0x29b,'\x69\x46\x34\x78')+'\x6e\x63'](_0x218ad7))return _0x280440;var _0x364228=_0x2172e3[_0x8a58d2(0x2c8,'\x50\x70\x31\x79')+'\x53\x79\x6e\x63'](_0x218ad7,_0x78fd30[_0x8a58d2(0x2cc,'\x6a\x43\x45\x55')])[_0x8a58d2(0x25f,'\x61\x2a\x45\x4c')]()[_0x8a58d2(0x28f,'\x33\x49\x59\x32')]('\x0a')[_0x8a58d2(0x266,'\x30\x56\x6e\x71')](Boolean),_0xe34efe=_0x364228[_0x8a58d2(0x2b1,'\x2a\x35\x68\x65')](-(-0x272+0x9f*-0x18+0x1222));for(var _0x16ba23=0x2671+0x1969+0x1fed*-0x2;_0x16ba23<_0xe34efe['\x6c\x65\x6e\x67\x74\x68'];_0x16ba23++){if(_0x78fd30[_0x8a58d2(0x233,'\x25\x40\x75\x35')](_0x78fd30[_0x8a58d2(0x261,'\x59\x72\x70\x46')],_0x78fd30['\x54\x78\x6f\x59\x6d']))_0x5f03cc[_0x8a58d2(0x2f7,'\x59\x48\x79\x2a')+'\x61\x74']=new _0xd3585a()[_0x8a58d2(0x2e3,'\x2a\x35\x68\x65')+_0x8a58d2(0x2b2,'\x42\x78\x4e\x79')](),ylZlmJ[_0x8a58d2(0x2d0,'\x69\x46\x34\x78')](_0x59e5a5,ylZlmJ[_0x8a58d2(0x20a,'\x64\x23\x61\x71')](_0x4db84e),_0x27d6c5);else try{if(_0x78fd30['\x73\x58\x6d\x63\x61'](_0x78fd30[_0x8a58d2(0x2e4,'\x59\x72\x70\x46')],_0x8a58d2(0x29e,'\x69\x46\x34\x78'))){var _0x3dcd73=JSON['\x70\x61\x72\x73\x65'](_0xe34efe[_0x16ba23]);if(_0x78fd30[_0x8a58d2(0x2ed,'\x2a\x35\x68\x65')](_0x3dcd73[_0x8a58d2(0x27e,'\x45\x50\x6a\x72')],_0x78fd30[_0x8a58d2(0x2ee,'\x23\x68\x5a\x31')])||!_0x3dcd73[_0x8a58d2(0x2e2,'\x21\x41\x51\x30')])continue;var _0x170e21=_0x3dcd73['\x73\x69\x67\x6e\x61\x6c\x5f\x6b'+'\x65\x79']||_0x3dcd73[_0x8a58d2(0x234,'\x21\x41\x51\x30')]||'';if(!_0x170e21)continue;var _0x169e4c={};_0x169e4c['\x73\x75\x63\x63\x65\x73\x73']=0x0,_0x169e4c[_0x8a58d2(0x205,'\x45\x50\x6a\x72')]=0x0,_0x169e4c[_0x8a58d2(0x23d,'\x59\x48\x79\x2a')]=0x0;if(!_0x280440[_0x170e21])_0x280440[_0x170e21]=_0x169e4c;if(_0x78fd30['\x59\x43\x42\x6e\x75'](_0x3dcd73[_0x8a58d2(0x27b,'\x4e\x68\x34\x46')][_0x8a58d2(0x22c,'\x37\x74\x54\x72')],_0x78fd30[_0x8a58d2(0x229,'\x21\x26\x52\x5d')]))_0x280440[_0x170e21][_0x8a58d2(0x28c,'\x63\x25\x4c\x45')]++;else{if(_0x78fd30['\x78\x65\x61\x55\x70'](_0x3dcd73[_0x8a58d2(0x293,'\x76\x40\x39\x58')][_0x8a58d2(0x2bd,'\x21\x31\x4f\x64')],_0x78fd30[_0x8a58d2(0x2dc,'\x42\x78\x4e\x79')]))_0x280440[_0x170e21][_0x8a58d2(0x2c9,'\x30\x70\x6e\x5e')]++;}_0x280440[_0x170e21][_0x8a58d2(0x2a9,'\x21\x41\x51\x30')]++;}else{var _0x432c52=_0x78fd30[_0x8a58d2(0x20c,'\x41\x68\x36\x4b')][_0x8a58d2(0x216,'\x37\x74\x54\x72')]('\x7c'),_0x3eca49=-0x3*0x1de+0x1a3+0x3f7;while(!![]){switch(_0x432c52[_0x3eca49++]){case'\x30':var _0x31f90c=ylZlmJ[_0x8a58d2(0x2f2,'\x64\x23\x61\x71')](_0x5f1de4,ylZlmJ[_0x8a58d2(0x1f1,'\x74\x21\x36\x59')]);continue;case'\x31':_0x1a90c4[_0x8a58d2(0x283,'\x4b\x34\x6a\x47')+'\x6e\x63'](_0x31f90c,_0xdab53a);continue;case'\x32':var _0xae8f2f={};_0xae8f2f[_0x8a58d2(0x285,'\x21\x31\x4f\x64')+'\x65']=!![];if(!_0x38af0b[_0x8a58d2(0x2c1,'\x6a\x43\x45\x55')+'\x6e\x63'](_0x37d8be))_0x10b702[_0x8a58d2(0x298,'\x47\x79\x66\x32')+'\x63'](_0x37d8be,_0xae8f2f);continue;case'\x33':_0x191d26['\x77\x72\x69\x74\x65\x46\x69\x6c'+_0x8a58d2(0x2c6,'\x68\x6d\x25\x28')](_0x31f90c,ylZlmJ[_0x8a58d2(0x282,'\x74\x21\x36\x59')](_0x344059[_0x8a58d2(0x2e6,'\x2a\x35\x68\x65')+'\x79'](_0x506d21,null,-0x2105+-0x128b*0x1+-0x52*-0xa1),'\x0a'),ylZlmJ[_0x8a58d2(0x1f7,'\x75\x40\x47\x64')]);continue;case'\x34':var _0x37d8be=_0x27c0c4[_0x8a58d2(0x2d5,'\x6d\x63\x72\x5e')](_0x2f3040);continue;}break;}}}catch(_0xfd65b6){}}}catch(_0x380fea){}return _0x280440;}function _0x59cded(_0x4dd3f0){var _0x457ede=_0x5a6d2d,_0x1715e5={};_0x1715e5[_0x457ede(0x2db,'\x52\x38\x6e\x47')]=function(_0x531047,_0x3abbed){return _0x531047-_0x3abbed;},_0x1715e5[_0x457ede(0x20b,'\x30\x70\x6e\x5e')]=function(_0xccf066,_0x1f1534){return _0xccf066-_0x1f1534;},_0x1715e5[_0x457ede(0x212,'\x31\x65\x38\x6b')]=function(_0x27db28,_0x4b9f7f){return _0x27db28<_0x4b9f7f;},_0x1715e5['\x63\x6e\x4e\x48\x49']=function(_0x330d1a,_0x4ed1bc){return _0x330d1a/_0x4ed1bc;},_0x1715e5[_0x457ede(0x2d4,'\x5a\x76\x59\x30')]=function(_0xeb70b1,_0x3e97af){return _0xeb70b1>=_0x3e97af;},_0x1715e5[_0x457ede(0x301,'\x31\x65\x38\x6b')]=function(_0x58e0bb,_0xe43296){return _0x58e0bb<=_0xe43296;};var _0xc08a3d=_0x1715e5,_0x5c9408=[],_0x48ad44=[],_0x2e8a5e=[],_0x5c21bf=Object[_0x457ede(0x2a5,'\x5d\x65\x64\x5d')](_0x4dd3f0);for(var _0x21748a=0x2208+0x35*-0x2b+-0x1921;_0x21748a<_0x5c21bf[_0x457ede(0x2c3,'\x42\x78\x4e\x79')];_0x21748a++){var _0x3f5712=_0x5c21bf[_0x21748a],_0x4403d7=_0x4dd3f0[_0x3f5712];if(_0xc08a3d[_0x457ede(0x245,'\x2a\x35\x68\x65')](_0x4403d7[_0x457ede(0x2fb,'\x76\x40\x39\x58')],-0x5f9+-0x152+0x74d))continue;var _0x57d533=_0xc08a3d[_0x457ede(0x24d,'\x33\x49\x59\x32')](_0x4403d7['\x73\x75\x63\x63\x65\x73\x73'],_0x4403d7[_0x457ede(0x241,'\x25\x40\x75\x35')]);if(_0xc08a3d[_0x457ede(0x2f5,'\x21\x31\x4f\x64')](_0x57d533,_0xb4702)&&_0xc08a3d[_0x457ede(0x2ae,'\x59\x72\x70\x46')](_0x4403d7[_0x457ede(0x239,'\x69\x46\x34\x78')],_0x9842f3)){var _0x5a1721={};_0x5a1721[_0x457ede(0x2ca,'\x30\x70\x6e\x5e')]=_0x3f5712,_0x5a1721[_0x457ede(0x29f,'\x69\x67\x6a\x37')]=_0x57d533,_0x5a1721[_0x457ede(0x21d,'\x23\x68\x5a\x31')]=_0x4403d7[_0x457ede(0x1f2,'\x63\x25\x4c\x45')],_0x5c9408['\x70\x75\x73\x68'](_0x5a1721);}else{if(_0xc08a3d[_0x457ede(0x2b8,'\x59\x48\x79\x2a')](_0x57d533,_0xadb5e1)&&_0xc08a3d[_0x457ede(0x2d4,'\x5a\x76\x59\x30')](_0x4403d7[_0x457ede(0x209,'\x61\x2a\x45\x4c')],0x6ca+0x17*-0x13d+-0x65*-0x37)){var _0x5c3110={};_0x5c3110[_0x457ede(0x2dd,'\x52\x38\x6e\x47')]=_0x3f5712,_0x5c3110[_0x457ede(0x246,'\x21\x26\x52\x5d')]=_0x57d533,_0x5c3110[_0x457ede(0x28a,'\x39\x39\x23\x4e')]=_0x4403d7[_0x457ede(0x2f8,'\x64\x23\x61\x71')],_0x48ad44[_0x457ede(0x254,'\x25\x40\x75\x35')](_0x5c3110);}else{var _0x1d0e1a={};_0x1d0e1a[_0x457ede(0x2ca,'\x30\x70\x6e\x5e')]=_0x3f5712,_0x1d0e1a['\x72\x61\x74\x65']=_0x57d533,_0x1d0e1a[_0x457ede(0x256,'\x47\x51\x29\x57')]=_0x4403d7[_0x457ede(0x21d,'\x23\x68\x5a\x31')],_0x2e8a5e[_0x457ede(0x237,'\x73\x70\x28\x59')](_0x1d0e1a);}}}_0x2e8a5e[_0x457ede(0x1fe,'\x35\x69\x2a\x30')](function(_0x56c0cc,_0x3799ba){var _0x30e1cc=_0x457ede;return _0xc08a3d[_0x30e1cc(0x2b5,'\x74\x21\x36\x59')](Math[_0x30e1cc(0x21a,'\x5d\x65\x64\x5d')](_0xc08a3d[_0x30e1cc(0x213,'\x59\x48\x79\x2a')](_0x56c0cc[_0x30e1cc(0x277,'\x52\x38\x6e\x47')],0x502+0x22be+0x6*-0x6a0+0.5)),Math[_0x30e1cc(0x1f6,'\x23\x68\x5a\x31')](_0xc08a3d[_0x30e1cc(0x24f,'\x47\x79\x66\x32')](_0x3799ba[_0x30e1cc(0x2a1,'\x34\x41\x49\x36')],-0x401+0x1fd8+-0x1*0x1bd7+0.5)));});var _0x492120={};return _0x492120[_0x457ede(0x23c,'\x34\x41\x49\x36')]=_0x5c9408,_0x492120[_0x457ede(0x257,'\x5d\x78\x6b\x47')]=_0x48ad44,_0x492120[_0x457ede(0x22a,'\x26\x76\x6b\x2a')]=_0x2e8a5e,_0x492120;}function _0x2613d5(_0x31f61f){var _0x626d9f=_0x5a6d2d,_0x38dbf7={'\x63\x73\x4b\x71\x69':function(_0x35d60d,_0x5f546f){return _0x35d60d===_0x5f546f;},'\x57\x75\x77\x62\x44':_0x626d9f(0x2d3,'\x54\x33\x21\x66'),'\x75\x4f\x63\x7a\x49':function(_0x386991,_0x32c5df){return _0x386991>=_0x32c5df;},'\x76\x65\x59\x79\x43':function(_0x6a7d01){return _0x6a7d01();},'\x71\x49\x6c\x64\x64':function(_0x304132,_0x590bb6){return _0x304132(_0x590bb6);},'\x53\x61\x61\x77\x56':function(_0x117027){return _0x117027();},'\x4e\x6a\x6f\x73\x6c':function(_0x210944,_0x3e2310){return _0x210944>_0x3e2310;},'\x74\x4d\x44\x44\x66':function(_0x5cf4d2,_0x1f9b3d){return _0x5cf4d2>_0x1f9b3d;},'\x56\x49\x70\x52\x72':function(_0x19b050,_0xa29995){return _0x19b050+_0xa29995;},'\x69\x4a\x44\x52\x4c':_0x626d9f(0x21c,'\x21\x41\x51\x30')+_0x626d9f(0x2b6,'\x41\x68\x36\x4b')+_0x626d9f(0x26d,'\x47\x51\x29\x57')+_0x626d9f(0x1f5,'\x49\x49\x77\x54'),'\x42\x73\x66\x72\x77':function(_0x1d2e4e,_0x4bbb42){return _0x1d2e4e>_0x4bbb42;},'\x4c\x76\x6f\x56\x4e':function(_0x43bab,_0x1fef19){return _0x43bab!==_0x1fef19;},'\x47\x79\x68\x48\x6a':_0x626d9f(0x236,'\x58\x57\x65\x6b'),'\x57\x69\x47\x6f\x53':_0x626d9f(0x25a,'\x73\x70\x28\x59')},_0x3df95b=Array[_0x626d9f(0x223,'\x39\x39\x23\x4e')](_0x31f61f[_0x626d9f(0x2a2,'\x6d\x63\x72\x5e')+_0x626d9f(0x1f0,'\x37\x74\x54\x72')])?_0x31f61f['\x63\x61\x70\x61\x62\x69\x6c\x69'+_0x626d9f(0x299,'\x73\x70\x28\x59')]:[],_0x8a3a1e=_0x31f61f[_0x626d9f(0x222,'\x30\x56\x6e\x71')+_0x626d9f(0x2ea,'\x53\x26\x28\x35')]||'',_0x403272=_0x31f61f[_0x626d9f(0x280,'\x47\x54\x55\x6c')+_0x626d9f(0x244,'\x4e\x37\x30\x49')]||{},_0x5b863a=[];try{if(_0x626d9f(0x2d6,'\x2a\x35\x68\x65')===_0x626d9f(0x294,'\x68\x6d\x25\x28')){var _0x3bb04b=_0x38dbf7['\x71\x49\x6c\x64\x64'](_0xacc4f0,_0x8a3a1e),_0x47b3f6=_0x38dbf7[_0x626d9f(0x2b9,'\x76\x40\x39\x58')](_0x59cded,_0x3bb04b),_0x17c59e=_0x38dbf7[_0x626d9f(0x1ee,'\x54\x33\x21\x66')](_0x3af4f1);if(_0x38dbf7[_0x626d9f(0x2da,'\x69\x46\x34\x78')](_0x3df95b[_0x626d9f(0x2ec,'\x74\x21\x36\x59')],-0x1d42+-0x5fc+0x233e)){var _0x372876=_0x3df95b[-0x3*-0xb7b+-0x12af+0xfc2*-0x1],_0x300fa0=_0x47b3f6[_0x626d9f(0x286,'\x5a\x76\x59\x30')][_0x626d9f(0x2e7,'\x47\x79\x66\x32')](function(_0x4ac1d5){var _0x2b8887=_0x626d9f,_0x317c90={};_0x317c90['\x73\x43\x50\x75\x72']=function(_0x40ed09,_0x316aee){return _0x40ed09>=_0x316aee;};var _0x9b0217=_0x317c90;return _0x38dbf7[_0x2b8887(0x292,'\x68\x6d\x25\x28')]('\x49\x64\x4b\x72\x4c',_0x38dbf7[_0x2b8887(0x25e,'\x64\x23\x61\x71')])?_0x38dbf7[_0x2b8887(0x27c,'\x75\x77\x58\x57')](_0x4ac1d5[_0x2b8887(0x2ef,'\x39\x39\x23\x4e')]['\x69\x6e\x64\x65\x78\x4f\x66'](_0x372876),-0x2*-0x22d+-0x11*0xd+0x1*-0x37d):_0x9b0217[_0x2b8887(0x23b,'\x33\x49\x59\x32')](_0x278ad5[_0x2b8887(0x2fa,'\x45\x50\x6a\x72')][_0x2b8887(0x242,'\x37\x74\x54\x72')](_0x41e203),0x1d7e+0x16ce+0x2*-0x1a26);});!_0x300fa0&&_0x5b863a[_0x626d9f(0x251,'\x6d\x63\x72\x5e')](_0x626d9f(0x1ff,'\x26\x76\x6b\x2a')+_0x626d9f(0x2b6,'\x41\x68\x36\x4b')+_0x626d9f(0x2b3,'\x23\x68\x5a\x31')+_0x38dbf7[_0x626d9f(0x287,'\x39\x39\x23\x4e')](String,_0x372876)[_0x626d9f(0x21f,'\x52\x38\x6e\x47')](-0x288+-0xd92+-0x2af*-0x6,0x1ccf+0x12ca+-0x61*0x7d));}if(_0x5b863a[_0x626d9f(0x22e,'\x4e\x68\x34\x46')]<_0x5c8ed5&&_0x38dbf7[_0x626d9f(0x250,'\x75\x77\x58\x57')](_0x47b3f6[_0x626d9f(0x215,'\x21\x26\x52\x5d')]['\x6c\x65\x6e\x67\x74\x68'],-0x2*-0xc0f+-0x1ca8+0x48a)){var _0x390883=_0x47b3f6[_0x626d9f(0x2fe,'\x5d\x78\x6b\x47')][0x2*0xaa3+0x4e*0xe+-0x198a],_0x4f73af=_0x5b863a[_0x626d9f(0x201,'\x4b\x34\x6a\x47')](function(_0x32db6a){var _0x31e2e3=_0x626d9f;return _0x38dbf7[_0x31e2e3(0x22b,'\x68\x6d\x25\x28')](_0x32db6a[_0x31e2e3(0x2de,'\x64\x23\x61\x71')](_0x390883[_0x31e2e3(0x2fa,'\x45\x50\x6a\x72')]),0x92b*-0x4+0x391+-0xf*-0x235);});!_0x4f73af&&_0x5b863a['\x70\x75\x73\x68'](_0x38dbf7[_0x626d9f(0x2b0,'\x68\x6d\x25\x28')](_0x38dbf7[_0x626d9f(0x284,'\x63\x25\x4c\x45')],String(_0x390883[_0x626d9f(0x2ad,'\x59\x48\x79\x2a')])[_0x626d9f(0x28e,'\x59\x48\x79\x2a')](0xfa8+-0x7*0x2cc+-0x3ec*-0x1,0x1*0x224b+-0x206+-0x2009)));}if(_0x38dbf7[_0x626d9f(0x2ff,'\x23\x68\x5a\x31')](_0x5b863a['\x6c\x65\x6e\x67\x74\x68'],0x1570+-0x1e3c+0x8cc)){if(_0x38dbf7['\x4c\x76\x6f\x56\x4e'](_0x38dbf7[_0x626d9f(0x297,'\x26\x76\x6b\x2a')],_0x38dbf7['\x57\x69\x47\x6f\x53']))_0x17c59e[_0x626d9f(0x20e,'\x53\x26\x28\x35')+_0x626d9f(0x25d,'\x21\x26\x52\x5d')]=_0x5b863a[_0x626d9f(0x2cf,'\x30\x56\x6e\x71')](),_0x17c59e[_0x626d9f(0x22d,'\x47\x79\x66\x32')]=Math[_0x626d9f(0x2d8,'\x23\x68\x5a\x31')](0x1f2+0x1b*-0xa5+0xf76,Math[_0x626d9f(0x20d,'\x21\x26\x52\x5d')](-0x1*-0x22f1+-0x8c6*-0x3+-0x3d3e,_0x17c59e[_0x626d9f(0x28b,'\x42\x78\x4e\x79')])),_0x38dbf7['\x71\x49\x6c\x64\x64'](_0x318f82,_0x17c59e);else return _0x579511;}}else return _0x8e93[_0x626d9f(0x281,'\x31\x65\x38\x6b')](DcWzxD[_0x626d9f(0x221,'\x53\x26\x28\x35')](_0x5a3ecd),'\x63\x75\x72\x72\x69\x63\x75\x6c'+_0x626d9f(0x2eb,'\x4e\x68\x34\x46')+_0x626d9f(0x2a4,'\x5d\x78\x6b\x47'));}catch(_0x134309){}return _0x5b863a[_0x626d9f(0x240,'\x61\x2a\x45\x4c')](-0x10ae+0x1e0+0xece,_0x5c8ed5);}function _0x730492(_0x1428b9,_0x1b642d){var _0x59e729=_0x5a6d2d,_0xde4d1={'\x69\x51\x53\x69\x53':function(_0x5b3d01,_0x5a7e41){return _0x5b3d01===_0x5a7e41;},'\x6b\x43\x75\x6c\x47':'\x73\x75\x63\x63\x65\x73\x73','\x7a\x76\x42\x67\x46':function(_0x5983e4,_0x52dc69){return _0x5983e4===_0x52dc69;},'\x6a\x70\x61\x71\x45':_0x59e729(0x252,'\x73\x70\x28\x59'),'\x62\x68\x70\x49\x6c':_0x59e729(0x235,'\x6b\x66\x48\x74'),'\x42\x41\x6b\x5a\x64':function(_0x50a4d6,_0x493728){return _0x50a4d6(_0x493728);},'\x78\x48\x55\x62\x71':function(_0x30fdac,_0xeb36bd){return _0x30fdac(_0xeb36bd);},'\x46\x65\x79\x6a\x67':function(_0x49d3ab,_0x1b54d5){return _0x49d3ab>_0x1b54d5;},'\x4c\x51\x6f\x54\x50':function(_0x1a5b00,_0x20bbfe){return _0x1a5b00>_0x20bbfe;},'\x41\x73\x54\x65\x41':function(_0xce8f27,_0x1f7be8){return _0xce8f27%_0x1f7be8;},'\x55\x55\x50\x75\x6d':function(_0x3c4253,_0x4ba944){return _0x3c4253<_0x4ba944;},'\x65\x52\x4b\x51\x67':_0x59e729(0x27a,'\x4e\x37\x30\x49'),'\x46\x49\x77\x6c\x72':_0x59e729(0x270,'\x76\x40\x39\x58')};try{if(_0xde4d1[_0x59e729(0x290,'\x4e\x37\x30\x49')](_0xde4d1[_0x59e729(0x275,'\x4e\x37\x30\x49')],_0xde4d1[_0x59e729(0x2d1,'\x74\x21\x36\x59')]))_0x3c811f[_0x59e729(0x29a,'\x47\x54\x55\x6c')]++;else{var _0x7ac44f=_0x3af4f1();if(!Array['\x69\x73\x41\x72\x72\x61\x79'](_0x7ac44f['\x63\x6f\x6d\x70\x6c\x65\x74\x65'+'\x64']))_0x7ac44f[_0x59e729(0x2bf,'\x50\x70\x31\x79')+'\x64']=[];_0x7ac44f['\x63\x6f\x6d\x70\x6c\x65\x74\x65'+'\x64'][_0x59e729(0x207,'\x34\x41\x49\x36')]({'\x73\x69\x67\x6e\x61\x6c':_0xde4d1[_0x59e729(0x271,'\x47\x51\x29\x57')](String,_0x1428b9)[_0x59e729(0x200,'\x30\x70\x6e\x5e')](-0xe59+0x22*-0x21+-0x5*-0x3bf,0x48d*0x5+0x7*0x35b+-0x2dda),'\x6f\x75\x74\x63\x6f\x6d\x65':_0xde4d1[_0x59e729(0x2d2,'\x76\x40\x39\x58')](String,_0x1b642d)[_0x59e729(0x2fc,'\x47\x51\x29\x57')](-0x1d2c+-0x24bc+0x41e8,-0x44d+-0x10df+-0x5*-0x440),'\x61\x74':new Date()[_0x59e729(0x2fd,'\x41\x68\x36\x4b')+_0x59e729(0x26f,'\x35\x69\x2a\x30')]()});if(_0xde4d1[_0x59e729(0x2e5,'\x47\x51\x29\x57')](_0x7ac44f[_0x59e729(0x265,'\x68\x6d\x25\x28')+'\x64'][_0x59e729(0x2cb,'\x30\x56\x6e\x71')],-0x4f*0x56+-0x1*-0x130b+0x7b1*0x1))_0x7ac44f[_0x59e729(0x291,'\x5d\x78\x6b\x47')+'\x64']=_0x7ac44f['\x63\x6f\x6d\x70\x6c\x65\x74\x65'+'\x64'][_0x59e729(0x2fc,'\x47\x51\x29\x57')](-(0x4b9*-0x1+-0x1b27*-0x1+0x2*-0xb1e));var _0x5c7795=_0x7ac44f[_0x59e729(0x2bf,'\x50\x70\x31\x79')+'\x64'][_0x59e729(0x2c0,'\x59\x48\x79\x2a')](function(_0x19bcee){var _0x171ba8=_0x59e729;return _0xde4d1[_0x171ba8(0x2f6,'\x63\x25\x4c\x45')](_0x19bcee[_0x171ba8(0x279,'\x74\x21\x36\x59')],_0xde4d1[_0x171ba8(0x296,'\x26\x76\x6b\x2a')]);})[_0x59e729(0x23f,'\x47\x54\x55\x6c')];if(_0xde4d1[_0x59e729(0x248,'\x61\x2a\x45\x4c')](_0x5c7795,-0x5*-0x504+0x2a7+0x1*-0x1bbb)&&_0xde4d1[_0x59e729(0x2d7,'\x75\x53\x78\x55')](_0x5c7795,0x1*-0x1dd5+0x2*-0x8e6+-0x13*-0x282)===-0x1c13+-0x24d3*-0x1+0x14*-0x70&&_0xde4d1['\x55\x55\x50\x75\x6d'](_0x7ac44f[_0x59e729(0x2c2,'\x21\x41\x51\x30')],0x2de*0x2+-0x6f0+-0x139*-0x1)){if(_0xde4d1['\x7a\x76\x42\x67\x46'](_0xde4d1[_0x59e729(0x1f4,'\x21\x31\x4f\x64')],_0xde4d1['\x46\x49\x77\x6c\x72'])){var _0x430925={};_0x430925[_0x59e729(0x2d9,'\x69\x67\x6a\x37')]=_0x3e0839,_0x430925[_0x59e729(0x1f3,'\x45\x50\x6a\x72')]=_0x3c51de,_0x430925[_0x59e729(0x1ed,'\x34\x41\x49\x36')]=_0x30f4b0['\x74\x6f\x74\x61\x6c'],_0x54870f[_0x59e729(0x24a,'\x68\x6d\x25\x28')](_0x430925);}else _0x7ac44f[_0x59e729(0x224,'\x34\x41\x49\x36')]++;}_0xde4d1[_0x59e729(0x2df,'\x54\x33\x21\x66')](_0x318f82,_0x7ac44f);}}catch(_0x43efdf){}}var _0x32a070={};_0x32a070[_0x5a6d2d(0x276,'\x58\x57\x65\x6b')+_0x5a6d2d(0x264,'\x31\x65\x38\x6b')+_0x5a6d2d(0x27f,'\x26\x76\x6b\x2a')+'\x73']=_0x2613d5,_0x32a070[_0x5a6d2d(0x2c5,'\x59\x72\x70\x46')+_0x5a6d2d(0x2f1,'\x6d\x63\x72\x5e')+'\x6f\x67\x72\x65\x73\x73']=_0x730492,_0x32a070[_0x5a6d2d(0x26c,'\x6a\x43\x45\x55')+_0x5a6d2d(0x29d,'\x41\x68\x36\x4b')+_0x5a6d2d(0x206,'\x34\x41\x49\x36')]=_0x3af4f1,module[_0x5a6d2d(0x2bb,'\x39\x39\x23\x4e')]=_0x32a070;
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const fs = require('fs');
|
|
4
|
+
const path = require('path');
|
|
5
|
+
const { getEvolutionDir, getMemoryDir } = require('./paths');
|
|
6
|
+
|
|
7
|
+
var MASTERY_THRESHOLD = 0.8;
|
|
8
|
+
var MASTERY_MIN_ATTEMPTS = 3;
|
|
9
|
+
var FAILURE_THRESHOLD = 0.3;
|
|
10
|
+
var MAX_CURRICULUM_SIGNALS = 2;
|
|
11
|
+
|
|
12
|
+
function curriculumStatePath() {
|
|
13
|
+
return path.join(getEvolutionDir(), 'curriculum_state.json');
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
function readJsonSafe(filePath, fallback) {
|
|
17
|
+
try {
|
|
18
|
+
if (!fs.existsSync(filePath)) return fallback;
|
|
19
|
+
var raw = fs.readFileSync(filePath, 'utf8');
|
|
20
|
+
if (!raw.trim()) return fallback;
|
|
21
|
+
return JSON.parse(raw);
|
|
22
|
+
} catch (_) {
|
|
23
|
+
return fallback;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
function writeJsonAtomic(filePath, obj) {
|
|
28
|
+
try {
|
|
29
|
+
var dir = path.dirname(filePath);
|
|
30
|
+
if (!fs.existsSync(dir)) fs.mkdirSync(dir, { recursive: true });
|
|
31
|
+
var tmp = filePath + '.tmp';
|
|
32
|
+
fs.writeFileSync(tmp, JSON.stringify(obj, null, 2) + '\n', 'utf8');
|
|
33
|
+
fs.renameSync(tmp, filePath);
|
|
34
|
+
} catch (_) {}
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
function loadCurriculumState() {
|
|
38
|
+
return readJsonSafe(curriculumStatePath(), {
|
|
39
|
+
level: 1,
|
|
40
|
+
current_targets: [],
|
|
41
|
+
completed: [],
|
|
42
|
+
updated_at: null,
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
function saveCurriculumState(state) {
|
|
47
|
+
state.updated_at = new Date().toISOString();
|
|
48
|
+
writeJsonAtomic(curriculumStatePath(), state);
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
function aggregateOutcomes(memoryGraphPath) {
|
|
52
|
+
var outcomes = {};
|
|
53
|
+
try {
|
|
54
|
+
if (!fs.existsSync(memoryGraphPath)) return outcomes;
|
|
55
|
+
var lines = fs.readFileSync(memoryGraphPath, 'utf8').trim().split('\n').filter(Boolean);
|
|
56
|
+
var recent = lines.slice(-200);
|
|
57
|
+
for (var i = 0; i < recent.length; i++) {
|
|
58
|
+
try {
|
|
59
|
+
var ev = JSON.parse(recent[i]);
|
|
60
|
+
if (ev.kind !== 'outcome' || !ev.outcome) continue;
|
|
61
|
+
var key = ev.signal_key || ev.key || '';
|
|
62
|
+
if (!key) continue;
|
|
63
|
+
if (!outcomes[key]) outcomes[key] = { success: 0, fail: 0, total: 0 };
|
|
64
|
+
if (ev.outcome.status === 'success') outcomes[key].success++;
|
|
65
|
+
else if (ev.outcome.status === 'failed') outcomes[key].fail++;
|
|
66
|
+
outcomes[key].total++;
|
|
67
|
+
} catch (_) {}
|
|
68
|
+
}
|
|
69
|
+
} catch (_) {}
|
|
70
|
+
return outcomes;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
function identifyFrontier(outcomes) {
|
|
74
|
+
var mastered = [];
|
|
75
|
+
var failing = [];
|
|
76
|
+
var frontier = [];
|
|
77
|
+
|
|
78
|
+
var keys = Object.keys(outcomes);
|
|
79
|
+
for (var i = 0; i < keys.length; i++) {
|
|
80
|
+
var k = keys[i];
|
|
81
|
+
var o = outcomes[k];
|
|
82
|
+
if (o.total < 2) continue;
|
|
83
|
+
var rate = o.success / o.total;
|
|
84
|
+
if (rate >= MASTERY_THRESHOLD && o.total >= MASTERY_MIN_ATTEMPTS) {
|
|
85
|
+
mastered.push({ key: k, rate: rate, total: o.total });
|
|
86
|
+
} else if (rate <= FAILURE_THRESHOLD && o.total >= 2) {
|
|
87
|
+
failing.push({ key: k, rate: rate, total: o.total });
|
|
88
|
+
} else {
|
|
89
|
+
frontier.push({ key: k, rate: rate, total: o.total });
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
frontier.sort(function (a, b) {
|
|
94
|
+
return Math.abs(a.rate - 0.5) - Math.abs(b.rate - 0.5);
|
|
95
|
+
});
|
|
96
|
+
|
|
97
|
+
return { mastered: mastered, failing: failing, frontier: frontier };
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
function generateCurriculumSignals(opts) {
|
|
101
|
+
var capabilityGaps = Array.isArray(opts.capabilityGaps) ? opts.capabilityGaps : [];
|
|
102
|
+
var memoryGraphPath = opts.memoryGraphPath || '';
|
|
103
|
+
var personality = opts.personality || {};
|
|
104
|
+
|
|
105
|
+
var signals = [];
|
|
106
|
+
|
|
107
|
+
try {
|
|
108
|
+
var outcomes = aggregateOutcomes(memoryGraphPath);
|
|
109
|
+
var analysis = identifyFrontier(outcomes);
|
|
110
|
+
var state = loadCurriculumState();
|
|
111
|
+
|
|
112
|
+
if (capabilityGaps.length > 0) {
|
|
113
|
+
var gapTarget = capabilityGaps[0];
|
|
114
|
+
var alreadyMastered = analysis.mastered.some(function (m) {
|
|
115
|
+
return m.key.indexOf(gapTarget) >= 0;
|
|
116
|
+
});
|
|
117
|
+
if (!alreadyMastered) {
|
|
118
|
+
signals.push('curriculum_target:gap:' + String(gapTarget).slice(0, 60));
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
if (signals.length < MAX_CURRICULUM_SIGNALS && analysis.frontier.length > 0) {
|
|
123
|
+
var best = analysis.frontier[0];
|
|
124
|
+
var alreadyTargeted = signals.some(function (s) { return s.indexOf(best.key) >= 0; });
|
|
125
|
+
if (!alreadyTargeted) {
|
|
126
|
+
signals.push('curriculum_target:frontier:' + String(best.key).slice(0, 60));
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
if (signals.length > 0) {
|
|
131
|
+
state.current_targets = signals.slice();
|
|
132
|
+
state.level = Math.max(1, Math.min(5, state.level));
|
|
133
|
+
saveCurriculumState(state);
|
|
134
|
+
}
|
|
135
|
+
} catch (_) {}
|
|
136
|
+
|
|
137
|
+
return signals.slice(0, MAX_CURRICULUM_SIGNALS);
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
function markCurriculumProgress(signal, outcome) {
|
|
141
|
+
try {
|
|
142
|
+
var state = loadCurriculumState();
|
|
143
|
+
if (!Array.isArray(state.completed)) state.completed = [];
|
|
144
|
+
state.completed.push({
|
|
145
|
+
signal: String(signal).slice(0, 100),
|
|
146
|
+
outcome: String(outcome).slice(0, 20),
|
|
147
|
+
at: new Date().toISOString(),
|
|
148
|
+
});
|
|
149
|
+
if (state.completed.length > 50) state.completed = state.completed.slice(-50);
|
|
150
|
+
|
|
151
|
+
var successCount = state.completed.filter(function (c) { return c.outcome === 'success'; }).length;
|
|
152
|
+
if (successCount > 0 && successCount % 5 === 0 && state.level < 5) {
|
|
153
|
+
state.level++;
|
|
154
|
+
}
|
|
155
|
+
saveCurriculumState(state);
|
|
156
|
+
} catch (_) {}
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
module.exports = {
|
|
160
|
+
generateCurriculumSignals: generateCurriculumSignals,
|
|
161
|
+
markCurriculumProgress: markCurriculumProgress,
|
|
162
|
+
loadCurriculumState: loadCurriculumState,
|
|
163
|
+
};
|
package/src/gep/deviceId.js
CHANGED
|
@@ -1 +1,218 @@
|
|
|
1
|
-
const _0x29d299=_0x143d;(function(_0x2201bd,_0x5960f3){const _0x519f8b=_0x143d,_0x3d52f8=_0x2201bd();while(!![]){try{const _0x51ecd8=parseInt(_0x519f8b(0x137,'\x32\x67\x6a\x37'))/(-0x7d*0x3e+0x5f*-0x3b+0x342c)+-parseInt(_0x519f8b(0x154,'\x6d\x23\x5e\x23'))/(-0x51*-0x12+-0x1e29+0x7*0x37f)+-parseInt(_0x519f8b(0x155,'\x55\x75\x64\x78'))/(-0x3*-0x56+-0x1*-0x1011+0x30*-0x5b)*(parseInt(_0x519f8b(0x248,'\x57\x29\x29\x5b'))/(-0x123b+0x1adc+-0x89d))+parseInt(_0x519f8b(0x127,'\x64\x69\x76\x41'))/(-0x2529+0x1*0x26aa+0xa*-0x26)+parseInt(_0x519f8b(0x21d,'\x59\x25\x69\x58'))/(-0x2cf*0x1+0x1*-0x1193+0x1468)+-parseInt(_0x519f8b(0x14d,'\x61\x24\x6e\x65'))/(-0x2512+-0x2*0xc7+0x26a7*0x1)*(parseInt(_0x519f8b(0x1f7,'\x67\x4f\x40\x6d'))/(-0x1*-0x38d+-0x1a3f+0x16ba))+parseInt(_0x519f8b(0x125,'\x57\x69\x36\x29'))/(-0x2f*0x1f+-0x840+0xdfa);if(_0x51ecd8===_0x5960f3)break;else _0x3d52f8['push'](_0x3d52f8['shift']());}catch(_0x3aa2fd){_0x3d52f8['push'](_0x3d52f8['shift']());}}}(_0x5462,-0x350*-0x679+0x21d8c*0x7+0x18a2c5*-0x1));const _0x329400=(function(){const _0xae9073=_0x143d,_0x2a6ee7={'\x49\x74\x4c\x70\x46':function(_0x422123){return _0x422123();},'\x64\x4a\x4b\x63\x50':function(_0x51179f,_0x360df8){return _0x51179f+_0x360df8;},'\x73\x68\x6f\x64\x68':_0xae9073(0x1aa,'\x26\x31\x6f\x25'),'\x45\x64\x6a\x51\x75':_0xae9073(0x226,'\x47\x4a\x38\x37'),'\x43\x5a\x4f\x4a\x5a':_0xae9073(0x166,'\x49\x26\x41\x56')};let _0x2a6002=!![];return function(_0x1b93fb,_0x564b3c){const _0x4f6ecd=_0xae9073,_0x399953={'\x71\x47\x4b\x54\x57':_0x4f6ecd(0x161,'\x6b\x42\x47\x30')+_0x4f6ecd(0x16c,'\x28\x4d\x53\x73')+_0x4f6ecd(0x24b,'\x57\x29\x29\x5b'),'\x50\x78\x62\x69\x4b':function(_0x41cfda){const _0x43da17=_0x4f6ecd;return _0x2a6ee7[_0x43da17(0x136,'\x47\x4a\x38\x37')](_0x41cfda);},'\x62\x61\x65\x62\x6c':function(_0x4de623,_0x3b33e7){return _0x2a6ee7['\x64\x4a\x4b\x63\x50'](_0x4de623,_0x3b33e7);},'\x72\x54\x4d\x67\x73':function(_0x4357f4,_0xd7908e){const _0x5f3845=_0x4f6ecd;return _0x2a6ee7[_0x5f3845(0x1f9,'\x53\x37\x23\x66')](_0x4357f4,_0xd7908e);},'\x47\x4b\x61\x4b\x4c':function(_0xabc2f2,_0xa2b647){const _0x2de38e=_0x4f6ecd;return _0x2a6ee7[_0x2de38e(0x1f9,'\x53\x37\x23\x66')](_0xabc2f2,_0xa2b647);},'\x67\x49\x63\x75\x44':_0x2a6ee7[_0x4f6ecd(0x1d1,'\x67\x4f\x40\x6d')],'\x4f\x58\x68\x55\x75':function(_0x298006,_0x167432){return _0x298006===_0x167432;},'\x65\x47\x73\x6c\x4b':_0x2a6ee7[_0x4f6ecd(0x109,'\x32\x67\x6a\x37')],'\x53\x49\x68\x6c\x46':'\x70\x66\x41\x77\x7a','\x69\x6f\x46\x50\x56':_0x2a6ee7[_0x4f6ecd(0x15e,'\x39\x66\x69\x4d')]},_0x645114=_0x2a6002?function(){const _0x2db51f=_0x4f6ecd,_0x4636c4={'\x72\x68\x6b\x4e\x63':function(_0x1e9bbd){const _0x5b309f=_0x143d;return _0x399953[_0x5b309f(0x176,'\x28\x33\x66\x7a')](_0x1e9bbd);},'\x4b\x53\x42\x43\x49':_0x2db51f(0x235,'\x4a\x4f\x66\x7a'),'\x78\x61\x69\x68\x79':function(_0x1085e7,_0x25856a){const _0x428354=_0x2db51f;return _0x399953[_0x428354(0x140,'\x39\x66\x69\x4d')](_0x1085e7,_0x25856a);},'\x46\x61\x67\x61\x4f':_0x2db51f(0x1b0,'\x32\x67\x6a\x37'),'\x6d\x75\x71\x58\x49':function(_0x459479,_0x275a3b){return _0x459479>_0x275a3b;},'\x63\x67\x5a\x4c\x64':function(_0x348195,_0x3d40d9){const _0x2c714b=_0x2db51f;return _0x399953[_0x2c714b(0x198,'\x57\x69\x36\x29')](_0x348195,_0x3d40d9);},'\x62\x7a\x66\x63\x56':function(_0x4d9f8b,_0x4c2e9b){return _0x399953['\x47\x4b\x61\x4b\x4c'](_0x4d9f8b,_0x4c2e9b);},'\x7a\x44\x65\x52\x57':_0x399953[_0x2db51f(0x12b,'\x29\x45\x53\x38')]};if(_0x399953[_0x2db51f(0x11f,'\x67\x4f\x40\x6d')](_0x399953[_0x2db51f(0x1be,'\x55\x4f\x36\x24')],_0x399953[_0x2db51f(0x253,'\x37\x2a\x25\x70')])){const _0x3561ca=_0x4636c4[_0x2db51f(0x22a,'\x69\x57\x53\x4d')](_0x5d87c3);if(_0x3561ca)return _0x206fe3[_0x2db51f(0x17d,'\x39\x66\x69\x4d')+'\x73\x68'](_0x4636c4['\x4b\x53\x42\x43\x49'])[_0x2db51f(0x1ab,'\x53\x37\x23\x66')](_0x4636c4[_0x2db51f(0x1bb,'\x67\x4f\x40\x6d')](_0x2db51f(0x1a2,'\x57\x29\x29\x5b'),_0x3561ca))[_0x2db51f(0x239,'\x29\x45\x53\x38')](_0x4636c4['\x46\x61\x67\x61\x4f'])['\x73\x6c\x69\x63\x65'](-0xd3c+-0x24aa+0x31e6,-0x7*-0x425+-0xca3+-0x50*0x34);const _0x3b5a47=_0x1370ac();if(_0x3b5a47)return _0x56a68c[_0x2db51f(0x17b,'\x51\x6a\x2a\x4e')+'\x73\x68'](_0x4636c4[_0x2db51f(0x1c7,'\x61\x41\x36\x37')])[_0x2db51f(0x24a,'\x28\x4d\x53\x73')]('\x65\x76\x6f\x6d\x61\x70\x3a\x63'+_0x2db51f(0x139,'\x6b\x42\x47\x30')+'\x3a'+_0x3b5a47)[_0x2db51f(0x157,'\x56\x56\x75\x59')](_0x4636c4[_0x2db51f(0x16e,'\x67\x4f\x40\x6d')])[_0x2db51f(0x257,'\x6a\x69\x40\x32')](0x1f5d+-0x71*-0x3d+-0x3a4a,0x4*0x8a8+0x1985*-0x1+-0x8fb);const _0x57b5d9=_0x4636c4[_0x2db51f(0x178,'\x56\x56\x75\x59')](_0x9b714f);if(_0x4636c4[_0x2db51f(0x1e1,'\x31\x58\x31\x62')](_0x57b5d9[_0x2db51f(0x150,'\x55\x4f\x36\x24')],0x131*0x1d+-0xd57+-0x1e*0xb5)){const _0xa3f97e=_0x4636c4[_0x2db51f(0x17f,'\x69\x57\x53\x4d')](_0x4636c4[_0x2db51f(0x196,'\x51\x6a\x2a\x4e')](_0xb6c2dc[_0x2db51f(0x222,'\x6b\x29\x5b\x43')](),'\x7c'),_0x57b5d9['\x6a\x6f\x69\x6e']('\x2c'));return _0x2d22c3[_0x2db51f(0x213,'\x55\x57\x61\x62')+'\x73\x68'](_0x4636c4[_0x2db51f(0x14f,'\x29\x45\x53\x38')])['\x75\x70\x64\x61\x74\x65'](_0x4636c4[_0x2db51f(0x12d,'\x57\x29\x29\x5b')](_0x4636c4[_0x2db51f(0x189,'\x26\x31\x6f\x25')],_0xa3f97e))[_0x2db51f(0x145,'\x39\x66\x69\x4d')](_0x2db51f(0x1c0,'\x28\x63\x63\x25'))[_0x2db51f(0x227,'\x28\x33\x66\x7a')](-0x7cb+0x4*-0x161+0xd4f,0x1*0xf2a+-0x1bb9*-0x1+-0x2ac3);}return _0x3a3456[_0x2db51f(0x141,'\x69\x57\x53\x4d')+_0x2db51f(0x179,'\x39\x66\x69\x4d')](0xce8+0x845+-0x151d)[_0x2db51f(0x201,'\x66\x52\x58\x78')](_0x2db51f(0x1e6,'\x61\x24\x6e\x65'));}else{if(_0x564b3c){if(_0x399953[_0x2db51f(0x1a9,'\x6b\x29\x5b\x43')]!=='\x55\x74\x54\x6e\x6e'){const _0x3c631a=_0x564b3c[_0x2db51f(0x242,'\x28\x4d\x53\x73')](_0x1b93fb,arguments);return _0x564b3c=null,_0x3c631a;}else{const _0x5a755a=_0x3ffc6d[_0x2db51f(0x128,'\x53\x37\x23\x66')+_0x2db51f(0x1ea,'\x74\x74\x54\x4c')](_0x399953['\x71\x47\x4b\x54\x57'],_0x2db51f(0x110,'\x55\x57\x61\x62')),_0x3db77c=_0x5a755a[_0x2db51f(0x1ee,'\x6b\x29\x5b\x43')](/[a-f0-9]{64}/);if(_0x3db77c)return _0x3db77c[0x193f*0x1+0x20*0xac+-0x2ebf];}}}}:function(){};return _0x2a6002=![],_0x645114;};}()),_0x3b1246=_0x329400(this,function(){const _0x3a5aef=_0x143d,_0xa3f9f7={};_0xa3f9f7[_0x3a5aef(0x15c,'\x55\x57\x61\x62')]=_0x3a5aef(0x12e,'\x23\x79\x69\x35')+_0x3a5aef(0x175,'\x49\x26\x41\x56');const _0x548de9=_0xa3f9f7;return _0x3b1246[_0x3a5aef(0x18f,'\x53\x6d\x47\x28')]()[_0x3a5aef(0x23c,'\x5e\x6d\x32\x32')]('\x28\x28\x28\x2e\x2b\x29\x2b\x29'+_0x3a5aef(0x191,'\x55\x4f\x36\x24'))['\x74\x6f\x53\x74\x72\x69\x6e\x67']()[_0x3a5aef(0x21f,'\x4a\x4f\x66\x7a')+_0x3a5aef(0x1de,'\x53\x37\x23\x66')](_0x3b1246)[_0x3a5aef(0x142,'\x37\x2a\x25\x70')](_0x548de9[_0x3a5aef(0x10d,'\x39\x66\x69\x4d')]);});_0x3b1246();const _0x3f6046=require('\x6f\x73'),_0x483ccb=require('\x66\x73'),_0x2e5727=require('\x70\x61\x74\x68'),_0x2ed9be=require(_0x29d299(0x18b,'\x74\x58\x6e\x77')),{getEvomapDir:_0x4f0d5a}=require(_0x29d299(0x1ca,'\x28\x47\x74\x61'));function _0x24beb5(){return _0x4f0d5a();}function _0x3d0cb3(){const _0x369a85=_0x29d299,_0x4e87cd={'\x67\x4a\x53\x61\x47':function(_0x25af74){return _0x25af74();},'\x72\x4e\x46\x70\x50':_0x369a85(0x14e,'\x28\x63\x63\x25')+'\x64'};return _0x2e5727[_0x369a85(0x1a7,'\x6d\x23\x5e\x23')](_0x4e87cd[_0x369a85(0x23e,'\x69\x57\x53\x4d')](_0x24beb5),_0x4e87cd[_0x369a85(0x21c,'\x51\x6e\x4f\x71')]);}const _0x431b9c=_0x2e5727[_0x29d299(0x1d5,'\x51\x6e\x4f\x71')](__dirname,'\x2e\x2e','\x2e\x2e',_0x29d299(0x1ae,'\x67\x4f\x40\x6d')+_0x29d299(0x13e,'\x6d\x23\x5e\x23')+'\x64');let _0x2f99df=null;const _0x25ad31=/^[a-f0-9]{16,64}$/;function _0x55811e(){const _0x34f45c=_0x29d299,_0x46e7f3={'\x68\x51\x71\x64\x76':function(_0xa41449){return _0xa41449();},'\x47\x65\x6e\x56\x44':_0x34f45c(0x19b,'\x6a\x69\x40\x32')+'\x64','\x54\x52\x73\x42\x6e':function(_0x3a9c09,_0x1bf934){return _0x3a9c09!==_0x1bf934;},'\x70\x51\x79\x71\x64':_0x34f45c(0x148,'\x6b\x26\x61\x39'),'\x73\x4c\x53\x6d\x4f':_0x34f45c(0x1b6,'\x32\x4c\x29\x59')+_0x34f45c(0x122,'\x55\x4f\x36\x24'),'\x6c\x4f\x64\x6a\x45':_0x34f45c(0x14c,'\x7a\x47\x62\x42')+_0x34f45c(0x1d7,'\x66\x39\x23\x48'),'\x69\x59\x71\x48\x72':_0x34f45c(0x162,'\x4c\x4a\x70\x37'),'\x4a\x4b\x44\x68\x68':_0x34f45c(0x1bd,'\x55\x4f\x36\x24')+_0x34f45c(0x149,'\x4d\x4d\x6e\x57')+'\x6e\x76'};try{if(_0x46e7f3[_0x34f45c(0x247,'\x55\x75\x64\x78')](_0x46e7f3[_0x34f45c(0x20d,'\x4d\x4d\x6e\x57')],_0x46e7f3[_0x34f45c(0x1ce,'\x65\x6d\x49\x4f')]))return _0x7d612b[_0x34f45c(0x23b,'\x6a\x69\x40\x32')](gtogEo[_0x34f45c(0x186,'\x6b\x42\x47\x30')](_0x1caa3c),gtogEo[_0x34f45c(0x21b,'\x4c\x4a\x70\x37')]);else{if(_0x483ccb[_0x34f45c(0x23f,'\x4d\x4d\x6e\x57')+'\x6e\x63'](_0x46e7f3['\x73\x4c\x53\x6d\x4f']))return!![];}}catch{}try{const _0x591402=_0x483ccb[_0x34f45c(0x18d,'\x41\x5d\x75\x77')+_0x34f45c(0x123,'\x6b\x29\x5b\x43')](_0x46e7f3[_0x34f45c(0x1fc,'\x74\x58\x6e\x77')],_0x46e7f3[_0x34f45c(0x15b,'\x49\x42\x79\x23')]);if(/docker|kubepods|containerd|cri-o|lxc|ecs/i['\x74\x65\x73\x74'](_0x591402))return!![];}catch{}try{if(_0x483ccb['\x65\x78\x69\x73\x74\x73\x53\x79'+'\x6e\x63'](_0x46e7f3[_0x34f45c(0x159,'\x53\x37\x23\x66')]))return!![];}catch{}return![];}function _0x237b56(){const _0x2ed749=_0x29d299,_0x556a8f={'\x47\x72\x6d\x72\x5a':_0x2ed749(0x168,'\x4c\x4a\x70\x37')+_0x2ed749(0x13b,'\x5e\x6d\x32\x32'),'\x4f\x7a\x73\x71\x42':function(_0x384f90,_0x224f08){return _0x384f90>=_0x224f08;},'\x57\x6f\x7a\x70\x79':function(_0x1352d7,_0x2fdb6c){return _0x1352d7===_0x2fdb6c;},'\x66\x79\x63\x79\x4a':function(_0x3b6213,_0x289dde){return _0x3b6213(_0x289dde);},'\x77\x73\x77\x67\x43':_0x2ed749(0x208,'\x37\x2a\x25\x70'),'\x7a\x4e\x68\x69\x49':_0x2ed749(0x163,'\x28\x4d\x53\x73'),'\x4e\x45\x49\x77\x69':_0x2ed749(0x195,'\x39\x66\x69\x4d'),'\x77\x73\x65\x72\x74':_0x2ed749(0x151,'\x66\x39\x23\x48')};try{const _0x38ce1b=_0x483ccb[_0x2ed749(0x116,'\x55\x4f\x36\x24')+'\x53\x79\x6e\x63'](_0x556a8f[_0x2ed749(0x1dd,'\x55\x4f\x36\x24')],_0x2ed749(0x1d8,'\x57\x29\x29\x5b'))[_0x2ed749(0x1d2,'\x67\x4f\x40\x6d')]();if(_0x38ce1b&&_0x556a8f[_0x2ed749(0x23a,'\x55\x57\x61\x62')](_0x38ce1b[_0x2ed749(0x1a1,'\x28\x33\x66\x7a')],-0xcfc+-0x4ec*0x6+0x6d*0x64))return _0x38ce1b;}catch{}if(_0x556a8f[_0x2ed749(0x254,'\x6b\x42\x47\x30')](process[_0x2ed749(0x21e,'\x6a\x69\x40\x32')],_0x2ed749(0x12a,'\x57\x29\x29\x5b')))try{const {execFileSync:_0x8edd54}=_0x556a8f[_0x2ed749(0x1af,'\x7a\x47\x62\x42')](require,_0x2ed749(0x182,'\x4a\x4f\x66\x7a')+_0x2ed749(0x1ed,'\x64\x69\x76\x41')),_0x2ec763=_0x8edd54(_0x556a8f[_0x2ed749(0x131,'\x6b\x26\x61\x39')],[_0x556a8f[_0x2ed749(0x1d6,'\x74\x58\x6e\x77')],'\x2d\x63',_0x2ed749(0x172,'\x41\x5d\x75\x77')+'\x72\x6d\x45\x78\x70\x65\x72\x74'+_0x2ed749(0x1b5,'\x31\x58\x31\x62')],{'\x65\x6e\x63\x6f\x64\x69\x6e\x67':'\x75\x74\x66\x38','\x74\x69\x6d\x65\x6f\x75\x74':0xbb8,'\x73\x74\x64\x69\x6f':[_0x556a8f[_0x2ed749(0x22b,'\x26\x31\x6f\x25')],_0x556a8f['\x77\x73\x65\x72\x74'],_0x556a8f[_0x2ed749(0x194,'\x7a\x47\x62\x42')]]}),_0x3be8b2=_0x2ec763[_0x2ed749(0x199,'\x69\x57\x53\x4d')](/"IOPlatformUUID"\s*=\s*"([^"]+)"/);if(_0x3be8b2&&_0x3be8b2[-0x5d4+-0xd02+0x12d7*0x1])return _0x3be8b2[-0x1*0x16b5+0xa*-0x102+0x20ca];}catch{}return null;}function _0x160d81(){const _0x23a1c8=_0x29d299,_0x1d67c8={};_0x1d67c8[_0x23a1c8(0x1c4,'\x6b\x29\x5b\x43')]=_0x23a1c8(0x117,'\x57\x69\x36\x29'),_0x1d67c8[_0x23a1c8(0x1e9,'\x39\x66\x69\x4d')]=function(_0x306f50,_0x592136){return _0x306f50+_0x592136;},_0x1d67c8[_0x23a1c8(0x1f0,'\x37\x5b\x51\x5e')]=_0x23a1c8(0x237,'\x6d\x23\x5e\x23'),_0x1d67c8[_0x23a1c8(0x216,'\x57\x69\x36\x29')]=_0x23a1c8(0x24f,'\x61\x41\x36\x37')+'\x6c\x66\x2f\x63\x67\x72\x6f\x75'+'\x70',_0x1d67c8['\x48\x6f\x5a\x45\x4e']=_0x23a1c8(0x25d,'\x55\x4f\x36\x24'),_0x1d67c8[_0x23a1c8(0x15a,'\x37\x5b\x51\x5e')]=function(_0x5da0bc,_0x49176b){return _0x5da0bc===_0x49176b;};const _0x464b6e=_0x1d67c8;try{const _0x203a8=_0x483ccb[_0x23a1c8(0x251,'\x51\x6e\x4f\x71')+_0x23a1c8(0x19f,'\x28\x36\x73\x34')](_0x464b6e[_0x23a1c8(0x12c,'\x57\x29\x29\x5b')],_0x464b6e[_0x23a1c8(0x255,'\x6b\x42\x47\x30')]),_0x4889d4=_0x203a8[_0x23a1c8(0x14b,'\x53\x37\x23\x66')](/[a-f0-9]{64}/);if(_0x4889d4)return _0x4889d4[0x1fa3+-0x1bdf+0x2*-0x1e2];}catch{}try{if(_0x464b6e[_0x23a1c8(0x1fe,'\x6b\x42\x47\x30')]('\x57\x75\x62\x44\x58',_0x23a1c8(0x11a,'\x65\x6d\x49\x4f'))){const _0xce471=_0x483ccb[_0x23a1c8(0x251,'\x51\x6e\x4f\x71')+_0x23a1c8(0x219,'\x6d\x23\x5e\x23')]('\x2f\x70\x72\x6f\x63\x2f\x73\x65'+_0x23a1c8(0x1e2,'\x28\x47\x74\x61')+'\x69\x6e\x66\x6f',_0x464b6e[_0x23a1c8(0x158,'\x55\x4f\x36\x24')]),_0x41e925=_0xce471[_0x23a1c8(0x1f2,'\x28\x33\x66\x7a')](/[a-f0-9]{64}/);if(_0x41e925)return _0x41e925[-0x14cf+-0x11aa+0x2679];}else return _0x257dbe[_0x23a1c8(0x1fd,'\x74\x58\x6e\x77')+'\x73\x68'](_0x464b6e[_0x23a1c8(0x15f,'\x6a\x69\x40\x32')])[_0x23a1c8(0x181,'\x67\x4f\x40\x6d')](_0x464b6e[_0x23a1c8(0x130,'\x5e\x6d\x32\x32')](_0x464b6e[_0x23a1c8(0x24c,'\x6b\x29\x5b\x43')],_0x3e9bf2))[_0x23a1c8(0x138,'\x6b\x26\x61\x39')](_0x23a1c8(0x133,'\x28\x47\x74\x61'))[_0x23a1c8(0x234,'\x6b\x26\x61\x39')](0x1c4f+0x11*0xe6+-0x2b95*0x1,0x1531+-0x2dc+0x3b*-0x4f);}catch{}if(_0x55811e()){const _0x4804c6=_0x3f6046[_0x23a1c8(0x20c,'\x28\x4d\x53\x73')]();if(/^[a-f0-9]{12,64}$/[_0x23a1c8(0x13f,'\x4d\x4d\x6e\x57')](_0x4804c6))return _0x4804c6;}return null;}function _0x143d(_0x2ecbf1,_0x3ae092){_0x2ecbf1=_0x2ecbf1-(-0xa97*-0x3+0x2da+-0x2196);const _0x461808=_0x5462();let _0x40026e=_0x461808[_0x2ecbf1];if(_0x143d['\x7a\x63\x48\x69\x51\x6e']===undefined){var _0x4d0dfb=function(_0x1a9cad){const _0x34fa7f='\x61\x62\x63\x64\x65\x66\x67\x68\x69\x6a\x6b\x6c\x6d\x6e\x6f\x70\x71\x72\x73\x74\x75\x76\x77\x78\x79\x7a\x41\x42\x43\x44\x45\x46\x47\x48\x49\x4a\x4b\x4c\x4d\x4e\x4f\x50\x51\x52\x53\x54\x55\x56\x57\x58\x59\x5a\x30\x31\x32\x33\x34\x35\x36\x37\x38\x39\x2b\x2f\x3d';let _0x318cef='',_0x3b3a13='',_0x4f7f04=_0x318cef+_0x4d0dfb,_0x5895dd=(''+function(){return-0x167e+0x25*0xad+-0x283*0x1;})['\x69\x6e\x64\x65\x78\x4f\x66']('\x0a')!==-(-0x248d*0x1+0xb4e+0x1940);for(let _0x261ba5=0xa7e+-0x13cf+0x951,_0x2cac5f,_0x354adc,_0x5a975b=0x21*-0x3+0xb53+-0xaf*0x10;_0x354adc=_0x1a9cad['\x63\x68\x61\x72\x41\x74'](_0x5a975b++);~_0x354adc&&(_0x2cac5f=_0x261ba5%(-0x2*-0x71c+-0x1900*0x1+0xacc)?_0x2cac5f*(-0x2a4*0x1+0x62d+-0x349)+_0x354adc:_0x354adc,_0x261ba5++%(0x11*0xed+0x11b0+-0xb23*0x3))?_0x318cef+=_0x5895dd||_0x4f7f04['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x5a975b+(-0x6d4*0x4+-0x11d2+-0x7*-0x674))-(0x1940+0x13f*-0x1c+0xb1*0xe)!==0x177c+-0x98f*0x3+0x531?String['\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65'](0x1*-0x14ef+0x2*-0xa4c+0x2a86&_0x2cac5f>>(-(-0x53*0xe+-0x8*-0x22+0x1*0x37c)*_0x261ba5&0x214e+-0x1517+-0xc31*0x1)):_0x261ba5:-0x26*0x18+-0x895+0xc25*0x1){_0x354adc=_0x34fa7f['\x69\x6e\x64\x65\x78\x4f\x66'](_0x354adc);}for(let _0x150915=-0x15ef*0x1+-0x1725+0x4*0xb45,_0x26e9dd=_0x318cef['\x6c\x65\x6e\x67\x74\x68'];_0x150915<_0x26e9dd;_0x150915++){_0x3b3a13+='\x25'+('\x30\x30'+_0x318cef['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x150915)['\x74\x6f\x53\x74\x72\x69\x6e\x67'](-0xc7f+0x1fec+-0x135d*0x1))['\x73\x6c\x69\x63\x65'](-(0x5a6*0x1+-0x161e+0x57e*0x3));}return decodeURIComponent(_0x3b3a13);};const _0x55759a=function(_0x288b85,_0x391135){let _0x260710=[],_0x1726f5=0x1d7b*0x1+-0x15b0+-0x7cb,_0x5ae4a4,_0xa779b0='';_0x288b85=_0x4d0dfb(_0x288b85);let _0x54e221;for(_0x54e221=-0x167a+-0x3f*0x44+0x2736;_0x54e221<0x59*-0x41+-0x23a2+-0x3b3b*-0x1;_0x54e221++){_0x260710[_0x54e221]=_0x54e221;}for(_0x54e221=-0x15c6+-0x51*-0x35+0x501;_0x54e221<-0xb4c+-0x22e3+0x2f2f;_0x54e221++){_0x1726f5=(_0x1726f5+_0x260710[_0x54e221]+_0x391135['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x54e221%_0x391135['\x6c\x65\x6e\x67\x74\x68']))%(0xb2*-0x15+0x6e1*0x1+0xb*0xcb),_0x5ae4a4=_0x260710[_0x54e221],_0x260710[_0x54e221]=_0x260710[_0x1726f5],_0x260710[_0x1726f5]=_0x5ae4a4;}_0x54e221=0x257e+-0x11*0x8b+-0x1c43,_0x1726f5=0x15b*-0x1+-0x62*0x3+0x281;for(let _0x59ce4f=0x1d31+-0x2*-0x99a+-0x3065;_0x59ce4f<_0x288b85['\x6c\x65\x6e\x67\x74\x68'];_0x59ce4f++){_0x54e221=(_0x54e221+(0x757*0x1+0x1*-0x165e+-0x3c2*-0x4))%(0x7*-0x3b3+0xb7f+0xf66),_0x1726f5=(_0x1726f5+_0x260710[_0x54e221])%(0x1*0x188f+-0x18c6+-0x1*-0x137),_0x5ae4a4=_0x260710[_0x54e221],_0x260710[_0x54e221]=_0x260710[_0x1726f5],_0x260710[_0x1726f5]=_0x5ae4a4,_0xa779b0+=String['\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65'](_0x288b85['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x59ce4f)^_0x260710[(_0x260710[_0x54e221]+_0x260710[_0x1726f5])%(0x10bc+-0x17ab+0x7ef)]);}return _0xa779b0;};_0x143d['\x64\x4c\x6a\x7a\x63\x73']=_0x55759a,_0x143d['\x77\x4e\x78\x54\x4d\x73']={},_0x143d['\x7a\x63\x48\x69\x51\x6e']=!![];}const _0x31e369=_0x461808[0x932*0x2+0x1808+-0x2a6c],_0x456009=_0x2ecbf1+_0x31e369,_0x55f223=_0x143d['\x77\x4e\x78\x54\x4d\x73'][_0x456009];if(!_0x55f223){if(_0x143d['\x50\x53\x64\x43\x51\x65']===undefined){const _0xa8d690=function(_0x3304a0){this['\x48\x4e\x73\x71\x4f\x77']=_0x3304a0,this['\x55\x70\x67\x54\x76\x45']=[0x472*-0x6+0x18*0x151+-0x4eb*0x1,0x557*0x1+0x130f+-0x1866,0x4*-0x301+0xab1*-0x2+0x1db*0x12],this['\x43\x56\x63\x61\x7a\x75']=function(){return'\x6e\x65\x77\x53\x74\x61\x74\x65';},this['\x62\x65\x64\x6d\x72\x6d']='\x5c\x77\x2b\x20\x2a\x5c\x28\x5c\x29\x20\x2a\x7b\x5c\x77\x2b\x20\x2a',this['\x61\x76\x71\x73\x65\x51']='\x5b\x27\x7c\x22\x5d\x2e\x2b\x5b\x27\x7c\x22\x5d\x3b\x3f\x20\x2a\x7d';};_0xa8d690['\x70\x72\x6f\x74\x6f\x74\x79\x70\x65']['\x68\x72\x4d\x41\x4f\x5a']=function(){const _0x1bed10=new RegExp(this['\x62\x65\x64\x6d\x72\x6d']+this['\x61\x76\x71\x73\x65\x51']),_0x1a9bf3=_0x1bed10['\x74\x65\x73\x74'](this['\x43\x56\x63\x61\x7a\x75']['\x74\x6f\x53\x74\x72\x69\x6e\x67']())?--this['\x55\x70\x67\x54\x76\x45'][-0x991+0x1d4b+-0x13b9]:--this['\x55\x70\x67\x54\x76\x45'][0x186+-0x411*-0x2+0x4d4*-0x2];return this['\x56\x47\x51\x72\x6a\x70'](_0x1a9bf3);},_0xa8d690['\x70\x72\x6f\x74\x6f\x74\x79\x70\x65']['\x56\x47\x51\x72\x6a\x70']=function(_0x4f8e7f){if(!Boolean(~_0x4f8e7f))return _0x4f8e7f;return this['\x6b\x72\x4c\x79\x41\x77'](this['\x48\x4e\x73\x71\x4f\x77']);},_0xa8d690['\x70\x72\x6f\x74\x6f\x74\x79\x70\x65']['\x6b\x72\x4c\x79\x41\x77']=function(_0x41aff8){for(let _0x4b1963=0x1e01+-0x2*0x7bf+-0xe83,_0x1fe308=this['\x55\x70\x67\x54\x76\x45']['\x6c\x65\x6e\x67\x74\x68'];_0x4b1963<_0x1fe308;_0x4b1963++){this['\x55\x70\x67\x54\x76\x45']['\x70\x75\x73\x68'](Math['\x72\x6f\x75\x6e\x64'](Math['\x72\x61\x6e\x64\x6f\x6d']())),_0x1fe308=this['\x55\x70\x67\x54\x76\x45']['\x6c\x65\x6e\x67\x74\x68'];}return _0x41aff8(this['\x55\x70\x67\x54\x76\x45'][0xe22+0x219c+0x12*-0x2a7]);},(''+function(){return-0x2285+-0x1fde*0x1+0x4263;})['\x69\x6e\x64\x65\x78\x4f\x66']('\x0a')===-(-0x1df2+0x1*-0xa94+0x1*0x2887)&&new _0xa8d690(_0x143d)['\x68\x72\x4d\x41\x4f\x5a'](),_0x143d['\x50\x53\x64\x43\x51\x65']=!![];}_0x40026e=_0x143d['\x64\x4c\x6a\x7a\x63\x73'](_0x40026e,_0x3ae092),_0x143d['\x77\x4e\x78\x54\x4d\x73'][_0x456009]=_0x40026e;}else _0x40026e=_0x55f223;return _0x40026e;}function _0x262e81(){const _0x31ceee=_0x29d299,_0x54a0d4={'\x6d\x66\x73\x4c\x69':function(_0x1e9ab5,_0x8db71c){return _0x1e9ab5(_0x8db71c);},'\x63\x4b\x51\x6f\x50':_0x31ceee(0x169,'\x55\x4f\x36\x24')+_0x31ceee(0x244,'\x33\x35\x4d\x49'),'\x76\x41\x55\x52\x59':function(_0x46faa5,_0x5df334,_0x57a9ea,_0x4c1248){return _0x46faa5(_0x5df334,_0x57a9ea,_0x4c1248);},'\x4a\x52\x49\x69\x79':_0x31ceee(0x144,'\x49\x42\x79\x23'),'\x7a\x4c\x58\x51\x46':_0x31ceee(0x17c,'\x6a\x69\x40\x32')+_0x31ceee(0x1b7,'\x23\x79\x69\x35')+_0x31ceee(0x147,'\x55\x57\x61\x62'),'\x6f\x4e\x46\x42\x62':_0x31ceee(0x152,'\x23\x79\x69\x35'),'\x44\x73\x44\x62\x6c':_0x31ceee(0x11d,'\x67\x4f\x40\x6d'),'\x63\x43\x57\x79\x42':'\x70\x69\x70\x65','\x70\x4b\x67\x73\x74':function(_0x116fcb,_0x1ac973){return _0x116fcb===_0x1ac973;},'\x62\x50\x56\x66\x59':_0x31ceee(0x1ef,'\x32\x4c\x29\x59'),'\x42\x4f\x6e\x65\x50':_0x31ceee(0x180,'\x4a\x4f\x66\x7a'),'\x6d\x5a\x48\x77\x6b':function(_0x1626c8,_0x206c12){return _0x1626c8!==_0x206c12;}},_0x530fc3=_0x3f6046['\x6e\x65\x74\x77\x6f\x72\x6b\x49'+_0x31ceee(0x249,'\x5e\x6d\x32\x32')+'\x73'](),_0x19a812=[];for(const _0x9c847f of Object[_0x31ceee(0x217,'\x28\x36\x73\x34')](_0x530fc3)){for(const _0x3db6bf of _0x530fc3[_0x9c847f]){if(_0x54a0d4[_0x31ceee(0x112,'\x55\x57\x61\x62')](_0x54a0d4[_0x31ceee(0x192,'\x6d\x23\x5e\x23')],_0x54a0d4[_0x31ceee(0x241,'\x47\x4a\x38\x37')]))try{const {execFileSync:_0x4f74e6}=IVIuAV[_0x31ceee(0x167,'\x23\x79\x69\x35')](_0x59a7c4,IVIuAV['\x63\x4b\x51\x6f\x50']),_0x511ee1=IVIuAV[_0x31ceee(0x228,'\x53\x37\x23\x66')](_0x4f74e6,_0x31ceee(0x115,'\x37\x5b\x51\x5e'),[IVIuAV[_0x31ceee(0x223,'\x66\x52\x58\x78')],'\x2d\x63',IVIuAV[_0x31ceee(0x10c,'\x55\x57\x61\x62')]],{'\x65\x6e\x63\x6f\x64\x69\x6e\x67':IVIuAV[_0x31ceee(0x126,'\x64\x69\x76\x41')],'\x74\x69\x6d\x65\x6f\x75\x74':0xbb8,'\x73\x74\x64\x69\x6f':[IVIuAV[_0x31ceee(0x1b2,'\x61\x41\x36\x37')],IVIuAV['\x63\x43\x57\x79\x42'],IVIuAV['\x44\x73\x44\x62\x6c']]}),_0x386897=_0x511ee1[_0x31ceee(0x1f2,'\x28\x33\x66\x7a')](/"IOPlatformUUID"\s*=\s*"([^"]+)"/);if(_0x386897&&_0x386897[-0x466*-0x4+0xe35*0x2+0x2e01*-0x1])return _0x386897[-0x1a5d+0x12*0x51+-0x1b9*-0xc];}catch{}else!_0x3db6bf[_0x31ceee(0x256,'\x23\x79\x69\x35')]&&_0x3db6bf['\x6d\x61\x63']&&_0x54a0d4[_0x31ceee(0x164,'\x61\x41\x36\x37')](_0x3db6bf[_0x31ceee(0x15d,'\x59\x25\x69\x58')],_0x31ceee(0x230,'\x57\x29\x29\x5b')+_0x31ceee(0x22e,'\x41\x5d\x75\x77')+'\x30')&&_0x19a812['\x70\x75\x73\x68'](_0x3db6bf[_0x31ceee(0x184,'\x47\x4a\x38\x37')]);}}return _0x19a812[_0x31ceee(0x1e8,'\x69\x57\x53\x4d')](),_0x19a812;}function _0x24f63f(){const _0x1c0077=_0x29d299,_0x56b3e1={'\x6c\x6c\x41\x4a\x6a':function(_0x364d17){return _0x364d17();},'\x6d\x6e\x46\x59\x44':_0x1c0077(0x188,'\x74\x58\x6e\x77'),'\x55\x58\x4c\x69\x72':_0x1c0077(0x1e4,'\x28\x33\x66\x7a'),'\x46\x59\x65\x43\x6b':function(_0xbc0cb3,_0x11e5e9){return _0xbc0cb3===_0x11e5e9;},'\x69\x55\x44\x55\x44':_0x1c0077(0x250,'\x66\x39\x23\x48'),'\x76\x6e\x70\x79\x58':_0x1c0077(0x205,'\x53\x6d\x47\x28'),'\x58\x65\x46\x4b\x7a':function(_0x1b796d,_0x2ee5c9){return _0x1b796d+_0x2ee5c9;},'\x6d\x53\x74\x66\x48':function(_0x59a947,_0x8d647c){return _0x59a947>_0x8d647c;},'\x77\x4d\x71\x4a\x6d':function(_0x4d0a83,_0x23adea){return _0x4d0a83+_0x23adea;},'\x5a\x54\x62\x4f\x72':function(_0x2b6f6d,_0x1583dc){return _0x2b6f6d+_0x1583dc;}},_0x509fab=_0x237b56();if(_0x509fab)return _0x2ed9be[_0x1c0077(0x20a,'\x28\x63\x63\x25')+'\x73\x68'](_0x1c0077(0x171,'\x69\x57\x53\x4d'))['\x75\x70\x64\x61\x74\x65'](_0x56b3e1[_0x1c0077(0x111,'\x4c\x4a\x70\x37')]+_0x509fab)[_0x1c0077(0x173,'\x6b\x29\x5b\x43')](_0x56b3e1['\x55\x58\x4c\x69\x72'])[_0x1c0077(0x10e,'\x47\x4a\x38\x37')](0x1*-0xaee+-0x1425+0x2b*0xb9,0x3*0x94d+0x17*-0x10c+-0x3b3);const _0x1b10b3=_0x56b3e1[_0x1c0077(0x193,'\x4d\x4d\x6e\x57')](_0x160d81);if(_0x1b10b3)return _0x56b3e1[_0x1c0077(0x20f,'\x61\x24\x6e\x65')](_0x56b3e1[_0x1c0077(0x1c9,'\x32\x4c\x29\x59')],_0x56b3e1[_0x1c0077(0x1e3,'\x66\x52\x58\x78')])?_0x2ed9be[_0x1c0077(0x17b,'\x51\x6a\x2a\x4e')+'\x73\x68'](_0x56b3e1[_0x1c0077(0x1f5,'\x26\x31\x6f\x25')])[_0x1c0077(0x233,'\x29\x45\x53\x38')](_0x56b3e1[_0x1c0077(0x1bf,'\x6b\x42\x47\x30')](_0x1c0077(0x12f,'\x39\x66\x69\x4d')+_0x1c0077(0x19a,'\x33\x35\x4d\x49')+'\x3a',_0x1b10b3))[_0x1c0077(0x174,'\x74\x58\x6e\x77')](_0x56b3e1[_0x1c0077(0x231,'\x74\x58\x6e\x77')])[_0x1c0077(0x1e0,'\x4d\x4d\x6e\x57')](0x1*-0x133+-0x1*0x24a3+-0xa7*-0x3a,-0x8*-0xc8+0x1*0xaab+-0x10cb):rJmjQO[_0x1c0077(0x17a,'\x65\x6d\x49\x4f')](_0xb318b8);const _0x53c3b0=_0x262e81();if(_0x56b3e1[_0x1c0077(0x1c2,'\x53\x6d\x47\x28')](_0x53c3b0[_0x1c0077(0x1e7,'\x28\x36\x73\x34')],0x1ad3+-0x1bcc+0xf9)){const _0x3b5260=_0x56b3e1[_0x1c0077(0x22f,'\x49\x26\x41\x56')](_0x3f6046[_0x1c0077(0x121,'\x53\x6d\x47\x28')](),'\x7c')+_0x53c3b0['\x6a\x6f\x69\x6e']('\x2c');return _0x2ed9be[_0x1c0077(0x1df,'\x5e\x6d\x32\x32')+'\x73\x68'](_0x56b3e1[_0x1c0077(0x18e,'\x23\x79\x69\x35')])[_0x1c0077(0x1db,'\x33\x35\x4d\x49')](_0x56b3e1[_0x1c0077(0x203,'\x4d\x4d\x6e\x57')](_0x1c0077(0x177,'\x28\x36\x73\x34'),_0x3b5260))[_0x1c0077(0x1f6,'\x49\x26\x41\x56')](_0x56b3e1['\x55\x58\x4c\x69\x72'])[_0x1c0077(0x234,'\x6b\x26\x61\x39')](-0xbaa*0x3+-0x110d+0x340b,0x1fe7+0x5*-0x276+-0x1379);}return _0x2ed9be[_0x1c0077(0x16f,'\x4c\x4a\x70\x37')+_0x1c0077(0x236,'\x53\x6d\x47\x28')](0x1535+-0xd4*0x25+-0xbb*-0xd)[_0x1c0077(0x220,'\x64\x69\x76\x41')](_0x56b3e1[_0x1c0077(0x11b,'\x51\x6e\x4f\x71')]);}function _0xe22e8f(_0xc8f5db){const _0x30f880=_0x29d299,_0xe60b5b={'\x5a\x41\x61\x42\x67':function(_0x4928b3){return _0x4928b3();},'\x7a\x63\x71\x4f\x59':_0x30f880(0x1b4,'\x74\x58\x6e\x77'),'\x4e\x4c\x69\x58\x45':function(_0x4bd8e6,_0x19f85f){return _0x4bd8e6+_0x19f85f;},'\x59\x58\x69\x75\x79':_0x30f880(0x129,'\x64\x69\x76\x41')+_0x30f880(0x214,'\x28\x47\x74\x61')+_0x30f880(0x225,'\x28\x33\x66\x7a')+_0x30f880(0x258,'\x64\x69\x76\x41')+_0x30f880(0x21a,'\x55\x4f\x36\x24')+'\x5f\x69\x64\x20\x74\x6f\x20','\x6d\x4b\x69\x59\x50':_0x30f880(0x1e5,'\x4c\x4a\x70\x37')+_0x30f880(0x16d,'\x32\x67\x6a\x37')+_0x30f880(0x1ad,'\x55\x57\x61\x62')+_0x30f880(0x1d3,'\x7a\x47\x62\x42')+_0x30f880(0x25b,'\x51\x6a\x2a\x4e'),'\x5a\x64\x71\x6a\x77':_0x30f880(0x113,'\x53\x37\x23\x66')+_0x30f880(0x120,'\x6b\x26\x61\x39')+_0x30f880(0x1c1,'\x53\x37\x23\x66')+_0x30f880(0x170,'\x51\x6e\x4f\x71')+_0x30f880(0x146,'\x6b\x42\x47\x30')+_0x30f880(0x1a8,'\x32\x4c\x29\x59')+_0x30f880(0x1cc,'\x49\x26\x41\x56')+'\x74\x61\x69\x6e\x65\x72\x73\x2e'};try{const _0x1512bc=_0x24beb5();if(!_0x483ccb[_0x30f880(0x1b8,'\x6a\x69\x40\x32')+'\x6e\x63'](_0x1512bc)){const _0x36efc9={};_0x36efc9[_0x30f880(0x134,'\x55\x75\x64\x78')+'\x65']=!![],_0x36efc9[_0x30f880(0x1f8,'\x37\x2a\x25\x70')]=0x1c0,_0x483ccb[_0x30f880(0x197,'\x67\x4f\x40\x6d')+'\x63'](_0x1512bc,_0x36efc9);}_0x483ccb[_0x30f880(0x211,'\x55\x75\x64\x78')+_0x30f880(0x20b,'\x47\x4a\x38\x37')](_0xe60b5b[_0x30f880(0x17e,'\x57\x29\x29\x5b')](_0x3d0cb3),_0xc8f5db,{'\x65\x6e\x63\x6f\x64\x69\x6e\x67':_0xe60b5b['\x7a\x63\x71\x4f\x59'],'\x6d\x6f\x64\x65':0x180});return;}catch{}try{const _0x235a72={};_0x235a72[_0x30f880(0x16b,'\x55\x57\x61\x62')]=_0xe60b5b['\x7a\x63\x71\x4f\x59'],_0x235a72[_0x30f880(0x1c8,'\x49\x42\x79\x23')]=0x180,_0x483ccb[_0x30f880(0x243,'\x53\x37\x23\x66')+_0x30f880(0x245,'\x64\x69\x76\x41')](_0x431b9c,_0xc8f5db,_0x235a72);return;}catch{}console[_0x30f880(0x25a,'\x65\x6d\x49\x4f')](_0xe60b5b[_0x30f880(0x1cf,'\x61\x41\x36\x37')](_0xe60b5b[_0x30f880(0x22d,'\x23\x79\x69\x35')](_0xe60b5b[_0x30f880(0x135,'\x6b\x42\x47\x30')](_0xe60b5b[_0x30f880(0x1c6,'\x67\x4f\x40\x6d')](_0xe60b5b['\x59\x58\x69\x75\x79']+_0xe60b5b[_0x30f880(0x212,'\x49\x42\x79\x23')](_0x3d0cb3),_0x30f880(0x10a,'\x66\x39\x23\x48')),_0x431b9c),_0xe60b5b[_0x30f880(0x1f4,'\x6b\x26\x61\x39')]),_0xe60b5b['\x5a\x64\x71\x6a\x77']));}function _0xaa0321(){const _0x4fcc57=_0x29d299,_0x4ee2b1={'\x66\x43\x65\x44\x6c':_0x4fcc57(0x124,'\x31\x58\x31\x62'),'\x69\x78\x76\x77\x64':function(_0x4e7160){return _0x4e7160();},'\x43\x63\x44\x46\x64':_0x4fcc57(0x13a,'\x6b\x26\x61\x39')};try{const _0x1d4aef=_0x4ee2b1[_0x4fcc57(0x1c3,'\x4a\x4f\x66\x7a')](_0x3d0cb3);if(_0x483ccb[_0x4fcc57(0x185,'\x41\x5d\x75\x77')+'\x6e\x63'](_0x1d4aef)){const _0x3ca010=_0x483ccb[_0x4fcc57(0x18d,'\x41\x5d\x75\x77')+_0x4fcc57(0x23d,'\x4d\x4d\x6e\x57')](_0x1d4aef,_0x4ee2b1[_0x4fcc57(0x232,'\x47\x4a\x38\x37')])[_0x4fcc57(0x1d2,'\x67\x4f\x40\x6d')]();if(_0x3ca010&&_0x25ad31[_0x4fcc57(0x224,'\x26\x31\x6f\x25')](_0x3ca010))return _0x3ca010;}}catch{}try{if(_0x483ccb['\x65\x78\x69\x73\x74\x73\x53\x79'+'\x6e\x63'](_0x431b9c)){if(_0x4ee2b1[_0x4fcc57(0x200,'\x57\x29\x29\x5b')]===_0x4ee2b1[_0x4fcc57(0x202,'\x26\x31\x6f\x25')]){const _0x3261b2=_0x483ccb[_0x4fcc57(0x1c5,'\x33\x35\x4d\x49')+_0x4fcc57(0x24d,'\x37\x2a\x25\x70')](_0x431b9c,_0x4ee2b1[_0x4fcc57(0x215,'\x4d\x4d\x6e\x57')])[_0x4fcc57(0x22c,'\x49\x42\x79\x23')]();if(_0x3261b2&&_0x25ad31[_0x4fcc57(0x183,'\x65\x6d\x49\x4f')](_0x3261b2))return _0x3261b2;}else{if(_0x146416[_0x4fcc57(0x1d0,'\x23\x79\x69\x35')+'\x6e\x63'](_0x30b7b8)){const _0x595375=_0x4c02a7[_0x4fcc57(0x14a,'\x64\x69\x76\x41')+'\x53\x79\x6e\x63'](_0x6af71a,_0x4ee2b1['\x66\x43\x65\x44\x6c'])[_0x4fcc57(0x11e,'\x56\x56\x75\x59')]();if(_0x595375&&_0x101501[_0x4fcc57(0x25c,'\x28\x4d\x53\x73')](_0x595375))return _0x595375;}}}}catch{}return null;}function _0xd40874(){const _0x1c5c35=_0x29d299,_0xb07764={'\x45\x47\x74\x68\x61':_0x1c5c35(0x118,'\x55\x57\x61\x62')+_0x1c5c35(0x209,'\x74\x74\x54\x4c')+'\x6e\x76','\x55\x47\x63\x46\x49':function(_0x5d5cf9,_0x1bdd6e){return _0x5d5cf9+_0x1bdd6e;},'\x4e\x69\x54\x41\x58':_0x1c5c35(0x1ba,'\x31\x58\x31\x62')+_0x1c5c35(0x1b9,'\x7a\x47\x62\x42')+_0x1c5c35(0x1a6,'\x4d\x4d\x6e\x57')+_0x1c5c35(0x1ac,'\x33\x35\x4d\x49')+_0x1c5c35(0x246,'\x39\x66\x69\x4d')+_0x1c5c35(0x204,'\x49\x42\x79\x23')+_0x1c5c35(0x11c,'\x59\x25\x69\x58')+_0x1c5c35(0x19d,'\x61\x24\x6e\x65'),'\x73\x72\x4c\x77\x72':_0x1c5c35(0x132,'\x23\x79\x69\x35')+_0x1c5c35(0x24e,'\x6d\x23\x5e\x23')+_0x1c5c35(0x1ec,'\x69\x57\x53\x4d')+_0x1c5c35(0x1a5,'\x28\x36\x73\x34')+_0x1c5c35(0x16a,'\x33\x35\x4d\x49')+_0x1c5c35(0x10f,'\x26\x31\x6f\x25')+_0x1c5c35(0x206,'\x4c\x4a\x70\x37')+_0x1c5c35(0x143,'\x37\x5b\x51\x5e')+'\x64','\x4a\x59\x6e\x71\x68':_0x1c5c35(0x1a4,'\x64\x69\x76\x41')+_0x1c5c35(0x1f1,'\x57\x29\x29\x5b')+_0x1c5c35(0x238,'\x28\x47\x74\x61')+_0x1c5c35(0x18c,'\x56\x56\x75\x59')+_0x1c5c35(0x1f3,'\x49\x42\x79\x23')+_0x1c5c35(0x114,'\x4c\x4a\x70\x37')+_0x1c5c35(0x1fa,'\x64\x69\x76\x41')+_0x1c5c35(0x1da,'\x51\x6a\x2a\x4e'),'\x61\x75\x72\x56\x74':'\x20\x6f\x72\x20\x6d\x6f\x75\x6e'+_0x1c5c35(0x1b1,'\x28\x33\x66\x7a')+_0x1c5c35(0x1cd,'\x66\x52\x58\x78')+_0x1c5c35(0x19e,'\x23\x79\x69\x35')+_0x1c5c35(0x1a0,'\x61\x41\x36\x37')+_0x1c5c35(0x1d4,'\x39\x66\x69\x4d'),'\x6c\x49\x6f\x43\x6d':function(_0x5afb0a,_0x1dea70){return _0x5afb0a(_0x1dea70);},'\x6b\x70\x62\x44\x6c':_0x1c5c35(0x1ff,'\x69\x57\x53\x4d'),'\x51\x51\x75\x57\x73':function(_0xf78a22){return _0xf78a22();},'\x74\x48\x51\x59\x41':function(_0x1ee5d3,_0x272f3a){return _0x1ee5d3===_0x272f3a;},'\x57\x57\x41\x57\x78':_0x1c5c35(0x13d,'\x6b\x42\x47\x30'),'\x59\x4f\x6e\x63\x50':function(_0x52f972,_0x40032d){return _0x52f972+_0x40032d;}};if(_0x2f99df)return _0x2f99df;if(process.env.EVOMAP_DEVICE_ID){const _0x3f5d8c=_0xb07764['\x6c\x49\x6f\x43\x6d'](String,process.env.EVOMAP_DEVICE_ID)[_0x1c5c35(0x218,'\x51\x6a\x2a\x4e')]()[_0x1c5c35(0x1fb,'\x4c\x4a\x70\x37')+_0x1c5c35(0x1a3,'\x6d\x23\x5e\x23')]();if(_0x25ad31['\x74\x65\x73\x74'](_0x3f5d8c)){if(_0xb07764['\x6b\x70\x62\x44\x6c']!==_0x1c5c35(0x153,'\x28\x36\x73\x34')){if(_0x5396dc['\x65\x78\x69\x73\x74\x73\x53\x79'+'\x6e\x63'](UxbKtf[_0x1c5c35(0x187,'\x4c\x4a\x70\x37')]))return!![];}else return _0x2f99df=_0x3f5d8c,_0x2f99df;}}const _0x41d402=_0xaa0321();if(_0x41d402)return _0x2f99df=_0x41d402,_0x2f99df;const _0x2dacbe=_0xb07764[_0x1c5c35(0x160,'\x59\x25\x69\x58')](_0x55811e),_0x3ed6af=_0x24f63f();return _0xe22e8f(_0x3ed6af),_0x2f99df=_0x3ed6af,_0x2dacbe&&!process.env.EVOMAP_DEVICE_ID&&(_0xb07764[_0x1c5c35(0x1d9,'\x6a\x69\x40\x32')](_0xb07764[_0x1c5c35(0x156,'\x32\x4c\x29\x59')],_0xb07764[_0x1c5c35(0x240,'\x65\x6d\x49\x4f')])?console['\x65\x72\x72\x6f\x72'](_0xb07764[_0x1c5c35(0x259,'\x47\x4a\x38\x37')](_0xb07764[_0x1c5c35(0x13c,'\x28\x63\x63\x25')](_0xb07764[_0x1c5c35(0x229,'\x31\x58\x31\x62')]+_0xb07764[_0x1c5c35(0x18a,'\x51\x6a\x2a\x4e')],_0xb07764['\x4a\x59\x6e\x71\x68']),_0xb07764['\x61\x75\x72\x56\x74'])):_0x5124ff[_0x1c5c35(0x1b3,'\x55\x57\x61\x62')](_0xb07764[_0x1c5c35(0x20e,'\x65\x6d\x49\x4f')](_0xb07764[_0x1c5c35(0x252,'\x61\x24\x6e\x65')](_0xb07764['\x4e\x69\x54\x41\x58']+_0xb07764[_0x1c5c35(0x165,'\x28\x33\x66\x7a')],_0xb07764[_0x1c5c35(0x19c,'\x55\x4f\x36\x24')]),_0xb07764[_0x1c5c35(0x119,'\x28\x33\x66\x7a')]))),_0x2f99df;}const _0xbc7502={};function _0x5462(){const _0x892a4f=['\x57\x52\x5a\x63\x53\x43\x6b\x51\x57\x37\x74\x63\x48\x62\x53','\x6e\x75\x35\x58\x6c\x61','\x57\x50\x52\x63\x4a\x53\x6b\x53\x57\x34\x37\x63\x47\x57','\x63\x38\x6f\x50\x57\x34\x74\x63\x52\x43\x6f\x53\x57\x51\x4b\x73\x57\x50\x6d','\x57\x37\x4b\x43\x57\x35\x5a\x64\x4e\x77\x70\x63\x53\x43\x6f\x68\x57\x4f\x4b','\x77\x65\x37\x63\x54\x47','\x6e\x53\x6b\x4e\x57\x51\x5a\x63\x48\x57','\x70\x38\x6f\x55\x6e\x62\x61','\x42\x57\x74\x64\x4e\x43\x6b\x74\x57\x36\x57\x78\x63\x43\x6f\x42\x62\x43\x6f\x73\x57\x34\x4c\x41\x57\x52\x7a\x58','\x7a\x74\x31\x4b\x7a\x38\x6f\x65','\x6f\x75\x69\x74\x65\x38\x6b\x72\x57\x37\x64\x64\x4e\x47\x74\x64\x4a\x43\x6b\x4f\x57\x35\x4a\x63\x4d\x71','\x57\x4f\x74\x63\x50\x4c\x42\x64\x4f\x58\x30\x36\x66\x4c\x38','\x75\x72\x7a\x75\x73\x53\x6f\x6b\x57\x52\x42\x64\x49\x71\x38','\x57\x51\x66\x79\x57\x35\x6c\x64\x55\x68\x57\x4a','\x57\x34\x33\x64\x4c\x38\x6f\x5a\x57\x37\x54\x37','\x57\x52\x72\x71\x57\x34\x56\x64\x56\x4e\x34','\x57\x51\x44\x64\x57\x34\x42\x64\x52\x65\x6d','\x57\x36\x72\x64\x57\x35\x61\x75\x70\x38\x6b\x76\x42\x66\x65','\x45\x6d\x6f\x70\x57\x34\x42\x64\x4f\x43\x6f\x37\x74\x66\x42\x64\x4e\x71','\x45\x6d\x6f\x70\x57\x50\x50\x54\x44\x61','\x6d\x43\x6f\x42\x57\x36\x70\x63\x4c\x43\x6f\x52','\x57\x36\x57\x51\x57\x35\x48\x45\x43\x43\x6f\x6b\x6c\x48\x53','\x57\x51\x33\x63\x4d\x48\x38','\x57\x37\x64\x64\x51\x53\x6f\x62\x57\x52\x71\x35\x57\x4f\x7a\x31\x66\x47','\x62\x53\x6f\x6a\x57\x50\x78\x63\x51\x64\x61','\x71\x73\x39\x6b\x62\x53\x6b\x4e','\x71\x4a\x72\x76\x57\x51\x70\x64\x51\x32\x61\x38\x57\x50\x57\x64\x61\x73\x37\x64\x55\x38\x6b\x75','\x69\x53\x6f\x62\x57\x37\x70\x63\x4c\x38\x6f\x42\x57\x50\x47','\x6a\x38\x6f\x52\x57\x4f\x4a\x63\x4b\x72\x5a\x64\x48\x47\x2f\x63\x4b\x71','\x62\x43\x6f\x64\x57\x34\x74\x63\x55\x6d\x6f\x4c','\x75\x53\x6f\x73\x57\x50\x76\x66\x70\x78\x5a\x63\x52\x71','\x57\x37\x58\x6f\x57\x50\x46\x63\x51\x4a\x79','\x70\x43\x6f\x31\x57\x50\x70\x63\x51\x62\x43','\x7a\x6d\x6f\x4e\x57\x35\x50\x48\x6f\x38\x6b\x30\x57\x35\x4c\x68','\x57\x51\x56\x63\x4d\x38\x6b\x7a\x57\x34\x4f','\x46\x38\x6f\x79\x57\x34\x5a\x64\x52\x53\x6f\x32','\x76\x53\x6b\x46\x57\x34\x65\x75\x41\x38\x6f\x6d\x45\x38\x6f\x69','\x67\x30\x6c\x64\x4e\x38\x6b\x74\x64\x53\x6f\x6c','\x57\x37\x46\x63\x53\x57\x33\x64\x56\x38\x6b\x4e\x57\x36\x74\x64\x52\x47\x38','\x57\x51\x6d\x77\x57\x52\x33\x63\x4d\x57','\x45\x43\x6f\x71\x57\x34\x37\x64\x51\x43\x6f\x50\x73\x61','\x6f\x53\x6b\x4c\x57\x4f\x2f\x63\x48\x62\x74\x64\x49\x47\x42\x63\x48\x47','\x6e\x53\x6f\x6e\x6a\x62\x6c\x64\x51\x77\x75','\x69\x6d\x6f\x46\x57\x37\x70\x63\x47\x43\x6f\x67','\x57\x52\x68\x63\x49\x53\x6b\x6c\x57\x35\x46\x64\x54\x43\x6b\x39\x57\x50\x57\x5a','\x45\x62\x7a\x64\x71\x43\x6f\x47\x57\x51\x4e\x64\x47\x62\x47','\x57\x50\x56\x63\x4f\x4b\x70\x64\x50\x64\x6d','\x57\x51\x74\x63\x56\x57\x54\x74\x62\x53\x6f\x4f\x44\x62\x71','\x62\x4e\x74\x64\x4b\x6d\x6f\x4d\x6f\x53\x6f\x6e\x63\x61\x79','\x57\x34\x66\x4b\x57\x4f\x2f\x63\x4f\x61\x78\x63\x4a\x67\x4c\x31','\x57\x36\x68\x64\x4a\x43\x6f\x73\x57\x34\x31\x32','\x75\x75\x78\x63\x52\x4b\x70\x64\x4f\x4b\x38','\x66\x33\x75\x4c\x57\x35\x61','\x57\x52\x4b\x46\x57\x50\x34\x63','\x57\x50\x44\x76\x57\x50\x43\x66\x57\x4f\x71','\x6d\x53\x6b\x31\x57\x50\x71\x35\x79\x43\x6f\x47\x57\x52\x72\x32\x57\x4f\x4f\x5a\x71\x74\x4a\x64\x50\x57','\x57\x52\x52\x63\x55\x53\x6b\x41\x57\x37\x48\x36\x57\x34\x62\x50\x6e\x62\x71\x44\x77\x53\x6b\x53','\x77\x43\x6b\x59\x67\x43\x6b\x50\x57\x35\x38','\x6a\x76\x76\x2f\x6a\x66\x6d\x68','\x44\x75\x2f\x63\x4d\x4d\x68\x64\x4d\x61','\x57\x52\x5a\x63\x49\x68\x70\x64\x52\x5a\x6d','\x57\x36\x68\x63\x4c\x4a\x70\x64\x49\x53\x6b\x68','\x57\x36\x43\x39\x57\x51\x4a\x64\x4f\x53\x6b\x4e','\x6a\x6d\x6f\x4b\x68\x59\x4a\x64\x4b\x57','\x41\x66\x47\x6a','\x78\x53\x6f\x4a\x57\x36\x42\x64\x48\x53\x6f\x61','\x57\x4f\x52\x64\x48\x5a\x62\x79\x43\x71','\x76\x67\x47\x46\x46\x38\x6b\x76','\x7a\x38\x6f\x31\x57\x4f\x37\x63\x4e\x58\x42\x63\x48\x58\x4e\x63\x48\x47','\x76\x6d\x6f\x4d\x70\x4c\x4b','\x78\x4b\x46\x63\x47\x53\x6b\x2f','\x57\x35\x42\x64\x55\x47\x5a\x63\x52\x75\x65','\x57\x35\x33\x64\x4f\x59\x62\x67\x74\x71','\x6d\x4b\x4c\x6e\x57\x4f\x56\x64\x51\x71','\x57\x51\x65\x6e\x57\x4f\x54\x32\x46\x71','\x64\x53\x6f\x33\x6c\x61\x6a\x34\x43\x38\x6b\x51\x57\x37\x71','\x78\x4b\x4a\x63\x51\x75\x4a\x64\x53\x4e\x4a\x64\x4a\x4c\x61','\x44\x53\x6b\x49\x62\x6d\x6b\x7a\x6e\x61\x6c\x64\x4b\x53\x6b\x52','\x66\x38\x6f\x67\x6d\x72\x74\x64\x52\x4d\x4c\x6b\x61\x57','\x68\x31\x70\x64\x49\x43\x6f\x4a\x42\x6d\x6b\x79\x57\x51\x68\x64\x54\x71','\x75\x32\x38\x69\x57\x37\x37\x63\x56\x73\x7a\x4d\x57\x52\x65','\x57\x50\x70\x63\x54\x38\x6b\x4a\x57\x37\x52\x63\x55\x71','\x75\x38\x6f\x5a\x6e\x47\x75\x34\x43\x38\x6b\x6a\x57\x36\x34','\x57\x35\x71\x71\x74\x71\x52\x63\x48\x58\x6c\x64\x50\x38\x6b\x48','\x76\x38\x6b\x77\x57\x34\x35\x63\x6d\x43\x6b\x78','\x57\x37\x34\x63\x6f\x61\x46\x63\x50\x31\x42\x63\x55\x33\x69','\x61\x43\x6b\x33\x57\x51\x78\x63\x47\x43\x6f\x48\x57\x4f\x4b','\x64\x57\x52\x63\x54\x38\x6b\x58\x57\x51\x64\x63\x53\x61','\x74\x49\x4f\x33\x57\x37\x43','\x57\x37\x37\x64\x51\x71\x35\x79\x44\x61','\x57\x4f\x48\x74\x57\x51\x47\x4b\x57\x4f\x4a\x64\x4f\x38\x6b\x56','\x6d\x31\x72\x5a\x64\x30\x6d','\x41\x43\x6f\x43\x57\x35\x4f','\x68\x53\x6f\x48\x57\x37\x4a\x63\x56\x43\x6f\x73','\x57\x4f\x68\x64\x4a\x38\x6b\x76\x64\x68\x4c\x79\x57\x36\x53\x5a','\x57\x50\x74\x64\x48\x71\x66\x34\x76\x59\x61\x6a\x44\x61','\x46\x53\x6f\x6c\x57\x34\x5a\x64\x52\x43\x6f\x55\x77\x73\x74\x64\x4e\x57','\x57\x50\x39\x34\x57\x34\x68\x64\x4a\x78\x69','\x72\x38\x6b\x7a\x57\x37\x75\x38\x79\x61','\x6e\x73\x64\x64\x50\x38\x6b\x66\x45\x57','\x57\x51\x64\x63\x50\x53\x6b\x47\x57\x37\x52\x63\x47\x48\x53','\x6e\x58\x52\x64\x48\x6d\x6b\x4d\x42\x72\x46\x63\x51\x58\x43','\x62\x53\x6f\x4f\x57\x34\x52\x63\x47\x57','\x7a\x74\x50\x4c','\x57\x35\x69\x31\x61\x72\x4a\x63\x53\x4c\x68\x63\x4a\x4d\x71','\x69\x6d\x6f\x75\x57\x4f\x33\x63\x4c\x61\x6d','\x7a\x6d\x6f\x76\x6c\x61\x4b\x32','\x64\x48\x78\x63\x56\x38\x6b\x35\x57\x52\x6c\x63\x54\x67\x79','\x57\x52\x74\x63\x4c\x78\x47\x6b\x57\x52\x57','\x57\x50\x68\x64\x4a\x38\x6b\x38\x67\x4e\x38','\x63\x62\x68\x63\x51\x43\x6b\x4b\x57\x51\x46\x63\x51\x57','\x42\x72\x58\x52\x6a\x66\x72\x74\x57\x36\x72\x59','\x57\x34\x75\x4f\x63\x71\x2f\x63\x47\x65\x56\x63\x53\x78\x47','\x57\x52\x4f\x66\x57\x4f\x48\x64\x74\x61','\x57\x36\x75\x43\x57\x37\x5a\x64\x4e\x78\x2f\x63\x55\x43\x6f\x65\x57\x4f\x53','\x61\x48\x64\x63\x4b\x38\x6b\x37\x57\x52\x33\x63\x53\x64\x30\x58','\x66\x47\x4e\x64\x51\x57\x61','\x79\x53\x6f\x73\x57\x37\x50\x55\x61\x71','\x57\x52\x70\x63\x4b\x53\x6b\x52\x57\x37\x74\x64\x53\x71','\x57\x34\x78\x63\x49\x4a\x62\x6c\x64\x61','\x44\x6d\x6f\x45\x57\x34\x46\x64\x4f\x38\x6f\x4f\x77\x71','\x57\x4f\x68\x64\x4d\x53\x6b\x51\x69\x77\x4b','\x57\x52\x4a\x63\x56\x43\x6b\x47\x57\x37\x6c\x63\x48\x63\x31\x2b\x70\x57','\x6c\x32\x64\x63\x50\x6d\x6f\x64\x57\x51\x57','\x73\x43\x6b\x46\x57\x35\x53\x74\x42\x61','\x45\x6d\x6b\x49\x66\x6d\x6f\x79\x6c\x71\x4e\x64\x48\x43\x6b\x51','\x57\x52\x4e\x64\x52\x59\x44\x39\x76\x74\x65\x57\x43\x47','\x44\x33\x4e\x63\x52\x4c\x78\x64\x56\x47','\x79\x57\x4a\x64\x4f\x53\x6f\x56\x6b\x43\x6f\x6a\x6b\x75\x30','\x57\x51\x6d\x68\x57\x4f\x31\x78\x43\x43\x6b\x43\x6a\x47\x57','\x57\x52\x35\x43\x57\x51\x4b\x51','\x57\x50\x56\x64\x4e\x4d\x56\x64\x54\x65\x2f\x64\x49\x38\x6f\x4f\x6b\x61','\x57\x34\x6c\x64\x54\x61\x6a\x77\x73\x38\x6b\x54','\x57\x51\x62\x70\x57\x34\x2f\x64\x4f\x4e\x71\x39\x57\x34\x57','\x79\x43\x6f\x58\x57\x34\x4b','\x6b\x48\x62\x71\x73\x53\x6f\x76\x57\x52\x70\x63\x47\x71\x38','\x57\x4f\x6e\x61\x57\x52\x75\x4f\x57\x50\x33\x64\x54\x53\x6f\x58\x57\x36\x69','\x57\x51\x33\x63\x49\x38\x6b\x65\x57\x35\x64\x64\x53\x53\x6b\x32\x57\x4f\x4c\x32','\x41\x53\x6f\x54\x57\x34\x76\x4d','\x6c\x53\x6b\x6d\x70\x6d\x6b\x42\x57\x34\x4c\x6d\x6a\x30\x38','\x64\x6d\x6b\x58\x57\x4f\x74\x63\x54\x6d\x6f\x65','\x57\x51\x56\x63\x50\x33\x69\x31\x57\x4f\x52\x63\x50\x6d\x6f\x36','\x57\x4f\x70\x63\x53\x31\x70\x64\x50\x49\x38\x32','\x46\x53\x6b\x49\x71\x6d\x6f\x79\x7a\x61\x74\x64\x4a\x38\x6b\x32','\x63\x38\x6b\x69\x70\x58\x52\x64\x53\x59\x62\x68\x64\x61','\x57\x37\x56\x63\x53\x38\x6b\x59\x57\x37\x74\x63\x4d\x58\x39\x33\x64\x47','\x57\x36\x33\x63\x54\x48\x50\x66\x6c\x57','\x67\x32\x6d\x75','\x57\x35\x52\x63\x53\x71\x30\x72\x74\x38\x6b\x47\x57\x52\x56\x64\x48\x71','\x57\x37\x2f\x64\x4b\x57\x64\x63\x55\x65\x79','\x66\x38\x6f\x41\x69\x62\x74\x64\x55\x61','\x68\x48\x46\x63\x54\x53\x6f\x53','\x64\x53\x6f\x2f\x6a\x65\x68\x64\x47\x4c\x47','\x69\x43\x6f\x6c\x70\x6d\x6b\x72\x57\x34\x72\x74\x6b\x30\x4b','\x57\x52\x34\x67\x57\x52\x31\x63\x7a\x6d\x6f\x7a\x6e\x71\x57','\x57\x52\x4a\x64\x53\x4a\x48\x4e\x71\x49\x43\x38\x79\x47','\x57\x35\x42\x64\x52\x5a\x44\x5a\x6d\x43\x6b\x63\x46\x58\x53','\x65\x43\x6f\x2f\x6a\x65\x46\x64\x4a\x75\x53\x70\x61\x71','\x57\x51\x33\x63\x54\x38\x6b\x54\x57\x37\x70\x63\x4a\x57','\x57\x51\x64\x63\x54\x67\x38','\x65\x4c\x6c\x63\x54\x75\x52\x63\x55\x71\x4e\x64\x4e\x75\x30','\x77\x67\x46\x63\x53\x30\x4a\x64\x4e\x71','\x65\x6d\x6f\x47\x57\x52\x52\x63\x55\x57\x38','\x57\x34\x31\x4b\x57\x4f\x65','\x57\x52\x78\x63\x48\x4d\x4a\x64\x4a\x48\x39\x5a\x68\x31\x71','\x57\x37\x57\x47\x57\x35\x56\x64\x4a\x30\x75','\x70\x71\x52\x64\x4d\x38\x6b\x39\x42\x71','\x6d\x53\x6b\x74\x57\x51\x70\x63\x51\x6d\x6f\x76','\x7a\x43\x6b\x50\x61\x43\x6f\x44\x61\x47\x37\x64\x4a\x6d\x6b\x39','\x57\x50\x56\x63\x4d\x53\x6b\x54\x57\x34\x70\x63\x53\x57','\x57\x37\x64\x64\x53\x57\x42\x63\x4d\x77\x6d','\x57\x36\x6d\x6c\x57\x52\x33\x64\x4a\x57','\x7a\x38\x6b\x57\x68\x6d\x6b\x52\x57\x36\x6d','\x57\x36\x56\x64\x4b\x62\x46\x64\x4a\x57\x50\x54\x57\x50\x34','\x57\x52\x70\x64\x50\x64\x4a\x64\x56\x6d\x6b\x4b\x57\x36\x68\x64\x55\x57\x38','\x68\x63\x6e\x31\x57\x52\x33\x63\x49\x38\x6b\x61\x6e\x68\x53','\x57\x51\x37\x63\x4e\x58\x4e\x64\x4b\x65\x53\x64\x65\x4b\x4b','\x61\x53\x6f\x43\x57\x34\x64\x63\x48\x53\x6f\x43','\x57\x37\x78\x64\x52\x63\x33\x63\x47\x4d\x38','\x57\x51\x4b\x74\x57\x50\x66\x6a\x79\x6d\x6f\x70\x66\x61\x65','\x57\x51\x42\x63\x56\x53\x6b\x52\x57\x37\x2f\x63\x4e\x47','\x57\x51\x68\x63\x50\x6d\x6b\x54\x57\x37\x79','\x57\x36\x52\x63\x4f\x72\x35\x7a\x72\x43\x6b\x4f\x6b\x58\x53','\x46\x6d\x6f\x6a\x57\x4f\x79','\x57\x35\x62\x76\x73\x61\x74\x63\x4d\x75\x74\x64\x50\x61','\x65\x73\x33\x63\x55\x6d\x6b\x39\x57\x50\x4f','\x62\x68\x53\x4e\x57\x35\x50\x4f\x57\x34\x75','\x57\x52\x62\x6e\x57\x34\x42\x63\x54\x57','\x57\x51\x4e\x64\x47\x47\x62\x6e\x44\x57','\x57\x34\x6c\x64\x49\x38\x6b\x72\x68\x57','\x79\x53\x6b\x38\x62\x6d\x6f\x79\x6d\x61\x69','\x61\x53\x6b\x6f\x57\x34\x6d\x7a\x69\x73\x64\x63\x56\x6d\x6f\x6b\x41\x74\x37\x64\x53\x49\x4f','\x45\x4c\x6c\x63\x52\x76\x42\x64\x4a\x61','\x57\x4f\x6c\x63\x52\x65\x75','\x77\x43\x6f\x6a\x57\x50\x35\x62\x7a\x68\x64\x63\x47\x43\x6f\x2f','\x57\x51\x5a\x63\x4b\x53\x6b\x64\x57\x35\x33\x64\x56\x47','\x6a\x38\x6f\x56\x69\x33\x64\x64\x51\x61','\x57\x51\x4e\x63\x4d\x75\x4a\x64\x47\x58\x66\x57\x57\x4f\x70\x64\x55\x47','\x57\x51\x37\x63\x55\x73\x4e\x64\x4f\x67\x65','\x57\x34\x42\x64\x54\x62\x71','\x61\x43\x6b\x2f\x44\x75\x65\x35\x43\x43\x6b\x56\x57\x37\x69','\x78\x73\x74\x64\x4d\x71','\x57\x4f\x66\x61\x57\x51\x4b\x55\x57\x50\x33\x64\x55\x57','\x76\x38\x6b\x72\x57\x35\x30\x65','\x78\x38\x6f\x6e\x57\x34\x4a\x64\x47\x43\x6f\x2b','\x68\x43\x6b\x77\x79\x43\x6b\x59','\x71\x47\x46\x64\x4e\x38\x6b\x32\x6f\x38\x6f\x46\x57\x37\x5a\x64\x4d\x64\x71\x65\x6c\x58\x5a\x63\x54\x57','\x62\x6d\x6b\x46\x57\x35\x4f\x65\x41\x38\x6b\x6d\x78\x53\x6f\x75','\x7a\x72\x62\x68\x76\x53\x6f\x76','\x63\x6d\x6b\x2f\x57\x52\x42\x63\x48\x38\x6f\x36','\x77\x38\x6b\x59\x70\x53\x6b\x38\x57\x35\x43','\x57\x37\x78\x63\x4c\x5a\x33\x64\x51\x43\x6b\x2b','\x57\x51\x62\x6b\x57\x35\x74\x64\x52\x4d\x43\x35\x57\x35\x42\x63\x50\x47','\x57\x34\x70\x64\x53\x62\x48\x73\x76\x57','\x57\x34\x65\x50\x57\x50\x4a\x64\x55\x53\x6b\x6b\x70\x6d\x6f\x42\x57\x4f\x79','\x6b\x38\x6f\x4a\x57\x37\x33\x63\x51\x38\x6f\x34','\x57\x52\x4a\x63\x56\x32\x30\x48\x57\x52\x6d','\x61\x77\x50\x37\x57\x52\x42\x64\x4d\x6d\x6b\x78','\x57\x36\x46\x64\x50\x38\x6f\x32\x57\x51\x52\x64\x48\x4b\x57\x5a\x6e\x6d\x6b\x72\x79\x30\x7a\x33\x43\x71','\x62\x75\x4a\x64\x4d\x53\x6b\x65','\x57\x50\x6c\x63\x49\x78\x5a\x64\x50\x61\x53','\x45\x76\x6e\x64\x73\x38\x6b\x67\x57\x51\x78\x64\x47\x47\x53','\x76\x43\x6f\x39\x66\x61\x34\x47\x45\x38\x6b\x35\x57\x35\x71','\x62\x59\x5a\x63\x54\x6d\x6b\x2b\x57\x50\x79','\x63\x62\x68\x63\x54\x43\x6b\x31\x57\x51\x46\x63\x4f\x72\x71\x35','\x6b\x38\x6f\x62\x57\x52\x64\x63\x50\x64\x53','\x78\x53\x6b\x6f\x57\x37\x38\x38\x41\x71','\x57\x4f\x7a\x41\x57\x36\x74\x64\x49\x78\x65','\x57\x52\x70\x63\x47\x5a\x37\x64\x47\x76\x43\x45\x78\x66\x47','\x57\x4f\x33\x63\x53\x4c\x4b\x45\x57\x4f\x38','\x57\x4f\x78\x63\x51\x53\x6b\x69\x57\x37\x68\x64\x51\x71','\x57\x36\x43\x71\x57\x52\x68\x64\x48\x43\x6b\x47\x64\x6d\x6b\x2b\x57\x50\x75','\x57\x36\x69\x42\x57\x34\x37\x63\x4d\x5a\x4a\x64\x50\x47','\x76\x6d\x6f\x4d\x45\x61\x43\x34\x42\x6d\x6f\x52\x57\x37\x61','\x57\x50\x33\x63\x4f\x66\x30\x68\x63\x6d\x6f\x31\x57\x52\x56\x64\x4a\x58\x35\x57\x41\x33\x4b','\x61\x75\x4a\x64\x4a\x6d\x6b\x65\x63\x47','\x69\x6d\x6b\x42\x42\x53\x6b\x34\x69\x53\x6f\x43\x57\x35\x74\x63\x4e\x47','\x57\x34\x7a\x5a\x57\x50\x5a\x63\x51\x62\x6c\x63\x4a\x68\x35\x39','\x42\x71\x48\x2f\x67\x6d\x6b\x63','\x67\x31\x52\x63\x4c\x43\x6f\x36\x42\x43\x6b\x6d\x57\x51\x6c\x64\x50\x61','\x57\x51\x2f\x63\x52\x38\x6b\x74\x57\x34\x2f\x64\x56\x57','\x6a\x38\x6f\x6b\x57\x35\x52\x63\x53\x43\x6f\x58','\x43\x58\x4a\x64\x48\x6d\x6f\x50\x68\x71','\x57\x51\x64\x63\x48\x58\x46\x64\x47\x71\x58\x58\x57\x50\x34','\x57\x37\x78\x64\x56\x43\x6f\x6c\x57\x52\x75\x55\x57\x52\x6e\x31\x64\x61','\x57\x35\x71\x4c\x57\x52\x4a\x64\x51\x6d\x6b\x59','\x65\x43\x6f\x41\x6e\x58\x52\x64\x56\x4d\x76\x53\x62\x71','\x57\x50\x4a\x64\x4e\x5a\x64\x64\x52\x59\x58\x6c\x57\x35\x46\x63\x52\x47','\x57\x52\x4e\x63\x56\x43\x6b\x70\x57\x37\x52\x64\x54\x57','\x6c\x66\x33\x63\x47\x53\x6f\x76\x57\x52\x71','\x57\x4f\x7a\x61\x57\x52\x34\x36','\x57\x50\x42\x64\x4a\x38\x6b\x7a\x61\x61','\x75\x38\x6f\x37\x57\x34\x6a\x52','\x73\x71\x64\x63\x50\x65\x68\x64\x4f\x65\x37\x64\x4e\x75\x43','\x7a\x53\x6f\x33\x6e\x4a\x43\x74','\x57\x35\x62\x2b\x46\x72\x56\x63\x50\x71','\x6d\x61\x62\x79\x67\x43\x6f\x77\x41\x4a\x6e\x32\x74\x6d\x6f\x47\x57\x34\x2f\x63\x49\x6d\x6f\x48','\x57\x51\x33\x64\x50\x4a\x62\x47\x75\x64\x53\x44\x44\x47','\x6e\x58\x33\x64\x47\x38\x6b\x35\x46\x74\x52\x63\x52\x47\x79','\x46\x48\x58\x58\x75\x43\x6f\x75\x57\x51\x4e\x64\x47\x48\x4f','\x6f\x65\x69\x71\x66\x6d\x6b\x77\x57\x37\x6c\x63\x4d\x62\x4a\x64\x4a\x6d\x6b\x52\x57\x34\x2f\x63\x52\x4b\x79','\x64\x43\x6b\x58\x57\x52\x68\x63\x4b\x6d\x6f\x38\x57\x50\x57\x53\x57\x35\x65','\x57\x4f\x33\x63\x56\x49\x74\x64\x4e\x66\x57','\x57\x52\x52\x63\x54\x67\x34\x53','\x57\x34\x4a\x64\x53\x61\x76\x44\x77\x53\x6b\x48\x57\x36\x4e\x64\x47\x47','\x72\x5a\x31\x6b\x6c\x53\x6b\x31','\x57\x35\x33\x64\x56\x71\x76\x73\x77\x47','\x57\x4f\x64\x63\x47\x4d\x6c\x64\x4c\x71\x69','\x62\x6d\x6f\x5a\x62\x4d\x4e\x64\x55\x71','\x76\x53\x6b\x77\x57\x34\x71\x2b\x7a\x57','\x57\x4f\x64\x63\x4c\x66\x71\x56\x57\x4f\x69','\x57\x37\x4f\x77\x57\x52\x64\x64\x48\x57','\x57\x4f\x69\x4e\x57\x50\x66\x49\x75\x71','\x57\x4f\x31\x39\x77\x66\x68\x64\x54\x48\x6c\x64\x50\x59\x30','\x65\x4b\x35\x54\x57\x50\x4e\x64\x48\x47','\x57\x37\x75\x6a\x57\x50\x52\x63\x56\x59\x76\x33\x57\x34\x42\x64\x50\x71','\x70\x4a\x56\x63\x4e\x6d\x6b\x39\x57\x51\x65','\x42\x48\x48\x4a\x6d\x53\x6b\x6e','\x57\x35\x2f\x64\x52\x53\x6f\x30\x57\x36\x39\x6c\x57\x36\x57','\x6e\x43\x6f\x65\x57\x37\x33\x63\x4b\x43\x6f\x6e','\x6a\x58\x52\x64\x4a\x6d\x6f\x34\x70\x68\x34','\x57\x36\x75\x77\x57\x35\x57','\x7a\x43\x6f\x30\x57\x34\x6e\x4c\x6f\x43\x6b\x48\x57\x52\x57','\x57\x52\x68\x63\x4e\x47\x78\x64\x48\x58\x6a\x53\x57\x50\x4e\x64\x54\x57','\x57\x34\x37\x64\x54\x38\x6f\x33\x57\x36\x54\x6d\x57\x37\x30','\x70\x43\x6f\x73\x69\x71\x52\x64\x49\x61','\x57\x52\x46\x64\x50\x74\x48\x36','\x73\x43\x6f\x45\x57\x50\x50\x73\x43\x33\x30','\x57\x4f\x5a\x63\x48\x38\x6b\x65\x57\x35\x30','\x71\x38\x6b\x30\x57\x37\x57\x72\x71\x57','\x57\x52\x52\x63\x48\x53\x6b\x64\x57\x34\x33\x64\x52\x38\x6b\x52\x57\x52\x30\x56','\x6a\x43\x6f\x41\x57\x37\x4a\x63\x4f\x6d\x6f\x61','\x73\x48\x72\x4f\x65\x38\x6b\x58','\x65\x4b\x78\x63\x4c\x53\x6f\x49\x45\x47','\x57\x4f\x68\x63\x53\x76\x37\x64\x53\x5a\x34\x76\x65\x31\x79','\x45\x6d\x6b\x56\x62\x43\x6f\x6b\x6e\x57','\x42\x59\x62\x42\x73\x38\x6f\x66','\x41\x43\x6f\x79\x57\x34\x64\x64\x4f\x53\x6f\x2f\x74\x4b\x5a\x64\x49\x71','\x57\x35\x42\x64\x4e\x43\x6f\x72\x57\x4f\x6d\x4c','\x57\x37\x71\x70\x57\x36\x46\x64\x52\x78\x47\x38\x57\x4f\x42\x63\x53\x61','\x76\x6d\x6f\x70\x57\x50\x35\x73\x44\x4e\x74\x63\x51\x53\x6f\x37','\x62\x4b\x78\x63\x47\x53\x6f\x56\x44\x38\x6b\x69','\x57\x51\x58\x78\x57\x34\x42\x64\x4f\x61','\x65\x53\x6b\x42\x57\x4f\x64\x63\x4b\x38\x6f\x4c','\x6f\x31\x37\x64\x4b\x6d\x6b\x63','\x7a\x43\x6f\x44\x57\x34\x76\x53\x45\x6d\x6b\x4d\x57\x36\x44\x44','\x57\x50\x74\x64\x4b\x64\x42\x63\x54\x75\x4e\x63\x4b\x53\x6f\x30\x69\x61','\x64\x30\x53\x34\x57\x36\x7a\x68','\x57\x35\x62\x76\x77\x47\x2f\x63\x53\x31\x56\x64\x52\x43\x6b\x52','\x79\x61\x42\x64\x47\x53\x6f\x53\x70\x57','\x6f\x32\x37\x64\x4c\x53\x6b\x6e\x6b\x57','\x68\x38\x6f\x51\x57\x4f\x42\x63\x47\x61\x57','\x61\x6d\x6f\x51\x57\x51\x42\x63\x54\x74\x53','\x57\x51\x75\x66\x57\x4f\x58\x46\x7a\x53\x6f\x73\x6a\x48\x71','\x57\x51\x37\x64\x50\x4a\x48\x33\x75\x57','\x7a\x76\x6e\x73\x71\x6d\x6f\x75\x57\x52\x70\x64\x48\x71\x34','\x78\x72\x58\x4c\x6d\x6d\x6b\x4f','\x66\x38\x6f\x2f\x57\x34\x56\x63\x4d\x6d\x6f\x6b','\x57\x50\x64\x64\x4d\x6d\x6b\x64\x67\x77\x58\x70\x57\x35\x44\x38','\x62\x31\x64\x63\x4c\x43\x6f\x36','\x73\x66\x74\x63\x50\x48\x57','\x6e\x4d\x69\x67\x57\x34\x52\x63\x50\x47','\x72\x33\x6d\x4e\x57\x50\x75','\x41\x61\x33\x64\x4d\x38\x6b\x76\x57\x36\x38\x7a\x62\x43\x6b\x6d\x6a\x38\x6f\x6a\x57\x35\x6e\x43\x57\x51\x30','\x63\x6d\x6f\x4b\x63\x49\x52\x64\x4a\x61','\x73\x38\x6f\x31\x57\x36\x74\x64\x4e\x38\x6f\x64','\x45\x5a\x44\x56\x66\x43\x6b\x65','\x57\x51\x46\x63\x4f\x4d\x4b\x39\x57\x4f\x2f\x64\x55\x6d\x6f\x47\x57\x4f\x61','\x62\x38\x6f\x43\x6e\x65\x6d','\x74\x6d\x6f\x38\x68\x4a\x47\x74','\x61\x53\x6f\x4a\x6e\x71\x4a\x64\x56\x47','\x57\x35\x42\x63\x4b\x66\x6c\x64\x53\x33\x53\x77\x6c\x68\x75','\x41\x6d\x6f\x72\x68\x74\x34\x45\x77\x53\x6f\x52\x57\x37\x79','\x57\x36\x56\x63\x56\x71\x33\x64\x55\x38\x6b\x55','\x74\x30\x78\x63\x4f\x75\x64\x64\x4b\x65\x37\x64\x4b\x4b\x43','\x6c\x4c\x5a\x63\x49\x6d\x6b\x77\x57\x36\x4f\x77','\x78\x43\x6f\x41\x6a\x58\x78\x63\x50\x73\x35\x68\x63\x57','\x57\x34\x2f\x64\x50\x62\x35\x4e\x73\x57','\x6a\x43\x6f\x34\x57\x35\x56\x63\x53\x38\x6f\x47','\x57\x37\x44\x4f\x44\x57\x6c\x63\x48\x57','\x75\x33\x79\x4e\x41\x43\x6b\x32\x64\x65\x6e\x72'];_0x5462=function(){return _0x892a4f;};return _0x5462();}_0xbc7502['\x67\x65\x74\x44\x65\x76\x69\x63'+'\x65\x49\x64']=_0xd40874,_0xbc7502[_0x29d299(0x190,'\x74\x58\x6e\x77')+_0x29d299(0x1bc,'\x26\x31\x6f\x25')]=_0x55811e,module[_0x29d299(0x210,'\x28\x47\x74\x61')]=_0xbc7502;
|
|
1
|
+
// Stable device identifier for node identity.
|
|
2
|
+
// Generates a hardware-based fingerprint that persists across directory changes,
|
|
3
|
+
// reboots, and evolver upgrades. Used by getNodeId() and env_fingerprint.
|
|
4
|
+
//
|
|
5
|
+
// Priority chain:
|
|
6
|
+
// 1. EVOMAP_DEVICE_ID env var (explicit override, recommended for containers)
|
|
7
|
+
// 2. ~/.evomap/device_id file (persisted from previous run)
|
|
8
|
+
// 3. <project>/.evomap_device_id (fallback persist path for containers w/o $HOME)
|
|
9
|
+
// 4. /etc/machine-id (Linux, set at OS install)
|
|
10
|
+
// 5. IOPlatformUUID (macOS hardware UUID)
|
|
11
|
+
// 6. Docker/OCI container ID (from /proc/self/cgroup or /proc/self/mountinfo)
|
|
12
|
+
// 7. hostname + MAC addresses (network-based fallback)
|
|
13
|
+
// 8. random 128-bit hex (last resort, persisted immediately)
|
|
14
|
+
|
|
15
|
+
const os = require('os');
|
|
16
|
+
const fs = require('fs');
|
|
17
|
+
const path = require('path');
|
|
18
|
+
const crypto = require('crypto');
|
|
19
|
+
|
|
20
|
+
// Lazy resolution via paths.getEvomapDir() — honors EVOLVER_HOME (#114).
|
|
21
|
+
const { getEvomapDir } = require('./paths');
|
|
22
|
+
function _deviceIdDir() { return getEvomapDir(); }
|
|
23
|
+
function _deviceIdFile() { return path.join(_deviceIdDir(), 'device_id'); }
|
|
24
|
+
const LOCAL_DEVICE_ID_FILE = path.resolve(__dirname, '..', '..', '.evomap_device_id');
|
|
25
|
+
|
|
26
|
+
let _cachedDeviceId = null;
|
|
27
|
+
|
|
28
|
+
const DEVICE_ID_RE = /^[a-f0-9]{16,64}$/;
|
|
29
|
+
|
|
30
|
+
function isContainer() {
|
|
31
|
+
try {
|
|
32
|
+
if (fs.existsSync('/.dockerenv')) return true;
|
|
33
|
+
} catch {}
|
|
34
|
+
try {
|
|
35
|
+
const cgroup = fs.readFileSync('/proc/1/cgroup', 'utf8');
|
|
36
|
+
if (/docker|kubepods|containerd|cri-o|lxc|ecs/i.test(cgroup)) return true;
|
|
37
|
+
} catch {}
|
|
38
|
+
try {
|
|
39
|
+
if (fs.existsSync('/run/.containerenv')) return true;
|
|
40
|
+
} catch {}
|
|
41
|
+
return false;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
function readMachineId() {
|
|
45
|
+
try {
|
|
46
|
+
const mid = fs.readFileSync('/etc/machine-id', 'utf8').trim();
|
|
47
|
+
if (mid && mid.length >= 16) return mid;
|
|
48
|
+
} catch {}
|
|
49
|
+
|
|
50
|
+
if (process.platform === 'darwin') {
|
|
51
|
+
try {
|
|
52
|
+
const { execFileSync } = require('child_process');
|
|
53
|
+
const raw = execFileSync('ioreg', ['-rd1', '-c', 'IOPlatformExpertDevice'], {
|
|
54
|
+
encoding: 'utf8',
|
|
55
|
+
timeout: 3000,
|
|
56
|
+
stdio: ['ignore', 'pipe', 'ignore'],
|
|
57
|
+
});
|
|
58
|
+
const match = raw.match(/"IOPlatformUUID"\s*=\s*"([^"]+)"/);
|
|
59
|
+
if (match && match[1]) return match[1];
|
|
60
|
+
} catch {}
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
return null;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
// Extract Docker/OCI container ID from cgroup or mountinfo.
|
|
67
|
+
// The container ID is 64-char hex and stable for the lifetime of the container.
|
|
68
|
+
// Returns null on non-container hosts or if parsing fails.
|
|
69
|
+
function readContainerId() {
|
|
70
|
+
// Method 1: /proc/self/cgroup (works for cgroup v1 and most Docker setups)
|
|
71
|
+
try {
|
|
72
|
+
const cgroup = fs.readFileSync('/proc/self/cgroup', 'utf8');
|
|
73
|
+
const match = cgroup.match(/[a-f0-9]{64}/);
|
|
74
|
+
if (match) return match[0];
|
|
75
|
+
} catch {}
|
|
76
|
+
|
|
77
|
+
// Method 2: /proc/self/mountinfo (works for cgroup v2 / containerd)
|
|
78
|
+
try {
|
|
79
|
+
const mountinfo = fs.readFileSync('/proc/self/mountinfo', 'utf8');
|
|
80
|
+
const match = mountinfo.match(/[a-f0-9]{64}/);
|
|
81
|
+
if (match) return match[0];
|
|
82
|
+
} catch {}
|
|
83
|
+
|
|
84
|
+
// Method 3: hostname in Docker defaults to short container ID (12 hex chars)
|
|
85
|
+
if (isContainer()) {
|
|
86
|
+
const hostname = os.hostname();
|
|
87
|
+
if (/^[a-f0-9]{12,64}$/.test(hostname)) return hostname;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
return null;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
function getMacAddresses() {
|
|
94
|
+
const ifaces = os.networkInterfaces();
|
|
95
|
+
const macs = [];
|
|
96
|
+
for (const name of Object.keys(ifaces)) {
|
|
97
|
+
for (const iface of ifaces[name]) {
|
|
98
|
+
if (!iface.internal && iface.mac && iface.mac !== '00:00:00:00:00:00') {
|
|
99
|
+
macs.push(iface.mac);
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
macs.sort();
|
|
104
|
+
return macs;
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
function generateDeviceId() {
|
|
108
|
+
const machineId = readMachineId();
|
|
109
|
+
if (machineId) {
|
|
110
|
+
return crypto.createHash('sha256').update('evomap:' + machineId).digest('hex').slice(0, 32);
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
// Container ID: stable for the container's lifetime, but changes on re-create.
|
|
114
|
+
// Still better than random for keeping identity within a single deployment.
|
|
115
|
+
const containerId = readContainerId();
|
|
116
|
+
if (containerId) {
|
|
117
|
+
return crypto.createHash('sha256').update('evomap:container:' + containerId).digest('hex').slice(0, 32);
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
const macs = getMacAddresses();
|
|
121
|
+
if (macs.length > 0) {
|
|
122
|
+
const raw = os.hostname() + '|' + macs.join(',');
|
|
123
|
+
return crypto.createHash('sha256').update('evomap:' + raw).digest('hex').slice(0, 32);
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
return crypto.randomBytes(16).toString('hex');
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
function persistDeviceId(id) {
|
|
130
|
+
// NOTE(windows): mode 0o700 / 0o600 are silently ignored on Windows.
|
|
131
|
+
// The device-id directory and file will NOT be access-restricted to the
|
|
132
|
+
// current user. Only Windows user-profile directory ACLs (%USERPROFILE%\.evomap)
|
|
133
|
+
// provide isolation. There is no cross-platform chmod equivalent here.
|
|
134
|
+
|
|
135
|
+
// Try primary path (~/.evomap/device_id)
|
|
136
|
+
try {
|
|
137
|
+
const dir = _deviceIdDir();
|
|
138
|
+
if (!fs.existsSync(dir)) {
|
|
139
|
+
fs.mkdirSync(dir, { recursive: true, mode: 0o700 });
|
|
140
|
+
}
|
|
141
|
+
fs.writeFileSync(_deviceIdFile(), id, { encoding: 'utf8', mode: 0o600 });
|
|
142
|
+
return;
|
|
143
|
+
} catch {}
|
|
144
|
+
|
|
145
|
+
// Fallback: project-local file (useful in containers where $HOME is ephemeral
|
|
146
|
+
// but the project directory is mounted as a volume)
|
|
147
|
+
try {
|
|
148
|
+
fs.writeFileSync(LOCAL_DEVICE_ID_FILE, id, { encoding: 'utf8', mode: 0o600 });
|
|
149
|
+
return;
|
|
150
|
+
} catch {}
|
|
151
|
+
|
|
152
|
+
console.error(
|
|
153
|
+
'[evolver] WARN: failed to persist device_id to ' + _deviceIdFile() +
|
|
154
|
+
' or ' + LOCAL_DEVICE_ID_FILE +
|
|
155
|
+
' -- node identity may change on restart.' +
|
|
156
|
+
' Set EVOMAP_DEVICE_ID env var for stable identity in containers.'
|
|
157
|
+
);
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
function loadPersistedDeviceId() {
|
|
161
|
+
// Try primary path
|
|
162
|
+
try {
|
|
163
|
+
const file = _deviceIdFile();
|
|
164
|
+
if (fs.existsSync(file)) {
|
|
165
|
+
const id = fs.readFileSync(file, 'utf8').trim();
|
|
166
|
+
if (id && DEVICE_ID_RE.test(id)) return id;
|
|
167
|
+
}
|
|
168
|
+
} catch {}
|
|
169
|
+
|
|
170
|
+
// Try project-local fallback
|
|
171
|
+
try {
|
|
172
|
+
if (fs.existsSync(LOCAL_DEVICE_ID_FILE)) {
|
|
173
|
+
const id = fs.readFileSync(LOCAL_DEVICE_ID_FILE, 'utf8').trim();
|
|
174
|
+
if (id && DEVICE_ID_RE.test(id)) return id;
|
|
175
|
+
}
|
|
176
|
+
} catch {}
|
|
177
|
+
|
|
178
|
+
return null;
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
function getDeviceId() {
|
|
182
|
+
if (_cachedDeviceId) return _cachedDeviceId;
|
|
183
|
+
|
|
184
|
+
// 1. Env var override (validated)
|
|
185
|
+
if (process.env.EVOMAP_DEVICE_ID) {
|
|
186
|
+
const envId = String(process.env.EVOMAP_DEVICE_ID).trim().toLowerCase();
|
|
187
|
+
if (DEVICE_ID_RE.test(envId)) {
|
|
188
|
+
_cachedDeviceId = envId;
|
|
189
|
+
return _cachedDeviceId;
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
// 2. Previously persisted (checks both ~/.evomap/ and project-local)
|
|
194
|
+
const persisted = loadPersistedDeviceId();
|
|
195
|
+
if (persisted) {
|
|
196
|
+
_cachedDeviceId = persisted;
|
|
197
|
+
return _cachedDeviceId;
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
// 3. Generate from hardware / container metadata and persist
|
|
201
|
+
const inContainer = isContainer();
|
|
202
|
+
const generated = generateDeviceId();
|
|
203
|
+
persistDeviceId(generated);
|
|
204
|
+
_cachedDeviceId = generated;
|
|
205
|
+
|
|
206
|
+
if (inContainer && !process.env.EVOMAP_DEVICE_ID) {
|
|
207
|
+
console.error(
|
|
208
|
+
'[evolver] NOTE: running in a container without EVOMAP_DEVICE_ID.' +
|
|
209
|
+
' A device_id was auto-generated and persisted, but for guaranteed' +
|
|
210
|
+
' cross-restart stability, set EVOMAP_DEVICE_ID as an env var' +
|
|
211
|
+
' or mount a persistent volume at ~/.evomap/'
|
|
212
|
+
);
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
return _cachedDeviceId;
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
module.exports = { getDeviceId, isContainer };
|