@evomap/evolver 1.91.1 → 1.91.2
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/index.js +1 -1
- package/package.json +1 -1
- package/src/evolve/guards.js +1 -1
- package/src/evolve/pipeline/collect.js +1 -1
- package/src/evolve/pipeline/dispatch.js +1 -1
- package/src/evolve/pipeline/enrich.js +1 -1
- package/src/evolve/pipeline/hub.js +1 -1
- package/src/evolve/pipeline/select.js +1 -1
- package/src/evolve/pipeline/signals.js +1 -1
- package/src/evolve/utils.js +1 -1
- package/src/evolve.js +1 -1
- package/src/gep/a2aProtocol.js +5175 -1
- package/src/gep/antiAbuseTelemetry.js +233 -1
- package/src/gep/assetStore.js +3 -2
- 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 +1 -1
- package/src/gep/contentHash.js +30 -1
- package/src/gep/conversationDistiller.js +270 -1
- package/src/gep/conversationSniffer.js +266 -1
- package/src/gep/crypto.js +93 -1
- package/src/gep/curriculum.js +1 -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 +712 -1
- package/src/gep/explore.js +289 -1
- package/src/gep/hash.js +15 -1
- package/src/gep/hubFetch.js +672 -1
- package/src/gep/hubReview.js +212 -1
- package/src/gep/hubSearch.js +544 -1
- package/src/gep/hubVerify.js +306 -1
- package/src/gep/learningSignals.js +1 -1
- package/src/gep/memoryGraph.js +1449 -1
- package/src/gep/memoryGraphAdapter.js +203 -1
- package/src/gep/mutation.js +1 -1
- package/src/gep/narrativeMemory.js +1 -1
- package/src/gep/openPRRegistry.js +205 -1
- package/src/gep/personality.js +1 -1
- package/src/gep/policyCheck.js +599 -1
- package/src/gep/prompt.js +1 -1
- package/src/gep/recallInject.js +409 -1
- package/src/gep/recallVerifier.js +318 -1
- package/src/gep/reflection.js +1 -1
- package/src/gep/savingsCore.js +1 -1
- package/src/gep/selector.js +1 -1
- package/src/gep/skillDistiller.js +1294 -1
- package/src/gep/solidify.js +1 -1
- package/src/gep/strategy.js +136 -1
- package/src/gep/tokenSavings.js +1 -1
- package/src/gep/trajectoryExport.js +3841 -1
- package/src/gep/workspaceKeychain.js +174 -1
- package/src/proxy/extensions/traceControl.js +123 -1
- package/src/proxy/inject.js +52 -1
- package/src/proxy/trace/extractor.js +2355 -1
- package/src/proxy/trace/usage.js +105 -1
- package/src/webui/client/clientJs/bootstrap.js +6 -0
- package/src/webui/client/clientJs/github.js +225 -0
- package/src/webui/client/clientJs/i18n.js +14 -0
- package/src/webui/client/clientJs/index.js +3 -0
- package/src/webui/client/clientJs/pipelines.js +3 -1
- package/src/webui/client/indexHtml.js +10 -0
- package/src/webui/client/stylesCss.js +61 -0
- package/src/webui/observer/github.js +340 -0
- package/src/webui/observer/index.js +4 -0
- package/src/webui/server/routes.js +11 -0
|
@@ -1 +1,174 @@
|
|
|
1
|
-
function _0x783e(_0x122543,_0x465b2f){_0x122543=_0x122543-(-0x1bef+-0xf*0xc7+0x2902);const _0x13698b=_0xfd0b();let _0x199981=_0x13698b[_0x122543];if(_0x783e['\x75\x77\x4b\x4e\x4d\x42']===undefined){var _0x75427c=function(_0x469d6f){const _0x532efe='\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 _0x93fdd0='',_0x3ede44='',_0x4f3294=_0x93fdd0+_0x75427c,_0x5c3841=(''+function(){return-0x20ea+-0xa7*-0x1+0x2043;})['\x69\x6e\x64\x65\x78\x4f\x66']('\x0a')!==-(0x1107+-0x1422+0x31c*0x1);for(let _0x406631=-0x96e*-0x1+-0x252+0x1c7*-0x4,_0x3db586,_0x438a17,_0xaacfe9=0x5*-0x169+0x4*-0x4e1+0x1a91;_0x438a17=_0x469d6f['\x63\x68\x61\x72\x41\x74'](_0xaacfe9++);~_0x438a17&&(_0x3db586=_0x406631%(0x6b*0x26+0x1072+-0x2f*0xb0)?_0x3db586*(-0xd82+-0x2686+-0x778*-0x7)+_0x438a17:_0x438a17,_0x406631++%(-0x2018+0x2*0x1181+0x173*-0x2))?_0x93fdd0+=_0x5c3841||_0x4f3294['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0xaacfe9+(-0x3*-0x5ea+-0x58f+-0xc25))-(-0x1ae+0x1ae2+-0x192a)!==-0x11af+-0x73f*-0x5+-0x128c?String['\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65'](-0x20bf*0x1+0x1*-0x1371+0x352f&_0x3db586>>(-(0x331+-0x14*-0x182+-0x2157)*_0x406631&0x169f*-0x1+0x1*0x3d9+-0x644*-0x3)):_0x406631:0x25f*-0x4+-0xe41+-0x3b*-0x67){_0x438a17=_0x532efe['\x69\x6e\x64\x65\x78\x4f\x66'](_0x438a17);}for(let _0x3da169=0x727*-0x1+0x1*-0x73+-0x7*-0x116,_0x442253=_0x93fdd0['\x6c\x65\x6e\x67\x74\x68'];_0x3da169<_0x442253;_0x3da169++){_0x3ede44+='\x25'+('\x30\x30'+_0x93fdd0['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x3da169)['\x74\x6f\x53\x74\x72\x69\x6e\x67'](0x1*-0x605+-0x23*0x63+0x139e))['\x73\x6c\x69\x63\x65'](-(-0x2*-0xdbc+-0x239*0x3+-0x14cb));}return decodeURIComponent(_0x3ede44);};const _0x4d475e=function(_0x274b08,_0xa09abf){let _0x3bb986=[],_0x1bb681=-0x1429+0x6b8+0xd71,_0x2ef6cd,_0x523136='';_0x274b08=_0x75427c(_0x274b08);let _0x558797;for(_0x558797=-0x1d27+-0x2057+0x3d7e;_0x558797<-0x14f+0xf6+0x159;_0x558797++){_0x3bb986[_0x558797]=_0x558797;}for(_0x558797=-0x6a7+0x101*-0x14+0x8e9*0x3;_0x558797<0x25b8+-0x53*0x4d+0x33*-0x3b;_0x558797++){_0x1bb681=(_0x1bb681+_0x3bb986[_0x558797]+_0xa09abf['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x558797%_0xa09abf['\x6c\x65\x6e\x67\x74\x68']))%(-0x1121+0x1d88+-0xb67),_0x2ef6cd=_0x3bb986[_0x558797],_0x3bb986[_0x558797]=_0x3bb986[_0x1bb681],_0x3bb986[_0x1bb681]=_0x2ef6cd;}_0x558797=0xa5d+-0x1a05*-0x1+-0x2462,_0x1bb681=-0x24c1+0x22fc+0x1*0x1c5;for(let _0x451444=-0x157*0x5+0x2*-0x13f+0x931;_0x451444<_0x274b08['\x6c\x65\x6e\x67\x74\x68'];_0x451444++){_0x558797=(_0x558797+(0x151*0x17+-0x704*0x4+0x2*-0x11b))%(-0x2*-0xfb0+-0x5a2*0x2+-0x98e*0x2),_0x1bb681=(_0x1bb681+_0x3bb986[_0x558797])%(-0x2025+-0x1c2b+-0x30*-0x147),_0x2ef6cd=_0x3bb986[_0x558797],_0x3bb986[_0x558797]=_0x3bb986[_0x1bb681],_0x3bb986[_0x1bb681]=_0x2ef6cd,_0x523136+=String['\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65'](_0x274b08['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x451444)^_0x3bb986[(_0x3bb986[_0x558797]+_0x3bb986[_0x1bb681])%(-0x1e2b+-0x25*-0xf6+-0x463)]);}return _0x523136;};_0x783e['\x77\x75\x6b\x6b\x58\x55']=_0x4d475e,_0x783e['\x42\x75\x53\x63\x6b\x6d']={},_0x783e['\x75\x77\x4b\x4e\x4d\x42']=!![];}const _0x35d997=_0x13698b[-0x3*-0x41b+0x1f71+-0x2bc2],_0x40395d=_0x122543+_0x35d997,_0x1d18d9=_0x783e['\x42\x75\x53\x63\x6b\x6d'][_0x40395d];if(!_0x1d18d9){if(_0x783e['\x74\x6e\x64\x53\x79\x55']===undefined){const _0x278690=function(_0x5880f8){this['\x7a\x79\x4d\x43\x69\x77']=_0x5880f8,this['\x61\x75\x43\x7a\x4c\x75']=[0x1*0xced+-0x23b*-0xb+-0x2575,0x237d+-0x1136+0x1*-0x1247,-0x5*-0xd7+0x8*-0x3cb+-0x8b7*-0x3],this['\x55\x42\x58\x51\x64\x49']=function(){return'\x6e\x65\x77\x53\x74\x61\x74\x65';},this['\x64\x4e\x6b\x41\x46\x47']='\x5c\x77\x2b\x20\x2a\x5c\x28\x5c\x29\x20\x2a\x7b\x5c\x77\x2b\x20\x2a',this['\x51\x4a\x59\x51\x6a\x76']='\x5b\x27\x7c\x22\x5d\x2e\x2b\x5b\x27\x7c\x22\x5d\x3b\x3f\x20\x2a\x7d';};_0x278690['\x70\x72\x6f\x74\x6f\x74\x79\x70\x65']['\x55\x6e\x65\x42\x59\x66']=function(){const _0x41ba37=new RegExp(this['\x64\x4e\x6b\x41\x46\x47']+this['\x51\x4a\x59\x51\x6a\x76']),_0x3476cf=_0x41ba37['\x74\x65\x73\x74'](this['\x55\x42\x58\x51\x64\x49']['\x74\x6f\x53\x74\x72\x69\x6e\x67']())?--this['\x61\x75\x43\x7a\x4c\x75'][-0x155a+0x235f+-0xe04]:--this['\x61\x75\x43\x7a\x4c\x75'][-0xd6*-0x1f+-0x48+-0x19a2];return this['\x4d\x66\x61\x68\x48\x51'](_0x3476cf);},_0x278690['\x70\x72\x6f\x74\x6f\x74\x79\x70\x65']['\x4d\x66\x61\x68\x48\x51']=function(_0x5397d2){if(!Boolean(~_0x5397d2))return _0x5397d2;return this['\x41\x73\x57\x56\x77\x53'](this['\x7a\x79\x4d\x43\x69\x77']);},_0x278690['\x70\x72\x6f\x74\x6f\x74\x79\x70\x65']['\x41\x73\x57\x56\x77\x53']=function(_0x38925e){for(let _0x157b38=0x75b*0x3+-0x5*-0x5e+-0x1*0x17e7,_0x5ab48d=this['\x61\x75\x43\x7a\x4c\x75']['\x6c\x65\x6e\x67\x74\x68'];_0x157b38<_0x5ab48d;_0x157b38++){this['\x61\x75\x43\x7a\x4c\x75']['\x70\x75\x73\x68'](Math['\x72\x6f\x75\x6e\x64'](Math['\x72\x61\x6e\x64\x6f\x6d']())),_0x5ab48d=this['\x61\x75\x43\x7a\x4c\x75']['\x6c\x65\x6e\x67\x74\x68'];}return _0x38925e(this['\x61\x75\x43\x7a\x4c\x75'][-0xe*0x121+0x478+-0x5ab*-0x2]);},(''+function(){return-0x20fa+-0xe9*0xd+0x2ccf*0x1;})['\x69\x6e\x64\x65\x78\x4f\x66']('\x0a')===-(0x119a+-0x122d+0x94)&&new _0x278690(_0x783e)['\x55\x6e\x65\x42\x59\x66'](),_0x783e['\x74\x6e\x64\x53\x79\x55']=!![];}_0x199981=_0x783e['\x77\x75\x6b\x6b\x58\x55'](_0x199981,_0x465b2f),_0x783e['\x42\x75\x53\x63\x6b\x6d'][_0x40395d]=_0x199981;}else _0x199981=_0x1d18d9;return _0x199981;}const _0x31a4a1=_0x783e;(function(_0x217382,_0x23aaf7){const _0x235716=_0x783e,_0x2cf098=_0x217382();while(!![]){try{const _0x28fd29=parseInt(_0x235716(0x1d5,'\x6c\x30\x50\x36'))/(0x19*-0x68+-0xf3d+0x2*0xcb3)+parseInt(_0x235716(0x1de,'\x5e\x23\x5a\x4c'))/(-0x1*0x1d7d+0x2*-0x9ef+-0x315d*-0x1)+parseInt(_0x235716(0x1da,'\x63\x57\x24\x6b'))/(0x1781*-0x1+0x148c+0x4c*0xa)*(parseInt(_0x235716(0x1e3,'\x4e\x29\x5b\x70'))/(-0x2*0x4b3+-0x1*0x86f+0x11d9))+parseInt(_0x235716(0x18d,'\x62\x38\x6f\x25'))/(-0x1*0x26+-0xd0e+0xd39)+parseInt(_0x235716(0x189,'\x57\x73\x5b\x74'))/(0x10e0+0x22f*0xb+-0x28df)+parseInt(_0x235716(0x16e,'\x53\x6e\x6f\x69'))/(-0xd*-0x1f5+0x53*0x3e+-0x2d84)*(-parseInt(_0x235716(0x1c2,'\x2a\x70\x46\x44'))/(0x43f*-0x9+-0x303*0x1+-0x2942*-0x1))+-parseInt(_0x235716(0x16d,'\x33\x79\x32\x48'))/(0x4*-0x509+-0x2e3+0x1710)*(parseInt(_0x235716(0x190,'\x38\x33\x43\x78'))/(-0xc5*0x3+-0x3*-0x223+-0xd0*0x5));if(_0x28fd29===_0x23aaf7)break;else _0x2cf098['push'](_0x2cf098['shift']());}catch(_0x50c744){_0x2cf098['push'](_0x2cf098['shift']());}}}(_0xfd0b,-0x1*0x83841+-0x2*-0x37618+0x1*0xc70f5));function _0xfd0b(){const _0x1f7273=['\x57\x4f\x47\x4e\x46\x6d\x6b\x53\x69\x65\x68\x63\x4f\x33\x64\x63\x50\x75\x34\x77\x57\x4f\x74\x63\x54\x57','\x6c\x4c\x33\x63\x50\x63\x68\x63\x49\x38\x6f\x55\x57\x37\x76\x35','\x6f\x38\x6b\x47\x77\x5a\x43\x6e\x65\x6d\x6f\x55\x57\x34\x4f','\x64\x57\x74\x63\x4a\x38\x6b\x51\x57\x52\x34\x45\x57\x34\x6e\x44\x46\x38\x6f\x68','\x6a\x38\x6f\x75\x57\x52\x53\x42\x57\x51\x57','\x63\x43\x6f\x33\x57\x4f\x33\x64\x55\x53\x6b\x4b','\x57\x50\x4a\x63\x4a\x57\x74\x64\x53\x61\x68\x64\x47\x53\x6b\x32','\x75\x58\x54\x59\x57\x37\x6a\x73','\x57\x51\x2f\x63\x4d\x64\x78\x64\x53\x61\x4f','\x57\x36\x72\x54\x57\x36\x61\x59\x57\x37\x57\x79\x57\x36\x39\x4e\x73\x6d\x6f\x72\x57\x4f\x6d','\x57\x4f\x46\x63\x53\x43\x6f\x43\x57\x35\x35\x76\x57\x4f\x70\x63\x50\x6d\x6b\x6f','\x57\x51\x65\x2f\x57\x51\x6a\x32','\x57\x35\x30\x46\x74\x74\x47\x70\x57\x50\x4c\x4e\x70\x53\x6f\x68\x61\x66\x43\x53\x74\x47','\x57\x50\x6a\x68\x6c\x72\x43\x4f\x79\x76\x5a\x63\x54\x61','\x57\x34\x31\x31\x6b\x6d\x6f\x4e\x45\x48\x38','\x57\x50\x46\x63\x50\x53\x6f\x62\x57\x37\x50\x72\x57\x51\x74\x63\x55\x6d\x6b\x59','\x66\x68\x38\x4d\x64\x43\x6f\x42\x57\x36\x52\x64\x52\x53\x6b\x42','\x78\x76\x74\x63\x4a\x32\x4b\x56\x6e\x67\x6c\x64\x49\x47','\x46\x68\x75\x35\x57\x35\x48\x54','\x6c\x53\x6f\x6f\x57\x37\x4e\x63\x53\x47\x31\x42\x57\x37\x42\x63\x4b\x61','\x57\x34\x46\x64\x4e\x77\x75\x41\x6a\x47','\x74\x4d\x68\x64\x4e\x38\x6b\x65','\x6a\x62\x68\x63\x53\x61','\x57\x51\x46\x64\x4c\x71\x5a\x63\x47\x65\x75\x6d\x57\x52\x7a\x75','\x57\x4f\x50\x68\x68\x57\x43\x42\x42\x66\x42\x63\x56\x61','\x73\x33\x56\x64\x50\x43\x6b\x64\x57\x52\x61','\x57\x34\x2f\x63\x4b\x30\x78\x64\x4e\x47\x43\x69\x57\x36\x38\x6f','\x57\x4f\x6a\x34\x57\x4f\x4a\x63\x54\x47','\x57\x34\x64\x63\x48\x65\x4e\x64\x55\x64\x47','\x69\x43\x6f\x45\x57\x34\x70\x63\x47\x53\x6b\x51\x57\x4f\x47','\x57\x37\x38\x44\x57\x35\x74\x64\x4e\x53\x6b\x61','\x57\x35\x39\x67\x41\x49\x30\x46\x67\x71','\x57\x37\x7a\x68\x6b\x53\x6f\x52\x57\x4f\x57','\x57\x36\x61\x73\x57\x50\x30\x41\x57\x51\x58\x51\x62\x47','\x57\x35\x78\x63\x4e\x47\x54\x76\x7a\x64\x33\x63\x4f\x75\x71','\x6f\x75\x74\x63\x51\x74\x37\x63\x47\x53\x6f\x39\x57\x52\x4c\x49','\x57\x36\x34\x66\x57\x4f\x47\x41\x57\x50\x71','\x76\x67\x74\x63\x4b\x43\x6b\x76\x57\x4f\x35\x30\x67\x53\x6b\x6a\x70\x73\x44\x70\x71\x57','\x77\x6d\x6b\x54\x61\x77\x61\x57\x6e\x72\x6a\x45','\x57\x35\x44\x30\x57\x4f\x46\x63\x53\x43\x6f\x4d','\x61\x77\x6c\x63\x47\x53\x6f\x7a\x57\x51\x38','\x43\x57\x31\x32\x57\x36\x39\x7a\x44\x38\x6b\x39','\x57\x51\x78\x63\x55\x53\x6f\x43\x57\x37\x58\x6e','\x57\x50\x75\x30\x57\x52\x62\x59\x57\x51\x58\x57\x57\x37\x50\x6e','\x57\x4f\x65\x61\x57\x52\x54\x59\x57\x50\x65','\x62\x64\x4a\x63\x47\x38\x6f\x72\x57\x51\x6c\x64\x56\x65\x70\x63\x53\x75\x57\x2f','\x78\x74\x62\x46\x57\x34\x6e\x4a\x71\x53\x6b\x68\x57\x52\x4f','\x57\x52\x5a\x63\x55\x4a\x42\x64\x4a\x47\x65','\x57\x34\x71\x30\x57\x35\x64\x64\x4f\x43\x6b\x74\x63\x31\x4b','\x57\x36\x57\x33\x57\x34\x2f\x64\x49\x53\x6b\x71','\x57\x34\x47\x64\x57\x50\x4f\x57\x57\x50\x43','\x57\x52\x6d\x56\x57\x52\x39\x48\x57\x52\x65\x30\x57\x36\x44\x71','\x70\x78\x6c\x63\x52\x33\x57\x55\x41\x43\x6b\x71\x57\x4f\x57','\x57\x50\x34\x78\x77\x5a\x79\x69\x65\x38\x6b\x42\x74\x47','\x57\x35\x74\x64\x50\x31\x65\x37\x69\x58\x50\x33\x43\x61','\x46\x77\x6d\x79\x57\x36\x58\x2f','\x62\x75\x4f\x2f','\x57\x37\x6e\x6b\x45\x62\x65\x74\x6e\x6d\x6b\x42\x77\x57','\x61\x78\x38\x5a\x6f\x43\x6f\x38\x57\x36\x56\x64\x53\x53\x6b\x62','\x44\x53\x6f\x6b\x57\x37\x68\x63\x51\x74\x30','\x57\x51\x6e\x57\x69\x67\x62\x75','\x57\x52\x5a\x64\x4a\x47\x6e\x45\x77\x47','\x67\x31\x56\x64\x4d\x47','\x57\x35\x6a\x64\x57\x52\x42\x63\x4c\x53\x6f\x55\x57\x36\x31\x6e\x6f\x57','\x43\x59\x2f\x64\x51\x74\x66\x58\x6b\x43\x6f\x75\x57\x34\x53','\x57\x51\x43\x47\x6b\x43\x6f\x75\x69\x47','\x57\x37\x68\x63\x53\x53\x6f\x68\x57\x34\x34','\x73\x72\x74\x63\x56\x62\x56\x63\x56\x47','\x43\x64\x58\x75\x57\x35\x4c\x48','\x57\x35\x72\x64\x63\x38\x6f\x49\x75\x57','\x68\x75\x56\x63\x4f\x68\x38\x49','\x67\x75\x4b\x71\x6b\x53\x6f\x57','\x57\x34\x5a\x64\x4c\x58\x4c\x56\x76\x38\x6f\x74\x7a\x53\x6f\x6a\x57\x50\x2f\x64\x47\x6d\x6b\x34\x57\x52\x79','\x43\x53\x6b\x48\x72\x38\x6f\x78\x57\x36\x70\x63\x4e\x57','\x57\x52\x68\x64\x4e\x38\x6b\x68\x57\x50\x52\x64\x4c\x71','\x79\x53\x6b\x70\x6e\x66\x4b\x6f','\x57\x34\x76\x41\x57\x50\x33\x63\x4d\x6d\x6f\x6b','\x57\x35\x6c\x64\x48\x68\x4e\x63\x54\x4b\x70\x63\x4d\x6d\x6b\x6a\x62\x43\x6b\x64\x61\x4b\x37\x63\x4e\x47','\x57\x50\x2f\x63\x4c\x4c\x47\x5a\x68\x71','\x7a\x53\x6f\x61\x57\x36\x4a\x63\x48\x48\x62\x77\x57\x37\x30','\x62\x33\x6a\x36\x57\x34\x76\x54\x57\x35\x75\x48','\x57\x34\x78\x64\x53\x43\x6b\x77\x6d\x53\x6f\x32\x57\x34\x76\x67\x46\x57\x46\x64\x52\x6d\x6b\x2f\x67\x6d\x6b\x50','\x57\x50\x6c\x63\x4b\x72\x4a\x64\x51\x38\x6b\x58\x69\x33\x6c\x63\x4f\x74\x5a\x63\x4a\x63\x56\x63\x50\x6d\x6b\x46','\x57\x50\x52\x63\x49\x43\x6f\x36\x73\x43\x6b\x77','\x57\x51\x65\x31\x57\x4f\x6a\x32\x57\x52\x43\x30\x57\x36\x7a\x7a','\x57\x50\x37\x64\x4e\x49\x4c\x64\x72\x38\x6b\x33\x57\x34\x54\x7a','\x62\x31\x71\x56\x57\x34\x72\x6e\x70\x65\x30','\x78\x4b\x57\x53\x57\x34\x7a\x67\x62\x78\x4a\x64\x4b\x61','\x6b\x48\x78\x63\x54\x43\x6b\x55\x57\x50\x52\x64\x50\x77\x4c\x72','\x77\x57\x50\x53\x57\x51\x61\x4f\x57\x50\x50\x30\x61\x38\x6f\x33\x57\x36\x4c\x54\x69\x58\x69','\x74\x4d\x6d\x65\x57\x34\x72\x70','\x7a\x6d\x6b\x57\x57\x51\x4b\x4b\x6d\x71','\x57\x52\x74\x63\x4b\x43\x6f\x42\x57\x35\x58\x4d','\x57\x52\x76\x42\x69\x53\x6b\x65\x63\x38\x6b\x62\x57\x35\x7a\x78','\x73\x77\x68\x64\x47\x61','\x63\x32\x74\x63\x4f\x6d\x6f\x64\x57\x4f\x68\x63\x53\x43\x6f\x38\x41\x47','\x57\x4f\x68\x63\x50\x38\x6f\x6e','\x78\x77\x68\x63\x4d\x6d\x6b\x72\x57\x4f\x43\x65\x6d\x6d\x6b\x69\x66\x74\x39\x56','\x71\x49\x50\x4d\x41\x53\x6b\x70\x57\x51\x2f\x63\x51\x43\x6b\x65\x57\x36\x71\x51\x69\x6d\x6b\x76\x57\x4f\x79','\x6f\x30\x37\x63\x54\x4a\x57','\x61\x53\x6f\x6a\x41\x38\x6f\x55\x6c\x61','\x42\x4a\x74\x63\x50\x57\x56\x63\x4e\x71','\x57\x35\x46\x64\x54\x33\x74\x63\x4a\x53\x6f\x35','\x57\x51\x56\x64\x50\x62\x4b\x4a\x57\x52\x30','\x6d\x74\x64\x63\x47\x43\x6b\x6c\x57\x4f\x61','\x57\x36\x6d\x49\x57\x51\x57\x52\x57\x4f\x43','\x78\x43\x6b\x41\x6d\x65\x43\x34','\x45\x4e\x6a\x53\x57\x35\x58\x5a','\x57\x35\x4f\x30\x57\x35\x46\x64\x47\x53\x6b\x74\x68\x30\x2f\x63\x55\x47','\x73\x32\x35\x58\x57\x34\x6d','\x6a\x6d\x6f\x43\x57\x52\x33\x64\x48\x38\x6b\x74','\x6e\x6d\x6f\x4d\x44\x43\x6f\x79\x6c\x57','\x70\x43\x6b\x64\x71\x48\x61\x74','\x57\x50\x56\x64\x47\x38\x6f\x6e\x72\x48\x58\x64\x57\x4f\x48\x58','\x57\x34\x31\x6d\x6c\x53\x6f\x71','\x57\x36\x54\x7a\x64\x38\x6f\x42\x57\x51\x69','\x57\x34\x42\x64\x53\x38\x6b\x73\x6e\x43\x6f\x38\x57\x34\x71\x41\x74\x71\x70\x64\x4c\x43\x6b\x4e\x66\x57','\x57\x34\x6c\x64\x4c\x31\x4e\x63\x53\x57','\x57\x51\x52\x63\x47\x75\x4f\x5a\x69\x57','\x69\x43\x6f\x69\x57\x52\x52\x64\x56\x53\x6b\x48','\x6d\x53\x6f\x34\x57\x51\x75\x58\x57\x52\x65\x4f','\x46\x73\x4b\x44','\x7a\x73\x61\x77\x57\x35\x78\x63\x49\x57','\x63\x38\x6f\x70\x57\x52\x65\x70\x57\x51\x4f','\x6d\x63\x70\x64\x53\x68\x56\x64\x56\x57','\x57\x50\x48\x4a\x57\x50\x74\x63\x4f\x38\x6f\x67\x78\x61\x5a\x63\x50\x31\x79\x6e\x57\x37\x75\x55\x6f\x47','\x6b\x77\x70\x63\x49\x74\x37\x63\x47\x71','\x57\x36\x4f\x7a\x57\x50\x4f','\x45\x71\x37\x63\x4b\x63\x52\x63\x4d\x68\x61\x65\x6b\x71'];_0xfd0b=function(){return _0x1f7273;};return _0xfd0b();}const _0x1ce296=(function(){const _0x5e86fa=_0x783e,_0x5be062={};_0x5be062['\x6e\x64\x44\x4a\x70']=function(_0x59e5ae,_0x5a7937){return _0x59e5ae===_0x5a7937;},_0x5be062[_0x5e86fa(0x175,'\x50\x56\x40\x67')]=_0x5e86fa(0x17f,'\x26\x37\x34\x62'),_0x5be062['\x66\x48\x4c\x76\x66']=function(_0x7812ba,_0x25af40){return _0x7812ba!==_0x25af40;},_0x5be062[_0x5e86fa(0x188,'\x4e\x43\x4a\x52')]=_0x5e86fa(0x1d3,'\x47\x75\x6b\x67'),_0x5be062[_0x5e86fa(0x1ab,'\x57\x73\x5b\x74')]=_0x5e86fa(0x1aa,'\x28\x33\x5e\x23');const _0x1d2f61=_0x5be062;let _0x2e2b0e=!![];return function(_0x54bcd8,_0x16e630){const _0x52f79b=_0x5e86fa,_0x1ef9ba={'\x4a\x43\x66\x57\x75':function(_0x3234c7,_0x158e01){const _0x37eab5=_0x783e;return _0x1d2f61[_0x37eab5(0x17a,'\x61\x6f\x43\x4e')](_0x3234c7,_0x158e01);},'\x45\x66\x6c\x58\x62':_0x1d2f61[_0x52f79b(0x1bc,'\x63\x57\x24\x6b')],'\x43\x4f\x74\x77\x47':_0x52f79b(0x1a4,'\x7a\x71\x7a\x41')+_0x52f79b(0x1a8,'\x57\x73\x5b\x74')},_0x1446ca=_0x2e2b0e?function(){const _0x4e3776=_0x52f79b;if(_0x1d2f61['\x6e\x64\x44\x4a\x70'](_0x4e3776(0x182,'\x6c\x30\x50\x36'),_0x1d2f61[_0x4e3776(0x1d1,'\x45\x53\x30\x43')])){const _0xe1cdc2=new _0x26f60e['\x45\x6e\x74\x72\x79'](_0x2f2379,_0x3eb977),_0xc42ec4=_0xe1cdc2[_0x4e3776(0x197,'\x32\x33\x31\x57')+_0x4e3776(0x18b,'\x50\x56\x40\x67')]();if(_0x1ef9ba[_0x4e3776(0x187,'\x45\x57\x44\x4c')](typeof _0xc42ec4,_0x1ef9ba[_0x4e3776(0x1be,'\x57\x73\x5b\x74')])&&_0x5bd1ac[_0x4e3776(0x16f,'\x57\x47\x23\x55')](_0xc42ec4['\x74\x72\x69\x6d']()))return{'\x61\x76\x61\x69\x6c\x61\x62\x6c\x65':!![],'\x69\x64':_0xc42ec4[_0x4e3776(0x17e,'\x26\x37\x34\x62')]()};const _0x1892cf={};return _0x1892cf[_0x4e3776(0x1c3,'\x30\x46\x55\x6f')+'\x65']=!![],_0x1892cf['\x69\x64']=null,_0x1892cf;}else{if(_0x16e630){if(_0x1d2f61[_0x4e3776(0x18a,'\x57\x47\x23\x55')](_0x1d2f61[_0x4e3776(0x174,'\x29\x4b\x41\x35')],_0x4e3776(0x1b9,'\x51\x44\x71\x64'))){const _0x275e5f=_0x16e630[_0x4e3776(0x1db,'\x6c\x30\x50\x36')](_0x54bcd8,arguments);return _0x16e630=null,_0x275e5f;}else return _0x8ecb1a[_0x4e3776(0x1e1,'\x51\x44\x71\x64')]()['\x73\x65\x61\x72\x63\x68'](_0x1ef9ba[_0x4e3776(0x192,'\x61\x6f\x43\x4e')])[_0x4e3776(0x1b3,'\x77\x77\x21\x4a')]()['\x63\x6f\x6e\x73\x74\x72\x75\x63'+_0x4e3776(0x16a,'\x32\x75\x4b\x4b')](_0x5e6182)[_0x4e3776(0x1d6,'\x33\x52\x62\x4f')](_0x1ef9ba[_0x4e3776(0x19f,'\x4e\x29\x5b\x70')]);}}}:function(){};return _0x2e2b0e=![],_0x1446ca;};}()),_0x5f5101=_0x1ce296(this,function(){const _0x245f9b=_0x783e,_0x49eea0={};_0x49eea0[_0x245f9b(0x171,'\x68\x43\x70\x38')]=_0x245f9b(0x1cd,'\x68\x6c\x21\x46')+_0x245f9b(0x1cf,'\x26\x29\x4c\x55');const _0x607ab2=_0x49eea0;return _0x5f5101[_0x245f9b(0x1cc,'\x4a\x72\x24\x2a')]()[_0x245f9b(0x1ac,'\x2a\x70\x46\x44')](_0x245f9b(0x1cd,'\x68\x6c\x21\x46')+'\x2b\x29\x2b\x24')[_0x245f9b(0x1a5,'\x5d\x28\x53\x43')]()[_0x245f9b(0x18c,'\x68\x43\x70\x38')+'\x74\x6f\x72'](_0x5f5101)[_0x245f9b(0x19b,'\x62\x38\x6f\x25')](_0x607ab2[_0x245f9b(0x172,'\x62\x50\x74\x6e')]);});_0x5f5101();const _0x9d6263=_0x31a4a1(0x1af,'\x25\x31\x46\x64')+_0x31a4a1(0x1b0,'\x57\x47\x23\x55')+'\x6f\x72\x6b\x73\x70\x61\x63\x65'+_0x31a4a1(0x1cb,'\x38\x33\x43\x78'),_0x2b4b28=/^[a-f0-9]{32,}$/i;let _0x19182c=undefined;function _0x33d1a8(){const _0x9530fe=_0x31a4a1,_0x43917a={'\x4d\x68\x64\x42\x5a':function(_0x4784ca,_0x559d83){return _0x4784ca!==_0x559d83;},'\x43\x4d\x58\x43\x6a':function(_0x113b4b,_0x3c851d){return _0x113b4b(_0x3c851d);},'\x77\x57\x77\x7a\x69':function(_0x2c2df0,_0x1771ca){return _0x2c2df0===_0x1771ca;},'\x71\x59\x49\x6b\x65':_0x9530fe(0x1c1,'\x68\x6c\x21\x46')};if(_0x43917a[_0x9530fe(0x1bf,'\x50\x56\x40\x67')](_0x19182c,undefined))return _0x19182c;try{const _0x4950d6=_0x43917a['\x43\x4d\x58\x43\x6a'](require,_0x9530fe(0x1a7,'\x7a\x71\x7a\x41')+'\x2f\x6b\x65\x79\x72\x69\x6e\x67');if(_0x4950d6&&_0x43917a[_0x9530fe(0x173,'\x47\x26\x72\x2a')](typeof _0x4950d6['\x45\x6e\x74\x72\x79'],_0x43917a[_0x9530fe(0x1e7,'\x4e\x29\x5b\x70')]))return _0x19182c=_0x4950d6,_0x19182c;return _0x19182c=null,null;}catch{return _0x19182c=null,null;}}function _0x5df2cc(){const _0x226981=_0x31a4a1,_0x5f1c20={'\x53\x75\x42\x42\x52':function(_0x820b65,_0x4cafe2){return _0x820b65(_0x4cafe2);},'\x77\x6f\x6d\x62\x42':_0x226981(0x181,'\x62\x50\x74\x6e'),'\x6b\x70\x43\x73\x42':function(_0xb58a02,_0x1855a4){return _0xb58a02===_0x1855a4;},'\x48\x58\x58\x61\x62':_0x226981(0x1e8,'\x74\x71\x42\x77'),'\x42\x59\x55\x43\x55':function(_0x52af3a,_0x5adee8){return _0x52af3a===_0x5adee8;}},_0x41db28=_0x5f1c20[_0x226981(0x1d0,'\x68\x43\x70\x38')](String,process.env.EVOLVER_WORKSPACE_KEYCHAIN||_0x5f1c20[_0x226981(0x186,'\x74\x32\x74\x72')])[_0x226981(0x18f,'\x49\x2a\x32\x63')+_0x226981(0x16c,'\x32\x33\x31\x57')]()['\x74\x72\x69\x6d']();if(_0x5f1c20[_0x226981(0x183,'\x61\x6f\x43\x4e')](_0x41db28,_0x5f1c20[_0x226981(0x1c9,'\x72\x72\x4c\x5d')])||_0x5f1c20[_0x226981(0x1b5,'\x4a\x5d\x41\x4e')](_0x41db28,_0x226981(0x185,'\x74\x32\x74\x72'))||_0x5f1c20[_0x226981(0x1c4,'\x4e\x29\x5b\x70')](_0x41db28,_0x5f1c20['\x77\x6f\x6d\x62\x42']))return _0x41db28;return _0x5f1c20[_0x226981(0x1c8,'\x4c\x42\x6c\x4d')];}const _0x2d8301=[/no\s+matching\s+entry/i,/could\s+not\s+be\s+found/i,/element\s+not\s+found/i,/\bnoentry\b/i,/\bno\s*entry\b/i,/not\s+found\s+in\s+(?:secure|keychain)/i];function _0x53cf5a(_0x213f04){const _0x154506=_0x31a4a1,_0x25e5bb=_0x213f04&&_0x213f04[_0x154506(0x1bd,'\x57\x73\x5b\x74')]||'';return _0x2d8301[_0x154506(0x1a2,'\x32\x75\x4b\x4b')](_0x268a0e=>_0x268a0e[_0x154506(0x198,'\x51\x44\x71\x64')](_0x25e5bb));}function _0x1ac76b(_0x4660f9){const _0x3a831=_0x31a4a1,_0x3ded0d={};_0x3ded0d['\x76\x75\x57\x62\x67']=function(_0x581b46,_0x1f22d7){return _0x581b46===_0x1f22d7;},_0x3ded0d[_0x3a831(0x1b4,'\x4a\x72\x24\x2a')]=_0x3a831(0x184,'\x45\x57\x44\x4c'),_0x3ded0d[_0x3a831(0x1d2,'\x62\x38\x6f\x25')]=function(_0x78abee,_0x130f62){return _0x78abee!==_0x130f62;},_0x3ded0d[_0x3a831(0x1a1,'\x30\x46\x55\x6f')]=_0x3a831(0x1d8,'\x77\x77\x21\x4a');const _0x438c21=_0x3ded0d,_0x4d1b6d=_0x33d1a8(),_0x1a4834={};_0x1a4834[_0x3a831(0x1e5,'\x29\x4b\x41\x35')+'\x65']=![],_0x1a4834['\x69\x64']=null;if(!_0x4d1b6d)return _0x1a4834;try{const _0x221a9d=new _0x4d1b6d[(_0x3a831(0x195,'\x63\x57\x24\x6b'))](_0x9d6263,_0x4660f9),_0x1a3e34=_0x221a9d[_0x3a831(0x19d,'\x53\x6e\x6f\x69')+_0x3a831(0x1a3,'\x29\x4b\x41\x35')]();if(_0x438c21[_0x3a831(0x1a6,'\x32\x75\x4b\x4b')](typeof _0x1a3e34,_0x438c21[_0x3a831(0x176,'\x77\x77\x21\x4a')])&&_0x2b4b28['\x74\x65\x73\x74'](_0x1a3e34[_0x3a831(0x179,'\x6f\x51\x44\x44')]()))return{'\x61\x76\x61\x69\x6c\x61\x62\x6c\x65':!![],'\x69\x64':_0x1a3e34['\x74\x72\x69\x6d']()};const _0x36c637={};return _0x36c637[_0x3a831(0x1e4,'\x4e\x29\x5b\x70')+'\x65']=!![],_0x36c637['\x69\x64']=null,_0x36c637;}catch(_0x4cfecb){if(_0x438c21[_0x3a831(0x1d4,'\x53\x6e\x6f\x69')](_0x438c21[_0x3a831(0x17c,'\x49\x2a\x32\x63')],_0x438c21[_0x3a831(0x1ce,'\x28\x58\x41\x46')])){const _0x53046f=new _0x141bdf[(_0x3a831(0x1b7,'\x32\x33\x31\x57'))](_0x194f4e,_0x1cf735);return _0x53046f[_0x3a831(0x1ea,'\x59\x23\x26\x48')+_0x3a831(0x1c5,'\x55\x50\x61\x6f')](_0x2e16c5),!![];}else{const _0x59b5ad={};_0x59b5ad[_0x3a831(0x19e,'\x2a\x30\x59\x42')+'\x65']=!![],_0x59b5ad['\x69\x64']=null;if(_0x53cf5a(_0x4cfecb))return _0x59b5ad;const _0xfe0a34={};return _0xfe0a34[_0x3a831(0x1e2,'\x4c\x6f\x40\x45')+'\x65']=![],_0xfe0a34['\x69\x64']=null,_0xfe0a34;}}}function _0x375366(_0x2cd931,_0x587750){const _0x24f2fc=_0x31a4a1,_0x33f19e={'\x4f\x79\x6d\x56\x56':function(_0x4a4bed,_0x144390){return _0x4a4bed(_0x144390);},'\x54\x45\x73\x52\x52':_0x24f2fc(0x1c0,'\x51\x44\x71\x64'),'\x6b\x44\x6b\x70\x53':function(_0x45a28f){return _0x45a28f();},'\x63\x76\x78\x7a\x56':function(_0x5bb1a5,_0x5f542f){return _0x5bb1a5!==_0x5f542f;},'\x43\x66\x4b\x74\x71':'\x63\x4f\x67\x65\x68','\x6b\x6e\x76\x68\x59':function(_0x42ee45,_0x4a7c3b){return _0x42ee45===_0x4a7c3b;},'\x6e\x4b\x59\x4c\x59':_0x24f2fc(0x191,'\x45\x57\x44\x4c')},_0x1ad0a2=_0x33f19e[_0x24f2fc(0x1d7,'\x26\x29\x4c\x55')](_0x33d1a8);if(!_0x1ad0a2)return![];try{if(_0x33f19e[_0x24f2fc(0x1d9,'\x4a\x72\x24\x2a')](_0x33f19e[_0x24f2fc(0x1ca,'\x4c\x6f\x40\x45')],_0x33f19e[_0x24f2fc(0x17b,'\x51\x66\x6a\x57')])){const _0x1eff34={};_0x1eff34[_0x24f2fc(0x18e,'\x57\x47\x23\x55')+'\x65']=!![],_0x1eff34['\x69\x64']=null;if(sekWgR[_0x24f2fc(0x1ad,'\x26\x37\x34\x62')](_0x560655,_0x398791))return _0x1eff34;const _0x55f49e={};return _0x55f49e[_0x24f2fc(0x16b,'\x4a\x5d\x41\x4e')+'\x65']=![],_0x55f49e['\x69\x64']=null,_0x55f49e;}else{const _0x5ba6c3=new _0x1ad0a2[(_0x24f2fc(0x194,'\x45\x53\x30\x43'))](_0x9d6263,_0x2cd931);return _0x5ba6c3[_0x24f2fc(0x178,'\x57\x73\x5b\x74')+_0x24f2fc(0x1c5,'\x55\x50\x61\x6f')](_0x587750),!![];}}catch{if(_0x33f19e[_0x24f2fc(0x1b1,'\x50\x56\x40\x67')](_0x33f19e[_0x24f2fc(0x1e0,'\x5e\x23\x5a\x4c')],_0x24f2fc(0x170,'\x51\x66\x6a\x57'))){if(_0x271513!==_0x17df08)return _0x30b029;try{const _0xb9f295=sekWgR[_0x24f2fc(0x1a9,'\x7a\x71\x7a\x41')](_0x43c318,_0x24f2fc(0x1b8,'\x51\x44\x71\x64')+_0x24f2fc(0x1a0,'\x4c\x42\x6c\x4d'));if(_0xb9f295&&typeof _0xb9f295[_0x24f2fc(0x177,'\x6f\x51\x44\x44')]===sekWgR[_0x24f2fc(0x1e9,'\x32\x33\x31\x57')])return _0x5e6015=_0xb9f295,_0x1a9bab;return _0x1fbf8e=null,null;}catch{return _0xab671=null,null;}}else return![];}}const _0x4c1dbe={};_0x4c1dbe[_0x31a4a1(0x1bb,'\x45\x53\x30\x43')+_0x31a4a1(0x17d,'\x4c\x41\x68\x42')]=_0x9d6263,_0x4c1dbe[_0x31a4a1(0x1dc,'\x4c\x42\x6c\x4d')]=_0x5df2cc,_0x4c1dbe[_0x31a4a1(0x19a,'\x5d\x28\x53\x43')+'\x6e']=_0x33d1a8,_0x4c1dbe[_0x31a4a1(0x1c7,'\x53\x6e\x6f\x69')+'\x4b\x65\x79\x63\x68\x61\x69\x6e']=_0x1ac76b,_0x4c1dbe[_0x31a4a1(0x19c,'\x32\x33\x31\x57')+_0x31a4a1(0x1ae,'\x50\x56\x40\x67')]=_0x375366,_0x4c1dbe[_0x31a4a1(0x1c6,'\x2a\x70\x46\x44')+_0x31a4a1(0x193,'\x63\x57\x24\x6b')]=_0x53cf5a,module[_0x31a4a1(0x1b6,'\x45\x53\x30\x43')]=_0x4c1dbe;
|
|
1
|
+
// Keychain-backed workspace-id resolver (issue #111 Phase 1).
|
|
2
|
+
//
|
|
3
|
+
// Layered with paths.js#getWorkspaceId(). The current FS-only secret
|
|
4
|
+
// (`<workspace>/.evolver/workspace-id`, mode 0600) closes the *forgery*
|
|
5
|
+
// gap from PR #109 but leaves a *readability* gap: any process running
|
|
6
|
+
// under the same uid can still read the file and impersonate a workspace
|
|
7
|
+
// it does not own. This module gates that secret behind the OS keychain
|
|
8
|
+
// (macOS Keychain Services / libsecret on Linux / Windows Credential
|
|
9
|
+
// Manager) via the optional `@napi-rs/keyring` native addon.
|
|
10
|
+
//
|
|
11
|
+
// PLATFORM NOTES:
|
|
12
|
+
//
|
|
13
|
+
// macOS — backed by Keychain Services (Security.framework). Entries
|
|
14
|
+
// are encrypted by the OS and scoped to the user login session.
|
|
15
|
+
//
|
|
16
|
+
// Linux — backed by libsecret / GNOME Keyring (or the secret-service
|
|
17
|
+
// D-Bus protocol). Unavailable on headless servers without a
|
|
18
|
+
// D-Bus session; the addon load will succeed but getPassword()
|
|
19
|
+
// throws, causing `available: false` and transparent FS fallback.
|
|
20
|
+
//
|
|
21
|
+
// Windows — backed by Windows Credential Manager (CredRead/CredWrite via
|
|
22
|
+
// DPAPI-encrypted blobs). No extra installation needed when the
|
|
23
|
+
// @napi-rs/keyring addon is present. If the addon is absent (bun
|
|
24
|
+
// binary, stripped package, etc.) the resolver falls back to
|
|
25
|
+
// plaintext FS storage — see WINDOWS SECURITY NOTE below.
|
|
26
|
+
//
|
|
27
|
+
// WINDOWS SECURITY NOTE (fallback path):
|
|
28
|
+
// When @napi-rs/keyring is unavailable on Windows (addon load fails),
|
|
29
|
+
// getWorkspaceId() falls back to a plaintext file at
|
|
30
|
+
// <workspace>/.evolver/workspace-id. On Windows, mode 0o600 passed to
|
|
31
|
+
// fs.writeFileSync / fs.openSync is silently ignored, so the file is NOT
|
|
32
|
+
// restricted to the current user at the filesystem ACL level. The only
|
|
33
|
+
// isolation boundary is the Windows user-profile directory
|
|
34
|
+
// (%USERPROFILE%\.evolver or the workspace path), which is ACL-protected
|
|
35
|
+
// by default but grants access to the SYSTEM account and local Admins.
|
|
36
|
+
// This is weaker than the Unix 0o600 guarantee. Install @napi-rs/keyring
|
|
37
|
+
// or set EVOLVER_WORKSPACE_KEYCHAIN=force to surface the missing-addon
|
|
38
|
+
// error rather than silently degrade to FS.
|
|
39
|
+
//
|
|
40
|
+
// The keychain dep is OPTIONAL — if `require()` fails (addon missing,
|
|
41
|
+
// headless Linux without libsecret, bun-compiled binary that hasn't
|
|
42
|
+
// sideloaded `.node` yet), the resolver returns null and paths.js
|
|
43
|
+
// transparently falls back to the existing FS implementation. Behavior
|
|
44
|
+
// for *every* deployment that doesn't actively opt in stays identical
|
|
45
|
+
// to v1.85.x.
|
|
46
|
+
//
|
|
47
|
+
// Mode is controlled by `EVOLVER_WORKSPACE_KEYCHAIN`:
|
|
48
|
+
// - `auto` (default) — try keychain, fall back to FS on any failure.
|
|
49
|
+
// - `force` — keychain only; throw if unavailable. Use in
|
|
50
|
+
// CI to assert the addon is loaded.
|
|
51
|
+
// - `off` — skip keychain entirely; use FS path.
|
|
52
|
+
//
|
|
53
|
+
// Service / account naming:
|
|
54
|
+
// service = "evomap.evolver.workspace-id"
|
|
55
|
+
// account = absolute path to the workspace root
|
|
56
|
+
// The account is the workspace-root path because that's the natural
|
|
57
|
+
// identity boundary — multiple evolver installs sharing the same
|
|
58
|
+
// workspace root must resolve to the SAME secret (writer/reader parity,
|
|
59
|
+
// PR #109 round-1 MEDIUM).
|
|
60
|
+
|
|
61
|
+
const KEYCHAIN_SERVICE = 'evomap.evolver.workspace-id';
|
|
62
|
+
|
|
63
|
+
// 32 hex chars (16 random bytes) — same shape as the FS impl, kept
|
|
64
|
+
// strict so a legacy migration from FS into keychain validates cleanly.
|
|
65
|
+
const ID_RE = /^[a-f0-9]{32,}$/i;
|
|
66
|
+
|
|
67
|
+
let _cachedAddon = undefined; // undefined = not tried, null = failed, fn = ok
|
|
68
|
+
|
|
69
|
+
function loadAddon() {
|
|
70
|
+
if (_cachedAddon !== undefined) return _cachedAddon;
|
|
71
|
+
try {
|
|
72
|
+
// eslint-disable-next-line global-require
|
|
73
|
+
const mod = require('@napi-rs/keyring');
|
|
74
|
+
if (mod && typeof mod.Entry === 'function') {
|
|
75
|
+
// On Windows this uses the Credential Manager (DPAPI-backed) backend
|
|
76
|
+
// from keyring-rs — no extra setup required when the addon is present.
|
|
77
|
+
_cachedAddon = mod;
|
|
78
|
+
return _cachedAddon;
|
|
79
|
+
}
|
|
80
|
+
// Addon present but does not expose the expected Entry constructor —
|
|
81
|
+
// treat as unavailable; callers fall back to FS storage.
|
|
82
|
+
_cachedAddon = null;
|
|
83
|
+
return null;
|
|
84
|
+
} catch {
|
|
85
|
+
// Addon absent or failed to load (bun binary, stripped package, Windows
|
|
86
|
+
// without the prebuilt .node, etc.). On Windows this means Credential
|
|
87
|
+
// Manager is NOT used and the secret falls back to a plaintext file —
|
|
88
|
+
// see WINDOWS SECURITY NOTE at the top of this file.
|
|
89
|
+
_cachedAddon = null;
|
|
90
|
+
return null;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
function getMode() {
|
|
95
|
+
const raw = String(process.env.EVOLVER_WORKSPACE_KEYCHAIN || 'auto').toLowerCase().trim();
|
|
96
|
+
if (raw === 'force' || raw === 'off' || raw === 'auto') return raw;
|
|
97
|
+
return 'auto';
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
// Patterns indicating a clean "entry not present" miss across the
|
|
101
|
+
// platform backends keyring-rs talks to:
|
|
102
|
+
// - Linux libsecret → "No matching entry found in secure storage"
|
|
103
|
+
// - macOS Keychain → "The specified item could not be found in the keychain"
|
|
104
|
+
// - Windows Cred Mgr → "Element not found"
|
|
105
|
+
// Anything else thrown by getPassword (locked keyring, no D-Bus, version
|
|
106
|
+
// mismatch, ambiguous entry, …) means the keychain itself isn't usable
|
|
107
|
+
// and MUST surface as `available: false` so callers — particularly
|
|
108
|
+
// `force` mode — can refuse to fall back to FS instead of silently
|
|
109
|
+
// papering over the failure (Bugbot PR #121 round-3 MEDIUM: dead code
|
|
110
|
+
// in force-mode unavailable path).
|
|
111
|
+
const NO_ENTRY_PATTERNS = [
|
|
112
|
+
/no\s+matching\s+entry/i, // libsecret
|
|
113
|
+
/could\s+not\s+be\s+found/i, // macOS
|
|
114
|
+
/element\s+not\s+found/i, // Windows
|
|
115
|
+
/\bnoentry\b/i, // keyring-rs NoEntry (CamelCase)
|
|
116
|
+
/\bno\s*entry\b/i, // generic spaced "no entry"
|
|
117
|
+
/not\s+found\s+in\s+(?:secure|keychain)/i,
|
|
118
|
+
];
|
|
119
|
+
|
|
120
|
+
function _isNoEntryError(err) {
|
|
121
|
+
const msg = (err && err.message) || '';
|
|
122
|
+
return NO_ENTRY_PATTERNS.some((re) => re.test(msg));
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
// Read the secret for `account` from the OS keychain.
|
|
126
|
+
// Returns:
|
|
127
|
+
// { available: true, id: "<32-hex>" } on hit
|
|
128
|
+
// { available: true, id: null } on clean miss (NoEntry-class throw)
|
|
129
|
+
// { available: false, id: null } when the addon isn't loaded OR
|
|
130
|
+
// the keychain throws any non-
|
|
131
|
+
// NoEntry error (locked, no
|
|
132
|
+
// backend, version mismatch, …)
|
|
133
|
+
function readFromKeychain(account) {
|
|
134
|
+
const addon = loadAddon();
|
|
135
|
+
if (!addon) return { available: false, id: null };
|
|
136
|
+
try {
|
|
137
|
+
const entry = new addon.Entry(KEYCHAIN_SERVICE, account);
|
|
138
|
+
const raw = entry.getPassword();
|
|
139
|
+
if (typeof raw === 'string' && ID_RE.test(raw.trim())) {
|
|
140
|
+
return { available: true, id: raw.trim() };
|
|
141
|
+
}
|
|
142
|
+
// getPassword resolved with empty / non-hex — treat as miss; the
|
|
143
|
+
// keychain itself is responding so we stay "available".
|
|
144
|
+
return { available: true, id: null };
|
|
145
|
+
} catch (err) {
|
|
146
|
+
if (_isNoEntryError(err)) return { available: true, id: null };
|
|
147
|
+
return { available: false, id: null };
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
// Persist `id` for `account` in the OS keychain. Returns true on
|
|
152
|
+
// success, false on any failure (callers fall back to FS).
|
|
153
|
+
function writeToKeychain(account, id) {
|
|
154
|
+
const addon = loadAddon();
|
|
155
|
+
if (!addon) return false;
|
|
156
|
+
try {
|
|
157
|
+
const entry = new addon.Entry(KEYCHAIN_SERVICE, account);
|
|
158
|
+
entry.setPassword(id);
|
|
159
|
+
return true;
|
|
160
|
+
} catch {
|
|
161
|
+
return false;
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
module.exports = {
|
|
166
|
+
KEYCHAIN_SERVICE,
|
|
167
|
+
getMode,
|
|
168
|
+
loadAddon,
|
|
169
|
+
readFromKeychain,
|
|
170
|
+
writeToKeychain,
|
|
171
|
+
// Exported for test coverage of the NoEntry-vs-PlatformFailure
|
|
172
|
+
// discrimination (Bugbot PR #121 round-3 MEDIUM).
|
|
173
|
+
_isNoEntryError,
|
|
174
|
+
};
|
|
@@ -1 +1,123 @@
|
|
|
1
|
-
const _0x3f196d=_0x42e0;(function(_0x5a3693,_0x21b37e){const _0xa88196=_0x42e0,_0x5715c4=_0x5a3693();while(!![]){try{const _0x13fe7f=-parseInt(_0xa88196(0x325,'\x36\x76\x62\x48'))/(-0x2b*0x3e+0x1603+-0xb98)*(parseInt(_0xa88196(0x29b,'\x66\x6c\x33\x64'))/(0x513+-0x43*0x45+0x1*0xcfe))+-parseInt(_0xa88196(0x30c,'\x38\x4c\x4c\x57'))/(0x13*0x162+-0x1d9b+0x358)*(-parseInt(_0xa88196(0x26a,'\x64\x68\x75\x72'))/(0x1679*-0x1+-0xe8f*-0x2+-0x1*0x6a1))+parseInt(_0xa88196(0x243,'\x42\x6e\x77\x33'))/(-0x6*-0x42d+-0x391+-0x1578)*(-parseInt(_0xa88196(0x294,'\x49\x6d\x62\x4a'))/(-0x2c5*-0x3+-0x4*0x7be+0x16af*0x1))+parseInt(_0xa88196(0x291,'\x29\x6b\x23\x70'))/(-0x800+-0x4f2+-0x51*-0x29)*(parseInt(_0xa88196(0x200,'\x48\x29\x69\x72'))/(-0x1*0x112d+-0x736+0x186b))+parseInt(_0xa88196(0x319,'\x4e\x74\x5e\x28'))/(0x200b+-0x1ad8+-0x52a)+-parseInt(_0xa88196(0x260,'\x28\x34\x65\x21'))/(-0x7*0x38a+-0xce6+0x649*0x6)+-parseInt(_0xa88196(0x1fb,'\x7a\x79\x39\x63'))/(0x1*0xd2b+-0x1aa3+0xd83);if(_0x13fe7f===_0x21b37e)break;else _0x5715c4['push'](_0x5715c4['shift']());}catch(_0x16055a){_0x5715c4['push'](_0x5715c4['shift']());}}}(_0x411a,-0x3da23+0x269cf+0x3695c));const _0x2062cc=(function(){const _0x3295c3=_0x42e0,_0x100fcc={};_0x100fcc[_0x3295c3(0x286,'\x48\x29\x69\x72')]=function(_0xec85c,_0x53ba1e){return _0xec85c===_0x53ba1e;},_0x100fcc[_0x3295c3(0x245,'\x69\x77\x37\x72')]=_0x3295c3(0x2a2,'\x48\x49\x63\x4d');const _0x314c4d=_0x100fcc;let _0x395ff3=!![];return function(_0x216e2a,_0x3b2676){const _0x2795f6=_0x3295c3,_0x338d91={'\x43\x6f\x50\x73\x58':function(_0x155438,_0x3e9773){const _0x2af91c=_0x42e0;return _0x314c4d[_0x2af91c(0x28b,'\x69\x77\x37\x72')](_0x155438,_0x3e9773);},'\x6b\x53\x69\x78\x45':_0x314c4d[_0x2795f6(0x27b,'\x29\x4d\x5a\x21')]},_0x58bbd1=_0x395ff3?function(){const _0x1da611=_0x2795f6,_0x3677e3={'\x76\x78\x58\x50\x45':_0x1da611(0x24b,'\x62\x5a\x23\x6e')+_0x1da611(0x290,'\x50\x61\x23\x6c')+'\x69\x67','\x48\x55\x52\x70\x49':function(_0x4249e6,_0x1a20b5){const _0x2d8dab=_0x1da611;return _0x338d91[_0x2d8dab(0x251,'\x34\x61\x76\x53')](_0x4249e6,_0x1a20b5);},'\x74\x4b\x4f\x46\x72':function(_0x3e1c3b,_0x1b98ef){const _0x2e1e6e=_0x1da611;return _0x338d91[_0x2e1e6e(0x280,'\x38\x4c\x4c\x57')](_0x3e1c3b,_0x1b98ef);}};if(_0x3b2676){if(_0x338d91[_0x1da611(0x2c6,'\x63\x72\x6a\x47')]('\x68\x53\x74\x76\x7a',_0x338d91[_0x1da611(0x1bd,'\x42\x6e\x77\x33')])){const _0x37e585={};_0x37e585[_0x1da611(0x270,'\x6f\x40\x4d\x6c')]=_0x1da611(0x28d,'\x48\x49\x63\x4d')+_0x1da611(0x1c5,'\x46\x4d\x32\x25')+_0x1da611(0x1dd,'\x29\x4d\x5a\x21'),_0x37e585['\x6c\x69\x6d\x69\x74']=0x32;const _0x86829f={};_0x86829f[_0x1da611(0x26b,'\x39\x76\x5a\x59')]=_0x3677e3[_0x1da611(0x1eb,'\x78\x6c\x52\x49')],_0x86829f[_0x1da611(0x31e,'\x7a\x79\x39\x63')]=0x32;const _0x1ba9af=[...this[_0x1da611(0x32a,'\x46\x4d\x32\x25')][_0x1da611(0x265,'\x76\x57\x2a\x4d')](_0x37e585),...this[_0x1da611(0x235,'\x33\x69\x21\x67')][_0x1da611(0x283,'\x78\x6c\x52\x49')](_0x86829f)];let _0x730774=0xb02+-0x14*0x67+-0x2f6;for(const _0x45a563 of _0x1ba9af){const _0x40ef65=this[_0x1da611(0x227,'\x66\x6c\x33\x64')](_0x45a563),_0x586a87=_0x3677e3['\x48\x55\x52\x70\x49'](_0x40ef65,!![])||_0x40ef65&&_0x3677e3['\x48\x55\x52\x70\x49'](_0x40ef65['\x61\x63\x6b'],!![]),_0x31b755=_0x3677e3[_0x1da611(0x1c8,'\x49\x6d\x62\x4a')](_0x40ef65,!![])||_0x40ef65&&_0x3677e3[_0x1da611(0x24e,'\x76\x57\x2a\x4d')](_0x40ef65['\x61\x70\x70\x6c\x69\x65\x64'],!![]);_0x586a87&&this[_0x1da611(0x281,'\x26\x77\x40\x5b')][_0x1da611(0x241,'\x36\x68\x52\x32')](_0x45a563['\x69\x64']),_0x31b755&&_0x730774++;}return _0x730774;}else{const _0x3b6a1b=_0x3b2676[_0x1da611(0x313,'\x63\x72\x6a\x47')](_0x216e2a,arguments);return _0x3b2676=null,_0x3b6a1b;}}}:function(){};return _0x395ff3=![],_0x58bbd1;};}()),_0x352c48=_0x2062cc(this,function(){const _0x5b871c=_0x42e0,_0x168115={};_0x168115[_0x5b871c(0x20d,'\x56\x78\x67\x70')]=_0x5b871c(0x2b6,'\x5a\x7a\x4c\x41')+_0x5b871c(0x1d5,'\x55\x42\x68\x64');const _0x4f703d=_0x168115;return _0x352c48[_0x5b871c(0x2e3,'\x55\x42\x68\x64')]()[_0x5b871c(0x205,'\x69\x77\x37\x72')](_0x5b871c(0x29e,'\x46\x58\x2a\x34')+_0x5b871c(0x29c,'\x44\x64\x40\x45'))[_0x5b871c(0x309,'\x42\x6e\x77\x33')]()[_0x5b871c(0x2f7,'\x7a\x79\x39\x63')+_0x5b871c(0x329,'\x50\x61\x23\x6c')](_0x352c48)['\x73\x65\x61\x72\x63\x68'](_0x4f703d['\x75\x6f\x6b\x78\x53']);});_0x352c48();'use strict';const _0x1a93d1=require('\x63\x72\x79\x70\x74\x6f'),_0x2e2941=[_0x3f196d(0x2d0,'\x7a\x79\x39\x63')+_0x3f196d(0x258,'\x6e\x4a\x21\x72')+_0x3f196d(0x1d0,'\x6e\x4a\x21\x72')+'\x2d\x2d',_0x3f196d(0x232,'\x48\x49\x63\x4d')+_0x3f196d(0x28a,'\x49\x6d\x62\x4a')+_0x3f196d(0x2c5,'\x34\x61\x76\x53')+_0x3f196d(0x1fa,'\x42\x6e\x77\x33')+_0x3f196d(0x254,'\x56\x56\x43\x34')+_0x3f196d(0x288,'\x36\x70\x54\x36')+_0x3f196d(0x240,'\x38\x4c\x4c\x57')+_0x3f196d(0x2a3,'\x46\x4d\x32\x25'),'\x79\x37\x35\x68\x39\x52\x7a\x63'+_0x3f196d(0x2c0,'\x73\x23\x73\x2a')+'\x66\x69\x49\x57\x64\x61\x78\x34'+_0x3f196d(0x1e7,'\x44\x79\x4d\x40')+'\x49\x48\x47\x4e\x73\x4d\x72\x37'+_0x3f196d(0x1f7,'\x35\x70\x71\x62')+_0x3f196d(0x1cf,'\x55\x42\x68\x64')+_0x3f196d(0x28c,'\x23\x5e\x2a\x4b'),_0x3f196d(0x2f5,'\x28\x34\x65\x21')+'\x5a\x51\x30\x5a\x30\x7a\x46\x63'+_0x3f196d(0x24d,'\x50\x61\x23\x6c')+_0x3f196d(0x1ed,'\x55\x6e\x4d\x25')+_0x3f196d(0x256,'\x36\x76\x62\x48')+_0x3f196d(0x316,'\x64\x68\x75\x72')+_0x3f196d(0x22f,'\x36\x74\x25\x63')+'\x64\x58\x32\x6b\x2b\x6c\x54\x48',_0x3f196d(0x1db,'\x7a\x79\x39\x63')+_0x3f196d(0x276,'\x42\x6e\x77\x33')+_0x3f196d(0x2b7,'\x55\x42\x68\x64')+'\x57\x7a\x59\x66\x38\x43\x56\x58'+_0x3f196d(0x1fe,'\x59\x63\x23\x44')+_0x3f196d(0x2fa,'\x59\x63\x23\x44')+_0x3f196d(0x2ed,'\x29\x6b\x23\x70')+'\x51\x5a\x68\x49\x50\x73\x33\x52',_0x3f196d(0x255,'\x33\x69\x21\x67')+_0x3f196d(0x233,'\x64\x68\x75\x72')+_0x3f196d(0x296,'\x69\x77\x37\x72')+_0x3f196d(0x2c7,'\x48\x49\x63\x4d')+_0x3f196d(0x1e2,'\x66\x6c\x33\x64')+_0x3f196d(0x31d,'\x56\x78\x67\x70')+_0x3f196d(0x1ea,'\x29\x6b\x23\x70')+'\x31\x56\x46\x61\x61\x6b\x56\x64',_0x3f196d(0x31b,'\x69\x77\x37\x72')+_0x3f196d(0x2eb,'\x69\x77\x37\x72')+_0x3f196d(0x224,'\x5b\x75\x74\x31')+_0x3f196d(0x2bf,'\x40\x59\x36\x46')+_0x3f196d(0x326,'\x5a\x7a\x4c\x41')+'\x33\x73\x57\x67\x35\x68\x35\x6d'+_0x3f196d(0x1d1,'\x36\x76\x62\x48')+_0x3f196d(0x2df,'\x76\x57\x2a\x4d'),_0x3f196d(0x2db,'\x49\x6d\x62\x4a')+_0x3f196d(0x1f9,'\x44\x64\x40\x45')+_0x3f196d(0x226,'\x44\x79\x4d\x40')+_0x3f196d(0x210,'\x56\x56\x43\x34')+_0x3f196d(0x1ef,'\x6e\x4a\x21\x72')+_0x3f196d(0x289,'\x44\x64\x40\x45')+'\x49\x4f\x50\x4e\x46\x59\x49\x4e'+_0x3f196d(0x21b,'\x76\x57\x2a\x4d'),_0x3f196d(0x20a,'\x50\x61\x23\x6c')+_0x3f196d(0x2da,'\x36\x68\x52\x32')+'\x66\x6c\x73\x65\x45\x41\x49\x2b'+_0x3f196d(0x248,'\x34\x61\x76\x53')+_0x3f196d(0x2f8,'\x55\x6e\x4d\x25')+'\x62\x75\x55\x6c\x61\x74\x6c\x38'+_0x3f196d(0x2a9,'\x29\x6b\x23\x70')+_0x3f196d(0x2b3,'\x35\x70\x71\x62'),_0x3f196d(0x225,'\x33\x69\x21\x67')+'\x30\x71\x46\x41\x4b\x50\x70\x63'+_0x3f196d(0x213,'\x62\x5a\x23\x6e')+_0x3f196d(0x307,'\x38\x4c\x4c\x57')+_0x3f196d(0x2ad,'\x24\x5a\x47\x31')+_0x3f196d(0x218,'\x63\x72\x6a\x47')+_0x3f196d(0x278,'\x56\x56\x43\x34'),_0x3f196d(0x204,'\x76\x57\x2a\x4d')+_0x3f196d(0x318,'\x64\x68\x75\x72')+_0x3f196d(0x242,'\x7a\x79\x39\x63')][_0x3f196d(0x272,'\x36\x76\x62\x48')]('\x0a');function _0x411a(){const _0x41fd7a=['\x75\x53\x6f\x46\x57\x50\x56\x63\x56\x68\x75','\x57\x50\x4e\x63\x51\x6d\x6b\x57\x57\x52\x65\x46\x74\x71','\x57\x50\x6a\x32\x57\x35\x70\x63\x47\x53\x6b\x68','\x63\x38\x6f\x61\x57\x37\x4b\x48\x57\x35\x52\x64\x4c\x71\x75\x4c','\x57\x36\x2f\x64\x4b\x6d\x6b\x34\x6e\x47','\x76\x53\x6f\x4e\x57\x36\x62\x59\x67\x5a\x6c\x64\x4b\x4b\x47','\x57\x37\x6c\x63\x47\x5a\x52\x63\x53\x38\x6f\x48\x70\x38\x6b\x76\x64\x71','\x57\x34\x56\x64\x4d\x47\x37\x63\x52\x53\x6b\x49\x6d\x49\x69\x79','\x57\x36\x39\x74\x6c\x59\x78\x64\x49\x71','\x57\x36\x37\x63\x4e\x38\x6f\x4b\x41\x48\x38','\x57\x52\x48\x2f\x57\x35\x64\x63\x53\x43\x6b\x72','\x57\x34\x78\x63\x4b\x64\x62\x77\x69\x47','\x57\x34\x46\x63\x55\x43\x6b\x47\x71\x72\x4c\x2b\x57\x52\x68\x64\x50\x57','\x57\x36\x33\x64\x4a\x62\x79\x75\x61\x62\x33\x63\x52\x38\x6b\x73','\x57\x35\x33\x63\x56\x53\x6b\x4b\x71\x57\x31\x55\x57\x51\x68\x64\x50\x47','\x57\x52\x4e\x63\x4d\x74\x68\x63\x53\x38\x6f\x42\x76\x78\x78\x64\x55\x61','\x57\x34\x46\x63\x49\x43\x6b\x65\x57\x4f\x57\x35\x62\x53\x6b\x78\x79\x47','\x57\x51\x4f\x45\x57\x50\x4c\x43\x6c\x6d\x6b\x49\x6f\x53\x6b\x63','\x6c\x53\x6b\x7a\x57\x50\x75\x50\x57\x50\x68\x64\x4e\x57','\x57\x37\x37\x64\x54\x48\x46\x63\x56\x53\x6f\x58\x6a\x49\x50\x6e','\x7a\x4b\x75\x38\x6e\x61\x5a\x64\x4b\x78\x46\x64\x53\x49\x33\x64\x51\x53\x6b\x50','\x76\x64\x74\x63\x49\x53\x6b\x2f\x69\x6d\x6f\x6c\x43\x48\x79','\x74\x43\x6b\x51\x7a\x4b\x33\x63\x4d\x61','\x57\x4f\x46\x63\x50\x53\x6b\x7a\x65\x43\x6b\x41\x57\x34\x76\x6b\x57\x35\x53','\x57\x4f\x38\x42\x57\x50\x6a\x68\x57\x35\x46\x63\x49\x53\x6f\x54\x6c\x61','\x70\x6d\x6f\x6e\x7a\x43\x6f\x78\x72\x47','\x65\x53\x6b\x46\x61\x47\x34','\x72\x43\x6f\x4c\x57\x4f\x4a\x63\x55\x68\x31\x50\x6d\x65\x30','\x57\x37\x46\x63\x4c\x43\x6f\x4d\x73\x47','\x6d\x53\x6b\x46\x57\x4f\x62\x50\x57\x34\x56\x63\x48\x43\x6f\x71\x57\x36\x30','\x57\x52\x2f\x63\x51\x53\x6f\x77\x57\x50\x33\x63\x48\x66\x38\x78\x57\x52\x57','\x75\x53\x6b\x77\x57\x50\x44\x2f\x57\x37\x79\x53\x57\x4f\x5a\x64\x52\x61','\x57\x4f\x70\x64\x55\x53\x6f\x55\x61\x65\x66\x79\x57\x50\x68\x64\x4b\x57','\x57\x51\x70\x63\x49\x53\x6b\x62\x57\x50\x30\x58','\x45\x59\x68\x63\x49\x74\x46\x63\x4e\x61\x58\x6f\x73\x61','\x43\x43\x6f\x66\x57\x37\x65','\x6b\x76\x48\x4c\x57\x51\x65\x79\x57\x36\x70\x64\x4c\x53\x6f\x52','\x64\x62\x71\x43\x57\x34\x76\x48','\x76\x61\x2f\x63\x4f\x61\x46\x63\x56\x73\x62\x54\x6a\x47','\x73\x57\x4e\x63\x49\x74\x68\x63\x51\x61','\x6c\x4b\x6e\x5a\x57\x4f\x57\x68\x57\x37\x52\x64\x51\x43\x6b\x4e','\x78\x38\x6b\x78\x57\x4f\x58\x4c\x57\x36\x69','\x57\x51\x74\x64\x54\x47\x56\x64\x4a\x4a\x2f\x64\x4c\x53\x6b\x6e\x57\x50\x57','\x77\x75\x56\x64\x52\x53\x6f\x49\x57\x52\x58\x6e\x57\x52\x76\x50','\x57\x37\x70\x64\x52\x47\x2f\x64\x51\x31\x33\x63\x52\x30\x69','\x57\x50\x56\x63\x49\x77\x74\x64\x50\x53\x6b\x69\x73\x68\x68\x64\x56\x47','\x57\x36\x74\x64\x4c\x43\x6b\x4c\x6f\x6d\x6b\x57\x57\x37\x6a\x76\x57\x50\x61','\x57\x37\x53\x4d\x6e\x6d\x6f\x5a\x57\x50\x42\x63\x49\x68\x78\x64\x4a\x61','\x62\x6d\x6b\x4a\x57\x4f\x4e\x64\x4c\x47','\x6d\x6d\x6b\x34\x57\x51\x31\x6e\x57\x34\x30','\x61\x38\x6f\x44\x57\x34\x39\x4a\x57\x36\x75','\x57\x36\x37\x64\x53\x64\x46\x63\x51\x38\x6f\x48\x69\x59\x66\x6f','\x57\x50\x6c\x64\x4b\x62\x53\x65\x74\x62\x37\x64\x56\x43\x6b\x43','\x57\x35\x42\x64\x51\x66\x44\x49\x57\x4f\x30','\x44\x58\x78\x63\x56\x43\x6f\x58\x57\x34\x58\x57\x57\x34\x78\x64\x4b\x61','\x41\x38\x6f\x53\x57\x37\x61\x74\x57\x36\x38','\x57\x35\x47\x49\x75\x43\x6b\x7a\x57\x36\x4e\x63\x4e\x71','\x6b\x6d\x6f\x69\x57\x35\x4c\x59\x57\x36\x5a\x64\x49\x71','\x6e\x59\x33\x64\x52\x43\x6b\x43\x6d\x57','\x42\x43\x6f\x74\x57\x35\x38\x33\x57\x34\x4a\x64\x48\x43\x6f\x72\x71\x57','\x69\x43\x6f\x43\x57\x52\x57\x56\x57\x34\x71\x39\x57\x34\x6e\x6f','\x57\x51\x37\x64\x56\x74\x6a\x6b\x76\x71\x33\x63\x56\x6d\x6b\x77','\x42\x71\x46\x64\x56\x59\x6d\x53\x57\x51\x72\x70\x57\x4f\x30','\x57\x36\x64\x64\x4d\x53\x6b\x4f\x69\x53\x6b\x32\x57\x36\x39\x76\x57\x50\x61','\x6e\x38\x6f\x4a\x57\x50\x65\x35\x71\x38\x6f\x37\x65\x43\x6f\x6f','\x57\x51\x53\x39\x57\x36\x4a\x64\x54\x65\x56\x63\x4f\x43\x6b\x54','\x71\x47\x74\x63\x51\x63\x6c\x63\x50\x47','\x45\x53\x6b\x33\x76\x31\x33\x63\x50\x74\x37\x63\x53\x58\x61','\x67\x76\x76\x2b\x57\x52\x30\x72\x57\x36\x42\x64\x52\x61','\x6d\x6d\x6f\x58\x57\x51\x72\x38\x73\x53\x6b\x48\x71\x38\x6b\x62','\x57\x50\x2f\x64\x4d\x76\x74\x63\x56\x32\x2f\x64\x53\x43\x6b\x53\x57\x34\x79','\x57\x34\x33\x63\x55\x6d\x6b\x54\x78\x48\x48\x4f\x57\x51\x68\x64\x54\x57','\x66\x38\x6f\x76\x43\x53\x6f\x79\x62\x6d\x6b\x31\x57\x4f\x58\x76','\x57\x37\x74\x64\x4d\x6d\x6b\x49\x6f\x6d\x6b\x34\x57\x37\x6a\x56\x57\x50\x65','\x62\x47\x71\x49\x57\x35\x65\x39\x57\x35\x4e\x63\x4b\x43\x6b\x67','\x6e\x58\x37\x64\x4e\x59\x43\x71','\x75\x68\x5a\x64\x4e\x43\x6f\x32\x57\x37\x72\x61\x57\x35\x66\x65','\x57\x52\x4e\x63\x51\x33\x6c\x64\x4b\x43\x6b\x53','\x68\x43\x6f\x51\x75\x38\x6f\x54\x57\x34\x66\x47\x73\x6d\x6f\x53','\x66\x6d\x6b\x32\x57\x36\x53\x6f\x67\x47','\x43\x38\x6f\x45\x57\x37\x54\x77\x69\x57','\x57\x4f\x57\x78\x57\x37\x2f\x64\x4c\x4b\x4b','\x70\x38\x6f\x63\x79\x43\x6f\x73\x76\x38\x6f\x45\x57\x4f\x44\x53','\x62\x6d\x6f\x4b\x72\x6d\x6b\x55\x57\x35\x35\x5a\x71\x57','\x45\x6d\x6f\x58\x57\x52\x33\x63\x4c\x64\x39\x51\x6b\x57\x34','\x73\x38\x6f\x76\x57\x50\x2f\x63\x51\x4e\x50\x33','\x57\x34\x74\x64\x56\x53\x6f\x4a\x57\x36\x35\x6b\x62\x38\x6f\x65\x6d\x53\x6b\x45\x57\x50\x6c\x64\x4f\x38\x6f\x35\x63\x61','\x64\x43\x6f\x69\x73\x6d\x6b\x65\x57\x37\x7a\x48\x76\x43\x6b\x2f','\x79\x73\x5a\x63\x4d\x38\x6f\x78\x57\x36\x65','\x57\x4f\x61\x72\x57\x34\x6c\x63\x49\x4b\x35\x50\x61\x43\x6f\x69','\x57\x52\x6c\x63\x56\x64\x4c\x75\x62\x68\x48\x47\x57\x36\x79','\x61\x6d\x6f\x33\x78\x6d\x6b\x48\x57\x35\x72\x6e\x74\x38\x6f\x2f','\x74\x43\x6b\x38\x76\x43\x6b\x33\x57\x37\x7a\x6b\x71\x43\x6f\x4e','\x57\x34\x4a\x63\x4a\x47\x38\x4e\x57\x37\x47','\x57\x34\x68\x63\x55\x43\x6b\x33\x78\x57\x6e\x32\x57\x4f\x4e\x63\x54\x61','\x57\x36\x4e\x64\x55\x48\x64\x63\x4a\x6d\x6f\x4e\x6b\x5a\x54\x6d','\x6e\x75\x6a\x2b\x57\x51\x65\x73','\x57\x4f\x4f\x6d\x57\x50\x35\x6f\x57\x34\x71','\x57\x52\x56\x63\x54\x43\x6b\x5a\x6d\x38\x6b\x6d\x57\x50\x47','\x42\x38\x6b\x31\x72\x4c\x6c\x63\x55\x71','\x57\x50\x75\x64\x57\x51\x31\x4d\x57\x35\x38','\x57\x34\x30\x56\x64\x77\x46\x64\x48\x57','\x62\x5a\x56\x64\x4c\x32\x44\x6e\x57\x37\x43\x75\x57\x52\x4b','\x57\x51\x68\x64\x53\x75\x76\x64\x57\x52\x37\x63\x4c\x6d\x6b\x72\x62\x43\x6f\x2b\x77\x65\x78\x64\x4e\x61','\x7a\x64\x52\x64\x50\x72\x43\x35\x57\x4f\x43\x39\x57\x36\x38','\x57\x51\x70\x63\x50\x30\x56\x63\x56\x57\x74\x64\x53\x48\x61\x69\x72\x6d\x6b\x50\x57\x34\x54\x6b\x57\x37\x53','\x57\x37\x46\x63\x4e\x53\x6f\x33\x74\x61\x61\x4b\x73\x6d\x6f\x5a','\x74\x6d\x6f\x78\x57\x35\x62\x48\x57\x35\x64\x64\x53\x53\x6f\x68\x42\x57','\x6e\x43\x6b\x55\x57\x4f\x78\x64\x49\x6d\x6b\x64\x66\x53\x6f\x66\x57\x36\x38','\x6f\x4b\x54\x77\x42\x4d\x38\x54\x57\x52\x65\x67','\x57\x34\x6c\x63\x56\x53\x6b\x55\x72\x62\x47','\x57\x4f\x70\x64\x49\x4b\x68\x64\x56\x67\x4e\x64\x47\x43\x6b\x58\x57\x35\x38','\x57\x52\x6c\x64\x56\x72\x64\x64\x51\x76\x6c\x63\x4f\x30\x66\x6d','\x57\x35\x4f\x31\x6c\x53\x6f\x30\x57\x52\x70\x63\x53\x59\x5a\x63\x54\x61','\x57\x34\x6e\x33\x66\x72\x68\x64\x4b\x59\x2f\x64\x52\x6d\x6b\x51','\x43\x57\x4a\x63\x55\x6d\x6f\x57','\x57\x52\x64\x63\x4b\x67\x64\x64\x56\x61','\x64\x47\x2f\x64\x51\x4a\x61\x49\x57\x52\x7a\x71','\x57\x51\x4a\x63\x4d\x32\x78\x64\x4d\x43\x6b\x63\x46\x53\x6f\x7a\x68\x71','\x57\x52\x4e\x63\x4a\x6d\x6f\x76\x57\x51\x2f\x63\x51\x47','\x62\x63\x2f\x64\x4e\x38\x6f\x44\x61\x6d\x6f\x30\x76\x4a\x57','\x57\x36\x42\x63\x50\x49\x75','\x57\x34\x70\x64\x56\x76\x72\x4a\x57\x4f\x30','\x57\x51\x47\x55\x57\x36\x78\x64\x55\x30\x53','\x57\x50\x38\x54\x57\x37\x4a\x63\x48\x4e\x4b','\x57\x37\x66\x47\x6f\x62\x56\x64\x4c\x74\x6d','\x75\x53\x6b\x77\x57\x50\x44\x2f\x57\x37\x7a\x74\x57\x50\x2f\x64\x53\x71','\x57\x37\x4a\x64\x4b\x48\x70\x63\x50\x43\x6f\x39','\x57\x37\x4f\x65\x45\x6d\x6b\x35\x57\x35\x70\x63\x56\x58\x33\x63\x48\x57','\x66\x47\x6d\x53\x57\x35\x58\x48\x57\x34\x52\x64\x49\x43\x6f\x43','\x63\x53\x6f\x75\x57\x35\x76\x37\x57\x34\x47','\x65\x38\x6b\x7a\x64\x76\x53','\x57\x35\x5a\x64\x50\x76\x35\x59\x57\x50\x58\x4d\x57\x52\x35\x65','\x76\x38\x6b\x6b\x77\x66\x46\x63\x48\x47','\x72\x43\x6f\x4c\x57\x36\x47','\x71\x31\x33\x64\x56\x43\x6f\x4e\x57\x35\x34','\x46\x33\x52\x64\x4a\x53\x6f\x30\x57\x37\x6a\x36\x57\x50\x72\x73','\x6c\x43\x6f\x65\x57\x36\x66\x2b\x57\x36\x5a\x64\x47\x47','\x7a\x38\x6f\x78\x57\x37\x57\x48','\x73\x38\x6f\x4f\x57\x37\x44\x4c\x6b\x5a\x42\x64\x55\x47\x4f','\x6c\x38\x6b\x36\x57\x4f\x33\x64\x4a\x6d\x6b\x35\x6f\x53\x6f\x65\x57\x37\x30','\x69\x6d\x6b\x53\x57\x50\x43\x2f','\x57\x51\x56\x64\x4e\x71\x33\x63\x53\x53\x6f\x7a\x68\x74\x53\x7a','\x43\x53\x6f\x36\x74\x43\x6b\x4d\x57\x35\x69\x76\x57\x36\x61\x43','\x64\x58\x68\x64\x4c\x4a\x71\x76\x57\x52\x76\x2b\x57\x51\x47','\x6c\x53\x6b\x2b\x57\x52\x2f\x64\x55\x53\x6b\x70','\x70\x38\x6b\x51\x57\x4f\x47\x49\x76\x47','\x6e\x43\x6b\x50\x57\x50\x4a\x64\x4d\x53\x6b\x55\x61\x61','\x57\x52\x68\x63\x54\x4b\x2f\x64\x55\x57','\x57\x50\x33\x64\x53\x4b\x42\x64\x4a\x4c\x79','\x57\x4f\x76\x37\x61\x38\x6f\x6b\x57\x52\x56\x64\x4d\x33\x4a\x63\x53\x72\x62\x4a\x68\x59\x74\x64\x56\x61','\x57\x52\x37\x63\x49\x33\x46\x64\x53\x38\x6b\x52\x44\x6d\x6f\x73\x71\x71','\x61\x6d\x6f\x33\x76\x6d\x6b\x56','\x41\x6d\x6f\x33\x57\x35\x43\x52\x57\x34\x30','\x57\x34\x42\x63\x4c\x43\x6b\x53\x42\x57\x65\x51\x57\x50\x70\x63\x4f\x57','\x6e\x53\x6f\x77\x7a\x38\x6f\x74','\x68\x38\x6f\x74\x57\x51\x4f\x59\x57\x34\x53\x4e\x57\x37\x53','\x57\x35\x2f\x64\x49\x73\x56\x63\x4b\x53\x6f\x73\x67\x48\x62\x39','\x57\x36\x54\x4d\x65\x59\x70\x64\x48\x63\x56\x63\x54\x43\x6b\x53','\x57\x4f\x71\x46\x57\x36\x4a\x63\x4b\x4c\x6e\x48\x63\x57','\x6e\x62\x4a\x64\x4e\x5a\x79\x71\x57\x52\x30\x6e','\x57\x34\x79\x55\x46\x53\x6b\x72\x57\x52\x56\x63\x4d\x5a\x68\x63\x4a\x47','\x57\x51\x4f\x71\x57\x50\x6a\x65','\x57\x35\x42\x64\x52\x38\x6b\x32\x69\x6d\x6b\x71','\x57\x35\x56\x63\x4a\x5a\x61\x54\x57\x35\x2f\x64\x54\x43\x6b\x37\x6c\x47','\x57\x34\x2f\x63\x54\x6d\x6b\x4f','\x57\x37\x69\x75\x43\x66\x78\x64\x4d\x38\x6b\x67\x57\x36\x42\x64\x47\x61','\x57\x37\x56\x63\x52\x58\x61','\x57\x4f\x70\x63\x4d\x43\x6f\x4a\x57\x51\x5a\x63\x56\x32\x34\x48\x57\x4f\x30','\x57\x37\x33\x64\x4e\x58\x54\x69\x6c\x75\x33\x64\x4c\x53\x6b\x73','\x57\x37\x78\x63\x4c\x6d\x6f\x6f\x46\x59\x61','\x57\x37\x74\x63\x4f\x62\x53\x62\x57\x36\x4f','\x61\x38\x6f\x72\x69\x38\x6b\x76\x41\x38\x6f\x37\x57\x34\x4c\x4d','\x6e\x47\x2f\x64\x4d\x4a\x61\x77\x57\x52\x4f\x42\x57\x51\x53','\x45\x43\x6b\x6a\x6b\x43\x6b\x77\x57\x34\x75\x6c\x57\x4f\x50\x4c','\x57\x52\x33\x63\x50\x38\x6f\x68\x57\x4f\x56\x63\x47\x4c\x6d','\x6d\x4c\x44\x34\x76\x67\x4b\x48\x57\x50\x6e\x68','\x57\x35\x69\x2f\x77\x43\x6b\x74','\x6a\x53\x6b\x33\x57\x4f\x6e\x5a','\x57\x36\x4e\x64\x51\x57\x56\x63\x52\x43\x6f\x32','\x57\x35\x44\x79\x57\x37\x42\x63\x47\x61','\x44\x4a\x37\x63\x52\x73\x64\x63\x51\x61','\x68\x43\x6f\x55\x57\x4f\x7a\x63\x57\x37\x52\x63\x4a\x64\x69\x36','\x66\x43\x6b\x69\x68\x5a\x61\x37\x6d\x43\x6f\x4c\x57\x4f\x4f','\x57\x34\x6e\x6f\x57\x37\x64\x64\x4e\x6d\x6b\x68\x57\x35\x62\x66\x64\x57','\x57\x52\x75\x2f\x57\x35\x37\x63\x56\x78\x31\x7a\x76\x38\x6f\x55','\x57\x50\x2f\x64\x50\x53\x6f\x57\x67\x76\x57\x51\x57\x36\x78\x64\x50\x64\x65\x62\x57\x34\x43\x73\x57\x51\x47','\x76\x72\x4e\x63\x54\x62\x68\x63\x51\x73\x44\x4a\x6a\x47','\x57\x50\x46\x64\x50\x53\x6b\x4d\x45\x71\x6a\x4f\x57\x50\x68\x64\x52\x47','\x65\x47\x69\x62\x57\x50\x58\x6f\x57\x4f\x6c\x63\x49\x6d\x6f\x78','\x77\x6d\x6b\x39\x41\x6d\x6b\x6d\x57\x37\x4c\x44\x57\x51\x4b\x72','\x57\x36\x71\x2f\x57\x50\x42\x64\x48\x43\x6f\x74\x57\x50\x5a\x63\x50\x43\x6b\x70\x6d\x72\x69\x62\x67\x61','\x76\x6d\x6b\x2b\x74\x43\x6b\x50\x57\x37\x47','\x57\x51\x42\x63\x4f\x6d\x6b\x2b\x6c\x43\x6b\x6d','\x7a\x62\x78\x63\x56\x38\x6f\x37\x57\x36\x72\x35\x57\x4f\x68\x64\x50\x71','\x57\x51\x44\x6e\x71\x43\x6b\x76\x57\x35\x46\x63\x54\x75\x6c\x63\x55\x57','\x42\x43\x6f\x62\x57\x37\x71\x47\x57\x36\x42\x64\x4c\x57','\x71\x38\x6b\x43\x57\x4f\x7a\x5a\x57\x36\x65\x68\x57\x4f\x38','\x57\x35\x64\x63\x50\x74\x34\x34\x57\x36\x4b','\x69\x6d\x6b\x52\x57\x4f\x72\x35\x66\x38\x6b\x55','\x6e\x38\x6b\x68\x57\x35\x54\x37\x57\x36\x4a\x64\x4d\x74\x30\x30','\x57\x51\x46\x64\x55\x74\x54\x45\x6f\x49\x7a\x6c\x57\x52\x61','\x64\x63\x46\x64\x55\x49\x79\x2f','\x6b\x59\x37\x64\x56\x53\x6b\x73\x62\x57','\x6b\x31\x72\x32\x74\x30\x34','\x57\x36\x74\x63\x52\x63\x76\x6f\x63\x32\x79','\x62\x6d\x6b\x59\x67\x58\x79\x54\x70\x6d\x6f\x34\x57\x4f\x57','\x6c\x53\x6b\x79\x57\x52\x39\x45\x57\x34\x6c\x63\x50\x6d\x6b\x49\x57\x4f\x47','\x46\x6d\x6f\x6f\x57\x4f\x52\x63\x52\x68\x58\x47\x44\x65\x30','\x66\x6d\x6f\x63\x57\x51\x71\x2f\x57\x34\x47\x6e\x57\x37\x6e\x66','\x41\x68\x37\x63\x47\x64\x4e\x63\x51\x74\x62\x68\x77\x61','\x6d\x58\x54\x38\x77\x74\x30\x39\x57\x50\x6a\x41','\x74\x38\x6f\x4a\x57\x37\x4f','\x57\x4f\x53\x42\x57\x50\x58\x43\x57\x34\x56\x63\x49\x53\x6f\x36\x6d\x71','\x78\x43\x6b\x31\x79\x43\x6b\x65\x57\x36\x35\x6b','\x46\x6d\x6f\x55\x68\x77\x37\x63\x47\x71\x42\x63\x4c\x49\x43','\x62\x6d\x6f\x32\x57\x37\x66\x34\x69\x4a\x70\x64\x49\x30\x38','\x43\x6d\x6f\x66\x7a\x53\x6f\x46\x78\x53\x6f\x34\x57\x50\x76\x52','\x57\x34\x65\x65\x62\x53\x6f\x43\x57\x50\x70\x63\x56\x75\x42\x63\x54\x61','\x7a\x4a\x74\x63\x48\x4a\x56\x63\x49\x5a\x7a\x63\x68\x71','\x68\x6d\x6f\x53\x74\x43\x6f\x68\x77\x71','\x6d\x59\x4b\x57\x57\x36\x48\x70\x57\x37\x42\x63\x51\x57','\x57\x4f\x70\x64\x49\x4b\x68\x64\x56\x67\x4e\x64\x47\x43\x6b\x36\x57\x34\x75','\x45\x43\x6b\x70\x57\x50\x6e\x4c','\x6b\x33\x2f\x63\x4a\x59\x33\x63\x51\x74\x66\x6d\x62\x71','\x57\x50\x70\x63\x55\x43\x6b\x69\x65\x43\x6b\x42','\x46\x61\x33\x64\x55\x64\x4b\x38\x57\x52\x35\x42\x57\x4f\x75','\x57\x52\x61\x64\x57\x34\x50\x69\x57\x37\x74\x64\x56\x53\x6f\x77\x62\x61','\x63\x38\x6b\x48\x57\x51\x70\x64\x48\x38\x6f\x55\x6d\x6d\x6f\x75\x57\x36\x53','\x57\x35\x34\x33\x79\x58\x37\x64\x50\x53\x6b\x6c\x57\x36\x2f\x64\x4b\x61','\x57\x34\x71\x2f\x77\x43\x6b\x44\x57\x36\x4e\x63\x4e\x64\x53','\x57\x4f\x43\x6b\x57\x36\x70\x63\x4c\x31\x6a\x4e','\x57\x37\x79\x73\x7a\x53\x6b\x52\x57\x34\x37\x63\x4f\x57\x68\x63\x48\x47','\x57\x50\x42\x64\x4d\x30\x78\x64\x47\x67\x2f\x64\x53\x43\x6b\x31\x57\x34\x79','\x6b\x43\x6b\x66\x57\x35\x57\x4d\x6a\x61','\x63\x43\x6f\x67\x57\x50\x75\x70\x57\x37\x38','\x57\x52\x42\x63\x51\x6d\x6f\x73\x57\x50\x5a\x63\x4e\x66\x6d\x43','\x6e\x6d\x6b\x71\x57\x4f\x57\x53\x74\x6d\x6f\x35\x61\x6d\x6b\x42','\x57\x50\x50\x64\x57\x34\x35\x37\x45\x38\x6b\x4f\x63\x6d\x6b\x4f','\x57\x37\x46\x63\x47\x38\x6f\x46\x46\x63\x4f\x4f\x78\x38\x6f\x55','\x41\x77\x4e\x64\x4e\x6d\x6f\x59\x57\x51\x65\x72','\x57\x50\x4a\x63\x4e\x43\x6b\x79\x68\x43\x6b\x67\x57\x50\x7a\x37\x57\x36\x57','\x65\x58\x70\x64\x53\x57\x6d\x36\x57\x4f\x57\x33\x57\x50\x38','\x57\x37\x6d\x74\x66\x53\x6f\x62\x57\x4f\x53','\x6b\x6d\x6b\x38\x57\x4f\x70\x64\x4e\x43\x6b\x35','\x57\x51\x74\x64\x55\x72\x76\x69\x64\x67\x4c\x46\x57\x36\x61','\x67\x6d\x6b\x4e\x57\x52\x54\x77\x57\x36\x78\x63\x55\x43\x6f\x73\x57\x50\x30','\x57\x50\x46\x63\x51\x6d\x6b\x34\x57\x52\x4f\x46\x78\x53\x6b\x43\x44\x47','\x45\x67\x68\x64\x49\x6d\x6f\x35\x57\x37\x6a\x62\x57\x35\x58\x74','\x46\x4e\x37\x64\x56\x6d\x6f\x63\x57\x34\x71','\x57\x36\x38\x65\x74\x6d\x6f\x39\x57\x51\x5a\x63\x56\x30\x68\x63\x56\x47','\x57\x4f\x37\x63\x4f\x6d\x6b\x4a\x70\x53\x6b\x6b\x57\x50\x4b\x78\x57\x34\x65','\x41\x72\x5a\x63\x55\x6d\x6f\x36\x57\x35\x6a\x54\x57\x34\x4a\x64\x54\x47','\x46\x43\x6b\x71\x57\x4f\x72\x39\x57\x37\x61\x77\x57\x35\x68\x64\x56\x71','\x45\x53\x6b\x33\x76\x31\x33\x63\x50\x74\x37\x63\x55\x61\x4f','\x69\x38\x6f\x71\x42\x43\x6f\x58\x57\x37\x4c\x72\x65\x38\x6f\x6d','\x57\x50\x42\x64\x4d\x30\x53','\x57\x36\x78\x63\x4b\x53\x6b\x41\x61\x65\x65\x33\x57\x37\x4e\x63\x55\x71','\x57\x34\x76\x6d\x57\x51\x74\x64\x49\x71\x4c\x65\x62\x6d\x6f\x34\x41\x71\x71\x47','\x66\x6d\x6b\x75\x57\x50\x50\x2b\x57\x37\x43','\x41\x38\x6f\x39\x57\x34\x69\x61\x57\x34\x71','\x57\x4f\x4e\x63\x49\x77\x52\x64\x51\x61','\x57\x35\x50\x69\x57\x37\x6c\x63\x47\x6d\x6f\x4a','\x62\x71\x37\x64\x4a\x6d\x6b\x37\x67\x43\x6b\x53\x71\x63\x47','\x44\x76\x4e\x63\x48\x67\x72\x6e\x57\x37\x4f\x4f\x57\x52\x2f\x63\x56\x6d\x6f\x37\x62\x48\x6d','\x77\x49\x42\x64\x48\x48\x47\x46\x57\x50\x76\x35','\x79\x4a\x74\x63\x49\x63\x64\x63\x4c\x5a\x7a\x45\x67\x47','\x57\x50\x42\x64\x4a\x57\x57\x43\x64\x58\x33\x63\x4f\x53\x6b\x71','\x57\x37\x4a\x63\x4a\x61\x30\x46\x6b\x32\x39\x78\x57\x34\x75','\x57\x37\x34\x52\x69\x38\x6f\x2b\x57\x4f\x47','\x57\x35\x34\x2f\x71\x43\x6b\x46\x57\x37\x71','\x57\x51\x70\x64\x53\x30\x6a\x66\x57\x52\x52\x64\x50\x6d\x6b\x73\x6e\x43\x6f\x4e\x7a\x77\x69','\x6c\x49\x5a\x64\x51\x53\x6b\x6f\x6f\x71','\x57\x51\x37\x63\x52\x30\x4a\x64\x4c\x6d\x6b\x37','\x6c\x38\x6b\x58\x57\x50\x5a\x64\x49\x47','\x65\x6d\x6b\x34\x57\x52\x31\x7a\x57\x34\x33\x63\x4a\x53\x6f\x67\x57\x4f\x34','\x79\x38\x6b\x42\x57\x50\x37\x63\x4c\x38\x6f\x56\x70\x6d\x6f\x45\x57\x35\x61','\x45\x64\x52\x64\x50\x49\x47\x59\x57\x51\x79\x51\x57\x52\x4b','\x41\x43\x6f\x6a\x57\x50\x70\x63\x4f\x31\x34','\x45\x6d\x6b\x75\x6a\x53\x6b\x5a\x57\x35\x35\x36\x57\x4f\x66\x34','\x57\x37\x74\x63\x51\x53\x6f\x31\x44\x59\x71','\x66\x6d\x6f\x48\x74\x53\x6f\x2f\x7a\x38\x6f\x6e\x57\x52\x6a\x44','\x57\x34\x42\x64\x52\x65\x4c\x34\x57\x4f\x35\x32\x57\x4f\x76\x79','\x7a\x6d\x6f\x65\x57\x35\x66\x35\x57\x36\x78\x64\x4e\x4a\x69\x4c','\x63\x6d\x6b\x6d\x63\x71\x38\x51\x6e\x61','\x7a\x32\x74\x64\x49\x53\x6f\x30\x57\x36\x6e\x6d\x57\x50\x6e\x6a','\x6c\x6d\x6f\x73\x57\x35\x58\x6b\x57\x37\x4e\x64\x4a\x4a\x6d\x39','\x79\x53\x6f\x31\x57\x35\x62\x2f\x66\x43\x6b\x53\x72\x6d\x6b\x41\x57\x34\x4a\x64\x54\x63\x75\x2b\x57\x37\x30','\x6d\x73\x4b\x2f\x57\x34\x31\x30','\x57\x37\x33\x64\x55\x62\x42\x64\x51\x31\x68\x63\x4c\x75\x43\x63','\x57\x34\x46\x63\x53\x6d\x6b\x54\x73\x61\x47\x36\x57\x52\x46\x64\x55\x57','\x57\x34\x6d\x71\x69\x6d\x6f\x57\x57\x52\x53','\x57\x37\x4f\x70\x61\x6d\x6f\x75','\x57\x52\x4e\x63\x4a\x38\x6b\x73\x57\x51\x38\x72','\x57\x34\x42\x63\x49\x72\x70\x63\x51\x5a\x5a\x63\x52\x53\x6f\x4f\x57\x35\x4f\x2b\x57\x37\x4e\x63\x52\x38\x6f\x46\x57\x50\x47','\x6c\x38\x6b\x47\x57\x4f\x65','\x69\x71\x37\x64\x55\x58\x38\x67','\x44\x76\x5a\x63\x49\x77\x72\x64\x57\x4f\x57\x2f\x57\x51\x78\x63\x47\x53\x6f\x37\x69\x47','\x6d\x4b\x39\x48\x57\x52\x79','\x57\x37\x4b\x75\x61\x38\x6f\x6b\x57\x50\x38','\x61\x53\x6b\x75\x57\x50\x50\x36\x57\x34\x42\x63\x48\x43\x6f\x4f\x57\x51\x4b','\x57\x52\x64\x64\x50\x33\x64\x64\x49\x4b\x37\x64\x4b\x53\x6b\x71\x57\x36\x4b','\x64\x63\x64\x64\x4e\x38\x6b\x2b\x64\x53\x6f\x30\x75\x74\x4b','\x57\x51\x38\x32\x57\x37\x46\x64\x53\x47','\x57\x50\x4e\x63\x4e\x6d\x6b\x75\x6a\x53\x6b\x63','\x76\x73\x46\x64\x4a\x48\x71','\x57\x35\x5a\x64\x50\x4c\x58\x32\x57\x4f\x31\x39','\x57\x52\x42\x64\x56\x32\x64\x64\x56\x6d\x6b\x50\x43\x38\x6f\x39\x73\x57','\x57\x51\x4a\x64\x49\x66\x78\x64\x56\x77\x64\x64\x54\x38\x6b\x36\x57\x37\x75','\x57\x34\x75\x69\x57\x37\x52\x63\x4c\x33\x31\x7a\x61\x38\x6f\x6e','\x57\x35\x78\x63\x4b\x4a\x75\x66\x57\x36\x71','\x68\x6d\x6b\x57\x57\x52\x65\x4d','\x57\x36\x4c\x6a\x57\x34\x4a\x63\x50\x53\x6f\x58','\x46\x53\x6b\x51\x77\x4c\x69','\x6e\x43\x6f\x50\x57\x50\x69\x6f\x57\x36\x57','\x57\x36\x64\x64\x4d\x6d\x6b\x57\x70\x43\x6b\x4d\x57\x36\x39\x4a\x57\x4f\x79','\x67\x78\x31\x75\x57\x4f\x4f','\x73\x53\x6b\x6c\x57\x50\x66\x37\x57\x37\x79\x62','\x62\x38\x6b\x44\x67\x57\x38\x4d\x6e\x43\x6f\x31','\x6e\x38\x6f\x51\x42\x43\x6b\x58\x57\x36\x4b','\x6a\x61\x44\x51\x44\x31\x38','\x57\x37\x46\x63\x4c\x4a\x7a\x6c\x63\x4e\x62\x38\x57\x36\x4f','\x57\x37\x70\x63\x47\x38\x6f\x36\x71\x57','\x43\x53\x6f\x44\x57\x4f\x2f\x63\x4d\x66\x65','\x45\x38\x6b\x6e\x75\x33\x2f\x63\x51\x47','\x57\x4f\x72\x6b\x57\x36\x74\x63\x52\x53\x6b\x50','\x57\x4f\x79\x70\x57\x4f\x76\x75\x69\x6d\x6b\x50\x6e\x53\x6b\x61','\x57\x35\x70\x63\x4d\x64\x69\x5a\x57\x52\x4a\x64\x49\x38\x6b\x5a\x66\x61','\x57\x35\x76\x70\x57\x34\x52\x63\x4a\x38\x6f\x4c\x57\x35\x76\x77\x6b\x57','\x73\x77\x2f\x64\x48\x6d\x6f\x4d\x57\x37\x39\x6f\x57\x50\x76\x47','\x74\x38\x6f\x49\x57\x35\x6d\x69\x57\x34\x43','\x6e\x75\x5a\x63\x54\x53\x6f\x51\x57\x35\x39\x6a\x57\x50\x4e\x64\x4d\x61','\x57\x51\x68\x63\x50\x53\x6b\x57\x70\x6d\x6b\x6d\x57\x51\x6e\x7a\x57\x34\x30','\x62\x38\x6f\x58\x75\x53\x6b\x57\x57\x35\x71','\x6a\x67\x4c\x48\x57\x51\x79\x76\x57\x36\x70\x64\x4f\x53\x6b\x4f','\x57\x37\x70\x63\x51\x4a\x6a\x34\x64\x4e\x62\x47\x57\x36\x75','\x57\x37\x74\x63\x49\x48\x53\x50\x61\x47\x52\x64\x49\x53\x6b\x6a','\x7a\x47\x52\x63\x4f\x43\x6f\x58\x57\x36\x72\x37\x57\x34\x75','\x69\x53\x6f\x76\x57\x35\x66\x34','\x70\x74\x4a\x64\x52\x43\x6f\x34\x57\x37\x7a\x74\x57\x51\x31\x65','\x6d\x53\x6b\x47\x57\x4f\x61\x75\x71\x43\x6f\x33\x67\x53\x6b\x69','\x73\x53\x6f\x5a\x57\x51\x65\x78\x57\x36\x46\x64\x48\x53\x6f\x36\x6f\x47','\x6e\x76\x39\x32\x57\x52\x30\x77\x57\x37\x56\x64\x56\x53\x6b\x35','\x6a\x38\x6f\x67\x57\x35\x62\x36\x57\x36\x46\x64\x4b\x4a\x69\x57','\x57\x34\x31\x57\x57\x35\x33\x63\x55\x6d\x6f\x7a','\x6e\x76\x6e\x4c\x57\x4f\x61\x64\x57\x36\x37\x64\x56\x38\x6b\x55','\x57\x4f\x44\x39\x62\x6d\x6f\x70\x57\x52\x33\x64\x4d\x59\x64\x63\x4f\x4a\x39\x72\x6b\x4a\x69','\x57\x4f\x53\x71\x57\x51\x2f\x64\x49\x47','\x57\x52\x78\x64\x4a\x78\x68\x64\x55\x53\x6b\x54','\x74\x53\x6f\x66\x71\x30\x31\x4b\x45\x43\x6b\x36\x57\x34\x79','\x45\x33\x52\x64\x47\x6d\x6f\x56\x57\x36\x35\x36\x57\x4f\x48\x76','\x6e\x43\x6b\x65\x57\x50\x7a\x65\x57\x35\x74\x63\x4e\x6d\x6f\x56\x57\x51\x65','\x57\x37\x56\x63\x50\x48\x4b\x44\x57\x37\x33\x64\x49\x43\x6b\x78\x62\x71','\x57\x4f\x68\x63\x4a\x6d\x6b\x64\x66\x43\x6b\x4a','\x57\x37\x52\x64\x4d\x77\x50\x4c\x57\x4f\x6e\x4e\x57\x36\x79\x45','\x6d\x57\x56\x64\x47\x4a\x53','\x57\x37\x46\x63\x52\x58\x79\x71\x57\x36\x70\x64\x48\x43\x6b\x44','\x75\x38\x6b\x78\x57\x50\x6d\x38\x57\x36\x6d\x41\x57\x50\x6c\x64\x53\x61','\x69\x38\x6b\x5a\x57\x4f\x4b\x59\x73\x38\x6f\x32\x65\x38\x6f\x6f','\x57\x4f\x33\x63\x4c\x67\x52\x64\x51\x43\x6b\x69\x44\x4d\x38','\x57\x4f\x64\x63\x47\x47\x48\x6f\x69\x4a\x42\x64\x4c\x43\x6b\x59','\x6d\x38\x6b\x44\x57\x36\x6d\x7a\x70\x61\x74\x63\x52\x43\x6f\x5a','\x57\x37\x34\x73\x64\x43\x6f\x42\x57\x50\x2f\x64\x4b\x67\x4a\x63\x4c\x47','\x62\x38\x6b\x6f\x61\x61','\x57\x37\x56\x64\x4c\x6d\x6f\x48\x67\x6d\x6b\x73\x57\x35\x48\x7a\x57\x52\x43','\x57\x35\x52\x63\x50\x43\x6b\x51\x71\x61','\x43\x53\x6f\x69\x57\x37\x61\x58\x57\x37\x68\x64\x4c\x53\x6f\x68\x7a\x71'];_0x411a=function(){return _0x41fd7a;};return _0x411a();}function _0x240ef6(_0x53c512={}){const _0x5afb3a=_0x3f196d,_0x204348={};_0x204348[_0x5afb3a(0x300,'\x75\x6f\x73\x5a')]=_0x5afb3a(0x257,'\x66\x6c\x69\x5a'),_0x204348[_0x5afb3a(0x2e2,'\x35\x70\x71\x62')]=function(_0x158da8,_0x33320c){return _0x158da8===_0x33320c;},_0x204348['\x6a\x72\x77\x61\x78']=_0x5afb3a(0x297,'\x39\x76\x5a\x59')+'\x65',_0x204348[_0x5afb3a(0x299,'\x44\x64\x40\x45')]=function(_0x26c25a,_0x465d99){return _0x26c25a===_0x465d99;},_0x204348[_0x5afb3a(0x22b,'\x67\x52\x69\x6a')]=_0x5afb3a(0x2be,'\x7a\x79\x39\x63')+_0x5afb3a(0x282,'\x50\x61\x23\x6c')+_0x5afb3a(0x268,'\x33\x69\x21\x67'),_0x204348[_0x5afb3a(0x311,'\x5b\x75\x74\x31')]=_0x5afb3a(0x25f,'\x35\x70\x71\x62')+_0x5afb3a(0x1ca,'\x35\x70\x71\x62'),_0x204348[_0x5afb3a(0x279,'\x44\x64\x40\x45')]=function(_0x4854fd,_0x318177){return _0x4854fd!==_0x318177;};const _0x33709c=_0x204348,_0x454681={};for(const _0x13e16c of Object['\x6b\x65\x79\x73'](_0x53c512)[_0x5afb3a(0x1ce,'\x28\x34\x65\x21')]()){if(_0x33709c[_0x5afb3a(0x301,'\x6f\x40\x4d\x6c')]===_0x5afb3a(0x1c3,'\x35\x70\x71\x62')){if(_0x33709c['\x47\x7a\x71\x76\x6c'](_0x13e16c,_0x33709c[_0x5afb3a(0x24f,'\x66\x6c\x33\x64')])||_0x33709c['\x47\x7a\x71\x76\x6c'](_0x13e16c,_0x5afb3a(0x31a,'\x78\x6c\x52\x49')+_0x5afb3a(0x23d,'\x23\x5e\x2a\x4b')+_0x5afb3a(0x1d4,'\x33\x69\x21\x67'))||_0x33709c[_0x5afb3a(0x2e1,'\x56\x56\x43\x34')](_0x13e16c,_0x33709c[_0x5afb3a(0x314,'\x5b\x75\x74\x31')]))continue;if(_0x33709c[_0x5afb3a(0x2b2,'\x48\x29\x69\x72')](_0x13e16c,_0x33709c[_0x5afb3a(0x2b0,'\x66\x6c\x69\x5a')]))continue;const _0x5c91d5=_0x53c512[_0x13e16c];if(_0x33709c[_0x5afb3a(0x264,'\x76\x57\x2a\x4d')](_0x5c91d5,undefined))_0x454681[_0x13e16c]=_0x5c91d5;}else this[_0x5afb3a(0x26c,'\x76\x57\x2a\x4d')]['\x61\x63\x6b'](_0x32baa4['\x69\x64']);}return JSON[_0x5afb3a(0x287,'\x36\x74\x25\x63')+'\x79'](_0x454681);}function _0x110e76(_0x155cd1={},_0x3479f4=process.env){const _0x2d7032=_0x3f196d,_0x22c63b={'\x77\x46\x63\x58\x41':function(_0xc1f772,_0x45e6b4){return _0xc1f772(_0x45e6b4);},'\x49\x65\x6e\x65\x53':function(_0x4a7a53,_0x55f25f){return _0x4a7a53||_0x55f25f;},'\x46\x6d\x59\x4e\x72':function(_0x2ac2ff,_0xa725a){return _0x2ac2ff(_0xa725a);},'\x41\x54\x4d\x51\x56':_0x2d7032(0x1f3,'\x28\x34\x65\x21'),'\x6f\x66\x63\x67\x67':_0x2d7032(0x231,'\x49\x6d\x62\x4a')},_0x599529=String(_0x3479f4[_0x2d7032(0x1de,'\x55\x42\x68\x64')+'\x52\x41\x43\x45\x5f\x43\x4f\x4e'+_0x2d7032(0x2d6,'\x62\x5a\x23\x6e')+_0x2d7032(0x1e5,'\x36\x70\x54\x36')+'\x49\x43\x5f\x4b\x45\x59']||_0x3479f4[_0x2d7032(0x237,'\x56\x56\x43\x34')+_0x2d7032(0x2ee,'\x36\x76\x62\x48')+_0x2d7032(0x223,'\x36\x76\x62\x48')+_0x2d7032(0x1fc,'\x62\x5a\x23\x6e')+_0x2d7032(0x26e,'\x36\x68\x52\x32')+_0x2d7032(0x27d,'\x39\x76\x5a\x59')]||_0x2e2941)[_0x2d7032(0x2ae,'\x7a\x79\x39\x63')](),_0x285301=_0x22c63b[_0x2d7032(0x259,'\x78\x6c\x52\x49')](String,_0x155cd1['\x73\x69\x67\x6e\x61\x74\x75\x72'+'\x65']||_0x155cd1[_0x2d7032(0x23f,'\x63\x72\x6a\x47')+_0x2d7032(0x31c,'\x33\x69\x21\x67')+_0x2d7032(0x1f0,'\x71\x6e\x4e\x4b')]||'')[_0x2d7032(0x1d9,'\x38\x4c\x4c\x57')]();if(_0x22c63b[_0x2d7032(0x244,'\x56\x56\x43\x34')](!_0x599529,!_0x285301))return![];try{return _0x1a93d1['\x76\x65\x72\x69\x66\x79'](_0x2d7032(0x2c2,'\x56\x56\x43\x34'),Buffer[_0x2d7032(0x293,'\x35\x70\x71\x62')](_0x22c63b[_0x2d7032(0x222,'\x48\x49\x63\x4d')](_0x240ef6,_0x155cd1),_0x22c63b[_0x2d7032(0x252,'\x40\x59\x36\x46')]),_0x599529,Buffer[_0x2d7032(0x1dc,'\x55\x6e\x4d\x25')](_0x285301,_0x22c63b[_0x2d7032(0x29d,'\x5a\x7a\x4c\x41')]));}catch{return![];}}class _0x567c36{constructor({store:_0x1b03c0,logger:_0x3b95c2}={}){const _0x5e4505=_0x3f196d;this[_0x5e4505(0x1f4,'\x55\x42\x68\x64')]=_0x1b03c0,this[_0x5e4505(0x217,'\x6e\x4a\x21\x72')]=_0x3b95c2||console;}[_0x3f196d(0x1e1,'\x64\x68\x75\x72')](_0x343b15){const _0xf9befe=_0x3f196d,_0x1ea961={'\x62\x4d\x77\x7a\x6e':_0xf9befe(0x208,'\x28\x34\x65\x21'),'\x64\x78\x4a\x78\x46':function(_0x8b667,_0x926782){return _0x8b667(_0x926782);},'\x46\x6d\x44\x6f\x66':_0xf9befe(0x1c4,'\x46\x58\x2a\x34'),'\x49\x76\x50\x53\x52':'\x62\x61\x73\x65\x36\x34','\x6a\x4a\x66\x51\x5a':_0xf9befe(0x23c,'\x48\x49\x63\x4d')+_0xf9befe(0x2d4,'\x39\x76\x5a\x59')+_0xf9befe(0x2d2,'\x62\x5a\x23\x6e')+_0xf9befe(0x31f,'\x36\x68\x52\x32')+'\x62\x5f\x70\x75\x62\x6c\x69\x63'+_0xf9befe(0x2e4,'\x29\x6b\x23\x70')+_0xf9befe(0x214,'\x56\x78\x67\x70')+_0xf9befe(0x263,'\x7a\x79\x39\x63')+_0xf9befe(0x2b4,'\x24\x5a\x47\x31'),'\x56\x4d\x56\x4b\x4b':function(_0x1632f8,_0x51f2ee){return _0x1632f8!==_0x51f2ee;},'\x6d\x73\x72\x45\x7a':_0xf9befe(0x2a8,'\x40\x59\x36\x46'),'\x5a\x4f\x78\x55\x77':'\x70\x42\x75\x49\x57','\x66\x56\x4a\x4a\x6c':_0xf9befe(0x2fc,'\x49\x6d\x62\x4a')+_0xf9befe(0x2cd,'\x56\x56\x43\x34')+_0xf9befe(0x2a1,'\x36\x70\x54\x36')+_0xf9befe(0x320,'\x4e\x74\x5e\x28')+'\x77\x69\x74\x68\x6f\x75\x74\x20'+_0xf9befe(0x238,'\x73\x23\x73\x2a')+_0xf9befe(0x2a5,'\x36\x70\x54\x36'),'\x4e\x49\x4c\x7a\x70':function(_0x549eae,_0xd3f4f2){return _0x549eae(_0xd3f4f2);},'\x75\x76\x53\x55\x53':_0xf9befe(0x228,'\x42\x6e\x77\x33'),'\x55\x67\x77\x55\x4e':function(_0x597d9a,_0x2bf64a){return _0x597d9a&&_0x2bf64a;},'\x57\x59\x67\x71\x4f':function(_0x1fb87d,_0xcb6ec3){return _0x1fb87d===_0xcb6ec3;},'\x76\x53\x42\x79\x48':_0xf9befe(0x234,'\x76\x57\x2a\x4d'),'\x56\x50\x77\x54\x41':_0xf9befe(0x322,'\x38\x5d\x38\x38')+'\x6f\x6e\x74\x72\x6f\x6c\x5d\x20'+_0xf9befe(0x1ee,'\x64\x68\x75\x72')+_0xf9befe(0x30a,'\x50\x61\x23\x6c')+_0xf9befe(0x2f0,'\x28\x34\x65\x21')+_0xf9befe(0x203,'\x23\x5e\x2a\x4b')+_0xf9befe(0x2f6,'\x36\x68\x52\x32')+_0xf9befe(0x1d8,'\x5a\x7a\x4c\x41')+_0xf9befe(0x25c,'\x35\x70\x71\x62')+_0xf9befe(0x2fe,'\x38\x4c\x4c\x57')+_0xf9befe(0x328,'\x34\x61\x76\x53')+_0xf9befe(0x1cb,'\x69\x77\x37\x72'),'\x42\x64\x49\x4a\x66':_0xf9befe(0x24c,'\x29\x6b\x23\x70')+'\x6f\x6e\x74\x72\x6f\x6c\x5d\x20'+_0xf9befe(0x1ff,'\x6e\x4a\x21\x72')+_0xf9befe(0x2f9,'\x24\x5a\x47\x31')+_0xf9befe(0x219,'\x75\x6f\x73\x5a')+_0xf9befe(0x21a,'\x55\x6e\x4d\x25')+_0xf9befe(0x209,'\x35\x70\x71\x62')+_0xf9befe(0x2bd,'\x29\x6b\x23\x70')+_0xf9befe(0x2a7,'\x28\x34\x65\x21')+_0xf9befe(0x2ab,'\x76\x57\x2a\x4d')+_0xf9befe(0x32b,'\x6f\x40\x4d\x6c'),'\x54\x68\x53\x68\x4f':'\x74\x72\x61\x63\x65\x5f\x63\x6f'+_0xf9befe(0x2ce,'\x71\x6e\x4e\x4b')+_0xf9befe(0x2c1,'\x36\x74\x25\x63'),'\x75\x48\x65\x41\x6a':'\x74\x72\x75\x65','\x77\x50\x48\x55\x79':_0xf9befe(0x2dd,'\x40\x59\x36\x46')+_0xf9befe(0x302,'\x55\x6e\x4d\x25')+_0xf9befe(0x2ef,'\x24\x5a\x47\x31')+'\x6e\x61\x62\x6c\x65\x64','\x50\x42\x4f\x7a\x48':_0xf9befe(0x321,'\x76\x57\x2a\x4d')+'\x45\x59','\x59\x4f\x6e\x69\x46':_0xf9befe(0x2ea,'\x34\x61\x76\x53'),'\x4c\x4f\x66\x69\x77':_0xf9befe(0x23e,'\x2a\x29\x25\x75')+_0xf9befe(0x1cc,'\x75\x6f\x73\x5a')+'\x69\x67\x6e\x6f\x72\x65\x64\x20'+'\x72\x75\x6e\x74\x69\x6d\x65\x20'+_0xf9befe(0x2a0,'\x56\x56\x43\x34')+_0xf9befe(0x1c2,'\x59\x63\x23\x44')+_0xf9befe(0x2a6,'\x2a\x29\x25\x75')+_0xf9befe(0x23b,'\x76\x57\x2a\x4d')+_0xf9befe(0x1e9,'\x71\x6e\x4e\x4b')+'\x54\x52\x41\x43\x45\x5f\x48\x55'+_0xf9befe(0x229,'\x66\x6c\x33\x64')+_0xf9befe(0x304,'\x66\x6c\x69\x5a')+_0xf9befe(0x239,'\x49\x6d\x62\x4a')+_0xf9befe(0x2b5,'\x75\x6f\x73\x5a')+_0xf9befe(0x275,'\x36\x68\x52\x32')+_0xf9befe(0x215,'\x75\x6f\x73\x5a'),'\x48\x4d\x4a\x73\x4a':_0xf9befe(0x216,'\x5b\x75\x74\x31')+_0xf9befe(0x1f1,'\x56\x78\x67\x70')+'\x5f\x75\x70\x64\x61\x74\x65\x64'+'\x5f\x61\x74','\x44\x69\x63\x51\x65':function(_0x35dab2,_0x3b7031){return _0x35dab2+_0x3b7031;},'\x7a\x71\x76\x6e\x53':_0xf9befe(0x211,'\x66\x6c\x69\x5a')+_0xf9befe(0x30e,'\x7a\x79\x39\x63')+_0xf9befe(0x1bf,'\x2a\x29\x25\x75')+_0xf9befe(0x25e,'\x49\x6d\x62\x4a')+'\x20','\x47\x53\x42\x77\x6b':_0xf9befe(0x2c3,'\x55\x42\x68\x64')},_0x513da7=_0x343b15&&_0x343b15[_0xf9befe(0x1e0,'\x42\x6e\x77\x33')]?_0x343b15[_0xf9befe(0x303,'\x38\x4c\x4c\x57')]:_0x343b15,_0x12a87c=_0x513da7&&(_0x513da7[_0xf9befe(0x22d,'\x71\x6e\x4e\x4b')]??_0x513da7['\x74\x72\x61\x63\x65\x5f\x63\x6f'+'\x6c\x6c\x65\x63\x74\x69\x6f\x6e'+'\x5f\x65\x6e\x61\x62\x6c\x65\x64']??_0x513da7[_0xf9befe(0x2c8,'\x5b\x75\x74\x31')+_0xf9befe(0x22a,'\x36\x68\x52\x32')+_0xf9befe(0x2de,'\x24\x5a\x47\x31')+_0xf9befe(0x312,'\x48\x49\x63\x4d')]);if(_0x1ea961[_0xf9befe(0x2d1,'\x73\x23\x73\x2a')](typeof _0x12a87c,_0x1ea961[_0xf9befe(0x2b9,'\x78\x6c\x52\x49')])){if(_0x1ea961[_0xf9befe(0x30d,'\x36\x70\x54\x36')]==='\x70\x45\x6c\x64\x73')return _0x2bc27c[_0xf9befe(0x20e,'\x50\x61\x23\x6c')](oMdKsA[_0xf9befe(0x1c0,'\x55\x42\x68\x64')],_0x2a8629[_0xf9befe(0x1f2,'\x66\x6c\x33\x64')](oMdKsA[_0xf9befe(0x1f6,'\x62\x5a\x23\x6e')](_0x1662bd,_0x6b2983),oMdKsA[_0xf9befe(0x20c,'\x34\x61\x76\x53')]),_0x245c2c,_0x397faa[_0xf9befe(0x246,'\x40\x59\x36\x46')](_0x449611,oMdKsA[_0xf9befe(0x22c,'\x29\x4d\x5a\x21')]));else{this[_0xf9befe(0x2b1,'\x73\x23\x73\x2a')][_0xf9befe(0x1f5,'\x44\x64\x40\x45')]?.(_0x1ea961[_0xf9befe(0x308,'\x23\x5e\x2a\x4b')]);const _0x13e38c={};return _0x13e38c[_0xf9befe(0x2ac,'\x46\x58\x2a\x34')]=!![],_0x13e38c[_0xf9befe(0x27f,'\x46\x58\x2a\x34')]=![],_0x13e38c;}}let _0x147edd=_0x513da7[_0xf9befe(0x2aa,'\x67\x52\x69\x6a')+_0xf9befe(0x27c,'\x24\x5a\x47\x31')+_0xf9befe(0x26d,'\x56\x56\x43\x34')]??_0x513da7[_0xf9befe(0x2cf,'\x2a\x29\x25\x75')+_0xf9befe(0x262,'\x4e\x74\x5e\x28')+_0xf9befe(0x2ec,'\x29\x4d\x5a\x21')+_0xf9befe(0x25d,'\x46\x58\x2a\x34')];const _0x42b269=_0x1ea961[_0xf9befe(0x261,'\x59\x63\x23\x44')](_0x110e76,_0x513da7),_0x3b804a=_0x12a87c===!![],_0x25a73c=_0x147edd===!![],_0x1b5e12=typeof _0x513da7[_0xf9befe(0x2d8,'\x39\x76\x5a\x59')+_0xf9befe(0x1be,'\x38\x5d\x38\x38')]===_0x1ea961[_0xf9befe(0x1d2,'\x33\x69\x21\x67')]&&_0x513da7[_0xf9befe(0x2a0,'\x56\x56\x43\x34')+'\x69\x63\x5f\x6b\x65\x79'][_0xf9befe(0x323,'\x23\x5e\x2a\x4b')]();if(_0x1ea961[_0xf9befe(0x284,'\x66\x6c\x69\x5a')](!_0x42b269,_0x3b804a)){if(_0x1ea961[_0xf9befe(0x1e4,'\x24\x5a\x47\x31')](_0xf9befe(0x2d9,'\x2a\x29\x25\x75'),_0x1ea961[_0xf9befe(0x1da,'\x69\x77\x37\x72')])){this[_0xf9befe(0x217,'\x6e\x4a\x21\x72')]['\x77\x61\x72\x6e']?.(_0x1ea961[_0xf9befe(0x2fd,'\x40\x59\x36\x46')]);const _0x421e8b={};return _0x421e8b['\x61\x63\x6b']=!![],_0x421e8b[_0xf9befe(0x292,'\x23\x5e\x2a\x4b')]=![],_0x421e8b;}else return![];}!_0x42b269&&_0x25a73c&&(this[_0xf9befe(0x27e,'\x2a\x29\x25\x75')]['\x77\x61\x72\x6e']?.(_0x1ea961[_0xf9befe(0x207,'\x36\x70\x54\x36')]),_0x147edd=![]);this[_0xf9befe(0x2d5,'\x59\x63\x23\x44')][_0xf9befe(0x29a,'\x39\x76\x5a\x59')](_0x1ea961['\x54\x68\x53\x68\x4f'],_0x12a87c?_0x1ea961[_0xf9befe(0x2e7,'\x69\x77\x37\x72')]:_0xf9befe(0x1ec,'\x36\x70\x54\x36'));_0x1ea961[_0xf9befe(0x2bb,'\x50\x61\x23\x6c')](typeof _0x147edd,_0x1ea961[_0xf9befe(0x2ba,'\x48\x29\x69\x72')])&&this[_0xf9befe(0x2d5,'\x59\x63\x23\x44')][_0xf9befe(0x1df,'\x38\x5d\x38\x38')](_0x1ea961[_0xf9befe(0x2b8,'\x38\x5d\x38\x38')],_0x147edd?_0x1ea961[_0xf9befe(0x285,'\x63\x72\x6a\x47')]:_0xf9befe(0x2e5,'\x46\x4d\x32\x25'));const _0x1f9e8c=_0x1ea961[_0xf9befe(0x2ff,'\x67\x52\x69\x6a')](typeof _0x513da7[_0xf9befe(0x1c9,'\x49\x6d\x62\x4a')+_0xf9befe(0x2cb,'\x66\x6c\x69\x5a')+_0xf9befe(0x324,'\x40\x59\x36\x46')],_0x1ea961[_0xf9befe(0x23a,'\x49\x6d\x62\x4a')])&&_0x513da7[_0xf9befe(0x21c,'\x62\x5a\x23\x6e')+'\x62\x5f\x70\x75\x62\x6c\x69\x63'+'\x5f\x6b\x65\x79']['\x74\x72\x69\x6d']();if(_0x42b269&&_0x1f9e8c&&_0x513da7[_0xf9befe(0x1cd,'\x33\x69\x21\x67')+_0xf9befe(0x28f,'\x39\x76\x5a\x59')+_0xf9befe(0x1e3,'\x36\x74\x25\x63')][_0xf9befe(0x2bc,'\x7a\x79\x39\x63')](_0x1ea961[_0xf9befe(0x2f2,'\x62\x5a\x23\x6e')]))this['\x73\x74\x6f\x72\x65'][_0xf9befe(0x30f,'\x55\x42\x68\x64')](_0xf9befe(0x30b,'\x38\x4c\x4c\x57')+_0xf9befe(0x20f,'\x46\x58\x2a\x34')+_0xf9befe(0x220,'\x2a\x29\x25\x75'),_0x513da7[_0xf9befe(0x2f3,'\x63\x72\x6a\x47')+'\x62\x5f\x70\x75\x62\x6c\x69\x63'+_0xf9befe(0x2e0,'\x33\x69\x21\x67')][_0xf9befe(0x2ca,'\x46\x58\x2a\x34')]());else!_0x42b269&&_0x1f9e8c&&this[_0xf9befe(0x2e9,'\x35\x70\x71\x62')]['\x77\x61\x72\x6e']?.(_0x1ea961[_0xf9befe(0x327,'\x71\x6e\x4e\x4b')]);_0x1b5e12&&(_0x1ea961[_0xf9befe(0x315,'\x44\x79\x4d\x40')](_0x1ea961[_0xf9befe(0x2d7,'\x62\x5a\x23\x6e')],_0x1ea961[_0xf9befe(0x1c6,'\x63\x72\x6a\x47')])?this[_0xf9befe(0x273,'\x46\x4d\x32\x25')][_0xf9befe(0x2a4,'\x64\x68\x75\x72')]?.(_0x1ea961[_0xf9befe(0x1d6,'\x36\x68\x52\x32')]):this[_0xf9befe(0x2e8,'\x66\x6c\x33\x64')][_0xf9befe(0x1f5,'\x44\x64\x40\x45')]?.(_0x1ea961['\x4c\x4f\x66\x69\x77']));this[_0xf9befe(0x2fb,'\x64\x68\x75\x72')][_0xf9befe(0x1f8,'\x46\x58\x2a\x34')](_0x1ea961[_0xf9befe(0x20b,'\x64\x68\x75\x72')],new Date()[_0xf9befe(0x230,'\x78\x6c\x52\x49')+_0xf9befe(0x1e8,'\x36\x70\x54\x36')]()),this[_0xf9befe(0x305,'\x66\x6c\x69\x5a')]['\x6c\x6f\x67']?.(_0x1ea961['\x44\x69\x63\x51\x65'](_0x1ea961[_0xf9befe(0x247,'\x44\x64\x40\x45')],_0x12a87c?_0xf9befe(0x24a,'\x36\x76\x62\x48'):_0x1ea961[_0xf9befe(0x277,'\x36\x70\x54\x36')]));const _0x3a6282={};return _0x3a6282[_0xf9befe(0x241,'\x36\x68\x52\x32')]=!![],_0x3a6282['\x61\x70\x70\x6c\x69\x65\x64']=!![],_0x3a6282;}[_0x3f196d(0x2e6,'\x23\x5e\x2a\x4b')+'\x70\x70\x6c\x79'](){const _0x990389=_0x3f196d,_0x537e3c={};_0x537e3c[_0x990389(0x201,'\x6e\x4a\x21\x72')]=_0x990389(0x21f,'\x36\x68\x52\x32')+_0x990389(0x2af,'\x69\x77\x37\x72')+_0x990389(0x2f4,'\x39\x76\x5a\x59'),_0x537e3c[_0x990389(0x266,'\x73\x23\x73\x2a')]=function(_0x2f4e10,_0x21f0a3){return _0x2f4e10===_0x21f0a3;};const _0x3dcf5e=_0x537e3c,_0x23e6b7={};_0x23e6b7[_0x990389(0x253,'\x33\x69\x21\x67')]=_0x3dcf5e[_0x990389(0x269,'\x64\x68\x75\x72')],_0x23e6b7[_0x990389(0x2c9,'\x55\x6e\x4d\x25')]=0x32;const _0x3c5f86={};_0x3c5f86[_0x990389(0x2cc,'\x78\x6c\x52\x49')]=_0x990389(0x29f,'\x49\x6d\x62\x4a')+_0x990389(0x295,'\x28\x34\x65\x21')+'\x69\x67',_0x3c5f86[_0x990389(0x1d3,'\x28\x34\x65\x21')]=0x32;const _0x56299e=[...this[_0x990389(0x202,'\x48\x49\x63\x4d')][_0x990389(0x27a,'\x63\x72\x6a\x47')](_0x23e6b7),...this[_0x990389(0x310,'\x39\x76\x5a\x59')]['\x70\x6f\x6c\x6c'](_0x3c5f86)];let _0x4104ed=-0x3*-0x157+-0x57*-0x53+-0x203a;for(const _0x4e764c of _0x56299e){const _0x3d9910=this[_0x990389(0x2f1,'\x6f\x40\x4d\x6c')](_0x4e764c),_0x1c615b=_0x3dcf5e[_0x990389(0x271,'\x48\x49\x63\x4d')](_0x3d9910,!![])||_0x3d9910&&_0x3dcf5e[_0x990389(0x21d,'\x55\x6e\x4d\x25')](_0x3d9910[_0x990389(0x1e6,'\x7a\x79\x39\x63')],!![]),_0x2a159c=_0x3dcf5e['\x4c\x48\x45\x79\x6b'](_0x3d9910,!![])||_0x3d9910&&_0x3dcf5e['\x4c\x48\x45\x79\x6b'](_0x3d9910[_0x990389(0x2dc,'\x4e\x74\x5e\x28')],!![]);_0x1c615b&&this[_0x990389(0x28e,'\x38\x4c\x4c\x57')][_0x990389(0x1c7,'\x75\x6f\x73\x5a')](_0x4e764c['\x69\x64']),_0x2a159c&&_0x4104ed++;}return _0x4104ed;}}function _0x42e0(_0x8d3d55,_0x22c37f){_0x8d3d55=_0x8d3d55-(-0x9fd+0x1*0xfef+0x3*-0x167);const _0x425af6=_0x411a();let _0x5cd528=_0x425af6[_0x8d3d55];if(_0x42e0['\x43\x6d\x46\x6d\x6d\x6a']===undefined){var _0x1f235c=function(_0x3928d8){const _0x5f269b='\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 _0x326ef8='',_0x44b102='',_0x95a8af=_0x326ef8+_0x1f235c,_0x25e96b=(''+function(){return 0x148+-0xc46+-0x2a*-0x43;})['\x69\x6e\x64\x65\x78\x4f\x66']('\x0a')!==-(-0x1355*0x2+0x466*0x8+0x37b);for(let _0x5d6195=0x1449+0x1c8*0xe+0xf13*-0x3,_0x591892,_0x501ff2,_0x315a05=-0x19d0+-0x3d*-0x1f+-0x126d*-0x1;_0x501ff2=_0x3928d8['\x63\x68\x61\x72\x41\x74'](_0x315a05++);~_0x501ff2&&(_0x591892=_0x5d6195%(0x2251+0x957+-0x2ba4)?_0x591892*(0x419+0xc*0x2a7+-0x23ad)+_0x501ff2:_0x501ff2,_0x5d6195++%(0xca5+0xd*-0x139+0x344))?_0x326ef8+=_0x25e96b||_0x95a8af['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x315a05+(-0x2*0xa39+-0xc68+0x20e4))-(-0x14bb+0x6*-0x599+0x73*0x79)!==0x35*0x58+-0xaa1+-0x1*0x797?String['\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65'](0x1dbc+0x137*0xa+-0x1*0x28e3&_0x591892>>(-(0x3*0x1e7+0x26fe+-0x2cb1)*_0x5d6195&-0x1a71+0x5ed*0x3+0x8b0)):_0x5d6195:-0x8*-0x3e0+-0x148b*0x1+0xa75*-0x1){_0x501ff2=_0x5f269b['\x69\x6e\x64\x65\x78\x4f\x66'](_0x501ff2);}for(let _0x5aa3cd=-0x10*0x88+-0x1b5a+0x23da,_0x5f1203=_0x326ef8['\x6c\x65\x6e\x67\x74\x68'];_0x5aa3cd<_0x5f1203;_0x5aa3cd++){_0x44b102+='\x25'+('\x30\x30'+_0x326ef8['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x5aa3cd)['\x74\x6f\x53\x74\x72\x69\x6e\x67'](0x3*0x9eb+0x1*0x23e3+0x15dc*-0x3))['\x73\x6c\x69\x63\x65'](-(-0x118b+0x133*-0x1f+0x1d3*0x1e));}return decodeURIComponent(_0x44b102);};const _0x3911f7=function(_0x3c9eb2,_0x16f64f){let _0x222b3c=[],_0x13e797=-0xb07+-0x22*0xb2+-0x5*-0x6ef,_0x28d552,_0x5686da='';_0x3c9eb2=_0x1f235c(_0x3c9eb2);let _0x4e4932;for(_0x4e4932=0xa27+-0x18b+-0x44e*0x2;_0x4e4932<-0xfc6+0x1c9*0x1+0xefd;_0x4e4932++){_0x222b3c[_0x4e4932]=_0x4e4932;}for(_0x4e4932=0x702+-0x1592+0xe90;_0x4e4932<-0x1*0x1a95+0x2085+-0x4f0;_0x4e4932++){_0x13e797=(_0x13e797+_0x222b3c[_0x4e4932]+_0x16f64f['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x4e4932%_0x16f64f['\x6c\x65\x6e\x67\x74\x68']))%(0x18a*-0x1+-0x3*0x4f8+0x1172),_0x28d552=_0x222b3c[_0x4e4932],_0x222b3c[_0x4e4932]=_0x222b3c[_0x13e797],_0x222b3c[_0x13e797]=_0x28d552;}_0x4e4932=0xeae*0x1+-0x7d3+-0x6db*0x1,_0x13e797=0x6e*0x3e+0x2*0x1fd+-0x1e9e;for(let _0x165b16=0x1c94+-0xf35+-0xd5f;_0x165b16<_0x3c9eb2['\x6c\x65\x6e\x67\x74\x68'];_0x165b16++){_0x4e4932=(_0x4e4932+(-0x362+0x24d4+0x1*-0x2171))%(0x1c4a+0x22c7+-0x1*0x3e11),_0x13e797=(_0x13e797+_0x222b3c[_0x4e4932])%(0x5*-0xa5+0x2318+-0x1edf),_0x28d552=_0x222b3c[_0x4e4932],_0x222b3c[_0x4e4932]=_0x222b3c[_0x13e797],_0x222b3c[_0x13e797]=_0x28d552,_0x5686da+=String['\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65'](_0x3c9eb2['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x165b16)^_0x222b3c[(_0x222b3c[_0x4e4932]+_0x222b3c[_0x13e797])%(-0x47b+0x2*-0xe4e+0xb5d*0x3)]);}return _0x5686da;};_0x42e0['\x53\x6f\x6e\x69\x63\x62']=_0x3911f7,_0x42e0['\x79\x62\x57\x76\x45\x6d']={},_0x42e0['\x43\x6d\x46\x6d\x6d\x6a']=!![];}const _0xa6b349=_0x425af6[0xfdb*-0x1+0xd17+0x2c4],_0x5d6235=_0x8d3d55+_0xa6b349,_0x4d5aa3=_0x42e0['\x79\x62\x57\x76\x45\x6d'][_0x5d6235];if(!_0x4d5aa3){if(_0x42e0['\x7a\x4a\x77\x64\x54\x55']===undefined){const _0x9f7418=function(_0x10ca05){this['\x6e\x62\x6d\x6d\x72\x47']=_0x10ca05,this['\x78\x52\x75\x4a\x78\x67']=[-0x22a*-0xa+0xc28+-0x21cb,0x1644+-0x4*-0x903+0x137*-0x30,-0x8d2*-0x1+-0xc1c+-0x1*-0x34a],this['\x76\x74\x61\x56\x66\x53']=function(){return'\x6e\x65\x77\x53\x74\x61\x74\x65';},this['\x77\x64\x77\x4f\x54\x4f']='\x5c\x77\x2b\x20\x2a\x5c\x28\x5c\x29\x20\x2a\x7b\x5c\x77\x2b\x20\x2a',this['\x71\x71\x53\x73\x71\x65']='\x5b\x27\x7c\x22\x5d\x2e\x2b\x5b\x27\x7c\x22\x5d\x3b\x3f\x20\x2a\x7d';};_0x9f7418['\x70\x72\x6f\x74\x6f\x74\x79\x70\x65']['\x52\x58\x79\x49\x57\x71']=function(){const _0x15a14e=new RegExp(this['\x77\x64\x77\x4f\x54\x4f']+this['\x71\x71\x53\x73\x71\x65']),_0x12ac97=_0x15a14e['\x74\x65\x73\x74'](this['\x76\x74\x61\x56\x66\x53']['\x74\x6f\x53\x74\x72\x69\x6e\x67']())?--this['\x78\x52\x75\x4a\x78\x67'][0xa24+-0xc5*0x14+0x541]:--this['\x78\x52\x75\x4a\x78\x67'][-0x12*-0x21a+-0x17db+-0x31*0x49];return this['\x64\x4f\x41\x64\x6b\x4f'](_0x12ac97);},_0x9f7418['\x70\x72\x6f\x74\x6f\x74\x79\x70\x65']['\x64\x4f\x41\x64\x6b\x4f']=function(_0x58fe29){if(!Boolean(~_0x58fe29))return _0x58fe29;return this['\x42\x4d\x53\x63\x56\x74'](this['\x6e\x62\x6d\x6d\x72\x47']);},_0x9f7418['\x70\x72\x6f\x74\x6f\x74\x79\x70\x65']['\x42\x4d\x53\x63\x56\x74']=function(_0x4f9a2d){for(let _0x165501=0x35*0x73+-0xb25+-0xcaa,_0x22ef7b=this['\x78\x52\x75\x4a\x78\x67']['\x6c\x65\x6e\x67\x74\x68'];_0x165501<_0x22ef7b;_0x165501++){this['\x78\x52\x75\x4a\x78\x67']['\x70\x75\x73\x68'](Math['\x72\x6f\x75\x6e\x64'](Math['\x72\x61\x6e\x64\x6f\x6d']())),_0x22ef7b=this['\x78\x52\x75\x4a\x78\x67']['\x6c\x65\x6e\x67\x74\x68'];}return _0x4f9a2d(this['\x78\x52\x75\x4a\x78\x67'][-0x1a30+-0x107*0x5+0x1f53]);},(''+function(){return-0x1733+0x1bc9+0x1*-0x496;})['\x69\x6e\x64\x65\x78\x4f\x66']('\x0a')===-(-0x1ceb+-0xa7+-0x1*-0x1d93)&&new _0x9f7418(_0x42e0)['\x52\x58\x79\x49\x57\x71'](),_0x42e0['\x7a\x4a\x77\x64\x54\x55']=!![];}_0x5cd528=_0x42e0['\x53\x6f\x6e\x69\x63\x62'](_0x5cd528,_0x22c37f),_0x42e0['\x79\x62\x57\x76\x45\x6d'][_0x5d6235]=_0x5cd528;}else _0x5cd528=_0x4d5aa3;return _0x5cd528;}const _0x26e4f3={};_0x26e4f3[_0x3f196d(0x212,'\x29\x4d\x5a\x21')+'\x74\x72\x6f\x6c']=_0x567c36,_0x26e4f3[_0x3f196d(0x298,'\x35\x70\x71\x62')+_0x3f196d(0x274,'\x5a\x7a\x4c\x41')+'\x6e\x66\x69\x67\x50\x61\x79\x6c'+_0x3f196d(0x2d3,'\x69\x77\x37\x72')]=_0x240ef6,_0x26e4f3[_0x3f196d(0x25b,'\x46\x4d\x32\x25')+_0x3f196d(0x26f,'\x34\x61\x76\x53')+_0x3f196d(0x22e,'\x28\x34\x65\x21')+'\x72\x65']=_0x110e76,_0x26e4f3[_0x3f196d(0x25a,'\x55\x6e\x4d\x25')+'\x54\x52\x41\x43\x45\x5f\x43\x4f'+'\x4e\x46\x49\x47\x5f\x53\x49\x47'+_0x3f196d(0x1c1,'\x66\x6c\x33\x64')+_0x3f196d(0x21e,'\x59\x63\x23\x44')]=_0x2e2941,module[_0x3f196d(0x206,'\x2a\x29\x25\x75')]=_0x26e4f3;
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const crypto = require('crypto');
|
|
4
|
+
|
|
5
|
+
const DEFAULT_TRACE_CONFIG_SIGNING_PUBLIC_KEY = [
|
|
6
|
+
'-----BEGIN PUBLIC KEY-----',
|
|
7
|
+
'MIIBojANBgkqhkiG9w0BAQEFAAOCAY8AMIIBigKCAYEA7kJvWUP3HC4FJPQtkh74',
|
|
8
|
+
'y75h9Rzc2NSZC9e4fiIWdax4iv+yWeMeIHGNsMr7YI8Ws7ck1BimJWt026gwRW8I',
|
|
9
|
+
'c2A7h97oZQ0Z0zFcjEZ8FpYFSu++Yz/dGrARAV7uCQg289jvo89F5fWNdX2k+lTH',
|
|
10
|
+
'hBoBm0G71vkiAYlbQEjq1xm1WzYf8CVXmbr+J1z+ydQf9jczcFL79u3eQZhIPs3R',
|
|
11
|
+
'8Sr83YrXWyCVOBIPTW4EbyR1RrHNs9pyrcHo7tyKdpKYreM/0de5A5Ya1VFaakVd',
|
|
12
|
+
'RsE3UModswJeMzyHOj7wZ+OZVb466Bttr0wDHhg93sWg5h5m0YqNfEcdqFXKlxy3',
|
|
13
|
+
'RCAu+hINcwt27CcIEU82jhDusiKEfM/EHS/uN3GTuvNaUFpmIOPNFYINKdjdiMJK',
|
|
14
|
+
'50lyW9E3SN+Q3HT6flseEAI+hMvFx6wxGqzf64jWbuUlatl8M9v3NNZAOgG4SnTt',
|
|
15
|
+
'PiOh2Uxc0qFAKPpcz8gaGYm0yMuFGsr5zb0IMDSBr++PAgMBAAE=',
|
|
16
|
+
'-----END PUBLIC KEY-----',
|
|
17
|
+
].join('\n');
|
|
18
|
+
|
|
19
|
+
function canonicalTraceConfigPayload(payload = {}) {
|
|
20
|
+
const clean = {};
|
|
21
|
+
for (const key of Object.keys(payload).sort()) {
|
|
22
|
+
if (key === 'signature' || key === 'trace_config_signature' || key === 'signature_algorithm') continue;
|
|
23
|
+
if (key === 'hub_public_key') continue;
|
|
24
|
+
const value = payload[key];
|
|
25
|
+
if (value !== undefined) clean[key] = value;
|
|
26
|
+
}
|
|
27
|
+
return JSON.stringify(clean);
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
function verifyTraceConfigSignature(payload = {}, env = process.env) {
|
|
31
|
+
const publicKey = String(
|
|
32
|
+
env.EVOMAP_TRACE_CONFIG_SIGNING_PUBLIC_KEY
|
|
33
|
+
|| env.EVOMAP_PROXY_TRACE_CONFIG_SIGNING_PUBLIC_KEY
|
|
34
|
+
|| DEFAULT_TRACE_CONFIG_SIGNING_PUBLIC_KEY
|
|
35
|
+
).trim();
|
|
36
|
+
const signature = String(payload.signature || payload.trace_config_signature || '').trim();
|
|
37
|
+
if (!publicKey || !signature) return false;
|
|
38
|
+
try {
|
|
39
|
+
return crypto.verify(
|
|
40
|
+
'sha256',
|
|
41
|
+
Buffer.from(canonicalTraceConfigPayload(payload), 'utf8'),
|
|
42
|
+
publicKey,
|
|
43
|
+
Buffer.from(signature, 'base64')
|
|
44
|
+
);
|
|
45
|
+
} catch {
|
|
46
|
+
return false;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
class TraceControl {
|
|
51
|
+
constructor({ store, logger } = {}) {
|
|
52
|
+
this.store = store;
|
|
53
|
+
this.logger = logger || console;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
process(message) {
|
|
57
|
+
const payload = message && message.payload ? message.payload : message;
|
|
58
|
+
const enabled = payload && (
|
|
59
|
+
payload.enabled ??
|
|
60
|
+
payload.trace_collection_enabled ??
|
|
61
|
+
payload.proxy_trace_collection_enabled
|
|
62
|
+
);
|
|
63
|
+
if (typeof enabled !== 'boolean') {
|
|
64
|
+
this.logger.warn?.('[trace-control] ignoring config without boolean enabled');
|
|
65
|
+
return { ack: true, applied: false };
|
|
66
|
+
}
|
|
67
|
+
let profileEnabled = payload.profile_analysis_enabled ?? payload.trace_profile_analysis_enabled;
|
|
68
|
+
const signed = verifyTraceConfigSignature(payload);
|
|
69
|
+
const unsafeEnable = enabled === true;
|
|
70
|
+
const unsafeProfile = profileEnabled === true;
|
|
71
|
+
const hasRuntimeHubKey = typeof payload.hub_public_key === 'string' && payload.hub_public_key.trim();
|
|
72
|
+
if (!signed && unsafeEnable) {
|
|
73
|
+
this.logger.warn?.('[trace-control] rejected unsigned trace config that could enable collection/profile analysis');
|
|
74
|
+
return { ack: true, applied: false };
|
|
75
|
+
}
|
|
76
|
+
if (!signed && unsafeProfile) {
|
|
77
|
+
this.logger.warn?.('[trace-control] ignored unsigned profile analysis enable while applying trace disable');
|
|
78
|
+
profileEnabled = false;
|
|
79
|
+
}
|
|
80
|
+
this.store.setState('trace_collection_enabled', enabled ? 'true' : 'false');
|
|
81
|
+
if (typeof profileEnabled === 'boolean') {
|
|
82
|
+
this.store.setState('trace_profile_analysis_enabled', profileEnabled ? 'true' : 'false');
|
|
83
|
+
}
|
|
84
|
+
// trace_hub_public_key is part of the SIGNED canonical payload (unlike the legacy runtime hub_public_key,
|
|
85
|
+
// which stays excluded + ignored). Persist it only from a verified-signed config, so the hub can distribute
|
|
86
|
+
// its trace-encryption public key centrally without a per-node env, while a forged/unsigned config still
|
|
87
|
+
// cannot inject a key. extractor.readTraceProfileConfig reads this as a fallback to the pinned env var.
|
|
88
|
+
const signedHubKey = typeof payload.trace_hub_public_key === 'string' && payload.trace_hub_public_key.trim();
|
|
89
|
+
if (signed && signedHubKey && payload.trace_hub_public_key.includes('PUBLIC KEY')) {
|
|
90
|
+
this.store.setState('trace_hub_public_key', payload.trace_hub_public_key.trim());
|
|
91
|
+
} else if (!signed && signedHubKey) {
|
|
92
|
+
this.logger.warn?.('[trace-control] ignored trace_hub_public_key from an unsigned config');
|
|
93
|
+
}
|
|
94
|
+
if (hasRuntimeHubKey) {
|
|
95
|
+
this.logger.warn?.('[trace-control] ignored runtime hub_public_key; use pinned EVOMAP_PROXY_TRACE_HUB_PUBLIC_KEY or signed trace_hub_public_key');
|
|
96
|
+
}
|
|
97
|
+
this.store.setState('trace_collection_updated_at', new Date().toISOString());
|
|
98
|
+
this.logger.log?.('[trace-control] trace collection ' + (enabled ? 'enabled' : 'disabled'));
|
|
99
|
+
return { ack: true, applied: true };
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
pollAndApply() {
|
|
103
|
+
const messages = [
|
|
104
|
+
...this.store.poll({ type: 'trace_collection_config', limit: 50 }),
|
|
105
|
+
...this.store.poll({ type: 'proxy_trace_config', limit: 50 }),
|
|
106
|
+
];
|
|
107
|
+
let applied = 0;
|
|
108
|
+
for (const msg of messages) {
|
|
109
|
+
const result = this.process(msg);
|
|
110
|
+
const ack = result === true || (result && result.ack === true);
|
|
111
|
+
const didApply = result === true || (result && result.applied === true);
|
|
112
|
+
if (ack) {
|
|
113
|
+
this.store.ack(msg.id);
|
|
114
|
+
}
|
|
115
|
+
if (didApply) {
|
|
116
|
+
applied++;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
return applied;
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
module.exports = { TraceControl, canonicalTraceConfigPayload, verifyTraceConfigSignature, DEFAULT_TRACE_CONFIG_SIGNING_PUBLIC_KEY };
|
package/src/proxy/inject.js
CHANGED
|
@@ -1 +1,52 @@
|
|
|
1
|
-
const _0x5af133=_0x56a0;(function(_0xa26fb6,_0xbb57f7){const _0x3051bc=_0x56a0,_0x4867ca=_0xa26fb6();while(!![]){try{const _0x958a84=parseInt(_0x3051bc(0x1b1,'\x42\x35\x68\x34'))/(0x2276+0x138c+-0x3601)+-parseInt(_0x3051bc(0x1c4,'\x57\x68\x49\x73'))/(0x16*-0x14f+0x1f*-0x8c+0x3d0*0xc)*(-parseInt(_0x3051bc(0x1ca,'\x38\x50\x45\x67'))/(-0x9b*-0x3d+-0x2307+-0x1e5))+-parseInt(_0x3051bc(0x1af,'\x79\x4e\x55\x59'))/(0x1ac*0xb+-0x58a+-0x1*0xcd6)+parseInt(_0x3051bc(0x1bd,'\x62\x36\x4b\x5e'))/(-0x37*0xb5+-0x114f*0x1+0x3837)*(-parseInt(_0x3051bc(0x1cb,'\x42\x35\x68\x34'))/(-0x2c9*0xb+-0x1*0x58c+-0x17*-0x193))+parseInt(_0x3051bc(0x1cf,'\x50\x74\x64\x77'))/(-0x43+0x2086+-0x203c)*(-parseInt(_0x3051bc(0x1db,'\x63\x52\x29\x69'))/(0x13bc+0x1*-0x13d5+0x21))+-parseInt(_0x3051bc(0x191,'\x34\x44\x25\x6a'))/(0x226b+-0x37a*0x5+-0x1100)*(parseInt(_0x3051bc(0x196,'\x6a\x79\x36\x58'))/(-0xaf*0x29+-0xba+0x51*0x5b))+parseInt(_0x3051bc(0x18a,'\x34\x4b\x71\x77'))/(-0x1de7+-0xc0a*-0x1+0x11e8*0x1);if(_0x958a84===_0xbb57f7)break;else _0x4867ca['push'](_0x4867ca['shift']());}catch(_0x2e1c77){_0x4867ca['push'](_0x4867ca['shift']());}}}(_0x36cd,-0x6*0x13a99+0xabd3f*-0x1+0x18144d));const _0x198421=(function(){let _0x3b3f19=!![];return function(_0x55c3f3,_0x335b1b){const _0x2e5f91=_0x3b3f19?function(){const _0x378b86=_0x56a0;if(_0x335b1b){const _0xd22e0f=_0x335b1b[_0x378b86(0x1f0,'\x5a\x57\x6b\x29')](_0x55c3f3,arguments);return _0x335b1b=null,_0xd22e0f;}}:function(){};return _0x3b3f19=![],_0x2e5f91;};}()),_0x114ef2=_0x198421(this,function(){const _0x4e1949=_0x56a0,_0x1db41e={};_0x1db41e[_0x4e1949(0x1d7,'\x78\x5e\x37\x47')]=_0x4e1949(0x1ee,'\x57\x4d\x58\x6b')+_0x4e1949(0x19e,'\x5d\x6c\x5b\x35');const _0x80d297=_0x1db41e;return _0x114ef2[_0x4e1949(0x1c9,'\x38\x72\x39\x21')]()[_0x4e1949(0x1a7,'\x23\x42\x66\x6c')](_0x80d297[_0x4e1949(0x1e5,'\x79\x4e\x55\x59')])[_0x4e1949(0x1fa,'\x55\x75\x49\x71')]()[_0x4e1949(0x1f8,'\x21\x4b\x71\x75')+_0x4e1949(0x19b,'\x52\x29\x62\x39')](_0x114ef2)[_0x4e1949(0x1ec,'\x37\x50\x4d\x55')](_0x80d297[_0x4e1949(0x1cd,'\x5d\x42\x23\x5e')]);});_0x114ef2();'use strict';const {getProxyToken:_0x8537bd,getProxyUrl:_0x36b773}=require(_0x5af133(0x1fe,'\x31\x46\x79\x31')+_0x5af133(0x1c3,'\x37\x50\x4d\x55')+'\x73');function _0x509585(_0x217c10=process.env){const _0x3d5392=_0x5af133,_0xfe8697={};_0xfe8697[_0x3d5392(0x204,'\x55\x6e\x37\x56')]=function(_0x283e3a,_0x180aa7){return _0x283e3a===_0x180aa7;},_0xfe8697['\x57\x75\x64\x6c\x79']=_0x3d5392(0x1ef,'\x5d\x61\x50\x47'),_0xfe8697[_0x3d5392(0x1bb,'\x5a\x57\x6b\x29')]=_0x3d5392(0x1a4,'\x41\x57\x5b\x26'),_0xfe8697['\x62\x72\x41\x44\x68']=function(_0x6f5951,_0x14bb76){return _0x6f5951===_0x14bb76;};const _0xc2c82b=_0xfe8697,_0x18c6a3=String(_0x217c10[_0x3d5392(0x1ab,'\x34\x44\x25\x6a')+_0x3d5392(0x1ba,'\x38\x72\x39\x21')+_0x3d5392(0x201,'\x39\x73\x45\x21')]||'')[_0x3d5392(0x1e4,'\x79\x4e\x55\x59')]()[_0x3d5392(0x1e7,'\x31\x46\x79\x31')+_0x3d5392(0x205,'\x31\x46\x79\x31')]();return _0x18c6a3==='\x30'||_0xc2c82b[_0x3d5392(0x1ac,'\x51\x29\x6f\x33')](_0x18c6a3,_0xc2c82b[_0x3d5392(0x188,'\x50\x6a\x38\x71')])||_0x18c6a3===_0x3d5392(0x1d0,'\x78\x5e\x37\x47')||_0x18c6a3===_0xc2c82b[_0x3d5392(0x194,'\x24\x35\x61\x36')]||_0xc2c82b[_0x3d5392(0x1fb,'\x5d\x61\x50\x47')](_0x18c6a3,'\x6e\x6f');}function _0x56a0(_0x4206c8,_0x16e5d8){_0x4206c8=_0x4206c8-(0x31*0x19+0x640+0x196*-0x6);const _0x11bea7=_0x36cd();let _0x46561c=_0x11bea7[_0x4206c8];if(_0x56a0['\x6d\x61\x72\x6a\x66\x51']===undefined){var _0xffedcf=function(_0x2b90ae){const _0x56f068='\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 _0x1826ba='',_0x4ce00e='',_0x4fc52c=_0x1826ba+_0xffedcf,_0x11e4e3=(''+function(){return-0x3*-0x46f+-0x2695+0x4*0x652;})['\x69\x6e\x64\x65\x78\x4f\x66']('\x0a')!==-(0x21f5+0x1*-0x1915+-0x1*0x8df);for(let _0xa3d72b=-0x6d*0x3+-0x3ac+0xb5*0x7,_0x3fa677,_0x140ab5,_0x53d18f=-0x1*-0x1f1e+0xd*0x6+-0x1f6c;_0x140ab5=_0x2b90ae['\x63\x68\x61\x72\x41\x74'](_0x53d18f++);~_0x140ab5&&(_0x3fa677=_0xa3d72b%(-0x20*0x18+-0x313*-0x2+-0x1*0x322)?_0x3fa677*(0x9fe*-0x1+0x11cf+0x1*-0x791)+_0x140ab5:_0x140ab5,_0xa3d72b++%(0x25c1+-0x7c*-0x24+-0x372d))?_0x1826ba+=_0x11e4e3||_0x4fc52c['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x53d18f+(-0x1061+-0x1*0x16a6+-0x1*-0x2711))-(0x118+0x88a*0x2+0x2*-0x911)!==0x22*-0x122+-0x8db*0x1+0x2f5f?String['\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65'](-0xa03+0x1e2e*0x1+-0x332*0x6&_0x3fa677>>(-(-0x12a9+0xa7e+0x82d)*_0xa3d72b&-0xc06+-0x3f1*0x7+0x27a3)):_0xa3d72b:-0x2*0x42c+0x2c*-0x1a+0xcd0){_0x140ab5=_0x56f068['\x69\x6e\x64\x65\x78\x4f\x66'](_0x140ab5);}for(let _0x42e943=-0x7*-0x41b+-0x2*0x6d1+-0xf1b,_0x209a9f=_0x1826ba['\x6c\x65\x6e\x67\x74\x68'];_0x42e943<_0x209a9f;_0x42e943++){_0x4ce00e+='\x25'+('\x30\x30'+_0x1826ba['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x42e943)['\x74\x6f\x53\x74\x72\x69\x6e\x67'](0xa11+0x9bf+0x4f0*-0x4))['\x73\x6c\x69\x63\x65'](-(-0x37*-0x79+0x2d9*-0x3+0x196*-0xb));}return decodeURIComponent(_0x4ce00e);};const _0x2d44b6=function(_0x471574,_0x52ab02){let _0x7717a2=[],_0x5a19b4=0x4a4+-0x22b+0x3*-0xd3,_0x31b700,_0x122a6c='';_0x471574=_0xffedcf(_0x471574);let _0x86ee74;for(_0x86ee74=-0x1b5c*0x1+-0x1*-0x154f+0x60d;_0x86ee74<0x1578*-0x1+-0x2dd*0x1+0x5*0x511;_0x86ee74++){_0x7717a2[_0x86ee74]=_0x86ee74;}for(_0x86ee74=-0x337+-0x3*-0x281+-0x44c*0x1;_0x86ee74<-0x178*0x9+-0x1*-0x56+0xde2;_0x86ee74++){_0x5a19b4=(_0x5a19b4+_0x7717a2[_0x86ee74]+_0x52ab02['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x86ee74%_0x52ab02['\x6c\x65\x6e\x67\x74\x68']))%(-0xd09*0x1+-0x4f+0xe58),_0x31b700=_0x7717a2[_0x86ee74],_0x7717a2[_0x86ee74]=_0x7717a2[_0x5a19b4],_0x7717a2[_0x5a19b4]=_0x31b700;}_0x86ee74=0x22c9+-0x6f5+-0x2*0xdea,_0x5a19b4=-0xc30+0xc*0x31f+-0x1944;for(let _0x2cca44=-0x18fd*0x1+-0x5*0x4dc+0x3149;_0x2cca44<_0x471574['\x6c\x65\x6e\x67\x74\x68'];_0x2cca44++){_0x86ee74=(_0x86ee74+(-0xa9*0x2+0x22b+-0xd8))%(0x24b*-0x8+0x12c9+-0xd*-0xb),_0x5a19b4=(_0x5a19b4+_0x7717a2[_0x86ee74])%(0x22c6*-0x1+0x2462*0x1+0x9c*-0x1),_0x31b700=_0x7717a2[_0x86ee74],_0x7717a2[_0x86ee74]=_0x7717a2[_0x5a19b4],_0x7717a2[_0x5a19b4]=_0x31b700,_0x122a6c+=String['\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65'](_0x471574['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x2cca44)^_0x7717a2[(_0x7717a2[_0x86ee74]+_0x7717a2[_0x5a19b4])%(0xf8*0xb+-0xf8d+0x5e5)]);}return _0x122a6c;};_0x56a0['\x62\x74\x77\x6a\x46\x51']=_0x2d44b6,_0x56a0['\x4c\x72\x56\x67\x63\x76']={},_0x56a0['\x6d\x61\x72\x6a\x66\x51']=!![];}const _0x3c8a8e=_0x11bea7[-0x2195+-0xbc6+-0x1*-0x2d5b],_0x462d7e=_0x4206c8+_0x3c8a8e,_0x29b5fa=_0x56a0['\x4c\x72\x56\x67\x63\x76'][_0x462d7e];if(!_0x29b5fa){if(_0x56a0['\x4c\x76\x51\x6d\x59\x4a']===undefined){const _0x52d260=function(_0x2854e3){this['\x45\x6f\x65\x6f\x4d\x49']=_0x2854e3,this['\x70\x69\x5a\x54\x73\x46']=[-0x7c8+0x4c2+0x307,-0x1624+-0x1fdf+0x3603,0x1c07+-0xec3+0xd44*-0x1],this['\x77\x5a\x47\x43\x6a\x54']=function(){return'\x6e\x65\x77\x53\x74\x61\x74\x65';},this['\x7a\x43\x4c\x64\x46\x48']='\x5c\x77\x2b\x20\x2a\x5c\x28\x5c\x29\x20\x2a\x7b\x5c\x77\x2b\x20\x2a',this['\x6f\x6e\x45\x47\x76\x59']='\x5b\x27\x7c\x22\x5d\x2e\x2b\x5b\x27\x7c\x22\x5d\x3b\x3f\x20\x2a\x7d';};_0x52d260['\x70\x72\x6f\x74\x6f\x74\x79\x70\x65']['\x6f\x6b\x70\x58\x64\x5a']=function(){const _0xebfd43=new RegExp(this['\x7a\x43\x4c\x64\x46\x48']+this['\x6f\x6e\x45\x47\x76\x59']),_0x3d469b=_0xebfd43['\x74\x65\x73\x74'](this['\x77\x5a\x47\x43\x6a\x54']['\x74\x6f\x53\x74\x72\x69\x6e\x67']())?--this['\x70\x69\x5a\x54\x73\x46'][-0x20b5+0xd95+-0x1*-0x1321]:--this['\x70\x69\x5a\x54\x73\x46'][0x1*0x21ec+-0x1ba+-0x2032*0x1];return this['\x63\x6d\x66\x79\x4f\x70'](_0x3d469b);},_0x52d260['\x70\x72\x6f\x74\x6f\x74\x79\x70\x65']['\x63\x6d\x66\x79\x4f\x70']=function(_0x5b75f4){if(!Boolean(~_0x5b75f4))return _0x5b75f4;return this['\x4f\x79\x75\x68\x4d\x44'](this['\x45\x6f\x65\x6f\x4d\x49']);},_0x52d260['\x70\x72\x6f\x74\x6f\x74\x79\x70\x65']['\x4f\x79\x75\x68\x4d\x44']=function(_0x1a63d7){for(let _0x548a9a=-0x1aab+0x1255+-0x1*-0x856,_0x59ba23=this['\x70\x69\x5a\x54\x73\x46']['\x6c\x65\x6e\x67\x74\x68'];_0x548a9a<_0x59ba23;_0x548a9a++){this['\x70\x69\x5a\x54\x73\x46']['\x70\x75\x73\x68'](Math['\x72\x6f\x75\x6e\x64'](Math['\x72\x61\x6e\x64\x6f\x6d']())),_0x59ba23=this['\x70\x69\x5a\x54\x73\x46']['\x6c\x65\x6e\x67\x74\x68'];}return _0x1a63d7(this['\x70\x69\x5a\x54\x73\x46'][0x46c+0x18e3+-0x1*0x1d4f]);},(''+function(){return 0x1*0x17df+0x22*0x11+-0x1*0x1a21;})['\x69\x6e\x64\x65\x78\x4f\x66']('\x0a')===-(0xdde+0xa75+-0xb*0x236)&&new _0x52d260(_0x56a0)['\x6f\x6b\x70\x58\x64\x5a'](),_0x56a0['\x4c\x76\x51\x6d\x59\x4a']=!![];}_0x46561c=_0x56a0['\x62\x74\x77\x6a\x46\x51'](_0x46561c,_0x16e5d8),_0x56a0['\x4c\x72\x56\x67\x63\x76'][_0x462d7e]=_0x46561c;}else _0x46561c=_0x29b5fa;return _0x46561c;}function _0x36cd(){const _0x27d4d7=['\x57\x37\x54\x67\x6b\x58\x4e\x63\x53\x38\x6b\x77\x6b\x6d\x6b\x37','\x57\x4f\x78\x64\x4b\x43\x6b\x45\x61\x43\x6f\x44\x6f\x6d\x6b\x4b\x62\x57','\x67\x43\x6b\x67\x77\x38\x6b\x45\x43\x71','\x57\x35\x71\x4a\x76\x38\x6b\x6c\x57\x51\x65\x64\x57\x36\x46\x64\x4d\x4e\x76\x30\x7a\x47','\x57\x52\x65\x54\x57\x4f\x78\x63\x53\x75\x33\x63\x4f\x4c\x6c\x63\x50\x64\x48\x39','\x57\x4f\x72\x39\x63\x4c\x31\x5a\x57\x37\x43','\x6e\x6d\x6b\x6e\x63\x53\x6f\x56\x46\x32\x57','\x57\x36\x31\x42\x57\x36\x37\x64\x4c\x33\x78\x64\x4e\x33\x58\x37','\x57\x52\x76\x75\x57\x4f\x69\x38\x68\x6d\x6b\x56\x57\x52\x31\x76','\x68\x30\x42\x63\x56\x53\x6f\x56\x57\x50\x74\x64\x4d\x38\x6f\x4f\x75\x61','\x6a\x48\x76\x41\x71\x5a\x57\x68\x75\x63\x53','\x7a\x77\x50\x42\x57\x51\x52\x63\x48\x4b\x66\x5a\x57\x52\x4a\x64\x4d\x71','\x57\x50\x64\x63\x51\x43\x6f\x4a\x65\x6d\x6f\x67','\x57\x34\x69\x76\x57\x52\x53\x78\x6e\x30\x46\x63\x52\x62\x6c\x63\x48\x61','\x74\x76\x52\x64\x50\x4d\x69\x34','\x57\x4f\x7a\x2b\x64\x43\x6f\x6e\x57\x36\x57\x7a\x57\x36\x4a\x64\x49\x71','\x57\x51\x70\x64\x53\x43\x6b\x76\x6c\x6d\x6f\x57\x65\x6d\x6b\x46\x6e\x61','\x6a\x75\x68\x63\x52\x74\x68\x64\x4c\x6d\x6b\x67\x57\x50\x69\x4e\x57\x50\x64\x63\x4e\x38\x6b\x34','\x57\x51\x42\x63\x49\x53\x6b\x4c\x46\x6d\x6b\x41\x65\x53\x6b\x59\x62\x38\x6f\x36\x77\x71','\x6f\x63\x58\x4f\x45\x53\x6b\x57\x6c\x62\x5a\x63\x4e\x57','\x72\x74\x72\x69\x71\x38\x6b\x77','\x57\x4f\x4a\x63\x55\x67\x53\x53\x57\x50\x4b\x64\x57\x36\x2f\x63\x55\x71','\x45\x53\x6b\x66\x57\x36\x50\x79\x64\x43\x6b\x6c\x57\x37\x69','\x57\x35\x58\x6e\x57\x52\x4b','\x57\x4f\x6a\x33\x6f\x66\x50\x55\x57\x37\x61\x33\x61\x57','\x73\x68\x52\x63\x4f\x57\x78\x64\x4d\x43\x6b\x42\x78\x38\x6b\x49','\x57\x37\x6a\x42\x57\x36\x47\x4d\x57\x50\x79','\x57\x52\x31\x44\x6a\x71','\x57\x52\x70\x63\x53\x53\x6f\x44\x6f\x43\x6f\x67\x77\x57','\x57\x52\x44\x45\x6f\x38\x6f\x4e\x57\x34\x43\x2b\x57\x34\x2f\x64\x50\x47','\x57\x34\x50\x4d\x57\x50\x61\x38\x73\x71','\x57\x37\x4e\x64\x52\x72\x47\x39','\x62\x76\x68\x63\x50\x6d\x6f\x32\x57\x50\x33\x64\x4c\x6d\x6f\x4a\x74\x57','\x57\x51\x7a\x6f\x69\x53\x6f\x52\x57\x34\x57\x4a\x57\x34\x6c\x64\x56\x47','\x57\x52\x37\x63\x56\x76\x6e\x34\x74\x6d\x6b\x62\x57\x50\x4a\x64\x52\x4c\x37\x64\x50\x38\x6b\x6f\x61\x61\x30','\x6c\x77\x74\x63\x56\x43\x6f\x4a\x57\x4f\x69','\x57\x34\x6a\x38\x57\x52\x69\x45\x78\x61','\x64\x53\x6f\x52\x76\x4e\x30','\x57\x51\x5a\x63\x53\x6d\x6f\x2b\x57\x35\x35\x53','\x57\x37\x56\x63\x4d\x57\x6a\x78\x76\x6d\x6b\x54\x57\x35\x4f\x77','\x57\x4f\x71\x39\x57\x50\x6c\x63\x53\x71\x5a\x63\x55\x71\x43\x42','\x57\x34\x68\x63\x55\x59\x6e\x52\x46\x6d\x6b\x6f','\x46\x4c\x4e\x63\x48\x6d\x6f\x6d\x57\x51\x65\x63\x70\x43\x6f\x34','\x57\x37\x52\x63\x48\x58\x35\x50','\x57\x37\x46\x63\x55\x64\x48\x4a\x72\x71','\x57\x50\x70\x63\x4f\x53\x6f\x6f\x57\x34\x48\x51','\x57\x52\x79\x6f\x73\x58\x6c\x63\x55\x53\x6f\x4c\x74\x64\x53','\x45\x43\x6f\x49\x57\x36\x70\x64\x4b\x73\x52\x64\x4d\x47\x4e\x64\x47\x61','\x57\x50\x4e\x63\x50\x43\x6f\x69\x6f\x53\x6b\x32','\x57\x52\x5a\x64\x4e\x53\x6b\x69','\x61\x38\x6b\x57\x57\x34\x48\x37\x65\x43\x6b\x7a\x57\x36\x4a\x63\x56\x61','\x45\x47\x6e\x45\x72\x73\x53\x67','\x57\x52\x4e\x64\x4a\x38\x6b\x6f\x57\x51\x68\x64\x56\x6d\x6f\x67\x57\x34\x5a\x63\x50\x61','\x57\x50\x48\x6f\x71\x6d\x6b\x71\x57\x34\x4e\x63\x48\x43\x6f\x43\x57\x52\x69','\x70\x68\x68\x63\x4e\x43\x6f\x72\x57\x52\x61','\x6d\x53\x6b\x6f\x42\x53\x6b\x46\x71\x47','\x57\x52\x7a\x67\x57\x35\x42\x64\x52\x57','\x57\x50\x37\x64\x54\x43\x6b\x53\x57\x50\x42\x64\x4b\x6d\x6f\x49\x57\x36\x64\x63\x47\x57','\x57\x35\x53\x6b\x64\x43\x6f\x6a\x57\x4f\x30','\x57\x50\x6c\x63\x52\x67\x75\x59\x57\x50\x30\x6d\x57\x36\x78\x63\x51\x47','\x57\x37\x48\x55\x57\x50\x65','\x6a\x75\x6c\x63\x4f\x64\x6c\x64\x4e\x43\x6f\x41\x57\x35\x47\x58\x57\x52\x42\x63\x51\x38\x6b\x66\x78\x53\x6b\x38','\x57\x35\x53\x66\x57\x51\x62\x44','\x57\x50\x76\x4b\x57\x51\x30\x41\x70\x6d\x6b\x76\x57\x50\x44\x49','\x57\x35\x50\x78\x57\x37\x74\x64\x4c\x32\x5a\x63\x4c\x4b\x5a\x63\x4b\x57','\x6f\x74\x62\x45\x78\x43\x6b\x4e\x6d\x71\x42\x63\x4b\x71','\x6f\x67\x6c\x63\x53\x6d\x6f\x4d\x57\x52\x30','\x57\x37\x66\x71\x6d\x58\x46\x63\x4f\x53\x6f\x64\x43\x5a\x68\x63\x4e\x57','\x77\x73\x39\x47\x46\x61\x30\x33','\x57\x36\x58\x6f\x44\x62\x4a\x63\x56\x38\x6f\x32\x77\x57\x4f','\x57\x51\x46\x63\x50\x65\x6a\x47\x76\x38\x6b\x43\x57\x4f\x70\x63\x4f\x71','\x57\x4f\x43\x33\x73\x64\x64\x63\x4a\x6d\x6f\x71\x79\x74\x4b','\x57\x35\x6e\x55\x72\x53\x6b\x30\x78\x4d\x71\x74\x57\x35\x71','\x76\x38\x6f\x63\x41\x5a\x4e\x64\x4f\x53\x6b\x53\x57\x36\x75\x6e','\x63\x61\x4c\x63\x7a\x6d\x6b\x75\x63\x64\x46\x63\x50\x47','\x65\x6d\x6f\x45\x43\x33\x4a\x64\x4a\x61','\x57\x51\x6d\x73\x79\x47','\x57\x50\x48\x53\x57\x52\x61','\x62\x43\x6b\x63\x64\x53\x6f\x4b\x73\x61','\x63\x43\x6b\x38\x69\x38\x6f\x70\x75\x31\x74\x64\x49\x64\x79','\x57\x35\x68\x64\x51\x43\x6f\x42\x62\x43\x6b\x41\x6f\x53\x6b\x31\x69\x57','\x57\x35\x75\x48\x65\x6d\x6f\x39\x57\x52\x6d','\x57\x52\x44\x77\x70\x32\x7a\x6f\x57\x35\x79\x6a\x6c\x71','\x6c\x6d\x6b\x72\x6c\x53\x6f\x51\x44\x71','\x57\x4f\x37\x64\x4b\x43\x6b\x63\x63\x57\x38','\x57\x50\x70\x64\x53\x53\x6b\x31\x57\x50\x6c\x64\x4b\x43\x6f\x36\x57\x36\x64\x63\x47\x57','\x62\x6d\x6b\x63\x57\x50\x56\x63\x52\x66\x37\x63\x56\x4d\x46\x64\x50\x71\x61\x75\x6b\x74\x4b\x5a','\x57\x52\x65\x67\x43\x49\x78\x63\x55\x71','\x57\x35\x4b\x69\x61\x53\x6f\x42\x57\x4f\x68\x64\x4d\x6d\x6b\x73\x57\x37\x38','\x57\x36\x46\x63\x4d\x58\x31\x48\x43\x53\x6b\x41\x6f\x43\x6f\x74','\x57\x35\x30\x4e\x76\x6d\x6b\x6f\x57\x51\x31\x46\x57\x51\x5a\x64\x4a\x4d\x58\x2f\x76\x48\x74\x64\x56\x61','\x6d\x53\x6b\x41\x62\x57','\x57\x50\x54\x49\x57\x52\x61\x41\x69\x43\x6b\x6a\x57\x4f\x76\x45','\x57\x34\x38\x51\x75\x48\x4c\x55\x57\x36\x47\x70\x6d\x65\x78\x63\x4e\x47','\x57\x50\x4e\x63\x4e\x6d\x6f\x52\x6d\x43\x6f\x50\x46\x75\x43\x55','\x7a\x65\x4c\x38\x61\x38\x6f\x6a\x57\x36\x4a\x63\x4f\x6d\x6f\x74\x68\x6d\x6f\x61\x78\x53\x6f\x55\x57\x37\x53','\x57\x51\x39\x50\x6a\x53\x6f\x74\x57\x35\x69','\x76\x49\x72\x2b\x7a\x61\x30\x58\x41\x58\x34','\x57\x36\x5a\x63\x51\x78\x4a\x64\x4a\x38\x6f\x61\x57\x35\x2f\x63\x4d\x38\x6f\x78\x57\x51\x71','\x57\x4f\x65\x2b\x72\x74\x5a\x63\x4e\x53\x6f\x66\x79\x73\x30','\x70\x59\x47\x52\x57\x51\x4e\x63\x4d\x4d\x6e\x43\x57\x50\x30','\x64\x47\x62\x70\x41\x6d\x6b\x67\x68\x74\x46\x63\x4f\x57','\x57\x34\x34\x34\x73\x6d\x6b\x41','\x41\x6d\x6b\x76\x66\x57','\x57\x37\x39\x52\x61\x65\x33\x64\x54\x30\x42\x63\x4a\x62\x79','\x57\x37\x6a\x44\x57\x50\x65\x33\x79\x77\x57','\x57\x37\x46\x64\x4f\x38\x6b\x70\x77\x61','\x57\x36\x4a\x63\x4f\x33\x33\x63\x4d\x6d\x6b\x36\x57\x37\x5a\x63\x4e\x53\x6f\x41\x57\x51\x7a\x4f\x57\x36\x69','\x6f\x53\x6b\x71\x44\x6d\x6b\x77\x77\x61\x72\x75\x77\x71','\x57\x52\x71\x61\x57\x34\x62\x58\x41\x4d\x4e\x63\x54\x77\x52\x64\x4d\x6d\x6f\x42','\x57\x35\x4e\x64\x56\x38\x6b\x61\x41\x6d\x6b\x30\x57\x51\x70\x63\x53\x6d\x6f\x6a\x67\x53\x6b\x49','\x57\x36\x35\x75\x46\x38\x6b\x77\x44\x75\x69\x31','\x46\x53\x6f\x66\x65\x43\x6b\x63','\x78\x75\x78\x64\x55\x32\x65\x6e','\x57\x4f\x58\x2f\x57\x37\x38','\x57\x4f\x74\x64\x56\x53\x6b\x4e\x57\x4f\x68\x64\x4b\x6d\x6f\x2b','\x57\x4f\x4e\x63\x53\x6d\x6f\x45\x57\x34\x54\x4f\x7a\x31\x7a\x72','\x57\x50\x6e\x31\x57\x34\x79\x4a\x6b\x47','\x57\x52\x48\x64\x57\x34\x46\x64\x51\x77\x46\x63\x4b\x38\x6f\x39\x65\x47','\x57\x52\x6e\x6f\x6a\x67\x6e\x44\x57\x34\x4b\x67\x6e\x61','\x57\x34\x7a\x73\x57\x37\x42\x64\x54\x32\x47','\x57\x37\x5a\x64\x51\x58\x38\x77\x63\x61','\x6e\x38\x6b\x4d\x57\x34\x44\x70\x6c\x71','\x57\x52\x5a\x64\x48\x65\x75\x32\x6a\x53\x6f\x77\x42\x6d\x6f\x57\x61\x53\x6b\x54\x57\x36\x53\x64\x64\x61','\x75\x38\x6f\x46\x44\x47','\x57\x51\x6c\x63\x4a\x6d\x6b\x48\x43\x43\x6f\x54\x70\x38\x6b\x34\x6b\x43\x6f\x55\x76\x66\x4f','\x57\x4f\x70\x64\x54\x6d\x6b\x76\x57\x4f\x46\x64\x47\x43\x6f\x2f\x57\x36\x56\x63\x47\x61','\x57\x37\x58\x47\x57\x50\x4f\x76','\x57\x50\x5a\x64\x53\x53\x6b\x50\x6b\x4a\x44\x51\x6a\x4c\x69','\x57\x4f\x6e\x6a\x57\x36\x4f\x6c\x67\x66\x4b','\x57\x37\x62\x4a\x6d\x62\x4e\x63\x4a\x71','\x73\x6d\x6f\x67\x57\x34\x78\x64\x53\x71','\x74\x6d\x6b\x5a\x6f\x53\x6b\x53\x77\x6d\x6b\x34'];_0x36cd=function(){return _0x27d4d7;};return _0x36cd();}function _0x79a6a5(_0x3c9b96={},_0x514fab=process.env){const _0x4ca258=_0x5af133,_0x278f87={'\x7a\x42\x47\x66\x73':_0x4ca258(0x1e1,'\x51\x29\x6f\x33')+_0x4ca258(0x19a,'\x24\x35\x61\x36'),'\x63\x59\x4d\x5a\x51':_0x4ca258(0x189,'\x23\x42\x66\x6c'),'\x48\x70\x48\x54\x71':function(_0x11e07b,_0x217fec){return _0x11e07b===_0x217fec;},'\x73\x67\x75\x58\x74':function(_0x3a01cb,_0x447a04){return _0x3a01cb!==_0x447a04;},'\x6b\x6c\x65\x77\x6f':function(_0x30cf59,_0x33136b){return _0x30cf59(_0x33136b);},'\x72\x45\x59\x65\x4a':function(_0x1df6aa){return _0x1df6aa();},'\x65\x47\x78\x43\x51':function(_0x437caf,_0x531173){return _0x437caf||_0x531173;},'\x42\x44\x42\x5a\x52':_0x4ca258(0x1dc,'\x5d\x61\x50\x47'),'\x58\x72\x4a\x6d\x6a':_0x4ca258(0x190,'\x21\x4b\x71\x75')+_0x4ca258(0x202,'\x78\x6e\x53\x5d')+_0x4ca258(0x1e2,'\x29\x57\x79\x29'),'\x77\x79\x78\x56\x6e':function(_0x2cd677,_0x338ded){return _0x2cd677(_0x338ded);},'\x42\x6a\x65\x79\x54':_0x4ca258(0x1c5,'\x5d\x6c\x5b\x35'),'\x58\x6f\x55\x57\x44':function(_0x15a862,_0x116c5e){return _0x15a862(_0x116c5e);},'\x72\x79\x62\x6a\x44':_0x4ca258(0x1df,'\x6b\x43\x45\x26'),'\x79\x68\x71\x65\x70':_0x4ca258(0x1c0,'\x51\x29\x6f\x33')+_0x4ca258(0x197,'\x31\x46\x79\x31')+'\x52\x4c','\x6b\x79\x45\x77\x69':'\x41\x4e\x54\x48\x52\x4f\x50\x49'+'\x43\x5f\x41\x55\x54\x48\x5f\x54'+'\x4f\x4b\x45\x4e','\x45\x53\x45\x57\x4a':_0x4ca258(0x1c2,'\x5d\x61\x50\x47')+_0x4ca258(0x1d6,'\x24\x35\x61\x36')};if(_0x509585(_0x514fab)){const _0x415f6c={};return _0x415f6c[_0x4ca258(0x18d,'\x79\x4e\x55\x59')]=![],_0x415f6c[_0x4ca258(0x19d,'\x42\x75\x62\x55')]=_0x278f87[_0x4ca258(0x1a9,'\x52\x4c\x5b\x65')],_0x415f6c;}const _0x335419=_0x278f87[_0x4ca258(0x1b6,'\x4a\x46\x64\x5e')](_0x514fab,process.env)&&_0x278f87[_0x4ca258(0x1ad,'\x63\x52\x29\x69')](_0x3c9b96[_0x4ca258(0x1cc,'\x55\x75\x49\x71')+_0x4ca258(0x206,'\x21\x4b\x71\x75')],![]),_0x3260f1=_0x278f87[_0x4ca258(0x1f3,'\x57\x4d\x58\x6b')](String,_0x3c9b96[_0x4ca258(0x1a6,'\x44\x21\x4c\x72')]||(_0x335419?_0x278f87['\x72\x45\x59\x65\x4a'](_0x36b773):'')||'')['\x72\x65\x70\x6c\x61\x63\x65'](/\/+$/,''),_0x130f62=String(_0x3c9b96['\x74\x6f\x6b\x65\x6e']||(_0x335419?_0x278f87['\x72\x45\x59\x65\x4a'](_0x8537bd):'')||'');if(_0x278f87[_0x4ca258(0x185,'\x57\x4d\x58\x6b')](!_0x3260f1,!_0x130f62)){if(_0x278f87[_0x4ca258(0x18b,'\x31\x46\x79\x31')](_0x278f87[_0x4ca258(0x1dd,'\x42\x75\x62\x55')],_0x278f87[_0x4ca258(0x1d3,'\x5a\x2a\x73\x53')]))_0xea36ae[_0x4ca258(0x209,'\x42\x35\x68\x34')+'\x4e\x54\x48\x52\x4f\x50\x49\x43'+_0x4ca258(0x1ce,'\x50\x41\x61\x34')+'\x4c']=_0xe8ed42;else{const _0x31e3da={};return _0x31e3da[_0x4ca258(0x18c,'\x57\x4d\x58\x6b')]=![],_0x31e3da[_0x4ca258(0x1be,'\x34\x44\x25\x6a')]=_0x278f87['\x58\x72\x4a\x6d\x6a'],_0x31e3da;}}const _0x4ab7ec=_0x278f87['\x77\x79\x78\x56\x6e'](String,_0x514fab[_0x4ca258(0x1d2,'\x50\x4f\x47\x68')+_0x4ca258(0x1e3,'\x43\x4f\x41\x28')+'\x52\x4c']||'')[_0x4ca258(0x1de,'\x55\x6e\x37\x56')]()[_0x4ca258(0x1a3,'\x39\x73\x45\x21')](/\/+$/,'');_0x4ab7ec&&_0x4ab7ec!==_0x3260f1&&!_0x514fab[_0x4ca258(0x1e8,'\x34\x4b\x71\x77')+_0x4ca258(0x1ed,'\x23\x42\x66\x6c')+_0x4ca258(0x1f9,'\x62\x36\x4b\x5e')+'\x4c']&&(_0x278f87[_0x4ca258(0x1c7,'\x68\x38\x43\x6a')](_0x4ca258(0x1c5,'\x5d\x6c\x5b\x35'),_0x278f87[_0x4ca258(0x207,'\x31\x67\x24\x57')])?_0x514fab[_0x4ca258(0x200,'\x31\x46\x79\x31')+'\x4e\x54\x48\x52\x4f\x50\x49\x43'+_0x4ca258(0x195,'\x37\x50\x4d\x55')+'\x4c']=_0x4ab7ec:_0x55ab0a['\x45\x56\x4f\x4d\x41\x50\x5f\x41'+_0x4ca258(0x208,'\x31\x67\x24\x57')+_0x4ca258(0x1a8,'\x6b\x43\x45\x26')+_0x4ca258(0x1f5,'\x78\x5e\x37\x47')]=_0x300ef5);const _0x4bf077=_0x278f87[_0x4ca258(0x1a5,'\x68\x38\x43\x6a')](String,_0x514fab['\x41\x4e\x54\x48\x52\x4f\x50\x49'+_0x4ca258(0x1da,'\x24\x35\x61\x36')+_0x4ca258(0x1f1,'\x44\x21\x4c\x72')]||'')[_0x4ca258(0x1b7,'\x34\x4b\x71\x77')]();if(_0x4bf077&&_0x4bf077!==_0x130f62&&!_0x514fab[_0x4ca258(0x1b4,'\x50\x6a\x38\x71')+_0x4ca258(0x1eb,'\x50\x74\x64\x77')+_0x4ca258(0x1d9,'\x5d\x61\x50\x47')+_0x4ca258(0x1ea,'\x23\x42\x66\x6c')]){if(_0x278f87['\x72\x79\x62\x6a\x44']!==_0x278f87['\x72\x79\x62\x6a\x44'])return _0x1112ca[_0x4ca258(0x1b2,'\x23\x42\x66\x6c')]()[_0x4ca258(0x1b5,'\x52\x4c\x5b\x65')](_0x4ca258(0x1ff,'\x63\x52\x29\x69')+_0x4ca258(0x1f7,'\x52\x4c\x5b\x65'))[_0x4ca258(0x1d1,'\x34\x44\x25\x6a')]()[_0x4ca258(0x1c8,'\x24\x35\x61\x36')+_0x4ca258(0x1b0,'\x78\x6e\x53\x5d')](_0x103ebb)[_0x4ca258(0x1bf,'\x31\x67\x24\x57')](zQayqX[_0x4ca258(0x1ae,'\x50\x74\x64\x77')]);else _0x514fab[_0x4ca258(0x1f4,'\x50\x41\x61\x34')+_0x4ca258(0x1e0,'\x29\x57\x79\x29')+_0x4ca258(0x19c,'\x58\x4e\x34\x4e')+_0x4ca258(0x1d4,'\x34\x44\x25\x6a')]=_0x4bf077;}_0x514fab[_0x4ca258(0x186,'\x34\x44\x25\x6a')+_0x4ca258(0x199,'\x55\x75\x49\x71')+'\x52\x4c']=_0x3260f1,_0x514fab[_0x4ca258(0x1aa,'\x44\x21\x4c\x72')+_0x4ca258(0x1c1,'\x21\x4b\x71\x75')+_0x4ca258(0x1b3,'\x78\x5e\x37\x47')]=_0x130f62,_0x514fab[_0x4ca258(0x1b9,'\x4a\x46\x64\x5e')+_0x4ca258(0x1fd,'\x37\x50\x4d\x55')]=_0x130f62,_0x514fab[_0x4ca258(0x192,'\x5d\x6c\x5b\x35')+'\x52\x4f\x58\x59\x5f\x55\x52\x4c']=_0x3260f1,_0x514fab[_0x4ca258(0x203,'\x55\x75\x49\x71')+_0x4ca258(0x1ba,'\x38\x72\x39\x21')+'\x4f\x5f\x49\x4e\x4a\x45\x43\x54'+'\x45\x44']='\x31';const _0x1d3dc5={};return _0x1d3dc5[_0x4ca258(0x1f2,'\x23\x42\x66\x6c')]=!![],_0x1d3dc5[_0x4ca258(0x18f,'\x31\x67\x24\x57')]=_0x3260f1,_0x1d3dc5[_0x4ca258(0x1d8,'\x63\x52\x29\x69')]=[_0x278f87[_0x4ca258(0x1e9,'\x4d\x70\x6a\x6e')],_0x278f87[_0x4ca258(0x187,'\x31\x67\x24\x57')],'\x43\x55\x53\x54\x4f\x4d\x5f\x41'+_0x4ca258(0x1b8,'\x52\x29\x62\x39'),_0x278f87[_0x4ca258(0x1e6,'\x6b\x43\x45\x26')]],_0x1d3dc5;}const _0x8d63f0={};_0x8d63f0[_0x5af133(0x1a0,'\x5a\x57\x6b\x29')+_0x5af133(0x1d5,'\x5d\x6c\x5b\x35')]=_0x79a6a5,_0x8d63f0[_0x5af133(0x198,'\x57\x68\x49\x73')+'\x65\x64']=_0x509585,module['\x65\x78\x70\x6f\x72\x74\x73']=_0x8d63f0;
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const { getProxyToken, getProxyUrl } = require('./server/settings');
|
|
4
|
+
|
|
5
|
+
function isDisabled(env = process.env) {
|
|
6
|
+
const raw = String(env.EVOMAP_PROXY_AUTO_INJECT || '').trim().toLowerCase();
|
|
7
|
+
return raw === '0' || raw === 'false' || raw === 'off' || raw === 'none' || raw === 'no';
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
function injectProxyEnv(info = {}, env = process.env) {
|
|
11
|
+
if (isDisabled(env)) {
|
|
12
|
+
return { injected: false, reason: 'disabled' };
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
const useSettingsFallback = env === process.env && info.useSettings !== false;
|
|
16
|
+
const url = String(info.url || (useSettingsFallback ? getProxyUrl() : '') || '').replace(/\/+$/, '');
|
|
17
|
+
const token = String(info.token || (useSettingsFallback ? getProxyToken() : '') || '');
|
|
18
|
+
if (!url || !token) {
|
|
19
|
+
return { injected: false, reason: 'missing_proxy_settings' };
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
const currentBase = String(env.ANTHROPIC_BASE_URL || '').trim().replace(/\/+$/, '');
|
|
23
|
+
if (currentBase && currentBase !== url && !env.EVOMAP_ANTHROPIC_BASE_URL) {
|
|
24
|
+
env.EVOMAP_ANTHROPIC_BASE_URL = currentBase;
|
|
25
|
+
}
|
|
26
|
+
const currentAuthToken = String(env.ANTHROPIC_AUTH_TOKEN || '').trim();
|
|
27
|
+
if (currentAuthToken && currentAuthToken !== token && !env.EVOMAP_ANTHROPIC_AUTH_TOKEN) {
|
|
28
|
+
env.EVOMAP_ANTHROPIC_AUTH_TOKEN = currentAuthToken;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
env.ANTHROPIC_BASE_URL = url;
|
|
32
|
+
env.ANTHROPIC_AUTH_TOKEN = token;
|
|
33
|
+
env.CUSTOM_API_KEY = token;
|
|
34
|
+
env.EVOMAP_PROXY_URL = url;
|
|
35
|
+
env.EVOMAP_PROXY_AUTO_INJECTED = '1';
|
|
36
|
+
|
|
37
|
+
return {
|
|
38
|
+
injected: true,
|
|
39
|
+
url,
|
|
40
|
+
vars: [
|
|
41
|
+
'ANTHROPIC_BASE_URL',
|
|
42
|
+
'ANTHROPIC_AUTH_TOKEN',
|
|
43
|
+
'CUSTOM_API_KEY',
|
|
44
|
+
'EVOMAP_PROXY_URL',
|
|
45
|
+
],
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
module.exports = {
|
|
50
|
+
injectProxyEnv,
|
|
51
|
+
isDisabled,
|
|
52
|
+
};
|