@evomap/evolver 1.89.11 → 1.89.12

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.
Files changed (100) hide show
  1. package/.cursor/BUGBOT.md +182 -0
  2. package/.env.example +68 -0
  3. package/.git-commit-guard-token +1 -0
  4. package/.github/CODEOWNERS +63 -0
  5. package/.github/ISSUE_TEMPLATE/good_first_issue.md +23 -0
  6. package/.github/pull_request_template.md +45 -0
  7. package/.github/workflows/test.yml +75 -0
  8. package/CHANGELOG.md +1367 -0
  9. package/README.md +90 -537
  10. package/README.public.md +578 -0
  11. package/SECURITY.md +108 -0
  12. package/assets/gep/events.jsonl +3 -0
  13. package/examples/atp-consumer-quickstart.md +100 -0
  14. package/examples/hello-world.md +38 -0
  15. package/package.json +6 -18
  16. package/proxy-package.json +39 -0
  17. package/public.manifest.json +145 -0
  18. package/src/evolve/guards.js +721 -1
  19. package/src/evolve/pipeline/collect.js +1283 -1
  20. package/src/evolve/pipeline/dispatch.js +421 -1
  21. package/src/evolve/pipeline/enrich.js +440 -1
  22. package/src/evolve/pipeline/hub.js +319 -1
  23. package/src/evolve/pipeline/select.js +274 -1
  24. package/src/evolve/pipeline/signals.js +206 -1
  25. package/src/evolve/utils.js +264 -1
  26. package/src/evolve.js +350 -1
  27. package/src/gep/a2aProtocol.js +4463 -1
  28. package/src/gep/antiAbuseTelemetry.js +233 -1
  29. package/src/gep/autoDistillConv.js +205 -1
  30. package/src/gep/autoDistillLlm.js +315 -1
  31. package/src/gep/candidateEval.js +92 -1
  32. package/src/gep/candidates.js +198 -1
  33. package/src/gep/contentHash.js +30 -1
  34. package/src/gep/conversationDistiller.js +270 -0
  35. package/src/gep/conversationSniffer.js +266 -1
  36. package/src/gep/crypto.js +89 -1
  37. package/src/gep/curriculum.js +163 -1
  38. package/src/gep/deviceId.js +218 -1
  39. package/src/gep/envFingerprint.js +118 -1
  40. package/src/gep/epigenetics.js +31 -1
  41. package/src/gep/execBridge.js +712 -1
  42. package/src/gep/explore.js +289 -1
  43. package/src/gep/hash.js +15 -1
  44. package/src/gep/hubFetch.js +608 -1
  45. package/src/gep/hubReview.js +207 -1
  46. package/src/gep/hubSearch.js +526 -1
  47. package/src/gep/hubVerify.js +306 -1
  48. package/src/gep/learningSignals.js +89 -1
  49. package/src/gep/memoryGraph.js +1449 -1
  50. package/src/gep/memoryGraphAdapter.js +203 -1
  51. package/src/gep/mutation.js +203 -1
  52. package/src/gep/narrativeMemory.js +108 -1
  53. package/src/gep/openPRRegistry.js +205 -1
  54. package/src/gep/personality.js +423 -1
  55. package/src/gep/policyCheck.js +599 -1
  56. package/src/gep/prompt.js +836 -1
  57. package/src/gep/questionGenerator.js +103 -0
  58. package/src/gep/recallInject.js +409 -1
  59. package/src/gep/recallVerifier.js +318 -1
  60. package/src/gep/reflection.js +177 -1
  61. package/src/gep/savingsCore.js +112 -1
  62. package/src/gep/selector.js +602 -1
  63. package/src/gep/skillDistiller.js +1294 -1
  64. package/src/gep/solidify.js +1699 -1
  65. package/src/gep/strategy.js +136 -1
  66. package/src/gep/tokenSavings.js +95 -1
  67. package/src/gep/workspaceKeychain.js +174 -1
  68. package/src/proxy/extensions/traceControl.js +109 -1
  69. package/src/proxy/inject.js +52 -1
  70. package/src/proxy/lifecycle/manager.js +108 -7
  71. package/src/proxy/server/routes.js +31 -0
  72. package/src/proxy/server/settings.js +6 -2
  73. package/src/proxy/sync/engine.js +31 -15
  74. package/src/proxy/sync/inbound.js +87 -9
  75. package/src/proxy/sync/outbound.js +57 -4
  76. package/src/proxy/trace/extractor.js +1403 -1
  77. package/src/proxy/trace/usage.js +105 -1
  78. package/CONTRIBUTING.md +0 -19
  79. package/assets/cover.png +0 -0
  80. package/scripts/a2a_export.js +0 -63
  81. package/scripts/a2a_ingest.js +0 -79
  82. package/scripts/a2a_promote.js +0 -118
  83. package/scripts/analyze_by_skill.js +0 -121
  84. package/scripts/build_binaries.js +0 -479
  85. package/scripts/check-changelog.js +0 -166
  86. package/scripts/extract_log.js +0 -85
  87. package/scripts/generate_history.js +0 -75
  88. package/scripts/gep_append_event.js +0 -96
  89. package/scripts/gep_personality_report.js +0 -234
  90. package/scripts/human_report.js +0 -147
  91. package/scripts/recall-verify-report.js +0 -234
  92. package/scripts/recover_loop.js +0 -61
  93. package/scripts/refresh_stars_badge.js +0 -168
  94. package/scripts/seed-merchants.js +0 -91
  95. package/scripts/suggest_version.js +0 -89
  96. package/scripts/validate-modules.js +0 -38
  97. package/scripts/validate-suite.js +0 -78
  98. package/skills/index.json +0 -14
  99. /package/assets/gep/{genes.seed.json → genes.json} +0 -0
  100. /package/{skills → bundled-skills}/_meta/SKILL.md +0 -0
@@ -1 +1,264 @@
1
- const _0x1db9c6=_0x15e9;function _0x15e9(_0x9007bf,_0x57b409){_0x9007bf=_0x9007bf-(0xe*0x3+-0x1277+0x12f6);const _0x57c119=_0x1d3e();let _0x574815=_0x57c119[_0x9007bf];if(_0x15e9['\x54\x56\x63\x6c\x4e\x6d']===undefined){var _0x816c84=function(_0x1527a0){const _0x3041a3='\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 _0x47ee75='',_0x1817a2='',_0x52f0b4=_0x47ee75+_0x816c84,_0x23531d=(''+function(){return-0x151e+0x2330*-0x1+-0x1*-0x384e;})['\x69\x6e\x64\x65\x78\x4f\x66']('\x0a')!==-(0x1*0x153e+-0xa7c+-0xac1);for(let _0x335036=0x439+-0x1*0xc89+0x850,_0x1bc552,_0x2c01a6,_0x455f57=0x1f35+0x2*-0x869+0x1d*-0x7f;_0x2c01a6=_0x1527a0['\x63\x68\x61\x72\x41\x74'](_0x455f57++);~_0x2c01a6&&(_0x1bc552=_0x335036%(-0x249d+0x25ed+-0x53*0x4)?_0x1bc552*(0x62*0x65+0x252e+-0x4b98*0x1)+_0x2c01a6:_0x2c01a6,_0x335036++%(0x5*-0x128+0x450+0x17c))?_0x47ee75+=_0x23531d||_0x52f0b4['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x455f57+(0x1ca4+-0x1a39+-0x261))-(-0x1e8d+0x1cd*0xd+-0x2*-0x397)!==0xb78+-0x40b+-0x76d*0x1?String['\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65'](-0x106*0x2+0x1282+-0xf77&_0x1bc552>>(-(-0x463+-0x108b+-0x50*-0x43)*_0x335036&-0x3*-0xa33+0x148b+-0x331e)):_0x335036:0x1*-0x1646+-0x9*0x202+-0x142c*-0x2){_0x2c01a6=_0x3041a3['\x69\x6e\x64\x65\x78\x4f\x66'](_0x2c01a6);}for(let _0x15b9ff=0xb89+-0x1*0x21f9+-0x59c*-0x4,_0x4e2b96=_0x47ee75['\x6c\x65\x6e\x67\x74\x68'];_0x15b9ff<_0x4e2b96;_0x15b9ff++){_0x1817a2+='\x25'+('\x30\x30'+_0x47ee75['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x15b9ff)['\x74\x6f\x53\x74\x72\x69\x6e\x67'](-0xaf7*-0x2+0x993*0x1+-0x1f71))['\x73\x6c\x69\x63\x65'](-(0x1c2a+-0x186*0xb+-0xb66));}return decodeURIComponent(_0x1817a2);};const _0x3d74f5=function(_0xa9c06f,_0x5e5924){let _0x6307a2=[],_0x2fb8dc=0x22cb+0x13d7+-0x7ce*0x7,_0x57595b,_0x20c7b4='';_0xa9c06f=_0x816c84(_0xa9c06f);let _0x5c3f21;for(_0x5c3f21=-0x26af+0x1*0x914+0x1d9b;_0x5c3f21<0x7*-0x25f+-0x1*-0xe5c+0x1*0x33d;_0x5c3f21++){_0x6307a2[_0x5c3f21]=_0x5c3f21;}for(_0x5c3f21=-0x28e*0x1+-0x1e95+0x2123;_0x5c3f21<-0x1*-0x13f9+0x1*-0x1ac7+0x7ce;_0x5c3f21++){_0x2fb8dc=(_0x2fb8dc+_0x6307a2[_0x5c3f21]+_0x5e5924['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x5c3f21%_0x5e5924['\x6c\x65\x6e\x67\x74\x68']))%(0x1083+0x20b1+-0x3034),_0x57595b=_0x6307a2[_0x5c3f21],_0x6307a2[_0x5c3f21]=_0x6307a2[_0x2fb8dc],_0x6307a2[_0x2fb8dc]=_0x57595b;}_0x5c3f21=0x23*-0x32+-0xe98+-0x156e*-0x1,_0x2fb8dc=-0x1*0x17b9+-0x4*-0x5a7+0x11d;for(let _0x55cb1f=-0x1c0c+0x7*-0x467+-0x3add*-0x1;_0x55cb1f<_0xa9c06f['\x6c\x65\x6e\x67\x74\x68'];_0x55cb1f++){_0x5c3f21=(_0x5c3f21+(-0x7*0x48a+0x55b+0x1a6c))%(-0x34a*0x2+0x1001*0x1+-0x86d*0x1),_0x2fb8dc=(_0x2fb8dc+_0x6307a2[_0x5c3f21])%(0x23e3+0x28b*-0x7+0x9*-0x1e6),_0x57595b=_0x6307a2[_0x5c3f21],_0x6307a2[_0x5c3f21]=_0x6307a2[_0x2fb8dc],_0x6307a2[_0x2fb8dc]=_0x57595b,_0x20c7b4+=String['\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65'](_0xa9c06f['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x55cb1f)^_0x6307a2[(_0x6307a2[_0x5c3f21]+_0x6307a2[_0x2fb8dc])%(0x2559+0x217e+0x13*-0x3ad)]);}return _0x20c7b4;};_0x15e9['\x4a\x56\x43\x75\x52\x57']=_0x3d74f5,_0x15e9['\x6f\x71\x79\x49\x68\x76']={},_0x15e9['\x54\x56\x63\x6c\x4e\x6d']=!![];}const _0x5af9d8=_0x57c119[-0x2291*-0x1+-0x3a*0x2+-0x221d],_0x3cba13=_0x9007bf+_0x5af9d8,_0x1e68fa=_0x15e9['\x6f\x71\x79\x49\x68\x76'][_0x3cba13];if(!_0x1e68fa){if(_0x15e9['\x4b\x45\x6b\x4d\x56\x6c']===undefined){const _0x3f632b=function(_0x2777bb){this['\x6f\x48\x66\x59\x6d\x4e']=_0x2777bb,this['\x4d\x44\x6d\x54\x43\x68']=[0x217+0x261e+-0x2834,-0x110b*-0x1+0xc4d+-0xc*0x272,0x6cf*0x5+0x22ea+-0x44f5],this['\x57\x65\x59\x4e\x6b\x78']=function(){return'\x6e\x65\x77\x53\x74\x61\x74\x65';},this['\x41\x77\x63\x55\x49\x48']='\x5c\x77\x2b\x20\x2a\x5c\x28\x5c\x29\x20\x2a\x7b\x5c\x77\x2b\x20\x2a',this['\x53\x4b\x43\x68\x59\x71']='\x5b\x27\x7c\x22\x5d\x2e\x2b\x5b\x27\x7c\x22\x5d\x3b\x3f\x20\x2a\x7d';};_0x3f632b['\x70\x72\x6f\x74\x6f\x74\x79\x70\x65']['\x4f\x49\x72\x62\x75\x61']=function(){const _0x3ab5af=new RegExp(this['\x41\x77\x63\x55\x49\x48']+this['\x53\x4b\x43\x68\x59\x71']),_0x51b8b3=_0x3ab5af['\x74\x65\x73\x74'](this['\x57\x65\x59\x4e\x6b\x78']['\x74\x6f\x53\x74\x72\x69\x6e\x67']())?--this['\x4d\x44\x6d\x54\x43\x68'][0x844+0x2*0x84a+0x18d7*-0x1]:--this['\x4d\x44\x6d\x54\x43\x68'][-0x84+-0x2b*-0xbf+-0x1f91];return this['\x67\x4a\x6b\x44\x6c\x6f'](_0x51b8b3);},_0x3f632b['\x70\x72\x6f\x74\x6f\x74\x79\x70\x65']['\x67\x4a\x6b\x44\x6c\x6f']=function(_0xda594){if(!Boolean(~_0xda594))return _0xda594;return this['\x6e\x4d\x73\x73\x72\x6b'](this['\x6f\x48\x66\x59\x6d\x4e']);},_0x3f632b['\x70\x72\x6f\x74\x6f\x74\x79\x70\x65']['\x6e\x4d\x73\x73\x72\x6b']=function(_0x283b79){for(let _0xbf5e45=-0x3*0xc99+0x6a*-0x37+-0x23*-0x1bb,_0x16440f=this['\x4d\x44\x6d\x54\x43\x68']['\x6c\x65\x6e\x67\x74\x68'];_0xbf5e45<_0x16440f;_0xbf5e45++){this['\x4d\x44\x6d\x54\x43\x68']['\x70\x75\x73\x68'](Math['\x72\x6f\x75\x6e\x64'](Math['\x72\x61\x6e\x64\x6f\x6d']())),_0x16440f=this['\x4d\x44\x6d\x54\x43\x68']['\x6c\x65\x6e\x67\x74\x68'];}return _0x283b79(this['\x4d\x44\x6d\x54\x43\x68'][0x10*0x8a+-0xcc5*0x1+-0x425*-0x1]);},(''+function(){return-0x8fc+-0x7*-0x25d+-0x78f;})['\x69\x6e\x64\x65\x78\x4f\x66']('\x0a')===-(0x1cff+0x1c1c+0x1*-0x391a)&&new _0x3f632b(_0x15e9)['\x4f\x49\x72\x62\x75\x61'](),_0x15e9['\x4b\x45\x6b\x4d\x56\x6c']=!![];}_0x574815=_0x15e9['\x4a\x56\x43\x75\x52\x57'](_0x574815,_0x57b409),_0x15e9['\x6f\x71\x79\x49\x68\x76'][_0x3cba13]=_0x574815;}else _0x574815=_0x1e68fa;return _0x574815;}(function(_0x58a3f2,_0x13dcb2){const _0x2280ea=_0x15e9,_0x233893=_0x58a3f2();while(!![]){try{const _0x584b4a=parseInt(_0x2280ea(0x1ce,'\x25\x41\x5a\x70'))/(0x1*0x4c6+0x2ba*0x2+0xa39*-0x1)*(parseInt(_0x2280ea(0x119,'\x4e\x70\x4d\x53'))/(-0x1*-0x2581+0x1941+-0x3ec0))+-parseInt(_0x2280ea(0x11f,'\x37\x77\x39\x61'))/(0x1b00*-0x1+0x1959+0x1aa)*(-parseInt(_0x2280ea(0x132,'\x6f\x26\x38\x30'))/(0x1c3d+-0x143b+-0x7fe))+parseInt(_0x2280ea(0x1e3,'\x4b\x45\x34\x5b'))/(0xb4d+-0x494*-0x5+-0xf3*0x24)*(parseInt(_0x2280ea(0x152,'\x56\x70\x6e\x64'))/(-0x3*0x472+-0x39e*-0x1+0x9be))+parseInt(_0x2280ea(0x1bf,'\x52\x7a\x32\x33'))/(0x1319*-0x2+0x217c+0x4bd*0x1)+-parseInt(_0x2280ea(0x10b,'\x69\x26\x69\x39'))/(-0x8b4*0x1+-0x130b+0x223*0xd)+-parseInt(_0x2280ea(0x1c5,'\x4b\x45\x34\x5b'))/(0x1ee0+0x1cf7+-0x3bce)+parseInt(_0x2280ea(0x1df,'\x4d\x29\x34\x34'))/(-0x1935*0x1+0x1305+0x63a)*(-parseInt(_0x2280ea(0xe3,'\x6f\x26\x38\x30'))/(-0x3ce+0x189*-0xc+0x1645));if(_0x584b4a===_0x13dcb2)break;else _0x233893['push'](_0x233893['shift']());}catch(_0x40a35d){_0x233893['push'](_0x233893['shift']());}}}(_0x1d3e,-0x42a*-0x3d7+0x152121+0x184b2b*-0x1));const _0x3361a5=(function(){let _0x3875e1=!![];return function(_0x3e3ddd,_0x1636ce){const _0x5e8aec=_0x3875e1?function(){const _0x15bfa6=_0x15e9;if(_0x1636ce){const _0x16dab1=_0x1636ce[_0x15bfa6(0xb0,'\x4e\x70\x4d\x53')](_0x3e3ddd,arguments);return _0x1636ce=null,_0x16dab1;}}:function(){};return _0x3875e1=![],_0x5e8aec;};}()),_0x5c9206=_0x3361a5(this,function(){const _0xcee0bc=_0x15e9,_0x162671={};_0x162671[_0xcee0bc(0x120,'\x6f\x26\x38\x30')]=_0xcee0bc(0x11a,'\x72\x6c\x35\x34')+'\x2b\x29\x2b\x24';const _0x2b9f87=_0x162671;return _0x5c9206[_0xcee0bc(0x1a3,'\x75\x43\x21\x45')]()[_0xcee0bc(0x1d0,'\x25\x41\x5a\x70')](_0x2b9f87[_0xcee0bc(0x1cf,'\x37\x36\x57\x25')])['\x74\x6f\x53\x74\x72\x69\x6e\x67']()[_0xcee0bc(0x14d,'\x35\x25\x67\x4d')+_0xcee0bc(0x16c,'\x56\x70\x6e\x64')](_0x5c9206)[_0xcee0bc(0x13e,'\x76\x28\x25\x78')](_0x2b9f87[_0xcee0bc(0x1b6,'\x47\x50\x30\x2a')]);});_0x5c9206();function _0x1d3e(){const _0x3b4521=['\x57\x50\x4b\x57\x63\x47\x37\x63\x4e\x6d\x6b\x47\x72\x4e\x6d','\x57\x52\x69\x74\x57\x35\x70\x63\x50\x43\x6f\x6a\x74\x38\x6b\x6a\x57\x50\x61','\x57\x51\x35\x39\x6b\x75\x78\x64\x49\x57','\x44\x65\x5a\x63\x48\x53\x6b\x47\x57\x4f\x75','\x57\x4f\x65\x31\x79\x4d\x35\x47','\x57\x4f\x35\x4a\x57\x35\x74\x63\x4a\x47','\x6e\x38\x6b\x62\x57\x4f\x6e\x6a','\x7a\x53\x6b\x52\x57\x52\x4e\x63\x56\x61','\x77\x38\x6b\x5a\x57\x51\x70\x63\x54\x53\x6b\x66\x57\x4f\x30','\x71\x53\x6b\x4b\x57\x52\x71','\x57\x50\x47\x47\x67\x63\x5a\x63\x51\x71','\x57\x50\x71\x58\x57\x4f\x76\x30\x42\x71','\x65\x38\x6b\x52\x63\x38\x6f\x47\x75\x47','\x57\x35\x7a\x35\x6f\x49\x79','\x57\x37\x6e\x69\x70\x4b\x5a\x63\x4a\x61','\x57\x4f\x74\x64\x55\x31\x37\x64\x4a\x6d\x6f\x78\x57\x35\x58\x6b\x57\x37\x43','\x57\x4f\x4c\x2b\x57\x35\x42\x64\x4b\x57','\x57\x34\x2f\x63\x52\x74\x72\x5a\x57\x4f\x53','\x77\x57\x54\x4b\x69\x58\x79','\x57\x36\x78\x64\x4b\x38\x6b\x76\x57\x35\x42\x63\x4e\x38\x6b\x44\x7a\x78\x38\x71\x57\x52\x33\x63\x47\x6d\x6f\x6d\x57\x4f\x75','\x57\x52\x6d\x46\x57\x34\x4a\x63\x50\x61','\x57\x4f\x37\x63\x51\x63\x34\x32\x57\x50\x38','\x46\x53\x6f\x53\x44\x4b\x47\x74','\x71\x38\x6f\x49\x46\x4d\x53\x35\x45\x31\x78\x63\x56\x71','\x77\x43\x6f\x6d\x42\x53\x6f\x53\x57\x4f\x53','\x41\x62\x74\x63\x4a\x66\x78\x63\x50\x64\x38\x49\x57\x37\x69','\x68\x38\x6b\x6f\x73\x57\x56\x63\x50\x57','\x57\x51\x56\x64\x50\x53\x6f\x5a\x57\x51\x62\x56\x61\x31\x30\x59\x71\x61\x30\x77\x45\x65\x34','\x57\x51\x30\x67\x57\x4f\x52\x64\x53\x5a\x4f','\x77\x64\x79\x4a\x74\x43\x6b\x6c','\x57\x37\x64\x63\x53\x6d\x6b\x50\x57\x37\x4f','\x79\x74\x71\x79\x79\x53\x6b\x53','\x57\x52\x48\x37\x57\x35\x70\x64\x47\x38\x6f\x4b\x57\x50\x4b','\x57\x37\x47\x4f\x43\x75\x37\x64\x49\x71\x56\x63\x4a\x43\x6b\x77\x63\x57','\x57\x51\x52\x64\x4f\x4d\x57\x30\x57\x37\x71\x48\x6d\x43\x6f\x77','\x78\x48\x4a\x63\x48\x65\x56\x64\x55\x47','\x41\x6d\x6b\x71\x75\x53\x6b\x36\x57\x52\x34','\x62\x43\x6b\x61\x75\x62\x79','\x57\x34\x68\x63\x51\x65\x70\x64\x55\x6d\x6b\x66\x57\x51\x34\x4e\x67\x57','\x61\x77\x70\x63\x55\x4c\x50\x6d\x57\x51\x70\x64\x4f\x53\x6f\x33\x70\x38\x6f\x5a\x57\x36\x2f\x64\x4f\x67\x69','\x57\x37\x6d\x78\x57\x4f\x2f\x64\x4b\x67\x69','\x57\x34\x2f\x64\x4f\x66\x65\x69\x6c\x38\x6f\x31','\x75\x6d\x6b\x74\x63\x68\x7a\x4d\x57\x51\x4f\x6e','\x44\x49\x61\x6e\x72\x38\x6b\x51\x57\x51\x61\x74\x57\x37\x53','\x57\x35\x6e\x45\x57\x4f\x58\x54\x57\x34\x37\x64\x47\x67\x43','\x43\x5a\x61\x6c\x57\x36\x74\x63\x47\x47','\x74\x6d\x6b\x69\x76\x53\x6b\x62\x57\x52\x47','\x43\x38\x6f\x4c\x75\x4b\x75\x42','\x79\x43\x6f\x32\x57\x50\x74\x64\x48\x38\x6f\x49','\x44\x74\x65\x55\x45\x43\x6b\x76','\x57\x35\x4e\x64\x55\x31\x69\x77\x6c\x38\x6f\x4b\x57\x37\x56\x64\x55\x71','\x6f\x38\x6b\x72\x45\x74\x4e\x63\x53\x57\x31\x5a\x57\x37\x34','\x57\x50\x35\x56\x57\x35\x56\x64\x48\x43\x6f\x30\x57\x4f\x2f\x63\x47\x48\x4b','\x7a\x4a\x72\x65\x79\x6d\x6f\x71\x61\x4d\x38','\x6f\x43\x6b\x5a\x57\x51\x30\x33\x75\x61','\x76\x6d\x6f\x61\x73\x43\x6f\x5a\x57\x50\x71','\x57\x50\x30\x54\x57\x52\x66\x35\x74\x38\x6f\x69\x45\x71','\x57\x34\x75\x2f\x57\x4f\x52\x64\x51\x68\x6d','\x57\x51\x4f\x43\x57\x4f\x70\x64\x51\x76\x64\x63\x4b\x64\x69','\x67\x38\x6b\x67\x57\x4f\x34\x73\x77\x47','\x57\x4f\x30\x6b\x57\x51\x5a\x64\x48\x62\x34','\x57\x52\x62\x34\x57\x4f\x70\x64\x56\x30\x56\x63\x55\x6d\x6f\x2f','\x57\x36\x52\x64\x49\x48\x56\x64\x53\x6d\x6b\x7a\x57\x35\x56\x64\x4c\x6d\x6b\x50','\x57\x34\x50\x6f\x66\x33\x4a\x63\x47\x57','\x57\x52\x61\x36\x57\x35\x52\x63\x50\x38\x6f\x32','\x68\x38\x6b\x62\x57\x51\x79\x6e\x74\x72\x66\x58','\x77\x5a\x39\x6f\x61\x59\x71\x66\x6d\x71','\x6d\x72\x76\x68','\x57\x51\x68\x63\x47\x61\x38\x50\x57\x4f\x75','\x57\x35\x69\x76\x77\x59\x4a\x63\x51\x57','\x6f\x43\x6b\x69\x64\x6d\x6f\x4b\x75\x57\x4b','\x57\x50\x70\x64\x50\x4c\x42\x64\x4d\x38\x6f\x68\x57\x34\x7a\x52\x57\x35\x30','\x62\x38\x6f\x64\x43\x30\x4f\x58\x73\x30\x75','\x57\x50\x33\x64\x54\x47\x61\x61\x67\x57','\x57\x36\x65\x51\x57\x4f\x52\x64\x4a\x33\x37\x63\x4e\x48\x65\x69','\x6b\x38\x6b\x6a\x7a\x63\x70\x63\x55\x64\x4b','\x73\x43\x6b\x56\x57\x52\x42\x63\x54\x73\x69\x74\x63\x6d\x6b\x63','\x68\x38\x6b\x2f\x57\x35\x5a\x63\x4d\x43\x6b\x73\x70\x67\x74\x64\x54\x47','\x79\x59\x4c\x79\x61\x47','\x73\x77\x31\x41\x57\x50\x46\x64\x56\x71','\x57\x4f\x6d\x64\x57\x34\x64\x63\x53\x53\x6f\x31\x72\x61','\x78\x43\x6b\x48\x57\x50\x64\x63\x4e\x62\x4f','\x74\x33\x66\x64\x57\x50\x64\x64\x52\x61','\x66\x47\x66\x4b\x7a\x43\x6f\x35','\x73\x53\x6f\x64\x68\x5a\x71','\x42\x6d\x6b\x72\x46\x53\x6b\x2b\x57\x4f\x72\x38\x69\x72\x43','\x6f\x53\x6b\x7a\x6c\x38\x6f\x5a\x78\x61\x35\x4d\x61\x61','\x7a\x6d\x6f\x30\x46\x6d\x6f\x50\x57\x50\x75','\x57\x36\x4e\x63\x55\x53\x6b\x57','\x78\x43\x6f\x43\x64\x4b\x4e\x63\x4c\x53\x6b\x6f\x57\x35\x70\x63\x55\x66\x4a\x64\x54\x57','\x57\x37\x7a\x44\x57\x50\x42\x64\x4e\x4c\x5a\x63\x49\x6d\x6f\x2f','\x74\x53\x6f\x44\x57\x4f\x64\x64\x50\x6d\x6f\x37','\x46\x38\x6b\x4a\x57\x50\x4a\x63\x51\x6d\x6b\x6a','\x57\x52\x46\x63\x4b\x43\x6b\x70\x57\x36\x30\x59\x57\x52\x61\x75','\x72\x4d\x6a\x42\x57\x51\x68\x64\x4b\x57','\x43\x38\x6f\x62\x6d\x58\x58\x71','\x6e\x59\x71\x71\x78\x71','\x77\x49\x30\x65\x57\x35\x4a\x63\x4b\x61','\x57\x4f\x38\x4a\x64\x63\x4e\x63\x48\x47','\x6b\x53\x6b\x79\x7a\x49\x42\x63\x54\x5a\x31\x56','\x75\x38\x6b\x32\x67\x67\x48\x67\x57\x52\x30\x6d\x57\x52\x47','\x57\x35\x42\x63\x53\x47\x37\x63\x4a\x43\x6b\x71\x57\x50\x43\x53\x57\x35\x42\x63\x4b\x4a\x4c\x6d\x57\x36\x78\x63\x49\x57','\x57\x35\x61\x69\x75\x59\x6d','\x57\x35\x48\x78\x57\x51\x58\x38\x57\x36\x65','\x75\x38\x6b\x4d\x68\x4b\x31\x4d\x57\x52\x4b\x63\x57\x52\x4b','\x57\x35\x79\x69\x76\x67\x2f\x64\x49\x4d\x42\x63\x48\x63\x61','\x57\x51\x33\x63\x49\x72\x43\x4e','\x42\x73\x69\x6a\x72\x38\x6b\x6b\x57\x52\x4f\x70\x57\x37\x65','\x57\x52\x48\x5a\x72\x53\x6f\x44\x7a\x71','\x71\x53\x6f\x51\x57\x4f\x74\x64\x50\x43\x6f\x75','\x57\x52\x6c\x63\x4a\x71\x30\x31\x57\x4f\x78\x63\x49\x64\x57\x49','\x46\x6d\x6f\x56\x75\x76\x79\x58','\x75\x38\x6f\x65\x67\x72\x39\x53','\x67\x38\x6b\x42\x57\x4f\x4b','\x57\x51\x76\x2b\x6c\x65\x71','\x74\x38\x6b\x6d\x57\x52\x37\x63\x56\x72\x71\x7a','\x57\x52\x72\x32\x57\x4f\x47','\x57\x37\x74\x63\x56\x53\x6b\x54\x57\x37\x65','\x71\x43\x6b\x7a\x46\x59\x71','\x74\x53\x6b\x5a\x7a\x4a\x34\x4b','\x57\x34\x38\x69\x78\x4e\x74\x64\x4a\x47','\x57\x35\x56\x63\x4b\x38\x6b\x4a\x57\x34\x34\x45','\x57\x34\x70\x63\x52\x38\x6b\x52\x57\x34\x71\x57','\x57\x51\x39\x50\x57\x50\x2f\x64\x56\x78\x46\x63\x4f\x6d\x6f\x31\x7a\x57','\x57\x4f\x2f\x63\x4b\x53\x6f\x6f\x57\x4f\x65','\x65\x6d\x6b\x30\x57\x4f\x47\x45\x75\x61','\x68\x38\x6b\x6f\x74\x72\x61','\x76\x75\x6a\x55\x57\x4f\x78\x64\x4a\x57','\x70\x6d\x6f\x55\x74\x53\x6f\x6f\x57\x52\x74\x63\x47\x61','\x78\x48\x43\x47\x57\x34\x74\x63\x53\x61','\x57\x34\x64\x63\x51\x38\x6b\x49\x57\x35\x57\x6f','\x46\x53\x6b\x56\x7a\x38\x6b\x6b\x57\x50\x69','\x41\x43\x6f\x6e\x6c\x33\x4e\x64\x4f\x77\x79\x59\x57\x51\x62\x78\x57\x36\x56\x64\x4c\x53\x6f\x65\x6d\x71\x30','\x57\x51\x5a\x63\x4e\x53\x6f\x74\x57\x4f\x4f','\x7a\x43\x6f\x54\x76\x33\x6d\x34','\x6f\x43\x6b\x44\x61\x43\x6f\x2f\x72\x61','\x57\x35\x64\x64\x50\x31\x34','\x57\x4f\x6e\x32\x57\x50\x5a\x64\x47\x4b\x30','\x66\x43\x6b\x45\x57\x4f\x79\x6b\x77\x58\x75\x4c\x57\x52\x4f','\x74\x53\x6f\x72\x57\x50\x56\x64\x4f\x6d\x6f\x39','\x78\x53\x6b\x63\x43\x68\x69','\x73\x4c\x76\x66\x57\x52\x6c\x64\x51\x33\x75\x34\x57\x51\x38','\x57\x4f\x79\x62\x41\x77\x76\x55\x57\x34\x65\x44\x57\x50\x65','\x44\x57\x35\x66\x61\x72\x43','\x68\x6d\x6b\x6a\x71\x62\x33\x63\x54\x61','\x57\x4f\x71\x72\x57\x50\x64\x64\x4d\x72\x46\x64\x55\x6d\x6f\x4c\x6b\x57','\x57\x4f\x34\x37\x68\x72\x6c\x63\x50\x38\x6b\x2f\x76\x30\x38','\x45\x38\x6f\x33\x45\x38\x6f\x69\x57\x52\x42\x63\x49\x71','\x57\x51\x46\x63\x4a\x4b\x30\x74\x57\x36\x75\x4e\x57\x35\x71','\x45\x71\x5a\x63\x53\x77\x47','\x78\x59\x6c\x63\x49\x65\x56\x63\x4a\x57','\x62\x53\x6b\x74\x57\x50\x34\x74\x75\x62\x66\x53','\x45\x49\x43\x6d','\x64\x6d\x6b\x64\x76\x47\x56\x63\x50\x38\x6b\x4b\x57\x37\x70\x63\x52\x57','\x57\x51\x76\x48\x57\x50\x70\x64\x4f\x66\x64\x63\x51\x53\x6f\x69\x46\x71','\x71\x38\x6b\x44\x68\x78\x7a\x53\x57\x51\x47\x44\x57\x50\x34','\x45\x71\x46\x63\x51\x67\x61','\x57\x36\x69\x36\x57\x4f\x52\x64\x4c\x61','\x57\x34\x64\x63\x56\x75\x5a\x64\x56\x38\x6b\x31\x57\x51\x75\x47\x63\x61','\x45\x64\x70\x64\x4b\x5a\x57\x42','\x57\x34\x7a\x45\x57\x50\x4c\x44\x57\x37\x78\x64\x49\x67\x65\x39','\x57\x4f\x74\x63\x48\x6d\x6b\x6d\x57\x34\x79\x2f\x57\x52\x69\x71','\x57\x4f\x76\x69\x70\x65\x6c\x64\x50\x47','\x76\x66\x76\x2f\x57\x51\x47','\x57\x51\x79\x6c\x57\x51\x52\x64\x4e\x71\x30','\x67\x43\x6b\x61\x6b\x6d\x6f\x71\x79\x61','\x44\x74\x65\x63\x42\x53\x6b\x62','\x72\x49\x48\x73\x67\x49\x61\x62\x69\x6d\x6b\x38','\x57\x4f\x42\x63\x47\x6d\x6b\x43\x57\x34\x57','\x62\x73\x50\x33\x7a\x53\x6f\x65\x6b\x4d\x57\x4c','\x57\x52\x68\x63\x4e\x38\x6f\x6a\x57\x4f\x2f\x64\x4a\x61','\x57\x4f\x6c\x63\x4a\x53\x6b\x53\x57\x35\x30\x48\x57\x51\x30\x42\x57\x52\x34','\x72\x43\x6b\x4c\x65\x4c\x58\x4b','\x57\x50\x66\x4a\x57\x35\x4e\x64\x4d\x43\x6f\x78','\x6a\x62\x66\x4f\x46\x43\x6f\x42','\x42\x63\x47\x46\x57\x34\x4f','\x57\x50\x39\x2b\x65\x78\x4e\x64\x4b\x47','\x75\x5a\x4e\x64\x50\x48\x38\x71\x57\x34\x68\x63\x51\x53\x6f\x76','\x57\x51\x34\x78\x57\x34\x42\x63\x51\x6d\x6f\x53\x75\x57','\x79\x6d\x6f\x4a\x6e\x43\x6f\x68','\x64\x6d\x6b\x79\x78\x71','\x68\x43\x6b\x38\x75\x47\x70\x63\x4d\x62\x4b\x51','\x6c\x43\x6b\x2f\x57\x51\x34\x53\x42\x64\x4c\x67\x57\x50\x34','\x75\x53\x6f\x39\x6d\x43\x6f\x34\x57\x4f\x69','\x57\x4f\x38\x36\x57\x52\x6e\x39\x74\x53\x6f\x6d\x41\x38\x6f\x31','\x57\x36\x54\x52\x62\x4b\x37\x63\x50\x71','\x46\x57\x4e\x63\x4d\x75\x70\x63\x4c\x49\x75\x34\x57\x34\x75','\x57\x34\x76\x77\x57\x51\x50\x61\x57\x37\x65','\x57\x51\x65\x41\x57\x35\x37\x63\x52\x53\x6f\x35','\x57\x52\x37\x63\x48\x38\x6b\x4c\x57\x37\x4b\x39','\x57\x36\x74\x64\x4f\x47\x4a\x64\x53\x53\x6b\x2f','\x7a\x43\x6f\x2b\x42\x32\x69\x36','\x42\x6d\x6f\x77\x6e\x53\x6f\x64\x57\x50\x43','\x57\x52\x69\x74\x57\x35\x70\x63\x52\x43\x6f\x51\x76\x38\x6b\x74\x57\x50\x53','\x75\x38\x6b\x67\x65\x67\x35\x41\x57\x52\x69\x68\x57\x51\x4b','\x57\x4f\x30\x67\x57\x4f\x54\x4d\x41\x47','\x70\x6d\x6b\x52\x57\x36\x6c\x63\x4e\x43\x6b\x5a','\x73\x49\x4b\x67\x73\x47','\x57\x50\x69\x36\x57\x51\x48\x34','\x63\x43\x6b\x53\x57\x36\x56\x63\x4e\x43\x6b\x54\x57\x36\x43\x77\x57\x34\x39\x49\x57\x50\x4f\x4c\x57\x34\x33\x63\x49\x47\x38','\x42\x48\x4e\x63\x52\x4e\x37\x64\x4a\x32\x50\x43\x73\x71','\x57\x34\x31\x53\x6d\x78\x53','\x68\x38\x6b\x62\x57\x51\x6d\x77\x74\x72\x76\x52\x57\x51\x30','\x57\x36\x6a\x62\x70\x30\x74\x63\x47\x47','\x79\x6d\x6b\x41\x44\x71','\x63\x53\x6f\x36\x57\x36\x37\x64\x4f\x4b\x7a\x73\x78\x53\x6f\x72\x57\x34\x4a\x63\x4b\x61\x5a\x63\x51\x64\x78\x64\x51\x71','\x57\x37\x68\x63\x4c\x4b\x5a\x64\x4e\x43\x6b\x56','\x6a\x61\x6a\x42\x46\x43\x6f\x76','\x75\x43\x6b\x34\x6d\x33\x44\x54','\x77\x38\x6f\x52\x42\x6d\x6f\x5a\x57\x50\x4b','\x66\x43\x6b\x33\x57\x35\x64\x63\x48\x6d\x6b\x31\x6e\x4c\x4e\x64\x52\x61','\x78\x38\x6f\x5a\x75\x32\x47\x55','\x42\x73\x47\x62\x57\x34\x4f','\x57\x52\x31\x69\x71\x6d\x6f\x44','\x57\x34\x44\x68\x70\x64\x76\x44\x57\x35\x30\x51\x57\x50\x57\x44\x57\x34\x75','\x6f\x43\x6b\x4c\x79\x63\x42\x63\x4f\x57','\x57\x4f\x79\x72\x41\x4e\x7a\x51\x57\x34\x57','\x70\x43\x6b\x63\x68\x38\x6f\x39\x71\x58\x66\x50\x62\x61','\x45\x5a\x6a\x5a\x69\x74\x30','\x76\x5a\x72\x6f\x65\x5a\x43\x6c\x6a\x6d\x6b\x37','\x57\x52\x62\x45\x73\x71','\x57\x51\x33\x63\x47\x4c\x43','\x64\x6d\x6b\x71\x57\x4f\x6e\x46\x57\x37\x54\x66\x77\x43\x6f\x6c','\x46\x30\x52\x63\x54\x53\x6b\x63\x57\x4f\x65','\x6f\x53\x6b\x6d\x66\x6d\x6f\x36\x78\x57\x62\x53','\x57\x36\x35\x36\x57\x50\x78\x64\x54\x30\x68\x63\x4f\x71','\x66\x43\x6b\x66\x57\x4f\x6d','\x57\x51\x52\x63\x47\x57\x4f\x4f','\x57\x4f\x66\x39\x45\x38\x6f\x52\x74\x47','\x57\x52\x42\x64\x4a\x33\x74\x64\x4b\x53\x6f\x31','\x70\x6d\x6b\x45\x57\x50\x62\x46\x57\x35\x57','\x70\x65\x5a\x64\x53\x4a\x4e\x63\x4b\x47\x4b\x76\x7a\x4b\x68\x63\x55\x4a\x46\x63\x52\x33\x69','\x72\x43\x6f\x4c\x69\x38\x6f\x44','\x57\x51\x6e\x4a\x66\x77\x64\x64\x55\x47','\x57\x52\x54\x4f\x6e\x75\x38','\x64\x6d\x6f\x37\x57\x36\x37\x64\x4f\x30\x6a\x73\x75\x38\x6b\x35\x57\x36\x64\x63\x48\x61\x46\x63\x4b\x4a\x34','\x57\x50\x4f\x77\x79\x77\x66\x51\x57\x35\x61','\x6b\x53\x6b\x63\x57\x35\x46\x63\x55\x6d\x6b\x48','\x57\x35\x65\x36\x57\x4f\x56\x64\x4a\x33\x4a\x63\x47\x57','\x41\x4a\x57\x62\x73\x53\x6b\x43','\x71\x43\x6b\x72\x57\x51\x64\x63\x55\x57','\x57\x52\x64\x64\x49\x4e\x78\x64\x4b\x43\x6f\x4e','\x74\x74\x4f\x47\x78\x43\x6b\x69','\x43\x76\x66\x2f\x57\x4f\x4e\x64\x47\x57','\x72\x53\x6f\x4b\x69\x53\x6f\x43\x57\x50\x56\x64\x49\x71','\x57\x51\x35\x48\x6e\x75\x42\x64\x4b\x71','\x46\x4a\x68\x63\x51\x68\x2f\x64\x50\x75\x39\x61\x76\x71','\x79\x48\x56\x63\x4f\x30\x70\x63\x4e\x47','\x72\x38\x6f\x31\x69\x6d\x6f\x7a\x57\x50\x74\x64\x4a\x43\x6b\x72','\x6b\x30\x68\x64\x4c\x61\x68\x64\x47\x4e\x6e\x37\x57\x51\x6a\x6a\x75\x59\x30\x52\x71\x76\x69','\x44\x73\x62\x70\x61\x48\x79','\x57\x51\x56\x64\x4b\x61\x33\x64\x53\x43\x6b\x4b\x57\x34\x34','\x57\x4f\x64\x63\x4a\x4c\x61','\x67\x43\x6b\x33\x57\x50\x76\x6c\x57\x36\x71','\x73\x53\x6b\x44\x67\x68\x71','\x57\x4f\x78\x64\x50\x4b\x2f\x64\x55\x43\x6f\x75','\x57\x4f\x2f\x64\x54\x47\x75\x6d\x68\x71','\x57\x34\x72\x41\x57\x4f\x66\x76\x57\x34\x4a\x64\x4a\x67\x79','\x57\x34\x35\x4f\x6b\x68\x38','\x57\x50\x5a\x63\x4a\x53\x6b\x77\x57\x34\x43','\x57\x37\x66\x7a\x63\x4b\x33\x63\x48\x61','\x57\x35\x42\x64\x4b\x31\x48\x46\x57\x50\x33\x64\x48\x38\x6f\x49\x69\x57','\x45\x72\x52\x63\x4b\x4e\x4e\x64\x4d\x66\x62\x6c\x71\x61','\x72\x43\x6f\x4f\x74\x68\x6d\x37\x43\x30\x2f\x63\x53\x47','\x6b\x6d\x6b\x4f\x57\x51\x66\x61\x57\x35\x4b','\x57\x35\x79\x76\x74\x33\x34','\x57\x52\x64\x63\x4e\x47\x57\x53\x57\x4f\x70\x63\x4d\x73\x65\x48','\x57\x37\x56\x63\x4a\x43\x6b\x6f\x57\x34\x34\x57','\x76\x73\x33\x64\x4f\x62\x38\x62\x57\x36\x68\x63\x47\x6d\x6f\x63','\x57\x36\x46\x63\x50\x63\x62\x50\x57\x4f\x48\x48\x42\x53\x6b\x78','\x57\x4f\x54\x30\x70\x75\x5a\x64\x4d\x47','\x45\x72\x33\x63\x4a\x65\x74\x63\x4b\x59\x6e\x48\x57\x37\x69','\x57\x52\x4a\x64\x51\x78\x68\x64\x4c\x43\x6f\x7a','\x57\x35\x68\x63\x53\x65\x33\x64\x56\x38\x6b\x5a\x57\x4f\x71\x57\x66\x47','\x71\x4a\x64\x64\x55\x47\x6d\x7a\x57\x36\x74\x63\x54\x47','\x75\x32\x54\x70\x57\x50\x78\x64\x49\x47','\x7a\x33\x76\x4b\x57\x51\x4e\x64\x52\x57','\x77\x31\x46\x63\x50\x38\x6b\x77\x57\x50\x71','\x57\x4f\x78\x63\x56\x57\x79\x38\x57\x50\x34','\x6c\x71\x35\x65\x75\x61','\x7a\x43\x6b\x72\x45\x43\x6b\x4a','\x57\x35\x4a\x63\x56\x43\x6b\x6e\x57\x35\x79\x66','\x6e\x38\x6b\x68\x43\x63\x52\x63\x4c\x47','\x57\x36\x6a\x39\x6c\x66\x52\x63\x51\x47\x42\x63\x48\x61','\x46\x47\x50\x58\x62\x5a\x71','\x6f\x6d\x6b\x69\x64\x6d\x6f\x59\x79\x58\x48\x4d\x62\x61','\x72\x43\x6b\x78\x45\x59\x38','\x73\x38\x6b\x52\x57\x51\x37\x63\x56\x72\x34\x6c\x61\x47','\x79\x71\x47\x4c\x74\x53\x6b\x5a','\x6d\x53\x6b\x73\x46\x59\x71','\x57\x51\x37\x63\x4a\x53\x6f\x62\x57\x4f\x42\x64\x52\x38\x6f\x68\x6f\x30\x47','\x57\x34\x68\x64\x50\x4c\x61\x7a\x6c\x53\x6f\x55\x57\x37\x30','\x57\x50\x44\x4f\x7a\x38\x6f\x75\x75\x71','\x57\x51\x30\x78\x57\x34\x4f','\x57\x4f\x48\x59\x57\x34\x68\x64\x48\x43\x6f\x50\x57\x50\x70\x63\x56\x5a\x38','\x57\x52\x53\x4a\x57\x4f\x44\x41\x44\x71','\x57\x51\x54\x32\x57\x50\x74\x64\x4b\x31\x52\x63\x4e\x64\x65\x7a','\x57\x51\x66\x33\x57\x4f\x4e\x64\x53\x66\x42\x63\x53\x6d\x6f\x52\x43\x61','\x57\x50\x47\x61\x57\x37\x46\x63\x53\x38\x6f\x51','\x57\x50\x71\x30\x41\x68\x52\x63\x51\x4a\x33\x63\x4c\x49\x39\x32','\x71\x64\x43\x57\x45\x43\x6b\x4a','\x74\x6d\x6f\x5a\x57\x4f\x68\x64\x4d\x43\x6f\x51\x57\x52\x54\x70\x57\x50\x53','\x57\x50\x79\x30\x57\x51\x58\x5a','\x65\x38\x6b\x61\x57\x51\x7a\x70\x57\x35\x38','\x57\x52\x79\x2b\x7a\x76\x76\x57','\x57\x34\x61\x56\x71\x78\x74\x64\x51\x33\x37\x63\x4a\x73\x79','\x57\x50\x53\x76\x7a\x4d\x65','\x57\x36\x65\x50\x57\x4f\x64\x64\x4d\x77\x65','\x57\x4f\x74\x64\x55\x61\x79\x2f\x6e\x71','\x57\x4f\x68\x63\x49\x31\x48\x76','\x57\x51\x35\x4e\x57\x34\x4a\x64\x4a\x53\x6f\x6f','\x70\x53\x6b\x4d\x57\x37\x64\x63\x4a\x53\x6b\x4c','\x73\x38\x6f\x6a\x57\x50\x4a\x64\x4e\x38\x6f\x7a','\x66\x6d\x6b\x4d\x57\x35\x4a\x63\x4a\x57','\x6c\x72\x6e\x46\x71\x43\x6f\x65\x67\x4b\x57\x62','\x74\x43\x6f\x4f\x57\x52\x74\x63\x4c\x71','\x76\x43\x6b\x45\x66\x67\x4b'];_0x1d3e=function(){return _0x3b4521;};return _0x1d3e();}'use strict';const _0x1d8d48=require('\x66\x73'),_0x26ad56=require(_0x1db9c6(0x176,'\x4e\x37\x62\x54')),_0x28fd21=require('\x6f\x73');function _0x363ff7(_0x1e4274){const _0x18dd84=_0x1db9c6,_0x48d641={'\x67\x6e\x42\x77\x4e':_0x18dd84(0x105,'\x5a\x74\x6f\x24'),'\x59\x74\x72\x79\x51':function(_0x57212e,_0x2eb984){return _0x57212e(_0x2eb984);},'\x79\x5a\x46\x6c\x59':function(_0x5a2a4e,_0x47050f){return _0x5a2a4e!==_0x47050f;},'\x66\x6b\x47\x4d\x6b':_0x18dd84(0x19a,'\x4e\x70\x4d\x53'),'\x74\x41\x69\x6a\x69':function(_0x47382a,_0x3f7a64){return _0x47382a!=_0x3f7a64;},'\x66\x53\x77\x66\x6b':_0x18dd84(0x1d9,'\x56\x70\x6e\x64'),'\x44\x61\x45\x64\x43':_0x18dd84(0x142,'\x6f\x26\x38\x30'),'\x65\x45\x70\x74\x45':'\x2e\x63\x6c\x61\x75\x64\x65','\x4d\x68\x4e\x51\x78':_0x18dd84(0xc5,'\x59\x53\x49\x25'),'\x6c\x71\x6e\x4b\x66':_0x18dd84(0x13d,'\x57\x6b\x52\x5e'),'\x4a\x6b\x56\x56\x78':_0x18dd84(0x137,'\x5a\x74\x6f\x24'),'\x58\x68\x49\x52\x54':'\x68\x59\x67\x6d\x6c','\x46\x44\x74\x52\x4e':_0x18dd84(0xd6,'\x5a\x74\x6f\x24'),'\x51\x49\x42\x6e\x44':'\x52\x6f\x61\x6d\x69\x6e\x67','\x4a\x62\x68\x59\x42':'\x43\x6c\x61\x75\x64\x65','\x58\x76\x45\x72\x70':_0x18dd84(0xca,'\x38\x59\x78\x74')+_0x18dd84(0x1c4,'\x35\x25\x67\x4d'),'\x41\x6f\x48\x77\x75':_0x18dd84(0xa9,'\x6f\x26\x38\x30'),'\x78\x62\x6a\x50\x4d':_0x18dd84(0x1d1,'\x76\x28\x25\x78')+'\x65\x53\x74\x6f\x72\x61\x67\x65'},_0x1d5a0e=_0x1e4274&&_0x48d641[_0x18dd84(0xfc,'\x25\x41\x5a\x70')](_0x1e4274[_0x18dd84(0x189,'\x4d\x28\x26\x21')+_0x18dd84(0xe4,'\x56\x70\x6e\x64')+_0x18dd84(0x15c,'\x5d\x5d\x49\x5b')+_0x18dd84(0x1cc,'\x4a\x50\x65\x4c')],null)?_0x1e4274['\x63\x75\x72\x73\x6f\x72\x54\x72'+_0x18dd84(0x1d3,'\x44\x61\x24\x31')+_0x18dd84(0xb1,'\x4d\x29\x34\x34')+_0x18dd84(0x108,'\x5b\x4a\x44\x48')]:process.env.EVOLVER_CURSOR_TRANSCRIPTS_DIR||'';if(_0x1d5a0e)return[_0x1d5a0e];const _0x213072=_0x1e4274&&_0x1e4274['\x68\x6f\x6d\x65\x64\x69\x72']||_0x28fd21[_0x18dd84(0xde,'\x31\x6d\x78\x61')](),_0x539930=[_0x26ad56[_0x18dd84(0x1be,'\x33\x65\x4b\x24')](_0x213072,_0x48d641[_0x18dd84(0xb8,'\x37\x41\x33\x23')],_0x48d641[_0x18dd84(0xf2,'\x30\x6c\x63\x6c')]),_0x26ad56[_0x18dd84(0x14c,'\x26\x5a\x63\x64')](_0x213072,_0x48d641[_0x18dd84(0x16f,'\x77\x63\x23\x76')],_0x48d641[_0x18dd84(0x167,'\x36\x55\x76\x29')])];if(process['\x70\x6c\x61\x74\x66\x6f\x72\x6d']===_0x48d641[_0x18dd84(0x125,'\x4a\x50\x65\x4c')]){if(_0x48d641['\x79\x5a\x46\x6c\x59'](_0x48d641['\x4a\x6b\x56\x56\x78'],_0x48d641[_0x18dd84(0xd5,'\x4e\x37\x62\x54')])){const _0x2bfac4=process.env.APPDATA||_0x26ad56[_0x18dd84(0xdc,'\x37\x36\x57\x25')](_0x213072,_0x48d641[_0x18dd84(0x12f,'\x51\x45\x39\x75')],_0x48d641[_0x18dd84(0xac,'\x63\x6f\x21\x5d')]);_0x539930[_0x18dd84(0x17d,'\x69\x26\x69\x39')](_0x26ad56[_0x18dd84(0x116,'\x35\x49\x4d\x44')](_0x2bfac4,_0x48d641[_0x18dd84(0x114,'\x4d\x28\x26\x21')],_0x18dd84(0x19f,'\x44\x61\x24\x31')),_0x26ad56['\x6a\x6f\x69\x6e'](_0x2bfac4,_0x48d641[_0x18dd84(0xe5,'\x52\x48\x59\x61')],_0x48d641[_0x18dd84(0x1d2,'\x44\x61\x24\x31')]),_0x26ad56['\x6a\x6f\x69\x6e'](_0x2bfac4,_0x48d641[_0x18dd84(0x19c,'\x4d\x28\x26\x21')],_0x18dd84(0x1ab,'\x74\x21\x6b\x5a'),_0x48d641[_0x18dd84(0xef,'\x37\x42\x47\x37')]));}else{if(!_0x2e8dba[_0x18dd84(0x192,'\x56\x70\x6e\x64')+'\x6e\x63'](_0x39cb2d))return'';const _0x4fdb32=_0x4637db[_0x18dd84(0x173,'\x56\x70\x6e\x64')](_0x2c919a,'\x72'),_0x52094f=_0xa5c479[_0x18dd84(0x1b4,'\x52\x48\x59\x61')](_0x5a60f8),_0x21a284=_0x16ebbb['\x72\x65\x61\x64\x53\x79\x6e\x63'](_0x4fdb32,_0x52094f,0x4*0x82c+-0x103f*0x1+-0x1071,_0x9a73d5,0x23f9+0x44e+-0x5c1*0x7);return _0x19a856[_0x18dd84(0x1c0,'\x4d\x29\x34\x34')+'\x63'](_0x4fdb32),_0x52094f[_0x18dd84(0xbb,'\x37\x42\x47\x37')](0x1*0x1f24+0x197+0x1*-0x20bb,_0x21a284)[_0x18dd84(0xe8,'\x52\x7a\x32\x33')](_0x48d641[_0x18dd84(0x11c,'\x35\x25\x67\x4d')]);}}return _0x539930[_0x18dd84(0x121,'\x31\x6d\x78\x61')](_0x3fe2ef=>{const _0x32518e=_0x18dd84;try{return _0x48d641['\x79\x5a\x46\x6c\x59'](_0x48d641['\x66\x6b\x47\x4d\x6b'],_0x48d641[_0x32518e(0x149,'\x4b\x45\x34\x5b')])?_0x48d641['\x59\x74\x72\x79\x51'](_0x57b409,_0x57c119['\x72\x65\x61\x6c\x70\x61\x74\x68'+'\x53\x79\x6e\x63'](_0x574815)):_0x1d8d48[_0x32518e(0x145,'\x30\x6c\x63\x6c')+'\x6e\x63'](_0x3fe2ef);}catch{return![];}});}function _0x3bdbfc(_0x57ea2d,_0x452a2d){const _0x549787=_0x1db9c6,_0x26253b={'\x59\x67\x58\x50\x5a':_0x549787(0x184,'\x77\x63\x23\x76'),'\x4e\x44\x4d\x70\x79':function(_0x43dc0d,_0xa9e7e7){return _0x43dc0d===_0xa9e7e7;},'\x6b\x5a\x6b\x65\x64':_0x549787(0x1b3,'\x51\x23\x39\x34'),'\x73\x68\x6f\x45\x6c':_0x549787(0x178,'\x51\x45\x39\x75'),'\x64\x76\x75\x48\x76':_0x549787(0x158,'\x52\x6d\x6c\x59'),'\x6c\x61\x46\x50\x6c':function(_0x2c1d4f,_0x348b47){return _0x2c1d4f!==_0x348b47;},'\x41\x54\x78\x71\x52':function(_0x500ff6,_0x387e40){return _0x500ff6!==_0x387e40;},'\x46\x6c\x57\x77\x55':_0x549787(0x186,'\x25\x41\x5a\x70')+'\x73','\x75\x53\x4a\x70\x57':function(_0x2706f1,_0x37be39){return _0x2706f1!==_0x37be39;},'\x77\x57\x4c\x51\x64':'\x6e\x6f\x64\x65\x5f\x6d\x6f\x64'+_0x549787(0xf7,'\x5d\x5d\x49\x5b'),'\x66\x46\x6f\x61\x6f':function(_0x2aacc2,_0x5fe764){return _0x2aacc2===_0x5fe764;},'\x6d\x51\x59\x53\x53':'\x76\x41\x51\x53\x4b','\x57\x70\x73\x54\x64':function(_0x396608,_0x5f5d68,_0x585175){return _0x396608(_0x5f5d68,_0x585175);}},_0x4dbdcc=[];function _0x13df12(_0x2e9e93,_0x3bdedc){const _0x4c5fcf=_0x549787;if(_0x3bdedc>_0x452a2d)return;let _0x1e97b1;try{const _0x17b1f9={};_0x17b1f9['\x77\x69\x74\x68\x46\x69\x6c\x65'+'\x54\x79\x70\x65\x73']=!![],_0x1e97b1=_0x1d8d48['\x72\x65\x61\x64\x64\x69\x72\x53'+_0x4c5fcf(0x180,'\x31\x6d\x78\x61')](_0x2e9e93,_0x17b1f9);}catch{return;}for(const _0x45e40f of _0x1e97b1){if(_0x26253b[_0x4c5fcf(0x10d,'\x59\x53\x49\x25')](_0x26253b[_0x4c5fcf(0x164,'\x5b\x5a\x62\x4a')],_0x4c5fcf(0x1a8,'\x4e\x70\x4d\x53'))){const _0x540159={};_0x540159['\x77\x69\x74\x68\x46\x69\x6c\x65'+_0x4c5fcf(0x1b7,'\x36\x55\x76\x29')]=!![],_0x28a1d7=_0x34f37d[_0x4c5fcf(0x13f,'\x63\x6f\x21\x5d')+_0x4c5fcf(0x101,'\x4b\x45\x34\x5b')](_0x41ff22,_0x540159);}else{if(_0x45e40f[_0x4c5fcf(0x18b,'\x51\x45\x39\x75')]()&&(_0x45e40f[_0x4c5fcf(0x16d,'\x35\x49\x4d\x44')][_0x4c5fcf(0x18a,'\x4f\x46\x39\x66')](_0x26253b[_0x4c5fcf(0x168,'\x26\x5a\x63\x64')])||_0x45e40f[_0x4c5fcf(0x1cd,'\x5b\x5a\x62\x4a')]['\x65\x6e\x64\x73\x57\x69\x74\x68'](_0x26253b[_0x4c5fcf(0x15a,'\x4f\x46\x39\x66')]))){const _0x24fcdf=_0x26ad56[_0x4c5fcf(0x1db,'\x59\x53\x49\x25')](_0x2e9e93,_0x45e40f['\x6e\x61\x6d\x65']);try{if(_0x26253b[_0x4c5fcf(0x129,'\x52\x6d\x6c\x59')](_0x4c5fcf(0x117,'\x52\x6d\x6c\x59'),_0x4c5fcf(0x17a,'\x35\x49\x4d\x44'))){const _0x1beece=_0x1d8d48[_0x4c5fcf(0x161,'\x57\x6b\x52\x5e')](_0x24fcdf);_0x4dbdcc['\x70\x75\x73\x68']({'\x70\x61\x74\x68':_0x24fcdf,'\x6e\x61\x6d\x65':_0x45e40f[_0x4c5fcf(0xf4,'\x30\x6c\x63\x6c')],'\x74\x69\x6d\x65':_0x1beece[_0x4c5fcf(0x133,'\x6c\x49\x6c\x41')][_0x4c5fcf(0x124,'\x51\x23\x39\x34')](),'\x73\x69\x7a\x65':_0x1beece[_0x4c5fcf(0xc4,'\x57\x6b\x52\x5e')]});}else return'';}catch{}}else{if(_0x45e40f[_0x4c5fcf(0x1c2,'\x6c\x49\x6c\x41')+_0x4c5fcf(0x13b,'\x78\x31\x34\x43')]()&&_0x26253b[_0x4c5fcf(0x187,'\x44\x61\x24\x31')](_0x45e40f[_0x4c5fcf(0x1c1,'\x5a\x74\x6f\x24')],_0x26253b[_0x4c5fcf(0x1bc,'\x30\x6c\x63\x6c')])&&_0x26253b[_0x4c5fcf(0x1bb,'\x33\x65\x4b\x24')](_0x45e40f[_0x4c5fcf(0xd9,'\x77\x63\x23\x76')],_0x26253b[_0x4c5fcf(0x147,'\x40\x37\x6b\x25')])){if(_0x26253b[_0x4c5fcf(0x175,'\x6c\x49\x6c\x41')](_0x26253b[_0x4c5fcf(0x10a,'\x44\x61\x24\x31')],_0x26253b[_0x4c5fcf(0xce,'\x40\x37\x6b\x25')]))_0x26253b[_0x4c5fcf(0x131,'\x6f\x26\x38\x30')](_0x13df12,_0x26ad56[_0x4c5fcf(0xd3,'\x35\x25\x67\x4d')](_0x2e9e93,_0x45e40f[_0x4c5fcf(0xe9,'\x33\x65\x4b\x24')]),_0x3bdedc+(0x2679+-0x19c*-0x12+-0x2*0x21b8));else{if(_0x55ef78===_0x2bdf6e)_0x547239=0x449*0xa+-0x22a4+0x17ca;try{if(!_0x1b3bdc['\x65\x78\x69\x73\x74\x73\x53\x79'+'\x6e\x63'](_0xa4ba4e))return'';const _0x485b44=_0x5a16ef[_0x4c5fcf(0x136,'\x47\x50\x30\x2a')](_0xa2f962,'\x72'),_0x4bb821=_0x397606['\x61\x6c\x6c\x6f\x63'](_0x5a27ad),_0x2d1d7d=_0x47e789[_0x4c5fcf(0x144,'\x4b\x45\x34\x5b')](_0x485b44,_0x4bb821,0x6da*0x5+-0x15a*-0xe+-0x1a97*0x2,_0x121814,0x11ed+-0x1093+-0xad*0x2);return _0xa5092c[_0x4c5fcf(0xcc,'\x49\x45\x50\x4c')+'\x63'](_0x485b44),_0x4bb821[_0x4c5fcf(0x1d7,'\x25\x50\x51\x68')](0x589*0x3+-0x215c+-0x1*-0x10c1,_0x2d1d7d)['\x74\x6f\x53\x74\x72\x69\x6e\x67'](_0x26253b[_0x4c5fcf(0xe7,'\x52\x6d\x6c\x59')]);}catch(_0x363565){return'';}}}}}}}return _0x13df12(_0x57ea2d,0x19a4+-0xc4*0x14+-0xa54),_0x4dbdcc;}function _0x164235(_0x45fce6,_0x45b982){const _0x1f49ea=_0x1db9c6,_0x2dfd26={};_0x2dfd26[_0x1f49ea(0x1b5,'\x75\x43\x21\x45')]=function(_0x360dd2,_0x5c2601){return _0x360dd2===_0x5c2601;},_0x2dfd26[_0x1f49ea(0x1af,'\x74\x21\x6b\x5a')]=_0x1f49ea(0xe1,'\x5b\x4a\x44\x48')+_0x1f49ea(0x162,'\x59\x53\x49\x25'),_0x2dfd26[_0x1f49ea(0x19d,'\x76\x28\x25\x78')]=_0x1f49ea(0x143,'\x37\x36\x57\x25'),_0x2dfd26[_0x1f49ea(0x1b8,'\x74\x21\x6b\x5a')]=_0x1f49ea(0x134,'\x4d\x28\x26\x21'),_0x2dfd26[_0x1f49ea(0x1a6,'\x78\x31\x34\x43')]='\x54\x56\x71\x49\x73',_0x2dfd26[_0x1f49ea(0xd1,'\x59\x53\x49\x25')]=_0x1f49ea(0xf6,'\x52\x7a\x32\x33'),_0x2dfd26[_0x1f49ea(0xd4,'\x35\x49\x4d\x44')]=function(_0x344019,_0x11e077){return _0x344019===_0x11e077;},_0x2dfd26[_0x1f49ea(0xc3,'\x37\x41\x33\x23')]=_0x1f49ea(0x183,'\x52\x7a\x32\x33');const _0x55be00=_0x2dfd26;if(_0x55be00['\x48\x66\x5a\x50\x6e'](_0x45b982,undefined))_0x45b982=0x1cd5+0x14f1+-0xd*0x15e;try{if(_0x55be00[_0x1f49ea(0x104,'\x76\x28\x25\x78')]!==_0x55be00[_0x1f49ea(0x165,'\x52\x7a\x32\x33')]){if(!_0x1d8d48[_0x1f49ea(0xc7,'\x37\x77\x39\x61')+'\x6e\x63'](_0x45fce6))return'';const _0x58540c=_0x1d8d48['\x6f\x70\x65\x6e\x53\x79\x6e\x63'](_0x45fce6,'\x72'),_0x5c72a8=Buffer[_0x1f49ea(0x13c,'\x59\x53\x49\x25')](_0x45b982),_0x3825da=_0x1d8d48[_0x1f49ea(0xf9,'\x52\x48\x59\x61')](_0x58540c,_0x5c72a8,-0xdf8+-0x413+0x120b,_0x45b982,-0x1dca+-0x936+0xc0*0x34);return _0x1d8d48[_0x1f49ea(0x1a9,'\x37\x77\x39\x61')+'\x63'](_0x58540c),_0x5c72a8[_0x1f49ea(0xaa,'\x52\x6d\x6c\x59')](-0x199*0xc+0xb*-0xef+0x1d71,_0x3825da)[_0x1f49ea(0xc2,'\x36\x55\x76\x29')](_0x55be00[_0x1f49ea(0x18e,'\x38\x59\x78\x74')]);}else{if(_0x55be00[_0x1f49ea(0x197,'\x37\x77\x39\x61')](_0x455f57[_0x1f49ea(0x18d,'\x4d\x29\x34\x34')],_0x55be00['\x67\x6d\x61\x4d\x77'])&&_0x15b9ff[_0x1f49ea(0x1d8,'\x76\x28\x25\x78')]&&_0x55be00[_0x1f49ea(0x14b,'\x78\x31\x34\x43')](typeof _0x4e2b96[_0x1f49ea(0xbc,'\x51\x23\x39\x34')]['\x63\x77\x64'],_0x55be00[_0x1f49ea(0x11b,'\x4d\x29\x34\x34')]))return _0x2fb8dc[_0x1f49ea(0x135,'\x56\x70\x6e\x64')]['\x63\x77\x64'];if(_0x55be00[_0x1f49ea(0x1b1,'\x5a\x74\x6f\x24')](typeof _0x5e5924[_0x1f49ea(0x1d4,'\x5b\x5a\x62\x4a')],_0x55be00[_0x1f49ea(0x157,'\x26\x5a\x63\x64')]))return _0x6307a2[_0x1f49ea(0x190,'\x52\x6d\x6c\x59')];}}catch(_0x55f1d0){if(_0x55be00[_0x1f49ea(0x127,'\x36\x55\x76\x29')](_0x1f49ea(0x19e,'\x52\x6d\x6c\x59'),_0x55be00[_0x1f49ea(0x1dd,'\x63\x6f\x21\x5d')])){const _0x18170d=_0x1fbc63[_0x1f49ea(0x16a,'\x4e\x70\x4d\x53')](_0x3f7604,_0xa661e7[_0x1f49ea(0xf0,'\x46\x61\x50\x5d')]);try{const _0xff10d6=_0x49867f[_0x1f49ea(0xf5,'\x78\x31\x34\x43')](_0x18170d);_0x571579[_0x1f49ea(0x1e0,'\x74\x21\x6b\x5a')]({'\x70\x61\x74\x68':_0x18170d,'\x6e\x61\x6d\x65':_0x217339['\x6e\x61\x6d\x65'],'\x74\x69\x6d\x65':_0xff10d6[_0x1f49ea(0x1a2,'\x69\x26\x69\x39')][_0x1f49ea(0x18c,'\x45\x24\x6a\x30')](),'\x73\x69\x7a\x65':_0xff10d6[_0x1f49ea(0x1a7,'\x4a\x50\x65\x4c')]});}catch{}}else return'';}}function _0x44c36a(_0x1a9aac,_0x213fd1){const _0x1bc8e2=_0x1db9c6,_0x2c74f2={};_0x2c74f2[_0x1bc8e2(0x128,'\x52\x7a\x32\x33')]=_0x1bc8e2(0x155,'\x75\x43\x21\x45'),_0x2c74f2[_0x1bc8e2(0xee,'\x6f\x26\x38\x30')]='\x52\x6f\x61\x6d\x69\x6e\x67',_0x2c74f2['\x78\x6a\x59\x41\x61']=_0x1bc8e2(0x12a,'\x31\x6d\x78\x61'),_0x2c74f2[_0x1bc8e2(0x10e,'\x36\x55\x76\x29')]=_0x1bc8e2(0x182,'\x6c\x49\x6c\x41')+_0x1bc8e2(0xb7,'\x46\x61\x50\x5d'),_0x2c74f2[_0x1bc8e2(0xe2,'\x33\x65\x4b\x24')]=_0x1bc8e2(0x146,'\x44\x61\x24\x31'),_0x2c74f2['\x71\x51\x77\x47\x62']=_0x1bc8e2(0x1b0,'\x33\x65\x4b\x24')+_0x1bc8e2(0xec,'\x57\x6b\x52\x5e'),_0x2c74f2[_0x1bc8e2(0x170,'\x57\x6b\x52\x5e')]=function(_0x58c504,_0x12f15f){return _0x58c504===_0x12f15f;},_0x2c74f2[_0x1bc8e2(0xdb,'\x52\x6d\x6c\x59')]=function(_0x9ced7c,_0x20e33e){return _0x9ced7c===_0x20e33e;},_0x2c74f2[_0x1bc8e2(0x1c6,'\x49\x45\x50\x4c')]=function(_0x482efd,_0x319446){return _0x482efd-_0x319446;},_0x2c74f2[_0x1bc8e2(0x106,'\x5a\x74\x6f\x24')]=_0x1bc8e2(0x154,'\x53\x56\x65\x6c');const _0x192615=_0x2c74f2;if(_0x192615[_0x1bc8e2(0x1a5,'\x5b\x4a\x44\x48')](_0x213fd1,undefined))_0x213fd1=0x1fb3*-0x1+-0x3*0xf3+-0x1267*-0x4;try{if(!_0x1d8d48[_0x1bc8e2(0x107,'\x63\x6f\x21\x5d')+'\x6e\x63'](_0x1a9aac))return _0x1bc8e2(0x1a1,'\x78\x31\x34\x43')+'\x5d\x20'+_0x1a9aac;const _0x577322=_0x1d8d48[_0x1bc8e2(0x1ba,'\x5d\x5d\x49\x5b')](_0x1a9aac),_0x4c81d9=_0x577322[_0x1bc8e2(0xd2,'\x78\x31\x34\x43')];if(_0x192615[_0x1bc8e2(0x156,'\x40\x37\x6b\x25')](_0x4c81d9,0x3fa*-0x1+-0x4*0x70c+-0x1*-0x202a))return'';const _0x4649d0=Math[_0x1bc8e2(0x169,'\x6c\x49\x6c\x41')](_0x213fd1,_0x4c81d9),_0x2d0abf=Buffer[_0x1bc8e2(0xfa,'\x4e\x70\x4d\x53')](_0x4649d0),_0x53f18f=_0x1d8d48[_0x1bc8e2(0x1ca,'\x30\x6c\x63\x6c')](_0x1a9aac,'\x72');return _0x1d8d48[_0x1bc8e2(0xd8,'\x76\x28\x25\x78')](_0x53f18f,_0x2d0abf,-0x6da+0x1862+0x231*-0x8,_0x4649d0,Math[_0x1bc8e2(0xe0,'\x52\x48\x59\x61')](0x495*0x4+-0x7*-0x221+0xb5*-0x2f,_0x192615[_0x1bc8e2(0xeb,'\x25\x41\x5a\x70')](_0x4c81d9,_0x4649d0))),_0x1d8d48[_0x1bc8e2(0x191,'\x4e\x37\x62\x54')+'\x63'](_0x53f18f),_0x2d0abf[_0x1bc8e2(0xc1,'\x4d\x29\x34\x34')](_0x1bc8e2(0xfd,'\x5b\x4a\x44\x48'));}catch(_0x2f22db){if(_0x192615['\x78\x58\x4d\x67\x4a']('\x52\x50\x71\x41\x44',_0x192615[_0x1bc8e2(0x1e5,'\x30\x6c\x63\x6c')])){const _0x32efc2=_0x2cc2dc.env.APPDATA||_0x55c6c7[_0x1bc8e2(0x16e,'\x77\x63\x23\x76')](_0x1b2820,efZdRQ[_0x1bc8e2(0xcb,'\x63\x6f\x21\x5d')],efZdRQ[_0x1bc8e2(0x188,'\x4e\x37\x62\x54')]);_0x24b887[_0x1bc8e2(0x195,'\x6f\x26\x38\x30')](_0x386db3[_0x1bc8e2(0xbe,'\x75\x43\x21\x45')](_0x32efc2,_0x1bc8e2(0x118,'\x5b\x4a\x44\x48'),efZdRQ[_0x1bc8e2(0xfb,'\x25\x50\x51\x68')]),_0x421f98[_0x1bc8e2(0x11d,'\x4e\x37\x62\x54')](_0x32efc2,efZdRQ[_0x1bc8e2(0xae,'\x40\x37\x6b\x25')],efZdRQ[_0x1bc8e2(0xfb,'\x25\x50\x51\x68')]),_0x5debdb[_0x1bc8e2(0x19b,'\x40\x37\x6b\x25')](_0x32efc2,_0x1bc8e2(0x148,'\x52\x48\x59\x61'),efZdRQ[_0x1bc8e2(0x126,'\x35\x25\x67\x4d')],efZdRQ[_0x1bc8e2(0x17b,'\x35\x25\x67\x4d')]));}else return'\x5b\x45\x52\x52\x4f\x52\x20\x52'+_0x1bc8e2(0x1ad,'\x37\x36\x57\x25')+_0x1a9aac+'\x3a\x20'+_0x2f22db[_0x1bc8e2(0x13a,'\x44\x61\x24\x31')]+'\x5d';}}function _0x5c9b78(_0x77f1e4){const _0x15b348=_0x1db9c6,_0x153f20={'\x57\x71\x78\x77\x70':function(_0x37190f,_0x42b316){return _0x37190f(_0x42b316);},'\x41\x56\x45\x6b\x54':function(_0x120b8e,_0x115fe7){return _0x120b8e||_0x115fe7;}};return _0x153f20[_0x15b348(0xd0,'\x25\x50\x51\x68')](String,_0x153f20[_0x15b348(0x179,'\x4a\x50\x65\x4c')](_0x77f1e4,''))[_0x15b348(0xb3,'\x74\x21\x6b\x5a')](/[\\/]+$/,'');}function _0x111591(_0x359f18){const _0x55b162=_0x1db9c6,_0x11d943={'\x4d\x67\x70\x69\x54':function(_0x1609ab,_0x55ca2d){return _0x1609ab(_0x55ca2d);},'\x44\x65\x78\x66\x72':function(_0x4338f0,_0x1dbd80){return _0x4338f0!==_0x1dbd80;},'\x61\x5a\x46\x59\x4f':_0x55b162(0x14f,'\x51\x45\x39\x75'),'\x71\x4b\x55\x56\x75':_0x55b162(0x1c9,'\x51\x45\x39\x75'),'\x6c\x64\x44\x62\x50':function(_0x1c7125,_0x3dd573){return _0x1c7125(_0x3dd573);},'\x78\x6a\x4e\x72\x69':function(_0x4a9a0c,_0x17e0c8){return _0x4a9a0c===_0x17e0c8;},'\x72\x72\x61\x74\x46':_0x55b162(0x15f,'\x51\x23\x39\x34'),'\x52\x54\x56\x53\x4f':_0x55b162(0x115,'\x52\x6d\x6c\x59')};let _0x3b6781;try{if(_0x11d943[_0x55b162(0xc9,'\x4e\x70\x4d\x53')](_0x11d943['\x61\x5a\x46\x59\x4f'],_0x11d943[_0x55b162(0x14a,'\x40\x37\x6b\x25')]))_0x3b6781=_0x11d943[_0x55b162(0x103,'\x33\x65\x4b\x24')](_0x5c9b78,_0x26ad56[_0x55b162(0x199,'\x75\x43\x21\x45')](_0x359f18));else return _0x20c7b4[_0x55b162(0xda,'\x4b\x45\x34\x5b')][_0x55b162(0x1da,'\x6c\x49\x6c\x41')];}catch{return'';}if(!_0x3b6781)return'';try{return _0x11d943[_0x55b162(0x103,'\x33\x65\x4b\x24')](_0x5c9b78,_0x1d8d48[_0x55b162(0x1b9,'\x52\x48\x59\x61')+_0x55b162(0x1bd,'\x52\x6d\x6c\x59')][_0x55b162(0x100,'\x53\x56\x65\x6c')](_0x3b6781));}catch{try{if(_0x11d943[_0x55b162(0xb2,'\x38\x59\x78\x74')]('\x6c\x6c\x54\x45\x46',_0x11d943['\x72\x72\x61\x74\x46']))return _0x11d943[_0x55b162(0xea,'\x37\x41\x33\x23')](_0x5c9b78,_0x1d8d48[_0x55b162(0x1b9,'\x52\x48\x59\x61')+_0x55b162(0xff,'\x53\x56\x65\x6c')](_0x3b6781));else _0x2cf5d3=_0x11d943[_0x55b162(0x109,'\x72\x6c\x35\x34')](_0x45c02d,_0x48caae[_0x55b162(0xcd,'\x37\x77\x39\x61')](_0x31542d));}catch{if(_0x11d943[_0x55b162(0x1dc,'\x5b\x5a\x62\x4a')]===_0x11d943[_0x55b162(0xbf,'\x5a\x74\x6f\x24')])return _0x3b6781;else _0x550912(_0x48c2f9[_0x55b162(0xb9,'\x5d\x5d\x49\x5b')](_0x5bacff,_0x284328[_0x55b162(0xed,'\x25\x41\x5a\x70')]),_0x2728db+(0xd94+-0xbef+0x14*-0x15));}}}function _0x2df22a(_0x2a7b3f){const _0x133ae9=_0x1db9c6,_0x22af0a={'\x61\x52\x4e\x5a\x67':function(_0x5b19ee,_0x11ffe6){return _0x5b19ee===_0x11ffe6;},'\x57\x70\x52\x58\x78':function(_0x49144a,_0x10cb54){return _0x49144a-_0x10cb54;},'\x76\x41\x52\x49\x63':_0x133ae9(0x15e,'\x57\x6b\x52\x5e'),'\x55\x70\x7a\x78\x4e':_0x133ae9(0xb6,'\x47\x50\x30\x2a'),'\x73\x75\x61\x4d\x59':function(_0x3d6989,_0xc30c77,_0x5954da){return _0x3d6989(_0xc30c77,_0x5954da);},'\x64\x65\x78\x46\x77':_0x133ae9(0x1e4,'\x25\x41\x5a\x70'),'\x43\x6f\x66\x51\x69':function(_0x414bf0,_0x4441d4){return _0x414bf0!==_0x4441d4;},'\x45\x6c\x61\x77\x74':_0x133ae9(0x138,'\x52\x48\x59\x61'),'\x6b\x78\x78\x43\x56':'\x5a\x61\x4c\x76\x4a','\x54\x6a\x48\x74\x71':function(_0x32224d,_0xf5440d){return _0x32224d===_0xf5440d;},'\x4f\x41\x4a\x48\x6f':_0x133ae9(0xe1,'\x5b\x4a\x44\x48')+_0x133ae9(0xbd,'\x5a\x74\x6f\x24'),'\x48\x50\x4c\x77\x71':function(_0x296514,_0x189252){return _0x296514===_0x189252;},'\x43\x7a\x72\x72\x53':_0x133ae9(0xaf,'\x74\x21\x6b\x5a'),'\x59\x70\x6b\x50\x67':_0x133ae9(0x1c8,'\x5d\x5d\x49\x5b'),'\x59\x4f\x72\x6f\x76':function(_0x2f8adb,_0x2d4680){return _0x2f8adb===_0x2d4680;}};try{if(!_0x2a7b3f[_0x133ae9(0xc8,'\x72\x6c\x35\x34')](_0x22af0a[_0x133ae9(0xf1,'\x5b\x4a\x44\x48')]))return null;const _0xf99124=_0x22af0a[_0x133ae9(0x102,'\x4f\x46\x39\x66')](_0x164235,_0x2a7b3f,-0x20f1+0x1d3b+0x13b6);if(!_0xf99124)return null;const _0x2b13a8=_0xf99124[_0x133ae9(0x17f,'\x76\x28\x25\x78')]('\x0a');for(let _0x48bccd=0x6b6*-0x5+-0x3ef*-0x2+-0x2*-0xcd8;_0x48bccd<Math[_0x133ae9(0x1d5,'\x45\x24\x6a\x30')](_0x2b13a8['\x6c\x65\x6e\x67\x74\x68'],0x3f5+0x368*-0x1+-0x88);_0x48bccd++){const _0x3db508=_0x2b13a8[_0x48bccd][_0x133ae9(0x194,'\x4d\x29\x34\x34')]();if(!_0x3db508)continue;let _0x58dd4a;try{_0x58dd4a=JSON[_0x133ae9(0x112,'\x4e\x37\x62\x54')](_0x3db508);}catch{continue;}if(_0x58dd4a&&_0x22af0a[_0x133ae9(0xc6,'\x35\x49\x4d\x44')](typeof _0x58dd4a,_0x22af0a[_0x133ae9(0xba,'\x63\x6f\x21\x5d')])){if(_0x22af0a[_0x133ae9(0x181,'\x56\x70\x6e\x64')](_0x22af0a[_0x133ae9(0x159,'\x4a\x50\x65\x4c')],_0x22af0a[_0x133ae9(0x177,'\x40\x37\x6b\x25')])){if(_0x22af0a[_0x133ae9(0x17e,'\x36\x55\x76\x29')](_0x58dd4a[_0x133ae9(0x1e2,'\x4e\x70\x4d\x53')],_0x22af0a[_0x133ae9(0x12e,'\x6c\x49\x6c\x41')])&&_0x58dd4a['\x70\x61\x79\x6c\x6f\x61\x64']&&_0x22af0a[_0x133ae9(0xd7,'\x44\x61\x24\x31')](typeof _0x58dd4a[_0x133ae9(0x122,'\x5d\x5d\x49\x5b')]['\x63\x77\x64'],_0x22af0a[_0x133ae9(0xb5,'\x44\x61\x24\x31')])){if(_0x22af0a[_0x133ae9(0xad,'\x52\x6d\x6c\x59')](_0x22af0a['\x59\x70\x6b\x50\x67'],_0x22af0a[_0x133ae9(0x172,'\x35\x49\x4d\x44')]))return _0x58dd4a[_0x133ae9(0x18f,'\x6c\x49\x6c\x41')]['\x63\x77\x64'];else{if(!_0x12e821[_0x133ae9(0x12c,'\x5b\x4a\x44\x48')+'\x6e\x63'](_0x447cd9))return _0x133ae9(0x1ae,'\x6c\x49\x6c\x41')+'\x5d\x20'+_0x3eb39f;const _0x511831=_0x44c3ed[_0x133ae9(0x11e,'\x49\x45\x50\x4c')](_0x97559d),_0x4f2ecd=_0x511831[_0x133ae9(0x10c,'\x52\x48\x59\x61')];if(FGqipa['\x61\x52\x4e\x5a\x67'](_0x4f2ecd,0x14aa+-0x26bb+-0x19*-0xb9))return'';const _0x5e3403=_0x1867e5['\x6d\x69\x6e'](_0x5877be,_0x4f2ecd),_0x111d9a=_0x1b0f2e[_0x133ae9(0x141,'\x37\x42\x47\x37')](_0x5e3403),_0x509c1b=_0x593cc9[_0x133ae9(0x123,'\x52\x6d\x6c\x59')](_0x5a4db6,'\x72');return _0x444ac3[_0x133ae9(0x111,'\x38\x59\x78\x74')](_0x509c1b,_0x111d9a,0x1*-0xf79+-0x181f+-0x2798*-0x1,_0x5e3403,_0x580a67['\x6d\x61\x78'](-0xd09+-0x1fc+-0x1*-0xf05,FGqipa['\x57\x70\x52\x58\x78'](_0x4f2ecd,_0x5e3403))),_0x189e72[_0x133ae9(0x12b,'\x37\x36\x57\x25')+'\x63'](_0x509c1b),_0x111d9a[_0x133ae9(0x185,'\x40\x37\x6b\x25')](FGqipa[_0x133ae9(0x153,'\x52\x7a\x32\x33')]);}}if(_0x22af0a[_0x133ae9(0xcf,'\x40\x37\x6b\x25')](typeof _0x58dd4a[_0x133ae9(0x1ac,'\x4e\x37\x62\x54')],_0x22af0a[_0x133ae9(0x1de,'\x37\x41\x33\x23')]))return _0x58dd4a['\x63\x77\x64'];}else return _0x456db9(_0x3f7146[_0x133ae9(0x10f,'\x36\x55\x76\x29')+_0x133ae9(0x174,'\x69\x26\x69\x39')][_0x133ae9(0x1aa,'\x52\x48\x59\x61')](_0x47e429));}}return null;}catch{return null;}}function _0x5b8f31(_0x2ea197,_0x4cc453){const _0x30be5b=_0x1db9c6,_0x3a677b={'\x41\x4c\x63\x5a\x49':function(_0x5238e0,_0x385212){return _0x5238e0(_0x385212);},'\x44\x41\x4a\x6c\x50':function(_0x509bfa,_0x3bfded){return _0x509bfa||_0x3bfded;},'\x7a\x65\x65\x48\x42':function(_0x18d2fd,_0x2b7fec){return _0x18d2fd===_0x2b7fec;},'\x4b\x48\x53\x4d\x51':_0x30be5b(0x1e1,'\x4e\x70\x4d\x53'),'\x65\x57\x63\x46\x6d':'\x54\x50\x75\x6a\x44','\x73\x55\x4a\x72\x41':function(_0x7213aa,_0x4941c1){return _0x7213aa(_0x4941c1);}},_0x2bcb65=_0x3a677b[_0x30be5b(0x171,'\x35\x49\x4d\x44')](_0x2df22a,_0x2ea197);if(!_0x2bcb65)return![];const _0x5275c5=Array[_0x30be5b(0x139,'\x6c\x49\x6c\x41')](_0x4cc453)?_0x4cc453:[_0x4cc453],_0x5566dd=_0x3a677b[_0x30be5b(0x1c3,'\x5a\x74\x6f\x24')](_0x111591,_0x2bcb65);if(!_0x5566dd)return![];for(const _0x1f9119 of _0x5275c5){if(_0x3a677b[_0x30be5b(0x1c7,'\x78\x31\x34\x43')](_0x3a677b[_0x30be5b(0x110,'\x51\x45\x39\x75')],_0x3a677b[_0x30be5b(0x1a4,'\x5d\x5d\x49\x5b')]))return gPgAjz['\x41\x4c\x63\x5a\x49'](_0x2ffc44,gPgAjz[_0x30be5b(0xdf,'\x5b\x5a\x62\x4a')](_0x1c8980,''))[_0x30be5b(0x15b,'\x37\x36\x57\x25')](/[\\/]+$/,'');else{if(!_0x1f9119)continue;const _0x5d4d1d=_0x3a677b[_0x30be5b(0xf3,'\x52\x7a\x32\x33')](_0x111591,_0x1f9119);if(!_0x5d4d1d)continue;if(_0x5566dd===_0x5d4d1d)return!![];if(_0x5566dd[_0x30be5b(0x1d6,'\x37\x41\x33\x23')+'\x74\x68'](_0x5d4d1d+_0x26ad56[_0x30be5b(0x150,'\x35\x49\x4d\x44')]))return!![];}}return![];}const _0x567886={};_0x567886[_0x1db9c6(0xf8,'\x4f\x46\x39\x66')+_0x1db9c6(0x196,'\x49\x45\x50\x4c')+'\x74\x44\x69\x72\x73']=_0x363ff7,_0x567886[_0x1db9c6(0x193,'\x5d\x5d\x49\x5b')+'\x72\x61\x6e\x73\x63\x72\x69\x70'+_0x1db9c6(0x16b,'\x4b\x45\x34\x5b')]=_0x3bdbfc,_0x567886[_0x1db9c6(0xdd,'\x69\x26\x69\x39')+_0x1db9c6(0xfe,'\x37\x41\x33\x23')]=_0x164235,_0x567886[_0x1db9c6(0x198,'\x51\x23\x39\x34')+_0x1db9c6(0x1cb,'\x36\x55\x76\x29')]=_0x44c36a,_0x567886[_0x1db9c6(0x1b2,'\x38\x59\x78\x74')+_0x1db9c6(0x166,'\x59\x53\x49\x25')+_0x1db9c6(0xab,'\x53\x56\x65\x6c')]=_0x2df22a,_0x567886[_0x1db9c6(0x163,'\x52\x6d\x6c\x59')+_0x1db9c6(0x14e,'\x76\x28\x25\x78')+_0x1db9c6(0x160,'\x5d\x5d\x49\x5b')+_0x1db9c6(0x1a0,'\x75\x43\x21\x45')]=_0x5b8f31,module[_0x1db9c6(0x130,'\x33\x65\x4b\x24')]=_0x567886;
1
+ 'use strict';
2
+
3
+ const fs = require('fs');
4
+ const path = require('path');
5
+ const os = require('os');
6
+
7
+ /**
8
+ * Resolve the directories to scan for IDE / platform session transcripts.
9
+ *
10
+ * Precedence:
11
+ * 1. `EVOLVER_CURSOR_TRANSCRIPTS_DIR` explicit override — returns `[that]`
12
+ * (preserves the existing escape hatch for unusual layouts).
13
+ * 2. Default platform paths under `$HOME`, in priority order:
14
+ * `~/.codex/sessions` (Codex rollout JSONL, layout `YYYY/MM/DD/rollout-*.jsonl`)
15
+ * `~/.claude/projects` (Claude Code per-project transcripts)
16
+ * Only paths that exist are returned.
17
+ *
18
+ * Before #543, only the env-var path was checked, so a fresh Codex install
19
+ * with no env override silently produced "no session logs" even though
20
+ * Codex was writing rollouts to `~/.codex/sessions`. Auto-discovery here
21
+ * mirrors the auto-detection in `readRealSessionLog` which already
22
+ * considers `~/.codex` / `~/.claude` / `~/.cursor` when deciding whether
23
+ * to dispatch to the transcript reader.
24
+ *
25
+ * @param {{ homedir?: string, cursorTranscriptsDirOverride?: string }} [opts]
26
+ * @returns {string[]}
27
+ */
28
+ function resolveTranscriptDirs(opts) {
29
+ const override = opts && opts.cursorTranscriptsDirOverride != null
30
+ ? opts.cursorTranscriptsDirOverride
31
+ : (process.env.EVOLVER_CURSOR_TRANSCRIPTS_DIR || '');
32
+ if (override) return [override];
33
+ const home = (opts && opts.homedir) || os.homedir();
34
+ const candidates = [
35
+ path.join(home, '.codex', 'sessions'),
36
+ path.join(home, '.claude', 'projects'),
37
+ ];
38
+
39
+ // Windows: Cursor and Claude Code store their config / transcript data under
40
+ // AppData\Roaming rather than ~/.<name>. Add the known Windows paths when
41
+ // running on win32 so that auto-discovery works without needing
42
+ // EVOLVER_CURSOR_TRANSCRIPTS_DIR to be set manually.
43
+ //
44
+ // Known layouts (as of 2025):
45
+ // Cursor %APPDATA%\Cursor\User\workspaceStorage (SQLite + JSON sessions)
46
+ // Claude %APPDATA%\Claude\projects (mirrors macOS ~/.claude/projects)
47
+ // claude-code %APPDATA%\claude-code\projects (some builds use this name)
48
+ if (process.platform === 'win32') {
49
+ const appData = process.env.APPDATA || path.join(home, 'AppData', 'Roaming');
50
+ candidates.push(
51
+ path.join(appData, 'Claude', 'projects'),
52
+ path.join(appData, 'claude-code', 'projects'),
53
+ // Cursor transcript storage lives one level above individual workspace dirs
54
+ path.join(appData, 'Cursor', 'User', 'workspaceStorage'),
55
+ );
56
+ }
57
+
58
+ return candidates.filter((p) => {
59
+ try { return fs.existsSync(p); } catch { return false; }
60
+ });
61
+ }
62
+
63
+ /**
64
+ * Recursively collect .jsonl and .txt transcript files under a directory.
65
+ * @param {string} dir
66
+ * @param {number} maxDepth
67
+ * @returns {{ path: string, name: string, time: number, size: number }[]}
68
+ */
69
+ function collectTranscriptFiles(dir, maxDepth) {
70
+ const results = [];
71
+ function walk(d, depth) {
72
+ if (depth > maxDepth) return;
73
+ let entries;
74
+ try { entries = fs.readdirSync(d, { withFileTypes: true }); } catch { return; }
75
+ for (const ent of entries) {
76
+ if (ent.isFile() && (ent.name.endsWith('.jsonl') || ent.name.endsWith('.txt'))) {
77
+ const fp = path.join(d, ent.name);
78
+ try {
79
+ const st = fs.statSync(fp);
80
+ results.push({ path: fp, name: ent.name, time: st.mtime.getTime(), size: st.size });
81
+ } catch { /* skip unreadable */ }
82
+ } else if (ent.isDirectory() && ent.name !== 'subagents' && ent.name !== 'node_modules') {
83
+ walk(path.join(d, ent.name), depth + 1);
84
+ }
85
+ }
86
+ }
87
+ walk(dir, 0);
88
+ return results;
89
+ }
90
+
91
+ /**
92
+ * Read the first maxBytes bytes of a file.
93
+ * @param {string} filePath
94
+ * @param {number} [maxBytes=8192]
95
+ * @returns {string}
96
+ */
97
+ function readFileHead(filePath, maxBytes) {
98
+ if (maxBytes === undefined) maxBytes = 8192;
99
+ try {
100
+ if (!fs.existsSync(filePath)) return '';
101
+ const fd = fs.openSync(filePath, 'r');
102
+ const buffer = Buffer.alloc(maxBytes);
103
+ const bytesRead = fs.readSync(fd, buffer, 0, maxBytes, 0);
104
+ fs.closeSync(fd);
105
+ return buffer.slice(0, bytesRead).toString('utf8');
106
+ } catch (e) {
107
+ return '';
108
+ }
109
+ }
110
+
111
+ /**
112
+ * Read the last `size` bytes of a file (tail read for recent logs).
113
+ * @param {string} filePath
114
+ * @param {number} [size=10000]
115
+ * @returns {string}
116
+ */
117
+ function readRecentLog(filePath, size) {
118
+ if (size === undefined) size = 10000;
119
+ try {
120
+ if (!fs.existsSync(filePath)) return `[MISSING] ${filePath}`;
121
+ const stat = fs.statSync(filePath);
122
+ const fileSize = stat.size;
123
+ if (fileSize === 0) return '';
124
+ const readSize = Math.min(size, fileSize);
125
+ const buffer = Buffer.alloc(readSize);
126
+ const fd = fs.openSync(filePath, 'r');
127
+ fs.readSync(fd, buffer, 0, readSize, Math.max(0, fileSize - readSize));
128
+ fs.closeSync(fd);
129
+ return buffer.toString('utf8');
130
+ } catch (e) {
131
+ return `[ERROR READING ${filePath}: ${e.message}]`;
132
+ }
133
+ }
134
+
135
+ function stripTrailingSeparators(value) {
136
+ return String(value || '').replace(/[\\/]+$/, '');
137
+ }
138
+
139
+ /**
140
+ * Normalize a workspace identity for provenance comparisons.
141
+ *
142
+ * macOS commonly exposes the same temporary directory through both `/var/...`
143
+ * and `/private/var/...`. `path.resolve()` keeps those strings different even
144
+ * though they identify the same directory, so use realpath when possible and
145
+ * fall back to the resolved path for stale transcript cwd values.
146
+ *
147
+ * @param {string} value
148
+ * @returns {string}
149
+ */
150
+ function normalizeWorkspaceIdentity(value) {
151
+ let resolved;
152
+ try {
153
+ resolved = stripTrailingSeparators(path.resolve(value));
154
+ } catch {
155
+ return '';
156
+ }
157
+ if (!resolved) return '';
158
+ try {
159
+ return stripTrailingSeparators(fs.realpathSync.native(resolved));
160
+ } catch {
161
+ try {
162
+ return stripTrailingSeparators(fs.realpathSync(resolved));
163
+ } catch {
164
+ return resolved;
165
+ }
166
+ }
167
+ }
168
+
169
+ /**
170
+ * Read the first record(s) of a JSONL transcript and try to extract the
171
+ * originating workspace cwd. Codex rollouts start with a `session_meta`
172
+ * record whose `payload.cwd` is the workspace the session ran in
173
+ * (`{"type":"session_meta","payload":{"cwd":"/home/u/workspace/X", ...}}`).
174
+ * Claude Code may emit a top-level `cwd` on its first record; generic
175
+ * fallback also checks `data.cwd`.
176
+ *
177
+ * Returns the cwd string or null when no recognisable cwd is found in
178
+ * the first ~4 KB of the file. Bounded read so a malformed multi-MB
179
+ * transcript can't stall the discovery pass.
180
+ *
181
+ * @param {string} filePath
182
+ * @returns {string|null}
183
+ */
184
+ function extractTranscriptCwd(filePath) {
185
+ try {
186
+ if (!filePath.endsWith('.jsonl')) return null;
187
+ const head = readFileHead(filePath, 4096);
188
+ if (!head) return null;
189
+ const lines = head.split('\n');
190
+ // Scan at most the first 5 records — `session_meta` should be first
191
+ // for Codex; widen the window slightly in case a writer prepends an
192
+ // envelope record (e.g. version preamble).
193
+ for (let i = 0; i < Math.min(lines.length, 5); i++) {
194
+ const ln = lines[i].trim();
195
+ if (!ln) continue;
196
+ let data;
197
+ try { data = JSON.parse(ln); } catch { continue; }
198
+ if (data && typeof data === 'object') {
199
+ if (data.type === 'session_meta' && data.payload && typeof data.payload.cwd === 'string') {
200
+ return data.payload.cwd;
201
+ }
202
+ if (typeof data.cwd === 'string') return data.cwd;
203
+ }
204
+ }
205
+ return null;
206
+ } catch { return null; }
207
+ }
208
+
209
+ /**
210
+ * Decide whether a transcript file belongs to the workspace we're
211
+ * evolving. The user-level discovery paths (`~/.codex/sessions`,
212
+ * `~/.claude/projects`) hold transcripts from EVERY project the user
213
+ * has touched — pulling them in unfiltered would import unrelated
214
+ * session content into another repo's evolution run (Bugbot PR #130
215
+ * Agentic Security Review MEDIUM: cross-project prompt/context
216
+ * contamination + possible unintended disclosure of prior session
217
+ * data).
218
+ *
219
+ * Match semantics: a session's recorded cwd belongs to "this
220
+ * workspace" if it equals OR is a subdir of ANY of the candidate
221
+ * roots passed in. We accept multiple candidates so a user who
222
+ * `cd`'d into a non-git directory still gets their own sessions
223
+ * back: `getWorkspaceRoot()` may fall back to the evolver install
224
+ * dir when no `.git` is found, but `process.cwd()` still points
225
+ * at the user's actual working dir (which is what the Codex
226
+ * session also recorded). Without this multi-candidate match,
227
+ * issue #543's follow-up scenario — tammypi running evolver from
228
+ * `/home/u/workspace/foo` with no `git init` — silently dropped
229
+ * every transcript even though Codex was active there.
230
+ *
231
+ * Files without a recognisable cwd (older formats, third-party
232
+ * writers) are dropped — fail-closed is the conservative answer
233
+ * when we can't prove provenance.
234
+ *
235
+ * @param {string} filePath
236
+ * @param {string|string[]} candidateRoots — one or more workspace
237
+ * identities; the transcript's cwd matches if any of these
238
+ * equals or is a parent of it.
239
+ * @returns {boolean}
240
+ */
241
+ function transcriptBelongsToWorkspace(filePath, candidateRoots) {
242
+ const cwd = extractTranscriptCwd(filePath);
243
+ if (!cwd) return false;
244
+ const roots = Array.isArray(candidateRoots) ? candidateRoots : [candidateRoots];
245
+ const normCwd = normalizeWorkspaceIdentity(cwd);
246
+ if (!normCwd) return false;
247
+ for (const root of roots) {
248
+ if (!root) continue;
249
+ const normRoot = normalizeWorkspaceIdentity(root);
250
+ if (!normRoot) continue;
251
+ if (normCwd === normRoot) return true;
252
+ if (normCwd.startsWith(normRoot + path.sep)) return true;
253
+ }
254
+ return false;
255
+ }
256
+
257
+ module.exports = {
258
+ resolveTranscriptDirs,
259
+ collectTranscriptFiles,
260
+ readFileHead,
261
+ readRecentLog,
262
+ extractTranscriptCwd,
263
+ transcriptBelongsToWorkspace,
264
+ };