@evomap/evolver 1.89.3 → 1.89.4

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 (104) 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 +1237 -0
  9. package/README.md +86 -528
  10. package/README.public.md +569 -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/index.js +30 -1
  16. package/package.json +6 -17
  17. package/proxy-package.json +39 -0
  18. package/public.manifest.json +143 -0
  19. package/src/config.js +23 -0
  20. package/src/evolve/guards.js +721 -1
  21. package/src/evolve/pipeline/collect.js +1283 -1
  22. package/src/evolve/pipeline/dispatch.js +421 -1
  23. package/src/evolve/pipeline/enrich.js +440 -1
  24. package/src/evolve/pipeline/hub.js +319 -1
  25. package/src/evolve/pipeline/select.js +274 -1
  26. package/src/evolve/pipeline/signals.js +206 -1
  27. package/src/evolve/utils.js +264 -1
  28. package/src/evolve.js +350 -1
  29. package/src/experiment/agentRunner.js +229 -0
  30. package/src/experiment/cli.js +159 -0
  31. package/src/experiment/comparison.js +233 -0
  32. package/src/experiment/metrics.js +75 -0
  33. package/src/forceUpdate.js +147 -59
  34. package/src/gep/a2aProtocol.js +4455 -1
  35. package/src/gep/antiAbuseTelemetry.js +233 -0
  36. package/src/gep/autoDistillConv.js +205 -1
  37. package/src/gep/autoDistillLlm.js +315 -1
  38. package/src/gep/candidateEval.js +92 -1
  39. package/src/gep/candidates.js +198 -1
  40. package/src/gep/contentHash.js +30 -1
  41. package/src/gep/conversationSniffer.js +266 -1
  42. package/src/gep/crypto.js +89 -1
  43. package/src/gep/curriculum.js +163 -1
  44. package/src/gep/deviceId.js +218 -1
  45. package/src/gep/envFingerprint.js +118 -1
  46. package/src/gep/epigenetics.js +31 -1
  47. package/src/gep/execBridge.js +711 -1
  48. package/src/gep/explore.js +289 -1
  49. package/src/gep/hash.js +15 -1
  50. package/src/gep/hubFetch.js +359 -1
  51. package/src/gep/hubReview.js +207 -1
  52. package/src/gep/hubSearch.js +526 -1
  53. package/src/gep/hubVerify.js +306 -1
  54. package/src/gep/learningSignals.js +89 -1
  55. package/src/gep/memoryGraph.js +1374 -1
  56. package/src/gep/memoryGraphAdapter.js +203 -1
  57. package/src/gep/mutation.js +203 -1
  58. package/src/gep/narrativeMemory.js +108 -1
  59. package/src/gep/openPRRegistry.js +205 -1
  60. package/src/gep/personality.js +423 -1
  61. package/src/gep/policyCheck.js +599 -1
  62. package/src/gep/prompt.js +836 -1
  63. package/src/gep/recallInject.js +409 -1
  64. package/src/gep/recallVerifier.js +318 -1
  65. package/src/gep/reflection.js +177 -1
  66. package/src/gep/sanitize.js +9 -0
  67. package/src/gep/selector.js +602 -1
  68. package/src/gep/skillDistiller.js +1294 -1
  69. package/src/gep/solidify.js +1699 -1
  70. package/src/gep/strategy.js +136 -1
  71. package/src/gep/tokenSavings.js +88 -1
  72. package/src/gep/validator/sandboxExecutor.js +29 -1
  73. package/src/gep/workspaceKeychain.js +174 -1
  74. package/src/proxy/extensions/traceControl.js +99 -1
  75. package/src/proxy/index.js +10 -1
  76. package/src/proxy/inject.js +52 -1
  77. package/src/proxy/lifecycle/manager.js +19 -0
  78. package/src/proxy/mailbox/store.js +2 -1
  79. package/src/proxy/router/messages_route.js +5 -2
  80. package/src/proxy/trace/extractor.js +646 -1
  81. package/src/proxy/trace/usage.js +105 -1
  82. package/CONTRIBUTING.md +0 -19
  83. package/assets/cover.png +0 -0
  84. package/scripts/a2a_export.js +0 -63
  85. package/scripts/a2a_ingest.js +0 -79
  86. package/scripts/a2a_promote.js +0 -118
  87. package/scripts/analyze_by_skill.js +0 -121
  88. package/scripts/build_binaries.js +0 -479
  89. package/scripts/check-changelog.js +0 -166
  90. package/scripts/extract_log.js +0 -85
  91. package/scripts/generate_history.js +0 -75
  92. package/scripts/gep_append_event.js +0 -96
  93. package/scripts/gep_personality_report.js +0 -234
  94. package/scripts/human_report.js +0 -147
  95. package/scripts/recall-verify-report.js +0 -234
  96. package/scripts/recover_loop.js +0 -61
  97. package/scripts/refresh_stars_badge.js +0 -168
  98. package/scripts/seed-merchants.js +0 -91
  99. package/scripts/suggest_version.js +0 -89
  100. package/scripts/validate-modules.js +0 -38
  101. package/scripts/validate-suite.js +0 -78
  102. package/skills/index.json +0 -14
  103. /package/assets/gep/{genes.seed.json → genes.json} +0 -0
  104. /package/{skills → bundled-skills}/_meta/SKILL.md +0 -0
@@ -1 +1,136 @@
1
- var _0x45a4e7=_0x4be5;function _0x20b6(){var _0xf6dd74=['\x42\x43\x6f\x48\x75\x6d\x6f\x32\x57\x51\x65','\x57\x50\x57\x46\x57\x35\x78\x64\x52\x43\x6f\x6b\x57\x34\x4a\x63\x4f\x30\x53','\x57\x34\x54\x35\x67\x38\x6b\x54','\x6d\x4b\x53\x7a\x78\x47','\x57\x35\x78\x64\x50\x78\x53\x39\x77\x4e\x6c\x64\x4f\x31\x34','\x57\x37\x2f\x64\x4a\x43\x6b\x57\x6e\x4e\x4b\x6a\x75\x71','\x74\x62\x44\x38\x6d\x53\x6b\x6e\x73\x48\x65\x63','\x43\x43\x6f\x45\x71\x6d\x6f\x4b\x57\x36\x64\x63\x47\x6d\x6b\x75\x57\x51\x30','\x57\x52\x56\x63\x55\x43\x6f\x73\x64\x66\x31\x79\x45\x30\x4f','\x6d\x73\x33\x64\x50\x6d\x6f\x37\x57\x4f\x46\x63\x51\x47\x70\x63\x50\x61','\x57\x52\x38\x55\x57\x52\x78\x63\x4b\x38\x6b\x51\x6a\x59\x6c\x64\x48\x61','\x57\x36\x71\x52\x41\x67\x43\x77\x77\x53\x6f\x4e\x6d\x57','\x57\x52\x56\x63\x54\x43\x6f\x63\x57\x51\x6c\x63\x4f\x38\x6f\x4c\x57\x52\x37\x63\x4d\x47','\x57\x51\x74\x64\x48\x6d\x6b\x59\x66\x31\x34\x61\x76\x38\x6f\x50','\x57\x52\x50\x6d\x6d\x6d\x6b\x6e','\x57\x4f\x54\x53\x57\x50\x70\x64\x54\x63\x76\x43\x57\x4f\x37\x64\x4e\x78\x34\x68\x57\x35\x52\x63\x4f\x33\x38','\x57\x50\x4b\x6f\x44\x72\x53\x4d\x79\x38\x6f\x63\x57\x52\x47','\x43\x53\x6f\x62\x7a\x53\x6f\x50\x57\x52\x6c\x63\x47\x38\x6b\x69\x57\x52\x43','\x57\x36\x48\x46\x57\x37\x64\x64\x4e\x38\x6f\x38','\x66\x38\x6b\x4c\x70\x75\x44\x5a\x78\x38\x6b\x43\x45\x71','\x57\x36\x5a\x64\x53\x38\x6b\x50\x6d\x6d\x6f\x63\x63\x43\x6b\x77\x43\x57','\x66\x32\x75\x6c\x57\x51\x4c\x47\x77\x47','\x6d\x64\x64\x64\x50\x38\x6f\x30\x57\x50\x52\x63\x53\x72\x79','\x57\x36\x52\x64\x53\x38\x6b\x39\x46\x38\x6b\x6c\x6e\x53\x6b\x37\x44\x71','\x57\x34\x54\x58\x57\x36\x74\x64\x55\x6d\x6f\x77','\x57\x52\x70\x63\x51\x38\x6f\x43\x57\x51\x68\x63\x52\x61','\x46\x66\x6d\x38\x57\x4f\x30','\x57\x4f\x4c\x78\x71\x6d\x6f\x51\x57\x37\x65\x70\x57\x37\x72\x71','\x57\x34\x48\x63\x57\x50\x74\x63\x56\x43\x6b\x78\x57\x51\x46\x64\x50\x4e\x4e\x64\x55\x47\x33\x63\x4a\x74\x66\x41','\x57\x35\x56\x63\x4f\x63\x58\x6d\x65\x43\x6b\x55\x57\x4f\x68\x63\x52\x57','\x57\x36\x4e\x64\x53\x6d\x6b\x7a\x57\x34\x52\x64\x4b\x53\x6b\x6e\x57\x4f\x74\x64\x48\x71','\x44\x6d\x6f\x76\x57\x50\x71\x50\x64\x61','\x73\x38\x6f\x39\x67\x66\x47\x35','\x75\x43\x6b\x44\x77\x6d\x6f\x2f\x57\x51\x72\x70\x57\x34\x68\x63\x4f\x57','\x71\x53\x6f\x32\x57\x52\x79\x39\x61\x71','\x6f\x72\x7a\x55','\x57\x37\x78\x64\x53\x43\x6b\x6e\x78\x71','\x57\x37\x75\x44\x57\x36\x46\x63\x4a\x65\x4b','\x74\x53\x6f\x79\x57\x52\x57\x38\x67\x71','\x57\x35\x56\x63\x56\x62\x57','\x57\x35\x78\x64\x54\x68\x38\x55\x78\x77\x6d','\x57\x50\x79\x42\x44\x32\x71\x31','\x6b\x53\x6b\x69\x57\x37\x62\x6f\x43\x64\x70\x63\x4d\x4a\x69','\x57\x35\x5a\x64\x55\x68\x6d\x4f\x76\x47','\x57\x52\x78\x64\x4d\x6d\x6b\x48\x67\x4c\x69\x58\x44\x6d\x6f\x5a','\x74\x53\x6f\x44\x57\x51\x65','\x6e\x77\x71\x63\x57\x52\x4c\x68','\x6b\x43\x6f\x59\x57\x4f\x79\x53\x57\x35\x38\x6f','\x57\x34\x4e\x64\x4a\x66\x4e\x64\x4e\x43\x6b\x56','\x57\x50\x34\x78\x43\x61\x4b\x38\x41\x43\x6f\x6a\x57\x52\x53','\x66\x4d\x4b\x43\x57\x51\x7a\x4f\x72\x6d\x6f\x34','\x57\x36\x52\x64\x55\x43\x6b\x52','\x62\x4d\x78\x64\x4f\x58\x52\x64\x52\x6d\x6b\x76\x7a\x74\x69','\x6d\x58\x39\x4b\x57\x34\x52\x63\x52\x76\x4e\x63\x53\x6d\x6f\x45','\x57\x52\x2f\x63\x55\x53\x6f\x70\x66\x75\x7a\x68\x42\x71','\x73\x4c\x4b\x35\x57\x37\x58\x35\x57\x36\x70\x63\x53\x61','\x76\x43\x6f\x63\x57\x4f\x43\x34\x65\x53\x6b\x4c\x57\x51\x78\x63\x54\x47','\x57\x36\x75\x2f\x42\x57','\x78\x38\x6b\x45\x78\x38\x6f\x2f\x57\x51\x35\x69','\x57\x34\x62\x30\x57\x34\x6d\x4d','\x57\x35\x61\x35\x57\x35\x68\x63\x50\x4d\x71','\x57\x52\x37\x64\x53\x53\x6b\x2b\x6f\x75\x30','\x57\x51\x5a\x64\x56\x4d\x70\x64\x53\x53\x6b\x67\x66\x53\x6b\x30\x73\x61','\x57\x36\x52\x63\x51\x38\x6f\x6e\x57\x4f\x64\x63\x4c\x38\x6f\x6f\x57\x51\x6d','\x73\x76\x7a\x59\x6e\x53\x6b\x66\x72\x47\x79\x64','\x57\x51\x2f\x63\x47\x5a\x42\x63\x49\x53\x6f\x4f\x57\x34\x46\x63\x56\x43\x6b\x42','\x57\x4f\x4b\x6b\x41\x72\x53\x48\x43\x47','\x57\x50\x71\x46\x74\x72\x69\x36\x7a\x43\x6f\x75\x57\x52\x71','\x57\x34\x64\x63\x56\x5a\x72\x6c\x66\x6d\x6b\x55\x57\x4f\x64\x63\x48\x61','\x43\x6d\x6f\x67\x67\x4c\x53\x61\x68\x43\x6b\x68\x43\x47','\x57\x4f\x4a\x63\x48\x75\x5a\x63\x49\x63\x76\x4e\x6c\x49\x53','\x57\x36\x6c\x64\x50\x6d\x6b\x6e\x57\x34\x4e\x64\x51\x71','\x75\x53\x6f\x67\x6c\x53\x6f\x33\x71\x57','\x57\x35\x4f\x61\x71\x6d\x6f\x47\x57\x37\x65\x45\x57\x4f\x6e\x6d','\x79\x49\x74\x64\x48\x31\x48\x70\x57\x52\x39\x53\x73\x71','\x7a\x68\x64\x63\x52\x53\x6b\x54\x57\x34\x5a\x64\x53\x65\x6c\x63\x56\x49\x4a\x63\x51\x6d\x6b\x43\x65\x43\x6b\x4d','\x71\x72\x50\x30','\x57\x35\x74\x64\x54\x67\x34\x39\x76\x33\x4e\x63\x47\x4b\x69','\x46\x53\x6f\x45\x78\x6d\x6f\x59\x57\x52\x74\x63\x4c\x6d\x6b\x6f\x57\x52\x57','\x57\x36\x43\x68\x62\x64\x42\x63\x4f\x53\x6f\x66\x57\x51\x4b\x45','\x57\x35\x6e\x56\x62\x38\x6b\x53\x6f\x4c\x44\x41\x57\x34\x71','\x73\x53\x6b\x64\x73\x43\x6f\x4c\x57\x52\x4f\x69','\x57\x35\x69\x64\x57\x4f\x46\x64\x53\x47','\x66\x4d\x68\x64\x56\x58\x52\x64\x51\x38\x6b\x65','\x7a\x68\x4e\x63\x50\x53\x6b\x48\x57\x34\x78\x64\x55\x4b\x68\x64\x50\x57\x74\x63\x4f\x6d\x6b\x35\x62\x6d\x6b\x45\x74\x47','\x7a\x43\x6f\x6c\x6d\x47','\x6f\x38\x6f\x45\x57\x37\x6e\x6d\x44\x64\x64\x63\x4e\x31\x30','\x61\x77\x75\x69\x57\x51\x54\x37\x71\x43\x6f\x37\x75\x71','\x72\x38\x6f\x64\x64\x6d\x6f\x71\x57\x51\x62\x45\x57\x50\x56\x63\x4f\x57','\x57\x36\x50\x6b\x6e\x53\x6b\x6b\x57\x34\x4e\x63\x55\x49\x6c\x64\x4d\x71','\x57\x36\x4e\x63\x49\x32\x33\x64\x48\x43\x6b\x33\x57\x50\x56\x64\x50\x6d\x6f\x74','\x57\x51\x68\x63\x52\x38\x6f\x6a\x57\x51\x5a\x63\x53\x43\x6f\x39\x57\x36\x46\x63\x4a\x61','\x57\x52\x79\x74\x57\x51\x42\x63\x4b\x6d\x6b\x2f','\x6f\x32\x74\x64\x4d\x32\x5a\x64\x48\x68\x30\x64\x44\x71','\x67\x57\x6e\x4b\x57\x36\x46\x63\x4a\x47','\x63\x32\x4a\x64\x51\x57','\x70\x63\x42\x64\x55\x43\x6f\x33\x57\x4f\x70\x63\x4f\x47\x46\x63\x54\x71','\x57\x50\x42\x64\x50\x67\x6c\x64\x54\x53\x6b\x41\x69\x6d\x6f\x59','\x73\x6d\x6f\x78\x57\x51\x6d\x58\x63\x43\x6b\x59\x57\x50\x52\x63\x53\x71','\x57\x37\x78\x64\x4a\x4d\x37\x64\x48\x43\x6b\x51\x57\x50\x5a\x64\x4d\x53\x6f\x44','\x57\x34\x7a\x4d\x57\x34\x2f\x64\x4b\x6d\x6f\x4d\x57\x34\x78\x64\x55\x32\x6d\x58\x57\x50\x31\x42\x6c\x74\x75','\x57\x52\x47\x2f\x57\x50\x39\x48\x57\x50\x34','\x57\x36\x74\x64\x53\x38\x6f\x35\x70\x38\x6f\x6f\x64\x6d\x6f\x36\x45\x47','\x57\x37\x68\x64\x50\x53\x6b\x54\x6f\x6d\x6f\x67\x65\x53\x6b\x47\x45\x71','\x75\x53\x6f\x75\x57\x35\x34\x63\x71\x43\x6f\x41\x57\x4f\x39\x47','\x66\x33\x64\x64\x51\x48\x52\x64\x50\x53\x6b\x70\x6c\x73\x75','\x42\x43\x6f\x78\x6f\x71','\x73\x59\x61\x4f\x57\x52\x58\x53\x73\x43\x6f\x56\x78\x61','\x57\x34\x72\x38\x67\x38\x6b\x56\x69\x31\x76\x77\x57\x37\x47','\x6a\x32\x65\x78\x57\x51\x4c\x4e\x73\x38\x6f\x55\x71\x71','\x57\x37\x4e\x64\x47\x6d\x6f\x38\x57\x4f\x57','\x69\x30\x53\x46\x76\x58\x52\x63\x4d\x67\x64\x63\x55\x61','\x57\x34\x57\x74\x45\x4c\x74\x63\x50\x53\x6f\x6c\x57\x51\x38\x52','\x77\x38\x6b\x76\x78\x6d\x6f\x35\x57\x52\x54\x73\x57\x34\x47','\x43\x6d\x6f\x7a\x69\x31\x53','\x57\x52\x2f\x63\x4d\x66\x78\x63\x4d\x4a\x48\x4d\x78\x72\x30','\x57\x4f\x76\x69\x44\x43\x6f\x6f\x57\x34\x38','\x57\x36\x78\x64\x47\x4e\x6c\x64\x4a\x43\x6b\x33\x57\x50\x46\x63\x55\x61','\x57\x4f\x47\x67\x46\x48\x71\x50\x42\x6d\x6f\x75','\x57\x34\x48\x56\x62\x38\x6f\x54\x44\x4d\x72\x68\x57\x36\x43','\x76\x38\x6b\x64\x71\x53\x6f\x35\x57\x52\x39\x68\x57\x34\x2f\x63\x4f\x57','\x79\x43\x6f\x7a\x6d\x30\x46\x63\x50\x53\x6f\x36\x57\x52\x74\x64\x54\x57','\x57\x52\x78\x64\x4d\x6d\x6b\x48\x67\x4c\x69\x58','\x7a\x53\x6b\x70\x57\x37\x54\x74\x44\x71','\x57\x36\x39\x42\x57\x36\x56\x64\x49\x71','\x46\x6d\x6f\x38\x6d\x4c\x70\x63\x4d\x61','\x45\x6d\x6f\x6a\x71\x53\x6f\x54\x57\x51\x2f\x63\x4c\x6d\x6b\x45','\x57\x34\x38\x70\x66\x64\x42\x63\x51\x6d\x6b\x51\x57\x51\x34','\x57\x4f\x38\x6f\x42\x72\x38','\x57\x34\x48\x4b\x67\x53\x6b\x53\x69\x65\x62\x6c\x57\x37\x69','\x71\x71\x7a\x65\x6f\x38\x6b\x72\x74\x61\x43\x6f','\x57\x37\x2f\x64\x55\x6d\x6b\x39\x43\x43\x6f\x69\x67\x53\x6b\x51\x46\x71','\x6a\x62\x39\x32\x57\x35\x56\x63\x56\x66\x47','\x57\x52\x65\x37\x57\x4f\x33\x63\x4c\x38\x6b\x48\x57\x35\x46\x63\x52\x66\x34','\x57\x35\x52\x63\x55\x49\x48\x49\x6b\x61','\x62\x4b\x75\x48\x78\x53\x6b\x48','\x57\x4f\x72\x63\x75\x53\x6f\x53\x57\x36\x34\x64\x57\x51\x35\x43','\x57\x50\x61\x36\x68\x53\x6b\x35\x6f\x30\x58\x44\x57\x35\x47','\x57\x51\x37\x63\x4a\x32\x2f\x63\x4e\x74\x35\x38\x79\x61\x6d','\x77\x58\x6e\x30\x63\x53\x6f\x37\x74\x59\x34\x73\x6a\x4d\x61\x4d\x57\x35\x70\x64\x54\x47','\x62\x43\x6b\x54\x69\x31\x31\x49','\x57\x50\x38\x6b\x41\x48\x4b\x36\x41\x43\x6f\x78\x57\x51\x47','\x45\x38\x6f\x45\x71\x6d\x6f\x49\x57\x51\x78\x63\x55\x43\x6b\x69\x57\x51\x53','\x57\x52\x61\x39\x43\x4d\x53','\x57\x34\x6d\x7a\x61\x64\x2f\x63\x56\x38\x6b\x78\x57\x51\x30','\x72\x4b\x38\x4e\x57\x37\x39\x47\x57\x37\x64\x63\x4f\x74\x38','\x75\x6d\x6b\x75\x77\x6d\x6f\x2b\x57\x51\x62\x69\x57\x35\x5a\x64\x50\x47','\x57\x52\x71\x4a\x57\x52\x34','\x41\x53\x6b\x67\x57\x34\x4e\x64\x52\x53\x6f\x58\x43\x61\x42\x64\x51\x76\x68\x64\x4c\x38\x6b\x7a\x57\x50\x7a\x78','\x57\x36\x4a\x64\x4e\x38\x6b\x2b\x57\x34\x70\x64\x4c\x6d\x6b\x44\x57\x4f\x78\x64\x4a\x61','\x44\x6d\x6f\x46\x76\x53\x6f\x4b\x57\x52\x4a\x63\x51\x43\x6b\x44','\x57\x50\x33\x63\x4d\x6d\x6f\x48\x57\x4f\x52\x63\x4b\x71','\x57\x35\x64\x63\x4d\x4e\x4a\x64\x4f\x43\x6b\x4c\x41\x53\x6f\x4b\x57\x4f\x4f','\x57\x34\x4a\x64\x52\x6d\x6b\x4e\x57\x36\x5a\x64\x4f\x47','\x44\x53\x6f\x44\x6a\x31\x2f\x63\x4b\x6d\x6f\x37','\x67\x59\x46\x64\x50\x43\x6f\x31\x57\x50\x74\x63\x52\x31\x70\x63\x56\x57','\x45\x4a\x2f\x63\x54\x73\x56\x63\x47\x74\x31\x43\x6f\x71','\x7a\x64\x68\x64\x4c\x31\x65\x65','\x6a\x6d\x6b\x63\x63\x38\x6b\x33\x57\x37\x68\x63\x53\x6d\x6b\x73\x57\x4f\x38\x76\x66\x6d\x6b\x48','\x44\x58\x72\x59\x57\x35\x37\x64\x56\x31\x74\x63\x51\x43\x6f\x79','\x6f\x38\x6f\x65\x57\x52\x64\x63\x49\x6d\x6b\x51','\x57\x52\x57\x6c\x43\x33\x53\x6a','\x57\x50\x62\x49\x6d\x38\x6b\x36\x6f\x65\x31\x53','\x57\x34\x2f\x64\x56\x4e\x61','\x57\x52\x2f\x63\x51\x38\x6f\x64','\x75\x43\x6f\x78\x6f\x6d\x6f\x37\x71\x53\x6f\x6f\x57\x51\x69\x53','\x72\x38\x6f\x6a\x67\x53\x6f\x67\x45\x57','\x73\x53\x6f\x76\x6a\x43\x6f\x2f','\x74\x6d\x6f\x2f\x41\x62\x47\x32\x43\x6d\x6f\x76\x73\x66\x61\x69\x57\x4f\x69','\x57\x50\x39\x49\x57\x52\x4a\x64\x53\x74\x72\x57\x57\x36\x42\x63\x50\x57','\x57\x50\x56\x63\x54\x43\x6f\x64\x63\x30\x48\x79\x7a\x47\x4b','\x44\x38\x6b\x79\x6a\x65\x52\x63\x4d\x6d\x6f\x52\x57\x51\x5a\x64\x53\x57','\x65\x53\x6f\x76\x57\x51\x71\x53\x57\x36\x4b','\x43\x38\x6b\x34\x57\x35\x39\x42\x42\x47','\x57\x52\x65\x51\x57\x52\x37\x63\x4a\x61','\x64\x30\x71\x64\x76\x62\x78\x64\x4c\x67\x46\x63\x50\x71','\x57\x36\x31\x6e\x57\x35\x70\x64\x49\x6d\x6f\x49\x57\x37\x38\x72','\x57\x52\x46\x63\x54\x53\x6f\x69\x66\x4c\x4c\x43\x46\x61\x38','\x57\x4f\x6c\x63\x47\x53\x6f\x30\x57\x50\x2f\x63\x50\x61','\x57\x36\x30\x32\x46\x38\x6f\x4f\x41\x62\x7a\x67\x65\x61','\x66\x38\x6f\x33\x57\x52\x46\x63\x4d\x53\x6b\x6e','\x77\x43\x6b\x4f\x57\x34\x4c\x73\x73\x47','\x57\x35\x35\x6c\x44\x53\x6f\x30\x57\x35\x69\x42\x57\x51\x65','\x57\x4f\x54\x4a\x57\x50\x33\x64\x53\x63\x50\x7a\x57\x4f\x33\x64\x55\x67\x71\x55\x57\x37\x6c\x63\x4a\x77\x65','\x57\x34\x7a\x4a\x57\x34\x37\x64\x4e\x43\x6f\x4c\x57\x34\x37\x64\x56\x72\x61\x63\x57\x52\x76\x33\x70\x47\x43\x6c','\x57\x34\x47\x2b\x61\x59\x46\x63\x53\x43\x6b\x72\x57\x51\x30\x71','\x6f\x38\x6f\x36\x57\x50\x4b\x38\x57\x35\x69','\x57\x37\x5a\x63\x4e\x4e\x4e\x64\x50\x53\x6b\x59\x42\x43\x6f\x39\x57\x50\x61','\x57\x36\x42\x64\x49\x78\x46\x64\x49\x6d\x6b\x51\x57\x50\x74\x64\x53\x57','\x57\x52\x4e\x63\x56\x43\x6b\x69\x77\x77\x4c\x73\x41\x58\x38','\x43\x53\x6f\x46\x65\x53\x6f\x68\x57\x51\x2f\x63\x48\x43\x6b\x6f\x57\x51\x57','\x41\x43\x6f\x64\x75\x38\x6f\x31\x57\x51\x78\x63\x47\x43\x6b\x63','\x57\x51\x30\x47\x41\x71','\x67\x32\x57\x6f\x78\x43\x6b\x4e','\x57\x4f\x68\x63\x4a\x38\x6f\x2b\x57\x4f\x5a\x63\x47\x43\x6f\x62\x57\x4f\x33\x63\x54\x47','\x57\x34\x48\x35\x61\x6d\x6b\x51\x6f\x65\x79\x46\x57\x37\x71','\x6f\x31\x57\x4c\x75\x43\x6b\x4e','\x45\x53\x6f\x67\x62\x4b\x65\x61\x62\x53\x6b\x69\x44\x61','\x65\x6d\x6f\x6e\x79\x43\x6f\x33\x57\x52\x66\x70\x57\x35\x42\x63\x52\x57','\x57\x35\x64\x63\x54\x71\x54\x68\x65\x43\x6b\x49\x57\x4f\x6c\x63\x53\x57','\x57\x36\x4b\x2f\x42\x53\x6f\x69\x6d\x4b\x72\x33\x66\x47','\x57\x36\x56\x64\x4a\x53\x6b\x69\x57\x34\x37\x64\x49\x47','\x57\x34\x53\x73\x75\x53\x6f\x70\x44\x47','\x57\x52\x31\x79\x7a\x38\x6f\x59\x57\x35\x71','\x57\x52\x71\x46\x7a\x78\x4b\x7a','\x57\x36\x53\x76\x77\x6d\x6f\x46\x45\x61','\x6b\x76\x4f\x7a\x75\x47\x37\x64\x4e\x67\x4e\x63\x51\x71','\x57\x52\x68\x63\x54\x6d\x6f\x63','\x57\x4f\x6a\x44\x73\x61','\x57\x34\x65\x77\x45\x71','\x57\x4f\x61\x4c\x57\x52\x48\x6c\x57\x50\x34','\x72\x58\x4c\x2b','\x76\x4a\x52\x63\x4e\x63\x37\x63\x4d\x49\x62\x62\x6d\x57','\x75\x53\x6f\x4b\x57\x50\x43\x31\x63\x71','\x43\x38\x6b\x48\x57\x37\x7a\x30\x42\x57','\x57\x35\x68\x63\x51\x61\x48\x69\x64\x6d\x6b\x35\x57\x50\x43','\x57\x34\x72\x62\x65\x38\x6b\x48\x67\x71','\x57\x34\x74\x64\x4a\x43\x6f\x5a\x57\x4f\x7a\x43\x63\x49\x78\x63\x50\x71','\x57\x36\x37\x64\x4b\x47\x4e\x64\x4d\x78\x4f\x4a\x6e\x4a\x74\x64\x48\x31\x52\x64\x52\x31\x78\x63\x52\x47','\x57\x4f\x50\x68\x75\x53\x6f\x51','\x71\x59\x4a\x63\x49\x4a\x70\x63\x4f\x71','\x57\x52\x38\x35\x57\x51\x4a\x63\x4b\x38\x6b\x4d\x46\x4a\x4a\x64\x4e\x57','\x57\x35\x74\x64\x54\x67\x34\x39\x76\x33\x4b','\x57\x52\x54\x48\x42\x43\x6f\x45\x42\x48\x62\x57\x65\x71','\x57\x52\x4a\x63\x49\x76\x64\x63\x47\x64\x48\x38\x41\x58\x43','\x57\x51\x6a\x62\x57\x50\x52\x64\x4e\x63\x47'];_0x20b6=function(){return _0xf6dd74;};return _0x20b6();}(function(_0xe45d4a,_0x1eb8f9){var _0x2456d5=_0x4be5,_0x3df5c0=_0xe45d4a();while(!![]){try{var _0x30e566=-parseInt(_0x2456d5(0xea,'\x36\x6a\x31\x33'))/(0x3*-0x88f+0x3*-0x5d2+0x2*0x1592)*(-parseInt(_0x2456d5(0x146,'\x45\x58\x4a\x52'))/(0x29*-0x3a+0x2b*-0x17+0xd29))+-parseInt(_0x2456d5(0x139,'\x65\x4f\x4a\x51'))/(-0x1f02+0x19ba+-0x5*-0x10f)+parseInt(_0x2456d5(0x122,'\x6c\x21\x31\x69'))/(-0xe16+0x1*-0xf76+0x1d90)*(-parseInt(_0x2456d5(0xfe,'\x30\x74\x46\x69'))/(0x1*0x15a1+-0x10c3*0x1+0x11*-0x49))+parseInt(_0x2456d5(0x91,'\x30\x74\x46\x69'))/(0x1066+0x2007+-0x1*0x3067)*(-parseInt(_0x2456d5(0xf0,'\x39\x5d\x44\x52'))/(-0x45*-0xb+0x1c09*0x1+0xa53*-0x3))+-parseInt(_0x2456d5(0x87,'\x38\x71\x23\x73'))/(0x32*-0x87+0x311+0x1755)*(-parseInt(_0x2456d5(0x93,'\x24\x7a\x4a\x77'))/(0x43e+-0x1ee0+0x1aab))+-parseInt(_0x2456d5(0x9e,'\x79\x4f\x39\x2a'))/(0x1c3f+0x2299+-0x3ece)*(-parseInt(_0x2456d5(0x9c,'\x24\x7a\x4a\x77'))/(0xf3e+0x1809+-0x4*0x9cf))+parseInt(_0x2456d5(0xac,'\x72\x53\x6c\x73'))/(0x235e+-0x467*-0x6+-0x1*0x3dbc);if(_0x30e566===_0x1eb8f9)break;else _0x3df5c0['push'](_0x3df5c0['shift']());}catch(_0x2ba55d){_0x3df5c0['push'](_0x3df5c0['shift']());}}}(_0x20b6,-0x7298b+0x234e4+-0x17e*-0xb51));var _0x1b1493=(function(){var _0x5607a7=!![];return function(_0x4a1d2e,_0x263edd){var _0x40ee99=_0x4be5,_0x4903bf={};_0x4903bf[_0x40ee99(0x73,'\x45\x58\x29\x51')]=function(_0x3da08b,_0x58ef11){return _0x3da08b===_0x58ef11;};var _0x4eb63d=_0x4903bf,_0x5dd922=_0x5607a7?function(){var _0x4128f5=_0x40ee99;if(_0x263edd){if(_0x4eb63d[_0x4128f5(0x102,'\x46\x69\x48\x72')]('\x71\x48\x4d\x66\x6a',_0x4128f5(0x109,'\x4f\x6a\x6f\x48'))){var _0x14469a=_0x263edd[_0x4128f5(0x143,'\x38\x71\x23\x73')](_0x4a1d2e,arguments);return _0x263edd=null,_0x14469a;}else return _0x4c4d37[_0x4128f5(0xc4,'\x36\x48\x68\x70')](_0x17eb44);}}:function(){};return _0x5607a7=![],_0x5dd922;};}()),_0x1bcbdd=_0x1b1493(this,function(){var _0x50e2a3=_0x4be5;return _0x1bcbdd['\x74\x6f\x53\x74\x72\x69\x6e\x67']()[_0x50e2a3(0xcc,'\x41\x33\x37\x79')](_0x50e2a3(0xa5,'\x42\x49\x4a\x5d')+_0x50e2a3(0x83,'\x31\x65\x68\x63'))['\x74\x6f\x53\x74\x72\x69\x6e\x67']()[_0x50e2a3(0x96,'\x5d\x66\x67\x56')+_0x50e2a3(0x7b,'\x40\x49\x4c\x47')](_0x1bcbdd)[_0x50e2a3(0x70,'\x45\x58\x29\x51')](_0x50e2a3(0x89,'\x39\x36\x69\x4c')+_0x50e2a3(0x144,'\x41\x33\x37\x79'));});_0x1bcbdd();var _0x1b85ac=require('\x66\x73'),_0x8f7e95=require(_0x45a4e7(0x138,'\x78\x32\x29\x4a')),_0x2142a0={};_0x2142a0[_0x45a4e7(0x126,'\x45\x58\x29\x51')]=0.2,_0x2142a0[_0x45a4e7(0x116,'\x4d\x43\x39\x46')]=0.2,_0x2142a0[_0x45a4e7(0xc0,'\x55\x4c\x70\x70')]=0.5,_0x2142a0[_0x45a4e7(0xd8,'\x43\x6d\x46\x77')]=0.1,_0x2142a0['\x72\x65\x70\x61\x69\x72\x4c\x6f'+_0x45a4e7(0x8b,'\x4a\x28\x40\x50')+_0x45a4e7(0x119,'\x6f\x65\x75\x56')]=0.5,_0x2142a0[_0x45a4e7(0xcf,'\x4f\x6a\x6f\x48')]=_0x45a4e7(0xb5,'\x5b\x6d\x6d\x41'),_0x2142a0[_0x45a4e7(0x7d,'\x41\x33\x37\x79')+'\x69\x6f\x6e']=_0x45a4e7(0xe3,'\x24\x7a\x4a\x77')+'\x70\x65\x72\x61\x74\x69\x6f\x6e'+_0x45a4e7(0xb3,'\x5b\x6d\x6d\x41')+_0x45a4e7(0xa1,'\x78\x32\x29\x4a')+'\x77\x69\x74\x68\x20\x73\x74\x61'+_0x45a4e7(0xbd,'\x39\x36\x69\x4c');var _0x47abc9={};_0x47abc9[_0x45a4e7(0x9b,'\x25\x6a\x74\x39')]=0.05,_0x47abc9[_0x45a4e7(0x14b,'\x55\x4c\x70\x70')]=0.1,_0x47abc9[_0x45a4e7(0x136,'\x38\x71\x23\x73')]=0.8,_0x47abc9[_0x45a4e7(0x11f,'\x55\x4b\x66\x64')]=0.05,_0x47abc9[_0x45a4e7(0xab,'\x39\x36\x69\x4c')+_0x45a4e7(0x147,'\x55\x4b\x66\x64')+_0x45a4e7(0x94,'\x39\x26\x71\x5b')]=0.3,_0x47abc9[_0x45a4e7(0x13c,'\x36\x48\x68\x70')]=_0x45a4e7(0xf7,'\x4d\x43\x39\x46')+_0x45a4e7(0x106,'\x5d\x66\x67\x56'),_0x47abc9[_0x45a4e7(0xd5,'\x4a\x28\x40\x50')+_0x45a4e7(0xb2,'\x28\x35\x7a\x4d')]='\x53\x79\x73\x74\x65\x6d\x20\x69'+_0x45a4e7(0xf3,'\x28\x35\x7a\x4d')+_0x45a4e7(0x10e,'\x55\x4c\x70\x70')+_0x45a4e7(0xae,'\x40\x49\x4c\x47')+_0x45a4e7(0x132,'\x77\x46\x50\x77')+_0x45a4e7(0xcb,'\x40\x49\x4c\x47')+_0x45a4e7(0x128,'\x6c\x21\x31\x69')+'\x2e';var _0x565a69={};_0x565a69[_0x45a4e7(0x8a,'\x4a\x28\x40\x50')]=0.4,_0x565a69[_0x45a4e7(0x116,'\x4d\x43\x39\x46')]=0.35,_0x565a69[_0x45a4e7(0xa8,'\x24\x7a\x4a\x77')]=0.2,_0x565a69['\x65\x78\x70\x6c\x6f\x72\x65']=0.05,_0x565a69[_0x45a4e7(0xaa,'\x4e\x7a\x56\x6c')+_0x45a4e7(0x13b,'\x5d\x66\x67\x56')+_0x45a4e7(0x81,'\x37\x47\x58\x71')]=0.7,_0x565a69[_0x45a4e7(0xc3,'\x79\x4f\x39\x2a')]=_0x45a4e7(0x103,'\x21\x40\x68\x21')+'\x67',_0x565a69[_0x45a4e7(0x133,'\x24\x7a\x4a\x77')+_0x45a4e7(0x11b,'\x39\x26\x71\x5b')]=_0x45a4e7(0x97,'\x43\x6d\x46\x77')+_0x45a4e7(0xb8,'\x6f\x65\x75\x56')+_0x45a4e7(0x105,'\x77\x46\x50\x77')+'\x73\x20\x6f\x6e\x20\x73\x74\x61'+_0x45a4e7(0x13d,'\x39\x5d\x44\x52')+'\x6e\x64\x20\x72\x6f\x62\x75\x73'+_0x45a4e7(0x99,'\x55\x4c\x70\x70');var _0x55dab8={};_0x55dab8[_0x45a4e7(0x13f,'\x5b\x6d\x6d\x41')]=0.8,_0x55dab8[_0x45a4e7(0xaf,'\x40\x49\x4c\x47')]=0.18,_0x55dab8[_0x45a4e7(0xd9,'\x61\x36\x5d\x53')]=0x0,_0x55dab8[_0x45a4e7(0xc6,'\x5d\x66\x67\x56')]=0.02,_0x55dab8[_0x45a4e7(0x13e,'\x40\x49\x4c\x47')+_0x45a4e7(0x80,'\x4e\x7a\x56\x6c')+_0x45a4e7(0x6f,'\x55\x4b\x66\x64')]=0x1,_0x55dab8[_0x45a4e7(0x90,'\x72\x40\x30\x66')]=_0x45a4e7(0x8e,'\x6c\x21\x31\x69')+_0x45a4e7(0x6b,'\x41\x33\x37\x79'),_0x55dab8[_0x45a4e7(0x10f,'\x55\x4b\x66\x64')+'\x69\x6f\x6e']=_0x45a4e7(0xf2,'\x77\x46\x50\x77')+_0x45a4e7(0xa0,'\x55\x4c\x70\x70')+'\x76\x65\x72\x79\x74\x68\x69\x6e'+_0x45a4e7(0x88,'\x39\x26\x71\x5b')+_0x45a4e7(0x135,'\x24\x31\x23\x6e')+_0x45a4e7(0xda,'\x55\x4c\x70\x70')+_0x45a4e7(0xe5,'\x36\x5b\x73\x58');var _0x3f623e={};function _0x4be5(_0x356965,_0x2c4f80){_0x356965=_0x356965-(-0x17cf+0x6a9*-0x3+0x2c35);var _0x37cfb1=_0x20b6();var _0x5b8143=_0x37cfb1[_0x356965];if(_0x4be5['\x6e\x6e\x62\x79\x67\x57']===undefined){var _0x2a7437=function(_0x5c1e8c){var _0x92d25c='\x61\x62\x63\x64\x65\x66\x67\x68\x69\x6a\x6b\x6c\x6d\x6e\x6f\x70\x71\x72\x73\x74\x75\x76\x77\x78\x79\x7a\x41\x42\x43\x44\x45\x46\x47\x48\x49\x4a\x4b\x4c\x4d\x4e\x4f\x50\x51\x52\x53\x54\x55\x56\x57\x58\x59\x5a\x30\x31\x32\x33\x34\x35\x36\x37\x38\x39\x2b\x2f\x3d';var _0x161ee2='',_0x5d944a='',_0x1b1adb=_0x161ee2+_0x2a7437,_0x5cba90=(''+function(){return 0x171d+0x28b*-0x7+-0x550;})['\x69\x6e\x64\x65\x78\x4f\x66']('\x0a')!==-(-0xba4+-0x153a+0x2fd*0xb);for(var _0x58f8ef=-0x11a5+0x4a*-0x5+0x1317,_0x17bd63,_0x24a80d,_0x2e5dcd=-0x1015*0x1+0xb2d+-0x9d*-0x8;_0x24a80d=_0x5c1e8c['\x63\x68\x61\x72\x41\x74'](_0x2e5dcd++);~_0x24a80d&&(_0x17bd63=_0x58f8ef%(-0x23*0x84+-0x11*0x62+0x4ea*0x5)?_0x17bd63*(-0x62c+-0x14ff+-0x1b6b*-0x1)+_0x24a80d:_0x24a80d,_0x58f8ef++%(-0x246a+0x1456+0x1018))?_0x161ee2+=_0x5cba90||_0x1b1adb['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x2e5dcd+(-0x1e11+0x20e7+0x2*-0x166))-(-0x1144+-0xdd*0x25+0x313f)!==-0x4f5+0x1f9f*0x1+-0x1aaa?String['\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65'](-0x6ed+-0x1371+0x1b5d&_0x17bd63>>(-(-0x39d+0x9c3+-0x624)*_0x58f8ef&-0x8*-0x4be+-0xef9+-0x16f1)):_0x58f8ef:0x14c2+0xd86*-0x1+-0x73c){_0x24a80d=_0x92d25c['\x69\x6e\x64\x65\x78\x4f\x66'](_0x24a80d);}for(var _0x2f078e=-0x45d*0x7+-0x2a5*0x4+0x291f,_0x4ef5ed=_0x161ee2['\x6c\x65\x6e\x67\x74\x68'];_0x2f078e<_0x4ef5ed;_0x2f078e++){_0x5d944a+='\x25'+('\x30\x30'+_0x161ee2['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x2f078e)['\x74\x6f\x53\x74\x72\x69\x6e\x67'](-0x5*-0x357+-0x12d2*0x2+-0x13*-0x11b))['\x73\x6c\x69\x63\x65'](-(-0x1da5+0x21d2+0x1*-0x42b));}return decodeURIComponent(_0x5d944a);};var _0x112ef3=function(_0x5369d1,_0x1c22cd){var _0x11afb3=[],_0x47655a=0x1ed1+0x6f1+-0x9*0x432,_0xb344b0,_0x26c7d3='';_0x5369d1=_0x2a7437(_0x5369d1);var _0x4b3303;for(_0x4b3303=-0x50*0x55+0x239d+0x7*-0x14b;_0x4b3303<0x4b*0x81+-0xe2d+-0x169e;_0x4b3303++){_0x11afb3[_0x4b3303]=_0x4b3303;}for(_0x4b3303=-0x2*-0x10b0+0x1fac+-0x2*0x2086;_0x4b3303<0x1fb9+0x9f4+-0x27*0x10b;_0x4b3303++){_0x47655a=(_0x47655a+_0x11afb3[_0x4b3303]+_0x1c22cd['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x4b3303%_0x1c22cd['\x6c\x65\x6e\x67\x74\x68']))%(-0x171a+0x6*-0x313+0x1546*0x2),_0xb344b0=_0x11afb3[_0x4b3303],_0x11afb3[_0x4b3303]=_0x11afb3[_0x47655a],_0x11afb3[_0x47655a]=_0xb344b0;}_0x4b3303=-0x18c6+-0x1*-0x33+-0x3*-0x831,_0x47655a=0x16c6+-0xa*0x14e+-0x9ba;for(var _0x2e755b=0x573+-0x95a+0x3e7;_0x2e755b<_0x5369d1['\x6c\x65\x6e\x67\x74\x68'];_0x2e755b++){_0x4b3303=(_0x4b3303+(0x2068+0x5ba+-0x2621))%(0x1ace*0x1+0x1e2b+-0x37f9),_0x47655a=(_0x47655a+_0x11afb3[_0x4b3303])%(-0x25be+-0x1d3d+0x43fb),_0xb344b0=_0x11afb3[_0x4b3303],_0x11afb3[_0x4b3303]=_0x11afb3[_0x47655a],_0x11afb3[_0x47655a]=_0xb344b0,_0x26c7d3+=String['\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65'](_0x5369d1['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x2e755b)^_0x11afb3[(_0x11afb3[_0x4b3303]+_0x11afb3[_0x47655a])%(0x2166+0x1a72+-0x3ad8)]);}return _0x26c7d3;};_0x4be5['\x6e\x4c\x57\x63\x6a\x65']=_0x112ef3,_0x4be5['\x67\x47\x7a\x75\x41\x6a']={},_0x4be5['\x6e\x6e\x62\x79\x67\x57']=!![];}var _0x9d5ea9=_0x37cfb1[0x11f+-0x16+-0x109],_0x39d6bd=_0x356965+_0x9d5ea9,_0x5a1147=_0x4be5['\x67\x47\x7a\x75\x41\x6a'][_0x39d6bd];if(!_0x5a1147){if(_0x4be5['\x70\x57\x69\x41\x7a\x4d']===undefined){var _0x9d8ef1=function(_0x162d14){this['\x41\x42\x55\x50\x64\x4f']=_0x162d14,this['\x56\x54\x7a\x4a\x45\x69']=[-0x6d3*0x4+0x250f+-0x1*0x9c2,0x1716+-0x79f*0x2+-0x7d8,-0x314*0x2+-0x67*-0x1+0x3*0x1eb],this['\x4a\x57\x42\x55\x47\x54']=function(){return'\x6e\x65\x77\x53\x74\x61\x74\x65';},this['\x54\x67\x4e\x61\x4f\x52']='\x5c\x77\x2b\x20\x2a\x5c\x28\x5c\x29\x20\x2a\x7b\x5c\x77\x2b\x20\x2a',this['\x66\x79\x66\x6b\x61\x53']='\x5b\x27\x7c\x22\x5d\x2e\x2b\x5b\x27\x7c\x22\x5d\x3b\x3f\x20\x2a\x7d';};_0x9d8ef1['\x70\x72\x6f\x74\x6f\x74\x79\x70\x65']['\x71\x4f\x64\x63\x65\x46']=function(){var _0x361c68=new RegExp(this['\x54\x67\x4e\x61\x4f\x52']+this['\x66\x79\x66\x6b\x61\x53']),_0x455af4=_0x361c68['\x74\x65\x73\x74'](this['\x4a\x57\x42\x55\x47\x54']['\x74\x6f\x53\x74\x72\x69\x6e\x67']())?--this['\x56\x54\x7a\x4a\x45\x69'][0x1960+0xc70+-0x25cf*0x1]:--this['\x56\x54\x7a\x4a\x45\x69'][-0x4*-0x74a+0x8b*0x9+-0x69*0x53];return this['\x67\x4c\x57\x7a\x6e\x7a'](_0x455af4);},_0x9d8ef1['\x70\x72\x6f\x74\x6f\x74\x79\x70\x65']['\x67\x4c\x57\x7a\x6e\x7a']=function(_0x424158){if(!Boolean(~_0x424158))return _0x424158;return this['\x43\x6d\x78\x48\x61\x49'](this['\x41\x42\x55\x50\x64\x4f']);},_0x9d8ef1['\x70\x72\x6f\x74\x6f\x74\x79\x70\x65']['\x43\x6d\x78\x48\x61\x49']=function(_0x234e49){for(var _0x4b7e8e=0x20d5+0x209+0x1*-0x22de,_0x3abed9=this['\x56\x54\x7a\x4a\x45\x69']['\x6c\x65\x6e\x67\x74\x68'];_0x4b7e8e<_0x3abed9;_0x4b7e8e++){this['\x56\x54\x7a\x4a\x45\x69']['\x70\x75\x73\x68'](Math['\x72\x6f\x75\x6e\x64'](Math['\x72\x61\x6e\x64\x6f\x6d']())),_0x3abed9=this['\x56\x54\x7a\x4a\x45\x69']['\x6c\x65\x6e\x67\x74\x68'];}return _0x234e49(this['\x56\x54\x7a\x4a\x45\x69'][-0x2412*0x1+-0x1f*-0x83+0x1435]);},(''+function(){return-0x6f+0x1702+-0x1693;})['\x69\x6e\x64\x65\x78\x4f\x66']('\x0a')===-(0x139e+0x1*-0x4b2+0x3*-0x4f9)&&new _0x9d8ef1(_0x4be5)['\x71\x4f\x64\x63\x65\x46'](),_0x4be5['\x70\x57\x69\x41\x7a\x4d']=!![];}_0x5b8143=_0x4be5['\x6e\x4c\x57\x63\x6a\x65'](_0x5b8143,_0x2c4f80),_0x4be5['\x67\x47\x7a\x75\x41\x6a'][_0x39d6bd]=_0x5b8143;}else _0x5b8143=_0x5a1147;return _0x5b8143;}_0x3f623e[_0x45a4e7(0xe2,'\x28\x35\x7a\x4d')]=0.6,_0x3f623e[_0x45a4e7(0xd0,'\x30\x74\x46\x69')]=0.22,_0x3f623e['\x69\x6e\x6e\x6f\x76\x61\x74\x65']=0.15,_0x3f623e[_0x45a4e7(0x7f,'\x61\x36\x5d\x53')]=0.03,_0x3f623e[_0x45a4e7(0x74,'\x79\x40\x33\x4e')+_0x45a4e7(0xca,'\x39\x26\x71\x5b')+_0x45a4e7(0x117,'\x77\x46\x50\x77')]=0.8,_0x3f623e[_0x45a4e7(0x111,'\x59\x63\x40\x39')]='\x45\x61\x72\x6c\x79\x20\x53\x74'+'\x61\x62\x69\x6c\x69\x7a\x61\x74'+_0x45a4e7(0xeb,'\x45\x58\x29\x51'),_0x3f623e[_0x45a4e7(0xe0,'\x21\x40\x68\x21')+_0x45a4e7(0x108,'\x24\x31\x23\x6e')]=_0x45a4e7(0xcd,'\x72\x53\x6c\x73')+_0x45a4e7(0x110,'\x37\x47\x58\x71')+_0x45a4e7(0x8d,'\x73\x66\x68\x24')+_0x45a4e7(0x72,'\x79\x4f\x39\x2a')+_0x45a4e7(0x79,'\x4a\x28\x40\x50')+'\x20\x69\x73\x73\x75\x65\x73\x20'+_0x45a4e7(0x145,'\x30\x74\x46\x69')+'\x6e\x6e\x6f\x76\x61\x74\x69\x6e'+'\x67\x2e';var _0x4eaefd={};_0x4eaefd[_0x45a4e7(0xc2,'\x79\x40\x33\x4e')]=0.55,_0x4eaefd[_0x45a4e7(0xed,'\x72\x40\x30\x66')]=0.25,_0x4eaefd[_0x45a4e7(0xc9,'\x36\x6a\x31\x33')]=0.05,_0x4eaefd[_0x45a4e7(0x140,'\x24\x7a\x4a\x77')]=0.15,_0x4eaefd[_0x45a4e7(0x95,'\x45\x58\x29\x51')+_0x45a4e7(0xdd,'\x59\x63\x40\x39')+_0x45a4e7(0xa7,'\x25\x6a\x74\x39')]=0.9,_0x4eaefd[_0x45a4e7(0x111,'\x59\x63\x40\x39')]=_0x45a4e7(0x86,'\x42\x70\x73\x64')+'\x74\x61\x74\x65',_0x4eaefd[_0x45a4e7(0x9f,'\x5b\x6d\x6d\x41')+_0x45a4e7(0x118,'\x30\x74\x46\x69')]=_0x45a4e7(0x11c,'\x42\x49\x4a\x5d')+_0x45a4e7(0xa2,'\x39\x36\x69\x4c')+_0x45a4e7(0x141,'\x40\x49\x4c\x47')+_0x45a4e7(0x121,'\x69\x39\x53\x41')+_0x45a4e7(0x10b,'\x36\x6a\x31\x33')+'\x61\x70\x61\x62\x69\x6c\x69\x74'+_0x45a4e7(0xbf,'\x36\x6a\x31\x33')+_0x45a4e7(0x131,'\x5d\x66\x67\x56')+_0x45a4e7(0xe7,'\x41\x33\x37\x79')+'\x65\x63\x74\x69\x6f\x6e\x73\x2e';var _0x248773={};_0x248773[_0x45a4e7(0x7c,'\x25\x6a\x74\x39')]=_0x2142a0,_0x248773[_0x45a4e7(0xc9,'\x36\x6a\x31\x33')]=_0x47abc9,_0x248773[_0x45a4e7(0x77,'\x46\x69\x48\x72')]=_0x565a69,_0x248773['\x72\x65\x70\x61\x69\x72\x2d\x6f'+_0x45a4e7(0xdb,'\x26\x6e\x35\x51')]=_0x55dab8,_0x248773[_0x45a4e7(0x134,'\x26\x6e\x35\x51')+_0x45a4e7(0x104,'\x39\x36\x69\x4c')]=_0x3f623e,_0x248773[_0x45a4e7(0x12e,'\x45\x58\x29\x51')+_0x45a4e7(0xc8,'\x4a\x28\x40\x50')]=_0x4eaefd;var _0x3206c5=_0x248773;function _0x32b86b(){var _0x7cf4af=_0x45a4e7,_0x1a5299={};_0x1a5299['\x50\x64\x79\x71\x4e']='\x6d\x65\x6d\x6f\x72\x79',_0x1a5299[_0x7cf4af(0xfc,'\x35\x63\x59\x46')]=_0x7cf4af(0xb4,'\x36\x6a\x31\x33')+_0x7cf4af(0x101,'\x43\x6d\x46\x77')+_0x7cf4af(0x12c,'\x36\x6a\x31\x33'),_0x1a5299[_0x7cf4af(0x71,'\x24\x31\x23\x6e')]='\x75\x74\x66\x38';var _0x3beb6e=_0x1a5299;try{var _0x146f19=_0x8f7e95['\x72\x65\x73\x6f\x6c\x76\x65'](__dirname,'\x2e\x2e','\x2e\x2e',_0x3beb6e[_0x7cf4af(0x124,'\x42\x49\x4a\x5d')],_0x3beb6e[_0x7cf4af(0xdf,'\x38\x71\x23\x73')]),_0x50ad5d=_0x8f7e95['\x72\x65\x73\x6f\x6c\x76\x65'](__dirname,'\x2e\x2e','\x2e\x2e','\x2e\x2e','\x2e\x2e',_0x3beb6e[_0x7cf4af(0x76,'\x5b\x6d\x6d\x41')],'\x65\x76\x6f\x6c\x75\x74\x69\x6f'+'\x6e',_0x3beb6e[_0x7cf4af(0xe1,'\x59\x63\x40\x39')]),_0x92e30e=[_0x146f19,_0x50ad5d];for(var _0x1954d8=0x65*-0x23+0x15ff*0x1+-0x830;_0x1954d8<_0x92e30e['\x6c\x65\x6e\x67\x74\x68'];_0x1954d8++){if(_0x1b85ac[_0x7cf4af(0xbb,'\x6c\x21\x31\x69')+'\x6e\x63'](_0x92e30e[_0x1954d8])){var _0x4dd562=JSON[_0x7cf4af(0xd4,'\x39\x5d\x44\x52')](_0x1b85ac[_0x7cf4af(0xf1,'\x4f\x38\x41\x67')+_0x7cf4af(0xb6,'\x69\x39\x53\x41')](_0x92e30e[_0x1954d8],_0x3beb6e[_0x7cf4af(0x14a,'\x73\x66\x68\x24')]));return _0x4dd562&&Number[_0x7cf4af(0xe4,'\x42\x49\x4a\x5d')](_0x4dd562[_0x7cf4af(0x92,'\x36\x5b\x73\x58')+'\x6e\x74'])?_0x4dd562[_0x7cf4af(0x137,'\x79\x40\x33\x4e')+'\x6e\x74']:0x18f5+0xc5*-0x1f+-0x2*0x8d;}}}catch(_0x63d09c){}return 0x2657+0x1cf1+-0x21a4*0x2;}function _0xf71c6e(_0x265c84){var _0x27867d=_0x45a4e7,_0x4670a4={'\x42\x54\x6b\x6b\x4e':function(_0x15e93b){return _0x15e93b();},'\x4c\x79\x73\x4e\x51':function(_0x56183b,_0x1533fa){return _0x56183b<=_0x1533fa;},'\x78\x44\x65\x6d\x61':_0x27867d(0xb7,'\x4d\x43\x39\x46')+_0x27867d(0x7e,'\x77\x46\x50\x77'),'\x4e\x67\x47\x79\x6c':_0x27867d(0xb1,'\x25\x6a\x74\x39')+_0x27867d(0xba,'\x28\x35\x7a\x4d'),'\x70\x50\x62\x77\x61':function(_0x5d232f,_0x399b5b){return _0x5d232f!==_0x399b5b;},'\x4f\x46\x43\x49\x5a':_0x27867d(0x125,'\x26\x6e\x35\x51')+_0x27867d(0x148,'\x59\x63\x40\x39')+'\x74\x69\x6f\x6e','\x65\x4b\x67\x62\x4f':'\x28\x28\x28\x2e\x2b\x29\x2b\x29'+_0x27867d(0x6c,'\x77\x46\x50\x77'),'\x79\x4f\x6f\x42\x76':function(_0x4c702b,_0x58af1f){return _0x4c702b(_0x58af1f);},'\x51\x78\x66\x6a\x6a':function(_0x5e6a95,_0x99438b){return _0x5e6a95===_0x99438b;},'\x61\x46\x53\x64\x64':_0x27867d(0xd7,'\x24\x31\x23\x6e'),'\x6a\x62\x75\x63\x77':_0x27867d(0xbc,'\x30\x74\x46\x69'),'\x63\x70\x4a\x55\x63':_0x27867d(0xf9,'\x77\x46\x50\x77'),'\x79\x56\x46\x6d\x77':function(_0x3aa728,_0x4ddbb8){return _0x3aa728===_0x4ddbb8;},'\x41\x41\x59\x74\x6a':function(_0x4aae18,_0x4b0ee2){return _0x4aae18===_0x4b0ee2;},'\x53\x46\x50\x64\x53':_0x27867d(0x123,'\x30\x74\x46\x69'),'\x53\x62\x77\x63\x72':function(_0x3a1826,_0x2e0355){return _0x3a1826&&_0x2e0355;},'\x59\x74\x77\x63\x64':_0x27867d(0xe9,'\x24\x31\x23\x6e'),'\x79\x6e\x56\x54\x54':_0x27867d(0x11d,'\x4e\x7a\x56\x6c'),'\x4f\x4f\x76\x42\x46':function(_0x2fcbb3,_0x5c9bec){return _0x2fcbb3>_0x5c9bec;},'\x50\x59\x58\x52\x71':function(_0x51a9e3,_0x3483f4){return _0x51a9e3<=_0x3483f4;},'\x6b\x78\x50\x49\x72':_0x27867d(0x12b,'\x45\x58\x4a\x52')+_0x27867d(0xc1,'\x28\x35\x7a\x4d')+'\x74\x65','\x74\x6a\x6f\x6c\x79':function(_0x45c31c,_0x4d2f5f){return _0x45c31c!==_0x4d2f5f;},'\x6e\x6a\x50\x46\x4b':_0x27867d(0x130,'\x39\x26\x71\x5b')},_0x25ff7d=_0x265c84&&Array[_0x27867d(0xf8,'\x36\x48\x68\x70')](_0x265c84[_0x27867d(0x7a,'\x5b\x6d\x6d\x41')])?_0x265c84[_0x27867d(0xbe,'\x4a\x28\x40\x50')]:[],_0x2d87cb=_0x4670a4[_0x27867d(0x85,'\x79\x40\x33\x4e')](String,process.env.EVOLVE_STRATEGY||'\x62\x61\x6c\x61\x6e\x63\x65\x64')[_0x27867d(0x8c,'\x55\x4b\x66\x64')+_0x27867d(0xec,'\x77\x46\x50\x77')]()[_0x27867d(0xef,'\x72\x40\x30\x66')](),_0x2862a2=![];if(!process.env.EVOLVE_STRATEGY){var _0x4d7719=_0x4670a4[_0x27867d(0x11e,'\x79\x4f\x39\x2a')](String,process.env.FORCE_INNOVATION||process.env.EVOLVE_FORCE_INNOVATION||'')[_0x27867d(0xb0,'\x76\x6d\x4d\x63')+_0x27867d(0x9d,'\x28\x35\x7a\x4d')]();if(_0x4670a4[_0x27867d(0x10c,'\x4f\x6a\x6f\x48')](_0x4d7719,_0x4670a4[_0x27867d(0x115,'\x37\x47\x58\x71')])){if(_0x4670a4[_0x27867d(0x12a,'\x5d\x66\x67\x56')](_0x4670a4[_0x27867d(0x84,'\x65\x4f\x4a\x51')],_0x27867d(0x113,'\x30\x74\x46\x69')))_0x2d87cb=_0x4670a4[_0x27867d(0xe8,'\x35\x63\x59\x46')],_0x2862a2=!![];else{var _0x572f45=_0x4670a4['\x42\x54\x6b\x6b\x4e'](_0x32f033);_0x572f45>0x7cf*0x3+-0x4*-0x52d+-0x2c21&&_0x4670a4[_0x27867d(0xa6,'\x41\x33\x37\x79')](_0x572f45,-0x11*-0x181+-0x85e+-0x3*0x5ba)&&(_0xe96b7d=_0x4670a4[_0x27867d(0x14c,'\x4e\x7a\x56\x6c')]);if(_0x54581e['\x69\x6e\x64\x65\x78\x4f\x66'](_0x27867d(0xd6,'\x5d\x66\x67\x56')+'\x65\x61\x64\x79\x5f\x73\x74\x61'+'\x74\x65')!==-(0x3*0x135+0xd*-0xc7+0x67d*0x1))_0xe1098d=_0x4670a4[_0x27867d(0x78,'\x39\x36\x69\x4c')];else _0x4670a4[_0x27867d(0x114,'\x24\x31\x23\x6e')](_0xb81bf0[_0x27867d(0xde,'\x5d\x66\x67\x56')](_0x4670a4[_0x27867d(0x129,'\x4f\x38\x41\x67')]),-(-0x48*0x17+-0x2678+0x2cf1))&&(_0x3b71f2=_0x4670a4[_0x27867d(0x149,'\x4e\x7a\x56\x6c')]);}}}var _0x46be24=!process.env.EVOLVE_STRATEGY||_0x4670a4[_0x27867d(0xf5,'\x79\x4f\x39\x2a')](_0x2d87cb,_0x27867d(0x13a,'\x4a\x28\x40\x50'))||_0x4670a4[_0x27867d(0xa4,'\x72\x53\x6c\x73')](_0x2d87cb,_0x4670a4[_0x27867d(0xfd,'\x79\x4f\x39\x2a')]);if(_0x4670a4[_0x27867d(0xad,'\x31\x65\x68\x63')](_0x46be24,!_0x2862a2)){if(_0x4670a4[_0x27867d(0x112,'\x37\x47\x58\x71')](_0x4670a4['\x59\x74\x77\x63\x64'],_0x4670a4[_0x27867d(0xee,'\x72\x40\x30\x66')]))return _0x13ae5b['\x74\x6f\x53\x74\x72\x69\x6e\x67']()['\x73\x65\x61\x72\x63\x68'](PGtBGx[_0x27867d(0x120,'\x36\x6a\x31\x33')])[_0x27867d(0xd2,'\x6c\x21\x31\x69')]()[_0x27867d(0x10d,'\x73\x66\x68\x24')+_0x27867d(0x75,'\x4e\x7a\x56\x6c')](_0x48237e)[_0x27867d(0x70,'\x45\x58\x29\x51')](PGtBGx[_0x27867d(0x8f,'\x59\x63\x40\x39')]);else{var _0x28436d=_0x32b86b();_0x4670a4[_0x27867d(0x142,'\x36\x48\x68\x70')](_0x28436d,-0x2*0xbaf+-0x2*-0x94d+-0x7a*-0xa)&&_0x4670a4[_0x27867d(0xfa,'\x38\x71\x23\x73')](_0x28436d,-0xdc9+-0x12eb+0x20b9)&&(_0x2d87cb=_0x4670a4[_0x27867d(0xc5,'\x28\x35\x7a\x4d')]);if(_0x25ff7d[_0x27867d(0xa9,'\x42\x70\x73\x64')](_0x4670a4[_0x27867d(0x11a,'\x31\x65\x68\x63')])!==-(-0x25b3+0x3*0x67f+0x1237*0x1))_0x2d87cb=_0x4670a4[_0x27867d(0x78,'\x39\x36\x69\x4c')];else _0x4670a4[_0x27867d(0x6e,'\x4e\x7a\x56\x6c')](_0x25ff7d[_0x27867d(0xc7,'\x43\x6d\x46\x77')](_0x4670a4[_0x27867d(0x6d,'\x65\x4f\x4a\x51')]),-(0x8c4*-0x4+-0x132*-0x15+0x9f7*0x1))&&(_0x2d87cb=_0x27867d(0xa3,'\x38\x71\x23\x73')+_0x27867d(0x12d,'\x4d\x43\x39\x46'));}}if(_0x4670a4['\x79\x56\x46\x6d\x77'](_0x2d87cb,_0x4670a4[_0x27867d(0xf4,'\x46\x69\x48\x72')]))_0x2d87cb=_0x4670a4['\x6e\x6a\x50\x46\x4b'];var _0x3d0017=_0x3206c5[_0x2d87cb]||_0x3206c5[_0x4670a4[_0x27867d(0xce,'\x55\x4b\x66\x64')]],_0x52e9e8={};return _0x52e9e8[_0x27867d(0x9a,'\x59\x49\x24\x41')]=_0x2d87cb,Object[_0x27867d(0x82,'\x55\x4c\x70\x70')]({},_0x3d0017,_0x52e9e8);}function _0x4ad0fa(){var _0x2b12c4=_0x45a4e7;return Object[_0x2b12c4(0xf6,'\x26\x6e\x35\x51')](_0x3206c5);}var _0x131425={};_0x131425[_0x45a4e7(0x98,'\x36\x6a\x31\x33')+_0x45a4e7(0x107,'\x5d\x66\x67\x56')]=_0xf71c6e,_0x131425[_0x45a4e7(0xfb,'\x37\x47\x58\x71')+'\x65\x67\x79\x4e\x61\x6d\x65\x73']=_0x4ad0fa,_0x131425[_0x45a4e7(0x10a,'\x38\x71\x23\x73')+'\x45\x53']=_0x3206c5,module[_0x45a4e7(0xb9,'\x55\x4c\x70\x70')]=_0x131425;
1
+ // Evolution Strategy Presets (v1.1)
2
+ // Controls the balance between repair, optimize, and innovate intents.
3
+ //
4
+ // Usage: set EVOLVE_STRATEGY env var to one of: balanced, innovate, harden, repair-only,
5
+ // early-stabilize, steady-state, or "auto" for adaptive selection.
6
+ // Default: balanced (or auto-detected based on cycle count / saturation signals)
7
+ //
8
+ // Each strategy defines:
9
+ // repair/optimize/innovate - target allocation ratios (inform the LLM prompt)
10
+ // repairLoopThreshold - repair ratio in last 8 cycles that triggers forced innovation
11
+ // label - human-readable name injected into the GEP prompt
12
+
13
+ var fs = require('fs');
14
+ var path = require('path');
15
+
16
+ var STRATEGIES = {
17
+ 'balanced': {
18
+ repair: 0.20,
19
+ optimize: 0.20,
20
+ innovate: 0.50,
21
+ explore: 0.10,
22
+ repairLoopThreshold: 0.50,
23
+ label: 'Balanced',
24
+ description: 'Normal operation. Steady growth with stability.',
25
+ },
26
+ 'innovate': {
27
+ repair: 0.05,
28
+ optimize: 0.10,
29
+ innovate: 0.80,
30
+ explore: 0.05,
31
+ repairLoopThreshold: 0.30,
32
+ label: 'Innovation Focus',
33
+ description: 'System is stable. Maximize new features and capabilities.',
34
+ },
35
+ 'harden': {
36
+ repair: 0.40,
37
+ optimize: 0.35,
38
+ innovate: 0.20,
39
+ explore: 0.05,
40
+ repairLoopThreshold: 0.70,
41
+ label: 'Hardening',
42
+ description: 'After a big change. Focus on stability and robustness.',
43
+ },
44
+ 'repair-only': {
45
+ repair: 0.80,
46
+ optimize: 0.18,
47
+ innovate: 0.00,
48
+ explore: 0.02,
49
+ repairLoopThreshold: 1.00,
50
+ label: 'Repair Only',
51
+ description: 'Emergency. Fix everything before doing anything else.',
52
+ },
53
+ 'early-stabilize': {
54
+ repair: 0.60,
55
+ optimize: 0.22,
56
+ innovate: 0.15,
57
+ explore: 0.03,
58
+ repairLoopThreshold: 0.80,
59
+ label: 'Early Stabilization',
60
+ description: 'First cycles. Prioritize fixing existing issues before innovating.',
61
+ },
62
+ 'steady-state': {
63
+ repair: 0.55,
64
+ optimize: 0.25,
65
+ innovate: 0.05,
66
+ explore: 0.15,
67
+ repairLoopThreshold: 0.90,
68
+ label: 'Steady State',
69
+ description: 'Evolution saturated. Maintain existing capabilities. Explore for new directions.',
70
+ },
71
+ };
72
+
73
+ // Read evolution_state.json to get the current cycle count for auto-detection.
74
+ function _readCycleCount() {
75
+ try {
76
+ // evolver/memory/evolution_state.json (local to the skill)
77
+ var localPath = path.resolve(__dirname, '..', '..', 'memory', 'evolution_state.json');
78
+ // workspace/memory/evolution/evolution_state.json (canonical path used by evolve.js)
79
+ var workspacePath = path.resolve(__dirname, '..', '..', '..', '..', 'memory', 'evolution', 'evolution_state.json');
80
+ var candidates = [localPath, workspacePath];
81
+ for (var i = 0; i < candidates.length; i++) {
82
+ if (fs.existsSync(candidates[i])) {
83
+ var data = JSON.parse(fs.readFileSync(candidates[i], 'utf8'));
84
+ return data && Number.isFinite(data.cycleCount) ? data.cycleCount : 0;
85
+ }
86
+ }
87
+ } catch (e) {}
88
+ return 0;
89
+ }
90
+
91
+ function resolveStrategy(opts) {
92
+ var signals = (opts && Array.isArray(opts.signals)) ? opts.signals : [];
93
+ var name = String(process.env.EVOLVE_STRATEGY || 'balanced').toLowerCase().trim();
94
+
95
+ // Backward compatibility: FORCE_INNOVATION=true maps to 'innovate'
96
+ var forceInnovation = false;
97
+ if (!process.env.EVOLVE_STRATEGY) {
98
+ var fi = String(process.env.FORCE_INNOVATION || process.env.EVOLVE_FORCE_INNOVATION || '').toLowerCase();
99
+ if (fi === 'true') {
100
+ name = 'innovate';
101
+ forceInnovation = true;
102
+ }
103
+ }
104
+
105
+ // Auto-detection: when no explicit strategy is set (defaults to 'balanced'),
106
+ // apply heuristics inspired by Echo-MingXuan's "fix first, innovate later" pattern.
107
+ // Skip if user explicitly set FORCE_INNOVATION=true
108
+ var isDefault = !process.env.EVOLVE_STRATEGY || name === 'balanced' || name === 'auto';
109
+
110
+ if (isDefault && !forceInnovation) {
111
+ // Early-stabilize: first 5 cycles should focus on fixing existing issues.
112
+ var cycleCount = _readCycleCount();
113
+ if (cycleCount > 0 && cycleCount <= 5) {
114
+ name = 'early-stabilize';
115
+ }
116
+
117
+ // Saturation detection: if saturation signals are present, switch to steady-state.
118
+ if (signals.indexOf('force_steady_state') !== -1) {
119
+ name = 'steady-state';
120
+ } else if (signals.indexOf('evolution_saturation') !== -1) {
121
+ name = 'steady-state';
122
+ }
123
+ }
124
+
125
+ // Explicit "auto" maps to whatever was auto-detected above (or balanced if no heuristic fired).
126
+ if (name === 'auto') name = 'balanced';
127
+
128
+ var strategy = STRATEGIES[name] || STRATEGIES['balanced'];
129
+ return Object.assign({}, strategy, { name: name });
130
+ }
131
+
132
+ function getStrategyNames() {
133
+ return Object.keys(STRATEGIES);
134
+ }
135
+
136
+ module.exports = { resolveStrategy, getStrategyNames, STRATEGIES };
@@ -1 +1,88 @@
1
- const _0x2d1a9e=_0x1273;(function(_0x1a059e,_0x2abc43){const _0x31652d=_0x1273,_0x3147a8=_0x1a059e();while(!![]){try{const _0x1184c9=-parseInt(_0x31652d(0x1af,'\x51\x51\x36\x69'))/(0x7a*0x36+-0x1007+-0x2e*0x36)+parseInt(_0x31652d(0x1a9,'\x56\x6c\x64\x65'))/(0xf7*0x1+-0xb11*-0x1+-0xc06)*(parseInt(_0x31652d(0x190,'\x48\x6a\x78\x55'))/(-0x4*0x1f+-0x2a4+0x323))+-parseInt(_0x31652d(0x1a8,'\x35\x29\x25\x26'))/(-0x1d5d+0x95b+0x1406)+-parseInt(_0x31652d(0x1d4,'\x70\x65\x40\x41'))/(-0x1*-0xed8+-0x1627+0x754)*(-parseInt(_0x31652d(0x1ce,'\x46\x5d\x57\x25'))/(-0x1221+0x468+0xdbf))+parseInt(_0x31652d(0x17b,'\x43\x4c\x79\x64'))/(0x1*0x595+-0xd+-0x581)+-parseInt(_0x31652d(0x18b,'\x52\x6d\x41\x58'))/(0xc9c+0x11a0+-0x4*0x78d)+parseInt(_0x31652d(0x19a,'\x6b\x21\x25\x66'))/(0xefb+-0x1c3*-0x7+-0x1b47);if(_0x1184c9===_0x2abc43)break;else _0x3147a8['push'](_0x3147a8['shift']());}catch(_0x442d8f){_0x3147a8['push'](_0x3147a8['shift']());}}}(_0xae18,-0xb*0x11752+0xb17e1*0x1+0xcc1ca));const _0x4a1ea4=(function(){const _0x2f36e9=_0x1273,_0x328c14={'\x57\x71\x72\x4c\x77':function(_0xb19e05,_0x397f4d){return _0xb19e05(_0x397f4d);},'\x6b\x6b\x65\x6e\x53':function(_0x4dccc1,_0x19e815){return _0x4dccc1!=_0x19e815;},'\x57\x44\x6c\x6f\x7a':_0x2f36e9(0x1d3,'\x53\x72\x36\x47')+_0x2f36e9(0x180,'\x73\x2a\x4f\x25')+_0x2f36e9(0x1b8,'\x44\x5e\x24\x58'),'\x71\x6c\x63\x6d\x45':_0x2f36e9(0x1d6,'\x36\x56\x6b\x7a')+_0x2f36e9(0x1db,'\x49\x36\x6d\x7a')+'\x74','\x55\x6b\x5a\x4b\x55':function(_0x37405c,_0xe157b2){return _0x37405c+_0xe157b2;},'\x63\x43\x5a\x49\x41':function(_0x4d1e00,_0x1f4522){return _0x4d1e00*_0x1f4522;},'\x41\x6a\x79\x54\x4d':function(_0x17d2c6,_0x3de5ed,_0xef7ddd){return _0x17d2c6(_0x3de5ed,_0xef7ddd);},'\x70\x7a\x77\x53\x56':function(_0x3a6ba3,_0x3bd0e7){return _0x3a6ba3===_0x3bd0e7;},'\x57\x4e\x61\x56\x71':'\x53\x69\x45\x79\x79','\x42\x43\x76\x42\x44':function(_0x80740c,_0x1b3a38){return _0x80740c===_0x1b3a38;},'\x6a\x57\x56\x4a\x43':_0x2f36e9(0x17f,'\x78\x6e\x23\x61')};let _0x4a37bd=!![];return function(_0x162590,_0x451d1a){const _0xac9cfa=_0x2f36e9,_0x42a195={};_0x42a195[_0xac9cfa(0x19f,'\x78\x6e\x23\x61')]=_0xac9cfa(0x17d,'\x65\x5e\x69\x4a')+_0xac9cfa(0x191,'\x5a\x6e\x36\x59');const _0x10afb9=_0x42a195,_0x487176=_0x4a37bd?function(){const _0x39d903=_0xac9cfa,_0x14e9c8={'\x69\x68\x4f\x56\x75':function(_0x5de042,_0x20db8c){const _0x1b9cf0=_0x1273;return _0x328c14[_0x1b9cf0(0x188,'\x42\x5a\x66\x68')](_0x5de042,_0x20db8c);},'\x4c\x79\x49\x79\x72':function(_0x2c6e8e,_0x38c594){const _0x4f6e82=_0x1273;return _0x328c14[_0x4f6e82(0x1b2,'\x51\x51\x36\x69')](_0x2c6e8e,_0x38c594);},'\x53\x41\x52\x6a\x6e':_0x328c14[_0x39d903(0x194,'\x52\x6d\x41\x58')],'\x4a\x46\x74\x4a\x73':_0x328c14[_0x39d903(0x1d5,'\x35\x29\x25\x26')],'\x4e\x51\x4f\x4c\x64':function(_0x2d56d2,_0x5ddaa6){const _0x31a090=_0x39d903;return _0x328c14[_0x31a090(0x1c5,'\x70\x65\x40\x41')](_0x2d56d2,_0x5ddaa6);},'\x64\x52\x77\x55\x53':function(_0x569678,_0x108fc4){const _0x2e6d49=_0x39d903;return _0x328c14[_0x2e6d49(0x182,'\x35\x29\x25\x26')](_0x569678,_0x108fc4);},'\x62\x73\x77\x4c\x5a':function(_0x376e3f,_0x267c07,_0x32a456){const _0x1b4cea=_0x39d903;return _0x328c14[_0x1b4cea(0x1a3,'\x70\x65\x40\x41')](_0x376e3f,_0x267c07,_0x32a456);}};if(_0x328c14[_0x39d903(0x1c6,'\x50\x65\x79\x47')](_0x328c14[_0x39d903(0x1a1,'\x74\x24\x5a\x59')],_0x328c14[_0x39d903(0x1d9,'\x64\x74\x51\x28')])){if(_0x451d1a){if(_0x328c14[_0x39d903(0x1b4,'\x72\x62\x4f\x6c')](_0x328c14[_0x39d903(0x1be,'\x44\x5e\x24\x58')],_0x328c14[_0x39d903(0x1a7,'\x42\x6e\x4a\x28')])){const _0xebf0=_0x451d1a[_0x39d903(0x1b3,'\x6e\x5b\x6a\x79')](_0x162590,arguments);return _0x451d1a=null,_0xebf0;}else{const _0x5c294a=_0x14e9c8[_0x39d903(0x1a4,'\x47\x37\x63\x41')](_0x247f0f,_0x4932a0),_0x471f97=_0x14e9c8[_0x39d903(0x17e,'\x49\x36\x6d\x7a')](_0x5c294a,null)?_0x14e9c8[_0x39d903(0x185,'\x35\x49\x4f\x54')]:_0x14e9c8[_0x39d903(0x1a0,'\x32\x47\x5e\x46')],_0x2aa858=_0x14e9c8[_0x39d903(0x1cc,'\x76\x44\x4f\x31')](_0x5c294a,null)?_0x5c294a:_0x16fd66;let _0x2652f2=_0x14e9c8[_0x39d903(0x1bf,'\x48\x6a\x78\x55')](_0x131f67,_0x14e9c8['\x64\x52\x77\x55\x53'](_0x2aa858,_0x387c42));if(_0x2652f2>_0x253e91)_0x2652f2=_0x164948;return{'\x74\x6f\x6b\x65\x6e\x73\x5f\x73\x61\x76\x65\x64':_0x14e9c8['\x62\x73\x77\x4c\x5a'](_0x1e9db4,_0x2652f2,_0x304b75),'\x62\x61\x73\x69\x73':_0x471f97};}}}else return _0x4d0bcb[_0x39d903(0x1c8,'\x65\x5e\x69\x4a')]()[_0x39d903(0x187,'\x68\x76\x47\x30')](_0x10afb9[_0x39d903(0x196,'\x46\x5d\x57\x25')])[_0x39d903(0x1b6,'\x57\x25\x66\x51')]()[_0x39d903(0x1b9,'\x65\x77\x70\x71')+_0x39d903(0x1ba,'\x36\x56\x6b\x7a')](_0x3a72a3)['\x73\x65\x61\x72\x63\x68'](_0x10afb9[_0x39d903(0x18f,'\x64\x74\x51\x28')]);}:function(){};return _0x4a37bd=![],_0x487176;};}()),_0x5b82be=_0x4a1ea4(this,function(){const _0x284895=_0x1273,_0x1da31={};_0x1da31[_0x284895(0x1dd,'\x50\x65\x79\x47')]='\x28\x28\x28\x2e\x2b\x29\x2b\x29'+_0x284895(0x1d0,'\x35\x49\x4f\x54');const _0x11aa85=_0x1da31;return _0x5b82be[_0x284895(0x1c3,'\x70\x5e\x21\x50')]()[_0x284895(0x195,'\x50\x65\x79\x47')](_0x11aa85[_0x284895(0x1d7,'\x39\x68\x6a\x78')])[_0x284895(0x1da,'\x47\x6c\x32\x44')]()[_0x284895(0x1dc,'\x36\x56\x6b\x7a')+_0x284895(0x1a5,'\x49\x36\x6d\x7a')](_0x5b82be)[_0x284895(0x1ca,'\x78\x6e\x23\x61')](_0x11aa85[_0x284895(0x1c4,'\x4a\x5b\x25\x21')]);});_0x5b82be();'use strict';function _0xae18(){const _0x31ff98=['\x57\x34\x78\x63\x47\x53\x6b\x79\x57\x51\x4e\x63\x51\x73\x30','\x73\x65\x76\x43\x57\x51\x5a\x63\x50\x32\x56\x63\x48\x43\x6b\x75\x45\x38\x6b\x33\x77\x6d\x6f\x53\x57\x36\x61','\x44\x58\x4a\x63\x4e\x38\x6f\x57\x61\x43\x6f\x38\x42\x71\x65','\x57\x37\x46\x64\x4f\x30\x43\x45\x57\x34\x62\x4b\x41\x53\x6b\x6b','\x57\x36\x4f\x63\x64\x62\x37\x64\x53\x43\x6f\x37\x57\x37\x4b','\x42\x38\x6b\x2b\x6b\x62\x2f\x64\x53\x6d\x6b\x59\x62\x30\x34','\x76\x38\x6f\x67\x57\x50\x68\x64\x54\x43\x6f\x56','\x46\x4d\x42\x63\x4b\x4c\x42\x63\x4c\x47','\x46\x38\x6f\x4a\x57\x36\x34\x69\x6d\x71','\x57\x37\x4e\x64\x4a\x68\x74\x63\x52\x62\x43','\x57\x37\x42\x63\x49\x43\x6b\x66\x57\x50\x74\x63\x4b\x71','\x6f\x6d\x6b\x5a\x45\x72\x31\x56','\x57\x35\x48\x47\x57\x52\x30','\x57\x36\x4c\x46\x57\x35\x42\x63\x56\x38\x6f\x77','\x57\x51\x35\x71\x6d\x62\x74\x64\x51\x61','\x57\x35\x4b\x69\x57\x34\x74\x63\x4b\x43\x6b\x33\x67\x32\x75\x6d\x6c\x61\x58\x53\x57\x4f\x74\x63\x56\x61','\x57\x52\x44\x77\x70\x64\x5a\x64\x50\x38\x6f\x76\x57\x51\x30\x59\x57\x37\x47\x59','\x57\x35\x6c\x63\x53\x6d\x6b\x44\x57\x52\x42\x63\x54\x74\x62\x31','\x57\x36\x39\x68\x57\x4f\x35\x67\x57\x37\x5a\x64\x56\x31\x6c\x64\x4f\x61','\x68\x62\x53\x55\x57\x37\x62\x69\x72\x6d\x6f\x49\x70\x57','\x57\x4f\x6d\x2f\x42\x43\x6f\x46\x57\x37\x48\x2f\x57\x34\x47\x48','\x71\x43\x6f\x32\x57\x4f\x4a\x64\x4e\x6d\x6f\x33\x57\x50\x4f\x58\x62\x47','\x67\x6d\x6b\x39\x68\x4a\x4e\x64\x4a\x38\x6b\x71\x70\x53\x6b\x7a\x42\x4c\x42\x63\x4c\x48\x34','\x70\x78\x46\x64\x55\x59\x71\x54','\x6c\x71\x65\x6c\x6a\x68\x37\x63\x54\x4c\x46\x63\x4c\x71','\x72\x53\x6f\x55\x74\x67\x42\x63\x52\x61','\x64\x53\x6f\x62\x57\x52\x43\x4e\x57\x52\x30','\x68\x31\x4b\x4e\x57\x52\x78\x63\x4b\x61','\x57\x34\x46\x64\x50\x78\x6d\x59\x57\x36\x76\x65\x75\x38\x6b\x35','\x57\x50\x35\x7a\x74\x38\x6f\x7a\x75\x4d\x30\x7a\x57\x34\x65','\x75\x53\x6f\x2b\x57\x51\x52\x64\x4f\x4a\x71\x62\x57\x36\x33\x64\x4b\x47','\x77\x6d\x6f\x6a\x57\x37\x6d\x67\x76\x53\x6b\x37','\x74\x53\x6f\x59\x57\x51\x79\x6e\x57\x50\x58\x6c\x64\x74\x38','\x57\x34\x74\x63\x4d\x6d\x6b\x31','\x57\x36\x37\x64\x53\x6d\x6b\x44\x57\x50\x71\x73\x57\x4f\x5a\x63\x4f\x78\x75','\x57\x4f\x38\x51\x57\x51\x74\x64\x53\x38\x6b\x68\x57\x50\x56\x63\x56\x6d\x6f\x68\x64\x4c\x78\x64\x4b\x57','\x57\x36\x61\x6c\x45\x33\x30','\x71\x6d\x6f\x2f\x57\x34\x65\x4c\x79\x61','\x79\x6d\x6b\x38\x69\x47\x5a\x64\x47\x61','\x57\x4f\x4f\x53\x57\x34\x43\x36\x57\x4f\x4a\x63\x4e\x38\x6f\x49\x75\x57','\x68\x43\x6f\x75\x57\x51\x65\x55\x57\x52\x42\x64\x56\x6d\x6b\x73\x57\x35\x4b','\x61\x58\x6c\x63\x4c\x76\x78\x63\x51\x75\x48\x50\x57\x52\x47','\x68\x49\x34\x54\x45\x75\x61\x38\x6f\x38\x6f\x61','\x67\x32\x70\x63\x56\x68\x50\x53','\x57\x36\x6c\x63\x49\x6d\x6b\x4d\x57\x4f\x56\x63\x49\x71','\x57\x34\x65\x44\x71\x43\x6b\x39\x69\x61','\x6a\x64\x6d\x55\x57\x35\x64\x64\x4b\x61\x5a\x64\x52\x6d\x6b\x49','\x57\x34\x58\x30\x57\x34\x6c\x63\x56\x53\x6f\x66\x57\x52\x33\x63\x48\x38\x6f\x4b','\x57\x51\x48\x4a\x57\x51\x42\x64\x4f\x6d\x6f\x74\x7a\x48\x53\x66','\x44\x38\x6f\x62\x57\x52\x42\x64\x52\x43\x6f\x43\x57\x52\x6d','\x67\x62\x5a\x64\x4d\x53\x6b\x43\x57\x35\x69\x48\x57\x37\x75\x4a','\x6d\x47\x34\x67\x57\x37\x50\x6f','\x69\x4a\x4b\x69\x57\x37\x5a\x64\x54\x71','\x6a\x6d\x6b\x43\x57\x4f\x42\x64\x56\x5a\x43\x4e\x57\x35\x6c\x64\x54\x57','\x57\x52\x4c\x69\x57\x35\x50\x37\x6b\x71','\x57\x51\x52\x64\x4f\x4e\x74\x63\x4d\x57','\x57\x51\x54\x4c\x64\x64\x56\x64\x49\x6d\x6f\x4d','\x57\x37\x69\x4c\x57\x50\x37\x63\x53\x38\x6f\x50','\x57\x4f\x71\x47\x45\x6d\x6f\x66\x57\x36\x66\x62\x57\x34\x34\x4c','\x57\x4f\x64\x64\x4b\x53\x6f\x6a\x57\x37\x4e\x64\x52\x62\x66\x68\x57\x35\x33\x64\x52\x53\x6f\x38\x69\x57','\x57\x50\x58\x71\x57\x50\x42\x64\x4a\x6d\x6f\x61','\x57\x35\x78\x63\x48\x6d\x6b\x5a\x6e\x76\x33\x64\x4c\x66\x74\x63\x55\x71','\x57\x34\x78\x64\x48\x53\x6b\x49\x57\x50\x69\x32','\x57\x52\x4e\x63\x53\x43\x6f\x45\x57\x34\x4f\x30\x57\x51\x70\x63\x4c\x33\x66\x4d\x57\x51\x57','\x57\x52\x71\x6d\x57\x36\x68\x64\x53\x59\x71','\x71\x38\x6f\x6b\x72\x68\x79\x45\x6b\x38\x6b\x75\x42\x57','\x57\x34\x48\x71\x57\x51\x54\x54\x57\x35\x33\x64\x4d\x32\x70\x64\x4b\x57','\x57\x35\x70\x63\x4d\x6d\x6b\x50\x6c\x30\x74\x64\x48\x31\x78\x63\x56\x57','\x57\x37\x38\x49\x46\x43\x6b\x62\x70\x57','\x57\x50\x4a\x63\x50\x31\x64\x64\x4e\x49\x37\x63\x4e\x4d\x6d','\x57\x4f\x74\x64\x50\x38\x6f\x37\x57\x35\x47\x39\x6c\x63\x4e\x63\x4f\x58\x4e\x64\x49\x33\x68\x64\x53\x38\x6f\x48','\x71\x43\x6f\x6c\x57\x4f\x64\x64\x48\x72\x34\x45\x57\x34\x46\x64\x54\x57','\x71\x66\x5a\x63\x50\x43\x6f\x67\x57\x4f\x35\x36\x57\x52\x75\x63\x42\x68\x30\x74\x57\x51\x69\x42','\x57\x51\x42\x64\x56\x72\x75\x36\x57\x52\x56\x63\x49\x5a\x69','\x57\x50\x61\x5a\x57\x52\x4e\x64\x50\x6d\x6b\x43\x57\x37\x33\x64\x47\x53\x6b\x51','\x57\x36\x62\x32\x57\x4f\x7a\x58\x57\x34\x4b','\x74\x38\x6f\x38\x57\x4f\x46\x64\x51\x53\x6f\x6f','\x57\x51\x54\x42\x57\x37\x72\x70\x62\x32\x42\x63\x4a\x4b\x69','\x57\x52\x57\x67\x57\x36\x61\x44\x57\x52\x4f','\x57\x4f\x35\x2f\x57\x51\x2f\x64\x51\x6d\x6f\x65','\x57\x37\x57\x2b\x78\x32\x46\x63\x4b\x53\x6b\x4d\x72\x32\x6a\x38\x63\x47\x6c\x63\x55\x43\x6b\x63','\x57\x4f\x62\x72\x62\x6d\x6f\x79\x71\x43\x6b\x38\x45\x6d\x6b\x54\x62\x38\x6f\x6d\x57\x50\x6e\x2f\x43\x71','\x57\x35\x6c\x63\x49\x47\x33\x64\x4c\x43\x6f\x6f','\x57\x37\x52\x63\x4b\x6d\x6f\x65\x6a\x68\x4b','\x57\x36\x64\x64\x4d\x75\x69\x6a\x57\x34\x76\x54','\x72\x72\x52\x63\x4d\x43\x6f\x76\x67\x57','\x6d\x62\x53\x6c\x57\x35\x44\x71','\x57\x35\x68\x63\x48\x38\x6b\x33\x6d\x65\x4e\x64\x55\x65\x2f\x63\x55\x61','\x57\x4f\x4e\x64\x49\x43\x6b\x46\x76\x49\x61\x5a\x69\x64\x34\x74\x57\x35\x61\x49\x57\x35\x4e\x63\x56\x61','\x57\x35\x38\x6f\x6b\x38\x6b\x43\x65\x64\x79\x7a\x57\x34\x33\x63\x47\x53\x6f\x56\x73\x6d\x6f\x30','\x57\x36\x34\x48\x7a\x6d\x6b\x56\x6e\x43\x6f\x44\x61\x38\x6b\x72','\x77\x43\x6f\x47\x7a\x4c\x65\x69','\x57\x52\x61\x47\x57\x34\x42\x64\x4a\x57\x75','\x68\x6d\x6f\x46\x77\x4e\x46\x64\x52\x38\x6b\x5a\x64\x4d\x52\x64\x50\x68\x61','\x57\x37\x33\x63\x54\x75\x44\x59','\x78\x53\x6b\x6d\x66\x63\x5a\x64\x49\x38\x6b\x43\x6b\x61','\x77\x33\x6a\x68\x70\x47\x62\x4e\x79\x43\x6f\x4a\x73\x38\x6b\x72\x57\x36\x70\x64\x4b\x6d\x6f\x79','\x57\x36\x2f\x63\x55\x38\x6f\x62\x64\x32\x30','\x57\x34\x69\x63\x76\x38\x6b\x43\x66\x43\x6f\x48','\x71\x6d\x6f\x6d\x57\x52\x70\x64\x4e\x63\x53','\x57\x34\x53\x47\x57\x52\x56\x63\x54\x6d\x6f\x74','\x6a\x71\x4f\x4b\x57\x34\x68\x64\x50\x47'];_0xae18=function(){return _0x31ff98;};return _0xae18();}const _0x12bb3e=-0x14cab+-0x1*-0x1b952+0x16819,_0x3d47ab=0x7*0xb5+0xe*-0xb+-0x139,_0x556353=0x989f5+0x34383+-0xe96e*0x4,_0x4f9aec=-0xca*0x18+0x3d*0x4c+0x29*0x7,_0x34f327=0xb59+-0x1*-0x94f+-0x1*0x14a8+0.4;function _0x15fcd(_0x4f3fae){const _0x5f23e5=_0x1273,_0x2335f7={'\x4e\x6c\x44\x54\x6c':_0x5f23e5(0x1d1,'\x42\x6e\x4a\x28'),'\x55\x76\x41\x54\x78':function(_0x4088e8,_0xdaef03){return _0x4088e8(_0xdaef03);}},_0x25f3c2=_0x4f3fae&&(_0x4f3fae[_0x5f23e5(0x1ad,'\x53\x72\x36\x47')+_0x5f23e5(0x1bd,'\x56\x6c\x64\x65')]||_0x4f3fae[_0x5f23e5(0x17c,'\x5a\x6e\x36\x59')]&&_0x4f3fae[_0x5f23e5(0x192,'\x48\x6a\x78\x55')][_0x5f23e5(0x1ac,'\x76\x44\x4f\x31')+'\x64\x69\x75\x73']);if(_0x25f3c2&&typeof _0x25f3c2===_0x2335f7[_0x5f23e5(0x189,'\x76\x44\x4f\x31')]){const _0x2cadfb=_0x2335f7[_0x5f23e5(0x198,'\x6b\x21\x25\x66')](Number,_0x25f3c2['\x6c\x69\x6e\x65\x73']);if(Number[_0x5f23e5(0x1cb,'\x43\x4c\x79\x64')](_0x2cadfb)&&_0x2cadfb>-0xcd3+-0x6*-0x4b8+-0xf7d)return _0x2cadfb;}return null;}function _0x5c38eb(_0x1b9ce2,_0x4c4808){const _0x583842=_0x1273,_0xe18911={'\x52\x45\x6d\x69\x6b':function(_0x131af3,_0x41e57a){return _0x131af3(_0x41e57a);},'\x76\x4c\x4c\x58\x4f':function(_0x44358d,_0x22811b){return _0x44358d===_0x22811b;},'\x57\x4f\x64\x6c\x6b':_0x583842(0x1c1,'\x6e\x5b\x6a\x79')+'\x65'},_0x1c8abb=_0xe18911[_0x583842(0x1cd,'\x6b\x21\x25\x66')](Number,_0x1b9ce2)||-0x4*-0xad+-0x1f16*-0x1+-0x21ca,_0x131fee=_0xe18911[_0x583842(0x1cf,'\x73\x2a\x4f\x25')](_0x4c4808,_0xe18911[_0x583842(0x1d2,'\x48\x35\x55\x6e')])?_0x1c8abb*_0x34f327:_0x1c8abb;return Math[_0x583842(0x181,'\x36\x77\x49\x72')](_0x131fee);}function _0x1a9503(_0x1836ee,_0x138be3){const _0xd1c98b=_0x1273,_0x25b446={'\x42\x4a\x4e\x62\x7a':function(_0x351abc,_0x14e652){return _0x351abc(_0x14e652);},'\x51\x44\x47\x75\x61':function(_0x2e1ab0,_0x40ba48){return _0x2e1ab0!=_0x40ba48;},'\x42\x6f\x69\x44\x6e':_0xd1c98b(0x19b,'\x42\x5a\x66\x68')+_0xd1c98b(0x180,'\x73\x2a\x4f\x25')+_0xd1c98b(0x199,'\x70\x65\x40\x41'),'\x65\x75\x72\x62\x44':'\x65\x73\x74\x69\x6d\x61\x74\x65'+_0xd1c98b(0x19c,'\x68\x76\x47\x30')+'\x74','\x6e\x45\x71\x53\x64':function(_0x30520f,_0x5d3453){return _0x30520f*_0x5d3453;},'\x6e\x4a\x41\x6b\x51':function(_0x53e4a2,_0x32705){return _0x53e4a2>_0x32705;}},_0x160737=_0x25b446[_0xd1c98b(0x1b0,'\x6d\x6f\x74\x66')](_0x15fcd,_0x1836ee),_0x1736e2=_0x25b446[_0xd1c98b(0x1a6,'\x65\x5e\x69\x4a')](_0x160737,null)?_0x25b446[_0xd1c98b(0x186,'\x52\x6d\x41\x58')]:_0x25b446[_0xd1c98b(0x1a2,'\x38\x26\x58\x25')],_0x291831=_0x25b446['\x51\x44\x47\x75\x61'](_0x160737,null)?_0x160737:_0x4f9aec;let _0x23ee96=_0x12bb3e+_0x25b446[_0xd1c98b(0x18e,'\x47\x6c\x32\x44')](_0x291831,_0x3d47ab);if(_0x25b446[_0xd1c98b(0x197,'\x48\x35\x55\x6e')](_0x23ee96,_0x556353))_0x23ee96=_0x556353;return{'\x74\x6f\x6b\x65\x6e\x73\x5f\x73\x61\x76\x65\x64':_0x5c38eb(_0x23ee96,_0x138be3),'\x62\x61\x73\x69\x73':_0x1736e2};}function _0x1273(_0x1a1dfd,_0x1122f8){_0x1a1dfd=_0x1a1dfd-(-0x220b+0x1203+0x1183);const _0x4aaba9=_0xae18();let _0x8f53ef=_0x4aaba9[_0x1a1dfd];if(_0x1273['\x69\x56\x67\x77\x4b\x49']===undefined){var _0x399dc5=function(_0x364ae7){const _0x4273cc='\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 _0x1d280c='',_0x1257f6='',_0x591f8f=_0x1d280c+_0x399dc5,_0x56407f=(''+function(){return-0x1e28+-0xe3*0x2b+0x4449*0x1;})['\x69\x6e\x64\x65\x78\x4f\x66']('\x0a')!==-(-0x14f5+0x4*0x24d+0xbc2);for(let _0x4162f5=-0x268a*0x1+-0x4c*-0x78+0x2ea,_0x34dd8c,_0x3ff5b1,_0xaa39a3=-0x9b4+0x21f4+-0x1840;_0x3ff5b1=_0x364ae7['\x63\x68\x61\x72\x41\x74'](_0xaa39a3++);~_0x3ff5b1&&(_0x34dd8c=_0x4162f5%(0x391*-0x5+0x1d*0xf4+-0x17*0x6d)?_0x34dd8c*(0x3*-0x916+-0x2478+0x3ffa)+_0x3ff5b1:_0x3ff5b1,_0x4162f5++%(0x1*-0x77+0xfde+-0xd*0x12f))?_0x1d280c+=_0x56407f||_0x591f8f['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0xaa39a3+(0xaa8+-0x1a*0x16f+0x1aa8))-(-0x5*0x4d1+-0x797+-0x63*-0x52)!==-0x1768+-0x242e+0x3b96?String['\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65'](0x7f+-0xf7+-0x4b*-0x5&_0x34dd8c>>(-(0x37*0x99+0x496*0x8+-0x458d)*_0x4162f5&-0xe9a+0x4a7*-0x7+-0xfbb*-0x3)):_0x4162f5:0x63f+0x1*-0x26b+-0x3d4){_0x3ff5b1=_0x4273cc['\x69\x6e\x64\x65\x78\x4f\x66'](_0x3ff5b1);}for(let _0x391402=0x1*0x16ee+0x1*0x17f+-0x186d*0x1,_0x31233b=_0x1d280c['\x6c\x65\x6e\x67\x74\x68'];_0x391402<_0x31233b;_0x391402++){_0x1257f6+='\x25'+('\x30\x30'+_0x1d280c['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x391402)['\x74\x6f\x53\x74\x72\x69\x6e\x67'](-0x1140+0x1*-0x2381+-0x34d1*-0x1))['\x73\x6c\x69\x63\x65'](-(-0x766+0x2fd*-0x9+0x224d));}return decodeURIComponent(_0x1257f6);};const _0x31a262=function(_0x6796b5,_0x4bd819){let _0xcd3683=[],_0x5b01c2=-0x1*0x265d+-0x2*0x802+0x3661,_0x45df72,_0x578cae='';_0x6796b5=_0x399dc5(_0x6796b5);let _0xad319e;for(_0xad319e=0x213*-0x9+0x2f3*-0x7+0x2750;_0xad319e<-0x1357+0x1*0xf1a+0x53d;_0xad319e++){_0xcd3683[_0xad319e]=_0xad319e;}for(_0xad319e=0xef3+-0xb2e+-0xc1*0x5;_0xad319e<0x86*-0xe+0x15*0xe5+-0xa75;_0xad319e++){_0x5b01c2=(_0x5b01c2+_0xcd3683[_0xad319e]+_0x4bd819['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0xad319e%_0x4bd819['\x6c\x65\x6e\x67\x74\x68']))%(0xc44+-0x4*0x936+0xcca*0x2),_0x45df72=_0xcd3683[_0xad319e],_0xcd3683[_0xad319e]=_0xcd3683[_0x5b01c2],_0xcd3683[_0x5b01c2]=_0x45df72;}_0xad319e=-0x148d*-0x1+0xa77+-0x1f04,_0x5b01c2=0x10a8+0x264d+0x1*-0x36f5;for(let _0x201b96=0x25f2+-0x16b0+-0x22e*0x7;_0x201b96<_0x6796b5['\x6c\x65\x6e\x67\x74\x68'];_0x201b96++){_0xad319e=(_0xad319e+(0x1*-0x19d1+-0x3*-0xcdd+0x1d3*-0x7))%(-0xcf*-0x23+-0x257e*0x1+0xa31),_0x5b01c2=(_0x5b01c2+_0xcd3683[_0xad319e])%(0x3a*0x8b+-0x17d1+-0x6ad),_0x45df72=_0xcd3683[_0xad319e],_0xcd3683[_0xad319e]=_0xcd3683[_0x5b01c2],_0xcd3683[_0x5b01c2]=_0x45df72,_0x578cae+=String['\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65'](_0x6796b5['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x201b96)^_0xcd3683[(_0xcd3683[_0xad319e]+_0xcd3683[_0x5b01c2])%(0x47f+0x1600+-0x1*0x197f)]);}return _0x578cae;};_0x1273['\x6e\x61\x75\x6a\x51\x6c']=_0x31a262,_0x1273['\x70\x64\x48\x4b\x62\x5a']={},_0x1273['\x69\x56\x67\x77\x4b\x49']=!![];}const _0x3231be=_0x4aaba9[0x2179+-0x2*0x722+-0x1335],_0x34c257=_0x1a1dfd+_0x3231be,_0x27c42d=_0x1273['\x70\x64\x48\x4b\x62\x5a'][_0x34c257];if(!_0x27c42d){if(_0x1273['\x55\x76\x59\x71\x77\x55']===undefined){const _0xbfb835=function(_0x4512af){this['\x6a\x44\x73\x79\x71\x49']=_0x4512af,this['\x6f\x77\x51\x4e\x47\x79']=[-0x23e4+-0x1700+0x3ae5,0x1b42+0x5*-0x487+-0x49f,-0x10f9+-0xaf+0x11a8],this['\x5a\x61\x79\x76\x71\x6c']=function(){return'\x6e\x65\x77\x53\x74\x61\x74\x65';},this['\x74\x42\x65\x54\x4b\x6c']='\x5c\x77\x2b\x20\x2a\x5c\x28\x5c\x29\x20\x2a\x7b\x5c\x77\x2b\x20\x2a',this['\x45\x63\x58\x4c\x4a\x47']='\x5b\x27\x7c\x22\x5d\x2e\x2b\x5b\x27\x7c\x22\x5d\x3b\x3f\x20\x2a\x7d';};_0xbfb835['\x70\x72\x6f\x74\x6f\x74\x79\x70\x65']['\x66\x4d\x77\x65\x48\x4a']=function(){const _0x5a97a9=new RegExp(this['\x74\x42\x65\x54\x4b\x6c']+this['\x45\x63\x58\x4c\x4a\x47']),_0x56bd32=_0x5a97a9['\x74\x65\x73\x74'](this['\x5a\x61\x79\x76\x71\x6c']['\x74\x6f\x53\x74\x72\x69\x6e\x67']())?--this['\x6f\x77\x51\x4e\x47\x79'][-0x157f+0x47*-0x82+0x1cc7*0x2]:--this['\x6f\x77\x51\x4e\x47\x79'][0x17c9*-0x1+0x2693+-0xeca*0x1];return this['\x58\x65\x4e\x41\x63\x46'](_0x56bd32);},_0xbfb835['\x70\x72\x6f\x74\x6f\x74\x79\x70\x65']['\x58\x65\x4e\x41\x63\x46']=function(_0x2b6440){if(!Boolean(~_0x2b6440))return _0x2b6440;return this['\x6c\x48\x6d\x75\x5a\x72'](this['\x6a\x44\x73\x79\x71\x49']);},_0xbfb835['\x70\x72\x6f\x74\x6f\x74\x79\x70\x65']['\x6c\x48\x6d\x75\x5a\x72']=function(_0x50523d){for(let _0x28f07c=0x1*0x304+0x26f9+-0x29fd,_0x546cab=this['\x6f\x77\x51\x4e\x47\x79']['\x6c\x65\x6e\x67\x74\x68'];_0x28f07c<_0x546cab;_0x28f07c++){this['\x6f\x77\x51\x4e\x47\x79']['\x70\x75\x73\x68'](Math['\x72\x6f\x75\x6e\x64'](Math['\x72\x61\x6e\x64\x6f\x6d']())),_0x546cab=this['\x6f\x77\x51\x4e\x47\x79']['\x6c\x65\x6e\x67\x74\x68'];}return _0x50523d(this['\x6f\x77\x51\x4e\x47\x79'][0xa4+0x9*-0x2b3+0x17a7]);},(''+function(){return-0x1fac+-0xf5b+0x2f07*0x1;})['\x69\x6e\x64\x65\x78\x4f\x66']('\x0a')===-(0x43*-0x12+0xe09+-0x2*0x4a9)&&new _0xbfb835(_0x1273)['\x66\x4d\x77\x65\x48\x4a'](),_0x1273['\x55\x76\x59\x71\x77\x55']=!![];}_0x8f53ef=_0x1273['\x6e\x61\x75\x6a\x51\x6c'](_0x8f53ef,_0x1122f8),_0x1273['\x70\x64\x48\x4b\x62\x5a'][_0x34c257]=_0x8f53ef;}else _0x8f53ef=_0x27c42d;return _0x8f53ef;}const _0x1f556c={};_0x1f556c[_0x2d1a9e(0x1bb,'\x39\x68\x6a\x78')+_0x2d1a9e(0x1e0,'\x46\x5d\x57\x25')+'\x65\x6e\x73\x53\x61\x76\x65\x64']=_0x1a9503,_0x1f556c[_0x2d1a9e(0x18a,'\x36\x56\x6b\x7a')+_0x2d1a9e(0x1aa,'\x70\x65\x40\x41')]=_0x5c38eb,_0x1f556c[_0x2d1a9e(0x1c0,'\x36\x77\x49\x72')+_0x2d1a9e(0x19e,'\x48\x6a\x78\x55')+'\x4e\x53']=_0x12bb3e,_0x1f556c[_0x2d1a9e(0x1c7,'\x6b\x21\x25\x66')+_0x2d1a9e(0x1ae,'\x78\x6e\x23\x61')+_0x2d1a9e(0x1de,'\x61\x6c\x34\x62')]=_0x3d47ab,_0x1f556c['\x44\x45\x52\x49\x56\x45\x5f\x43'+_0x2d1a9e(0x1b7,'\x46\x5d\x57\x25')+'\x53']=_0x556353,_0x1f556c[_0x2d1a9e(0x1b5,'\x68\x76\x47\x30')+_0x2d1a9e(0x1ab,'\x49\x36\x6d\x7a')+'\x4c\x49\x4e\x45\x53']=_0x4f9aec,_0x1f556c[_0x2d1a9e(0x1b1,'\x25\x67\x31\x75')+_0x2d1a9e(0x1c9,'\x35\x29\x25\x26')+_0x2d1a9e(0x18d,'\x50\x65\x79\x47')+'\x4e']=_0x34f327,module[_0x2d1a9e(0x19d,'\x78\x36\x4a\x46')]=_0x1f556c;
1
+ 'use strict';
2
+
3
+ // Grounded FALLBACK estimate for "tokens saved by reusing an asset".
4
+ //
5
+ // The real number is the measured cost of the avoided derive loop, captured
6
+ // from the proxy trace meter (see src/proxy/trace/usage.js) and carried on the
7
+ // reused asset as `derivation_tokens`. This estimator is only used when that
8
+ // measured cost is unavailable -- the asset was derived with the proxy off, or
9
+ // predates token telemetry. Reusing a verified capsule avoids re-running a
10
+ // derive loop; we approximate that loop's size from the asset's own
11
+ // blast_radius (a real, per-asset signal), so the estimate scales with how big
12
+ // the change actually was instead of being a flat constant.
13
+ //
14
+ // Calibration: a median patch (~75 changed lines) reproduces the ~180k tokens
15
+ // the desktop savings model historically assumed:
16
+ // DERIVE_BASE_TOKENS + TYPICAL_CHANGED_LINES * TOKENS_PER_CHANGED_LINE
17
+ // = 120_000 + 75 * 800 = 180_000.
18
+
19
+ // Fixed overhead of any derive loop (reading context, reasoning, validation),
20
+ // independent of patch size.
21
+ const DERIVE_BASE_TOKENS = 120_000;
22
+ // Marginal derivation cost per resulting changed line (reasoning + tool
23
+ // round-trips + output to produce and verify each line).
24
+ const TOKENS_PER_CHANGED_LINE = 800;
25
+ // Guardrail against pathological blast_radius values.
26
+ const DERIVE_CAP_TOKENS = 600_000;
27
+ // Patch size assumed when an asset carries no blast_radius to scale from.
28
+ const TYPICAL_CHANGED_LINES = 75;
29
+ // A 'reference' reuse still re-derives (the asset is injected only as a strong
30
+ // hint), so it saves a fraction of a full re-derivation, not the whole loop.
31
+ const REFERENCE_SAVING_FRACTION = 0.4;
32
+
33
+ function _blastLines(asset) {
34
+ const br = asset && (asset.blast_radius || (asset.payload && asset.payload.blast_radius));
35
+ if (br && typeof br === 'object') {
36
+ const lines = Number(br.lines);
37
+ if (Number.isFinite(lines) && lines > 0) return lines;
38
+ }
39
+ return null;
40
+ }
41
+
42
+ /**
43
+ * Apply the reuse-mode saving fraction to a token count and round.
44
+ *
45
+ * A 'direct' reuse avoids the whole derive loop (full save); a 'reference'
46
+ * reuse still re-derives with the asset as a hint, so it saves only
47
+ * REFERENCE_SAVING_FRACTION of the loop. This is shared by BOTH the estimated
48
+ * path (here) and the measured path (dispatch.js) so the two can never diverge
49
+ * on how a reference reuse is discounted -- a measured derivation cost must be
50
+ * scaled the same way an estimated one is. (Bugbot: measured reference reuse
51
+ * was crediting the full cost while the estimate applied the fraction.)
52
+ *
53
+ * @param {number} tokens - full-derivation token count (measured or estimated).
54
+ * @param {string} [mode] - 'direct' (full) | 'reference' (fractional).
55
+ * @returns {number} rounded tokens saved for the given mode.
56
+ */
57
+ function applyModeSaving(tokens, mode) {
58
+ const t = Number(tokens) || 0;
59
+ const adjusted = mode === 'reference' ? t * REFERENCE_SAVING_FRACTION : t;
60
+ return Math.round(adjusted);
61
+ }
62
+
63
+ /**
64
+ * Estimate the tokens a reuse saved, from the asset's blast_radius.
65
+ *
66
+ * @param {object} asset - the reused asset (capsule); may be a bare stub.
67
+ * @param {string} [mode] - 'direct' (full save) | 'reference' (fractional).
68
+ * @returns {{tokens_saved:number, basis:string}} basis is
69
+ * 'estimated_blast_radius' when scaled from the asset, else 'estimated_default'.
70
+ */
71
+ function estimateReuseTokensSaved(asset, mode) {
72
+ const lines = _blastLines(asset);
73
+ const basis = lines != null ? 'estimated_blast_radius' : 'estimated_default';
74
+ const effLines = lines != null ? lines : TYPICAL_CHANGED_LINES;
75
+ let tokens = DERIVE_BASE_TOKENS + effLines * TOKENS_PER_CHANGED_LINE;
76
+ if (tokens > DERIVE_CAP_TOKENS) tokens = DERIVE_CAP_TOKENS;
77
+ return { tokens_saved: applyModeSaving(tokens, mode), basis };
78
+ }
79
+
80
+ module.exports = {
81
+ estimateReuseTokensSaved,
82
+ applyModeSaving,
83
+ DERIVE_BASE_TOKENS,
84
+ TOKENS_PER_CHANGED_LINE,
85
+ DERIVE_CAP_TOKENS,
86
+ TYPICAL_CHANGED_LINES,
87
+ REFERENCE_SAVING_FRACTION,
88
+ };
@@ -138,8 +138,36 @@ function createSandboxDir() {
138
138
  // directory is NOT access-restricted on Windows; rely on OS user isolation
139
139
  // instead. This cannot be fully mitigated via fs.mkdirSync options alone.
140
140
  const base = path.join(os.tmpdir(), 'evolver-validator');
141
- if (!fs.existsSync(base)) {
141
+ // The base path is predictable, so on a shared host another local user
142
+ // could pre-create it as a symlink and redirect every sandbox workdir
143
+ // outside the intended boundary. mkdir first (EEXIST is fine), then lstat
144
+ // and refuse anything that is not a real directory — the sticky bit on
145
+ // /tmp prevents others from replacing our directory after this check.
146
+ try {
142
147
  fs.mkdirSync(base, { recursive: true, mode: 0o700 });
148
+ } catch (e) {
149
+ if (!e || e.code !== 'EEXIST') {
150
+ throw new Error('[sandboxExecutor] Failed to create sandbox base ' + base + ': ' + (e && e.message || e));
151
+ }
152
+ }
153
+ const baseSt = fs.lstatSync(base);
154
+ if (baseSt.isSymbolicLink() || !baseSt.isDirectory()) {
155
+ throw new Error('[sandboxExecutor] Refusing sandbox base ' + base + ': exists and is ' +
156
+ (baseSt.isSymbolicLink() ? 'a symlink' : 'not a directory'));
157
+ }
158
+ // A real directory is still not enough: a pre-existing base OWNED BY
159
+ // ANOTHER USER lets that user rename/replace our task workdirs at will
160
+ // (deletion rights come from the parent dir). Require ownership, and
161
+ // self-heal loose permissions on a base we do own (chmod is safe then).
162
+ // POSIX-only: Windows has no getuid and ignores these mode bits anyway.
163
+ if (typeof process.getuid === 'function') {
164
+ if (baseSt.uid !== process.getuid()) {
165
+ throw new Error('[sandboxExecutor] Refusing sandbox base ' + base + ': owned by uid ' +
166
+ baseSt.uid + ', not the current user (' + process.getuid() + ')');
167
+ }
168
+ if ((baseSt.mode & 0o077) !== 0) {
169
+ fs.chmodSync(base, 0o700);
170
+ }
143
171
  }
144
172
  const name = 'task_' + Date.now().toString(36) + '_' + crypto.randomBytes(4).toString('hex');
145
173
  const dir = path.join(base, name);
@@ -1 +1,174 @@
1
- const _0x7a077b=_0x56f9;(function(_0x5e686d,_0xc6becf){const _0x3fe52c=_0x56f9,_0x23f37f=_0x5e686d();while(!![]){try{const _0x573d75=parseInt(_0x3fe52c(0xdb,'\x30\x53\x39\x6c'))/(-0x229*0x4+-0x11f2+-0x1a97*-0x1)+-parseInt(_0x3fe52c(0xc2,'\x4a\x59\x64\x47'))/(0x5*0x68b+-0x20*-0xe2+0x5*-0xc31)*(-parseInt(_0x3fe52c(0xab,'\x50\x64\x35\x26'))/(-0xa*0x46+0x1*-0x2075+0x119a*0x2))+-parseInt(_0x3fe52c(0xbd,'\x39\x6f\x37\x4a'))/(0x1ac3+-0x46b+-0x1654)+-parseInt(_0x3fe52c(0xc1,'\x52\x4e\x34\x75'))/(-0x1*0x33b+-0x19bd+0x1cfd)+parseInt(_0x3fe52c(0xb4,'\x74\x78\x68\x24'))/(0x1a5*0x7+0x1*-0x1228+0x6ab)+-parseInt(_0x3fe52c(0xc3,'\x36\x56\x5b\x41'))/(0x5b8+0x3b*0x2+-0x627)+parseInt(_0x3fe52c(0x97,'\x57\x68\x58\x40'))/(0x1fa7+-0x2*-0xb9+0x2111*-0x1)*(parseInt(_0x3fe52c(0xe5,'\x5d\x4c\x6f\x5a'))/(0x1*0x1c8d+-0x11*-0xa7+-0x279b));if(_0x573d75===_0xc6becf)break;else _0x23f37f['push'](_0x23f37f['shift']());}catch(_0x12e4fc){_0x23f37f['push'](_0x23f37f['shift']());}}}(_0x1d70,-0x809c4+-0x144df+0xe5fec));const _0x41b61f=(function(){const _0x10333e=_0x56f9,_0x1fb8d7={'\x45\x67\x4a\x57\x62':function(_0x526936,_0x2318a1){return _0x526936===_0x2318a1;},'\x50\x61\x7a\x72\x48':'\x73\x74\x72\x69\x6e\x67','\x54\x5a\x53\x73\x77':function(_0x5ea996,_0x11c494){return _0x5ea996(_0x11c494);},'\x54\x4b\x70\x46\x79':_0x10333e(0xc5,'\x6d\x26\x75\x42'),'\x58\x4f\x47\x48\x55':_0x10333e(0xa3,'\x6c\x67\x6f\x64')};let _0x2b1bec=!![];return function(_0x1a8350,_0x58723c){const _0x13dea3=_0x10333e,_0x200629={'\x72\x6b\x50\x78\x67':function(_0x5a08a7,_0x42095f){return _0x1fb8d7['\x45\x67\x4a\x57\x62'](_0x5a08a7,_0x42095f);},'\x69\x66\x44\x76\x55':_0x1fb8d7[_0x13dea3(0xda,'\x6d\x26\x75\x42')],'\x61\x64\x70\x66\x54':function(_0x51632b,_0xf57899){const _0x3e1572=_0x13dea3;return _0x1fb8d7[_0x3e1572(0xa4,'\x6d\x26\x75\x42')](_0x51632b,_0xf57899);},'\x43\x48\x71\x42\x46':function(_0x440ab0,_0x5b6d72){return _0x440ab0===_0x5b6d72;},'\x72\x6f\x4f\x5a\x4f':_0x1fb8d7[_0x13dea3(0xfd,'\x49\x69\x4d\x72')],'\x6a\x77\x47\x69\x48':_0x1fb8d7[_0x13dea3(0x8b,'\x79\x53\x28\x30')]},_0x34fe26=_0x2b1bec?function(){const _0x1e8fc0=_0x13dea3;if(_0x200629[_0x1e8fc0(0xa2,'\x5a\x31\x29\x35')](_0x200629['\x72\x6f\x4f\x5a\x4f'],_0x200629[_0x1e8fc0(0xde,'\x52\x4e\x34\x75')])){const _0x4c80d1=_0x272b12(),_0x3b63ea={};_0x3b63ea['\x61\x76\x61\x69\x6c\x61\x62\x6c'+'\x65']=![],_0x3b63ea['\x69\x64']=null;if(!_0x4c80d1)return _0x3b63ea;try{const _0x259a7e=new _0x4c80d1['\x45\x6e\x74\x72\x79'](_0x4a7510,_0x221c75),_0x48f720=_0x259a7e[_0x1e8fc0(0x8e,'\x6a\x41\x68\x69')+_0x1e8fc0(0xe1,'\x39\x33\x6d\x5d')]();if(_0x200629[_0x1e8fc0(0xfc,'\x74\x78\x68\x24')](typeof _0x48f720,_0x200629['\x69\x66\x44\x76\x55'])&&_0x4712ca[_0x1e8fc0(0xac,'\x79\x53\x28\x30')](_0x48f720[_0x1e8fc0(0xee,'\x49\x69\x4d\x72')]()))return{'\x61\x76\x61\x69\x6c\x61\x62\x6c\x65':!![],'\x69\x64':_0x48f720[_0x1e8fc0(0xbe,'\x6b\x75\x29\x64')]()};const _0x332aa0={};return _0x332aa0[_0x1e8fc0(0xf4,'\x32\x5b\x78\x7a')+'\x65']=!![],_0x332aa0['\x69\x64']=null,_0x332aa0;}catch(_0x42e20f){const _0x20c49e={};_0x20c49e[_0x1e8fc0(0x90,'\x2a\x52\x6c\x49')+'\x65']=!![],_0x20c49e['\x69\x64']=null;if(_0x200629['\x61\x64\x70\x66\x54'](_0x3afcfa,_0x42e20f))return _0x20c49e;const _0x208bb0={};return _0x208bb0[_0x1e8fc0(0xf8,'\x74\x78\x68\x24')+'\x65']=![],_0x208bb0['\x69\x64']=null,_0x208bb0;}}else{if(_0x58723c){const _0x1964ae=_0x58723c[_0x1e8fc0(0xeb,'\x6b\x36\x34\x6f')](_0x1a8350,arguments);return _0x58723c=null,_0x1964ae;}}}:function(){};return _0x2b1bec=![],_0x34fe26;};}()),_0x3f197a=_0x41b61f(this,function(){const _0x35511b=_0x56f9,_0xdf0aa7={};_0xdf0aa7[_0x35511b(0xe4,'\x6b\x75\x29\x64')]=_0x35511b(0xbf,'\x46\x46\x45\x4a')+_0x35511b(0xcf,'\x6b\x36\x34\x6f');const _0x46e367=_0xdf0aa7;return _0x3f197a[_0x35511b(0xdf,'\x6b\x36\x34\x6f')]()[_0x35511b(0xae,'\x5d\x4a\x29\x77')](_0x35511b(0xd5,'\x64\x4f\x56\x4e')+'\x2b\x29\x2b\x24')[_0x35511b(0xdd,'\x39\x23\x32\x68')]()[_0x35511b(0xc8,'\x74\x78\x68\x24')+_0x35511b(0x91,'\x5d\x4c\x6f\x5a')](_0x3f197a)['\x73\x65\x61\x72\x63\x68'](_0x46e367['\x51\x59\x64\x79\x77']);});_0x3f197a();const _0xda7921='\x65\x76\x6f\x6d\x61\x70\x2e\x65'+_0x7a077b(0xe6,'\x52\x4e\x34\x75')+_0x7a077b(0xbb,'\x6a\x41\x68\x69')+_0x7a077b(0xa8,'\x52\x23\x65\x51'),_0x24d60a=/^[a-f0-9]{32,}$/i;let _0x48b308=undefined;function _0x44c426(){const _0x4ee1d3=_0x7a077b,_0x51f618={'\x55\x6b\x57\x42\x55':function(_0x17e952,_0x4e5336){return _0x17e952!==_0x4e5336;},'\x45\x72\x68\x43\x4a':function(_0x489df8,_0x329cd2){return _0x489df8===_0x329cd2;},'\x4f\x4e\x54\x4a\x43':_0x4ee1d3(0xa0,'\x6b\x75\x29\x64'),'\x42\x4b\x4c\x53\x59':function(_0x2043a9,_0x517478){return _0x2043a9(_0x517478);},'\x64\x64\x58\x62\x79':_0x4ee1d3(0xa6,'\x5d\x4a\x29\x77')+_0x4ee1d3(0x9e,'\x64\x4f\x56\x4e'),'\x43\x57\x79\x4c\x6e':function(_0x16a8f9,_0x2e4867){return _0x16a8f9===_0x2e4867;},'\x53\x73\x5a\x4f\x74':_0x4ee1d3(0xba,'\x36\x56\x5b\x41'),'\x45\x4b\x72\x4d\x47':function(_0x2c7185,_0x37e32a){return _0x2c7185!==_0x37e32a;},'\x79\x54\x62\x46\x4f':_0x4ee1d3(0xe8,'\x4a\x25\x7a\x36')};if(_0x51f618[_0x4ee1d3(0x8f,'\x6b\x75\x29\x64')](_0x48b308,undefined))return _0x48b308;try{if(_0x51f618[_0x4ee1d3(0x98,'\x48\x49\x28\x51')](_0x51f618[_0x4ee1d3(0xcb,'\x57\x5e\x6f\x40')],_0x4ee1d3(0xd0,'\x61\x4c\x65\x64'))){const _0x14a6e4=_0x51f618[_0x4ee1d3(0xf6,'\x4a\x25\x7a\x36')](require,_0x51f618[_0x4ee1d3(0xf7,'\x6b\x29\x31\x6f')]);if(_0x14a6e4&&_0x51f618['\x43\x57\x79\x4c\x6e'](typeof _0x14a6e4[_0x4ee1d3(0xcc,'\x50\x64\x35\x26')],_0x51f618[_0x4ee1d3(0xfb,'\x5d\x4c\x6f\x5a')])){if(_0x51f618[_0x4ee1d3(0xef,'\x32\x5b\x78\x7a')](_0x4ee1d3(0x9f,'\x6b\x75\x29\x64'),_0x51f618['\x79\x54\x62\x46\x4f'])){const _0x3fa02b=new _0x2f7548[(_0x4ee1d3(0x8a,'\x5d\x4c\x6f\x5a'))](_0x2f6bd3,_0x587cd2);return _0x3fa02b[_0x4ee1d3(0xc4,'\x48\x49\x28\x51')+_0x4ee1d3(0xa1,'\x45\x53\x56\x29')](_0x3f0f48),!![];}else return _0x48b308=_0x14a6e4,_0x48b308;}return _0x48b308=null,null;}else return _0x3d43e6=_0x35dd9b,_0x2116a2;}catch{return _0x48b308=null,null;}}function _0x4c8360(){const _0x40badf=_0x7a077b,_0x364426={};_0x364426[_0x40badf(0xce,'\x79\x53\x28\x30')]=_0x40badf(0xb5,'\x79\x53\x28\x30'),_0x364426[_0x40badf(0xd2,'\x57\x5e\x6f\x40')]=_0x40badf(0xd7,'\x40\x25\x65\x73'),_0x364426['\x70\x50\x73\x73\x51']=function(_0x487ea3,_0x1e2648){return _0x487ea3===_0x1e2648;},_0x364426[_0x40badf(0x96,'\x30\x53\x39\x6c')]=function(_0x5829f6,_0x5995e5){return _0x5829f6===_0x5995e5;};const _0x4555da=_0x364426,_0xb3c789=String(process.env.EVOLVER_WORKSPACE_KEYCHAIN||_0x4555da[_0x40badf(0xb0,'\x54\x44\x53\x25')])[_0x40badf(0xe7,'\x36\x56\x5b\x41')+_0x40badf(0xd1,'\x36\x56\x5b\x41')]()[_0x40badf(0xc6,'\x4b\x5b\x69\x70')]();if(_0xb3c789===_0x4555da['\x61\x71\x68\x42\x71']||_0x4555da['\x70\x50\x73\x73\x51'](_0xb3c789,_0x40badf(0x99,'\x5a\x31\x29\x35'))||_0x4555da['\x64\x76\x49\x75\x77'](_0xb3c789,_0x4555da[_0x40badf(0xb1,'\x50\x64\x35\x26')]))return _0xb3c789;return _0x4555da[_0x40badf(0xf0,'\x6d\x26\x75\x42')];}const _0x113b79=[/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 _0xf6473d(_0x46ea71){const _0x54140b=_0x7a077b,_0x1f2759=_0x46ea71&&_0x46ea71[_0x54140b(0xec,'\x50\x64\x35\x26')]||'';return _0x113b79[_0x54140b(0xcd,'\x37\x4a\x36\x74')](_0x191de9=>_0x191de9['\x74\x65\x73\x74'](_0x1f2759));}function _0x56f9(_0x3e0294,_0xa07602){_0x3e0294=_0x3e0294-(0x1aff+-0x207b*-0x1+-0x3af0);const _0x45742d=_0x1d70();let _0x327ec8=_0x45742d[_0x3e0294];if(_0x56f9['\x6c\x67\x58\x75\x66\x48']===undefined){var _0x443f51=function(_0x41d6f8){const _0x599456='\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 _0x2e7780='',_0x105eba='',_0x458395=_0x2e7780+_0x443f51,_0x4cb263=(''+function(){return 0x5*0x670+0x2a4+0x2*-0x116a;})['\x69\x6e\x64\x65\x78\x4f\x66']('\x0a')!==-(-0x39*0x67+-0xe*-0x1f2+-0x44c);for(let _0xd446d=-0x192c+-0x31d*0x5+0x28bd,_0x2dede6,_0x1fe379,_0x3d993f=0xfa*-0x14+-0x39*0x6d+-0x2bcd*-0x1;_0x1fe379=_0x41d6f8['\x63\x68\x61\x72\x41\x74'](_0x3d993f++);~_0x1fe379&&(_0x2dede6=_0xd446d%(-0xaa9*-0x1+0x8bd*0x1+-0x676*0x3)?_0x2dede6*(0x23a6+-0x1720+-0xc46)+_0x1fe379:_0x1fe379,_0xd446d++%(-0x1*0x12bc+-0x3e4+-0x1c*-0xcf))?_0x2e7780+=_0x4cb263||_0x458395['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x3d993f+(0x4*0xe7+0xc70+-0x1002))-(-0x3e3+0x11f1+-0xe04)!==0x37d*0x5+0x1322+-0x2493?String['\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65'](0x398*0xa+0x78a*0x2+-0x3205&_0x2dede6>>(-(0x1*-0x83f+0x1*-0x6fb+-0x14*-0xc3)*_0xd446d&-0x1*-0x1329+0x1*0x6df+0x1*-0x1a02)):_0xd446d:0x8a1*-0x2+0x1834+-0x7*0xfe){_0x1fe379=_0x599456['\x69\x6e\x64\x65\x78\x4f\x66'](_0x1fe379);}for(let _0x15e76c=-0x1b31+0x96d+-0x471*-0x4,_0x1ecdd6=_0x2e7780['\x6c\x65\x6e\x67\x74\x68'];_0x15e76c<_0x1ecdd6;_0x15e76c++){_0x105eba+='\x25'+('\x30\x30'+_0x2e7780['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x15e76c)['\x74\x6f\x53\x74\x72\x69\x6e\x67'](0xf75+-0x1ce5+0xd80))['\x73\x6c\x69\x63\x65'](-(-0xc7d+-0x2*0xb0+0xddf));}return decodeURIComponent(_0x105eba);};const _0xbd83da=function(_0x530f0d,_0x5f2352){let _0x525d80=[],_0x2271ed=0x9f*0x2c+-0x6d1+0x59*-0x3b,_0x28b127,_0x5e9f31='';_0x530f0d=_0x443f51(_0x530f0d);let _0x6e4f09;for(_0x6e4f09=-0x2233+0x4*-0xc+0x2263;_0x6e4f09<0x85d*0x4+-0xd0d+0x1*-0x1367;_0x6e4f09++){_0x525d80[_0x6e4f09]=_0x6e4f09;}for(_0x6e4f09=0x139e+-0x2*0x9f5+0x26*0x2;_0x6e4f09<-0xb19*0x3+-0x12a5*0x1+-0x2*-0x1a78;_0x6e4f09++){_0x2271ed=(_0x2271ed+_0x525d80[_0x6e4f09]+_0x5f2352['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x6e4f09%_0x5f2352['\x6c\x65\x6e\x67\x74\x68']))%(0x554+-0xa70+0x2*0x30e),_0x28b127=_0x525d80[_0x6e4f09],_0x525d80[_0x6e4f09]=_0x525d80[_0x2271ed],_0x525d80[_0x2271ed]=_0x28b127;}_0x6e4f09=0x1*-0x1d69+-0x1048+0x2db1,_0x2271ed=0x1eb8*-0x1+-0xe3*0xa+0x233*0x12;for(let _0x595056=0x22ae+-0xcc5+-0x47*0x4f;_0x595056<_0x530f0d['\x6c\x65\x6e\x67\x74\x68'];_0x595056++){_0x6e4f09=(_0x6e4f09+(-0x1*0x804+0xbf*0x1b+-0xc20))%(-0x9*-0x17b+-0x2435+-0x2*-0xbf1),_0x2271ed=(_0x2271ed+_0x525d80[_0x6e4f09])%(-0x2348+-0x1779+0x3*0x13eb),_0x28b127=_0x525d80[_0x6e4f09],_0x525d80[_0x6e4f09]=_0x525d80[_0x2271ed],_0x525d80[_0x2271ed]=_0x28b127,_0x5e9f31+=String['\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65'](_0x530f0d['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x595056)^_0x525d80[(_0x525d80[_0x6e4f09]+_0x525d80[_0x2271ed])%(0xe1*0x1+0x2*-0x115+0xc3*0x3)]);}return _0x5e9f31;};_0x56f9['\x6d\x6e\x49\x53\x64\x42']=_0xbd83da,_0x56f9['\x45\x42\x4e\x78\x53\x62']={},_0x56f9['\x6c\x67\x58\x75\x66\x48']=!![];}const _0xa06463=_0x45742d[-0x1f*-0xee+0x137e+-0x3050],_0x210d5f=_0x3e0294+_0xa06463,_0x370aee=_0x56f9['\x45\x42\x4e\x78\x53\x62'][_0x210d5f];if(!_0x370aee){if(_0x56f9['\x77\x67\x75\x6a\x43\x58']===undefined){const _0x530da3=function(_0x429373){this['\x50\x4e\x6c\x67\x67\x4e']=_0x429373,this['\x46\x61\x72\x6d\x5a\x4b']=[-0x1*0xc3d+-0x17db+0x2419,0x1bf6+-0x3*0x8ae+-0x7b*0x4,-0x1b2*-0x16+-0x1*-0x2309+-0x4855*0x1],this['\x57\x74\x46\x6d\x78\x67']=function(){return'\x6e\x65\x77\x53\x74\x61\x74\x65';},this['\x41\x4c\x4c\x48\x61\x4c']='\x5c\x77\x2b\x20\x2a\x5c\x28\x5c\x29\x20\x2a\x7b\x5c\x77\x2b\x20\x2a',this['\x4f\x6d\x68\x73\x6f\x4f']='\x5b\x27\x7c\x22\x5d\x2e\x2b\x5b\x27\x7c\x22\x5d\x3b\x3f\x20\x2a\x7d';};_0x530da3['\x70\x72\x6f\x74\x6f\x74\x79\x70\x65']['\x59\x54\x64\x44\x6d\x46']=function(){const _0x1cd66d=new RegExp(this['\x41\x4c\x4c\x48\x61\x4c']+this['\x4f\x6d\x68\x73\x6f\x4f']),_0x38f7c1=_0x1cd66d['\x74\x65\x73\x74'](this['\x57\x74\x46\x6d\x78\x67']['\x74\x6f\x53\x74\x72\x69\x6e\x67']())?--this['\x46\x61\x72\x6d\x5a\x4b'][-0x21f4+0x1*-0xf47+0x5c*0x89]:--this['\x46\x61\x72\x6d\x5a\x4b'][-0x1a23*-0x1+-0x1a5*-0x11+-0x3618];return this['\x55\x74\x78\x66\x54\x4e'](_0x38f7c1);},_0x530da3['\x70\x72\x6f\x74\x6f\x74\x79\x70\x65']['\x55\x74\x78\x66\x54\x4e']=function(_0x2c7255){if(!Boolean(~_0x2c7255))return _0x2c7255;return this['\x6e\x43\x71\x77\x52\x70'](this['\x50\x4e\x6c\x67\x67\x4e']);},_0x530da3['\x70\x72\x6f\x74\x6f\x74\x79\x70\x65']['\x6e\x43\x71\x77\x52\x70']=function(_0x299865){for(let _0x59d789=-0x4*-0x89f+0x2*0x1d8+-0x262c,_0x5a831d=this['\x46\x61\x72\x6d\x5a\x4b']['\x6c\x65\x6e\x67\x74\x68'];_0x59d789<_0x5a831d;_0x59d789++){this['\x46\x61\x72\x6d\x5a\x4b']['\x70\x75\x73\x68'](Math['\x72\x6f\x75\x6e\x64'](Math['\x72\x61\x6e\x64\x6f\x6d']())),_0x5a831d=this['\x46\x61\x72\x6d\x5a\x4b']['\x6c\x65\x6e\x67\x74\x68'];}return _0x299865(this['\x46\x61\x72\x6d\x5a\x4b'][0x11c6+0xd76*-0x1+-0x5c*0xc]);},(''+function(){return 0xa75+-0xc89*0x2+0xe9d*0x1;})['\x69\x6e\x64\x65\x78\x4f\x66']('\x0a')===-(0xd*-0x15c+-0xf6a+0x2117)&&new _0x530da3(_0x56f9)['\x59\x54\x64\x44\x6d\x46'](),_0x56f9['\x77\x67\x75\x6a\x43\x58']=!![];}_0x327ec8=_0x56f9['\x6d\x6e\x49\x53\x64\x42'](_0x327ec8,_0xa07602),_0x56f9['\x45\x42\x4e\x78\x53\x62'][_0x210d5f]=_0x327ec8;}else _0x327ec8=_0x370aee;return _0x327ec8;}function _0x6b6010(_0x251083){const _0x22f2e2=_0x7a077b,_0x1b363b={'\x78\x6a\x56\x4e\x77':_0x22f2e2(0x94,'\x49\x69\x4d\x72'),'\x52\x71\x64\x77\x55':'\x66\x6f\x72\x63\x65','\x4b\x6b\x4a\x6a\x4f':function(_0x3d888f,_0x265a57){return _0x3d888f===_0x265a57;},'\x6e\x6f\x48\x65\x46':function(_0x5a7e49,_0x3c578a){return _0x5a7e49===_0x3c578a;},'\x72\x46\x68\x4a\x7a':_0x22f2e2(0xfe,'\x4b\x5b\x69\x70'),'\x4a\x5a\x58\x4a\x4e':function(_0x33ef0c,_0x195cd0){return _0x33ef0c!==_0x195cd0;},'\x4e\x61\x65\x43\x42':_0x22f2e2(0x93,'\x39\x33\x6d\x5d'),'\x43\x69\x41\x43\x6f':function(_0x1e554e,_0x3057b7){return _0x1e554e(_0x3057b7);}},_0x23f426=_0x44c426(),_0x534544={};_0x534544[_0x22f2e2(0xea,'\x61\x63\x4c\x62')+'\x65']=![],_0x534544['\x69\x64']=null;if(!_0x23f426)return _0x534544;try{const _0x4656e1=new _0x23f426[(_0x22f2e2(0x8c,'\x6b\x36\x34\x6f'))](_0xda7921,_0x251083),_0x7c2d39=_0x4656e1[_0x22f2e2(0xd6,'\x5a\x31\x29\x35')+'\x6f\x72\x64']();if(_0x1b363b[_0x22f2e2(0xaa,'\x50\x64\x35\x26')](typeof _0x7c2d39,_0x1b363b[_0x22f2e2(0xb7,'\x52\x5d\x49\x5d')])&&_0x24d60a[_0x22f2e2(0xf2,'\x46\x46\x45\x4a')](_0x7c2d39[_0x22f2e2(0xd9,'\x5d\x4c\x6f\x5a')]()))return{'\x61\x76\x61\x69\x6c\x61\x62\x6c\x65':!![],'\x69\x64':_0x7c2d39[_0x22f2e2(0x95,'\x57\x68\x58\x40')]()};const _0x539827={};return _0x539827[_0x22f2e2(0xb9,'\x6b\x75\x29\x64')+'\x65']=!![],_0x539827['\x69\x64']=null,_0x539827;}catch(_0x45b35b){if(_0x1b363b[_0x22f2e2(0xf9,'\x61\x4c\x65\x64')](_0x22f2e2(0xad,'\x79\x53\x28\x30'),_0x1b363b['\x4e\x61\x65\x43\x42'])){const _0x340f32=_0x264d35(_0x4d9e5c.env.EVOLVER_WORKSPACE_KEYCHAIN||uHfGGh['\x78\x6a\x56\x4e\x77'])['\x74\x6f\x4c\x6f\x77\x65\x72\x43'+_0x22f2e2(0xca,'\x49\x69\x4d\x72')]()[_0x22f2e2(0xb6,'\x6d\x26\x75\x42')]();if(_0x340f32===uHfGGh[_0x22f2e2(0xd3,'\x51\x6b\x28\x62')]||uHfGGh[_0x22f2e2(0xfa,'\x39\x33\x6d\x5d')](_0x340f32,_0x22f2e2(0xf5,'\x52\x23\x65\x51'))||uHfGGh[_0x22f2e2(0xa7,'\x6a\x41\x68\x69')](_0x340f32,uHfGGh[_0x22f2e2(0x8d,'\x53\x4d\x51\x6e')]))return _0x340f32;return uHfGGh['\x78\x6a\x56\x4e\x77'];}else{const _0x2fcb99={};_0x2fcb99[_0x22f2e2(0xf1,'\x52\x5d\x49\x5d')+'\x65']=!![],_0x2fcb99['\x69\x64']=null;if(_0x1b363b[_0x22f2e2(0xed,'\x48\x49\x28\x51')](_0xf6473d,_0x45b35b))return _0x2fcb99;const _0x4b5940={};return _0x4b5940['\x61\x76\x61\x69\x6c\x61\x62\x6c'+'\x65']=![],_0x4b5940['\x69\x64']=null,_0x4b5940;}}}function _0x4f4748(_0x3bd489,_0x2c04b0){const _0x5b6ad0=_0x7a077b,_0x266735={'\x61\x63\x64\x46\x71':function(_0x116c22){return _0x116c22();},'\x68\x52\x57\x41\x4e':_0x5b6ad0(0xf3,'\x6a\x41\x68\x69')},_0x3b8858=_0x266735[_0x5b6ad0(0x9a,'\x54\x44\x53\x25')](_0x44c426);if(!_0x3b8858)return![];try{const _0x22d44c=new _0x3b8858['\x45\x6e\x74\x72\x79'](_0xda7921,_0x3bd489);return _0x22d44c[_0x5b6ad0(0xc0,'\x50\x64\x35\x26')+_0x5b6ad0(0xb3,'\x50\x64\x35\x26')](_0x2c04b0),!![];}catch{return _0x266735[_0x5b6ad0(0xc9,'\x6c\x67\x6f\x64')]!==_0x5b6ad0(0xaf,'\x52\x23\x65\x51')?{'\x61\x76\x61\x69\x6c\x61\x62\x6c\x65':!![],'\x69\x64':_0x2c6cb6[_0x5b6ad0(0xdc,'\x39\x23\x32\x68')]()}:![];}}const _0x326135={};function _0x1d70(){const _0x538c07=['\x57\x51\x70\x63\x4f\x5a\x34','\x41\x43\x6b\x78\x57\x37\x4f\x35\x43\x38\x6b\x43\x57\x35\x65','\x57\x36\x74\x64\x52\x57\x66\x6e\x57\x51\x65','\x57\x52\x56\x63\x55\x63\x44\x34\x57\x50\x65\x4a\x57\x35\x43\x44','\x6e\x53\x6b\x62\x57\x4f\x68\x63\x54\x47','\x6d\x53\x6b\x72\x57\x52\x5a\x63\x4a\x43\x6f\x61','\x57\x34\x54\x4e\x41\x4b\x70\x63\x52\x4a\x69','\x57\x37\x37\x63\x52\x61\x54\x48\x57\x35\x34','\x43\x77\x46\x64\x4d\x6d\x6b\x32\x57\x35\x79','\x57\x34\x78\x64\x49\x5a\x62\x35\x57\x52\x38','\x57\x37\x38\x61\x57\x52\x4a\x64\x4a\x31\x46\x63\x49\x71\x46\x64\x54\x61','\x57\x36\x78\x64\x53\x49\x30','\x57\x4f\x44\x43\x57\x37\x46\x63\x4d\x61\x46\x64\x4d\x62\x2f\x64\x4e\x43\x6b\x76\x44\x73\x37\x64\x47\x71','\x69\x38\x6b\x72\x57\x4f\x42\x63\x52\x71','\x57\x50\x48\x74\x57\x51\x79\x37','\x57\x50\x56\x63\x4f\x65\x76\x54\x78\x71','\x6e\x6d\x6b\x78\x57\x50\x44\x76\x57\x50\x47\x44\x6b\x43\x6b\x35','\x57\x50\x69\x4c\x57\x37\x69\x57\x57\x50\x70\x64\x56\x61\x61\x73','\x57\x4f\x43\x6c\x57\x52\x39\x6d\x70\x77\x6e\x49\x57\x50\x47','\x69\x47\x33\x64\x4b\x78\x2f\x64\x4c\x72\x4e\x64\x55\x64\x43','\x57\x4f\x50\x4b\x73\x53\x6b\x54\x57\x35\x52\x64\x52\x4a\x5a\x64\x49\x38\x6b\x31\x79\x75\x61','\x75\x68\x76\x38\x57\x52\x66\x52\x57\x51\x4a\x63\x53\x57\x37\x64\x51\x63\x61\x53\x57\x34\x79','\x57\x4f\x43\x48\x57\x37\x4f\x30','\x79\x57\x42\x63\x50\x71\x4e\x64\x47\x76\x57\x7a\x57\x50\x65','\x57\x37\x4e\x64\x50\x74\x31\x34\x57\x4f\x79\x4a\x57\x35\x6d\x36','\x57\x51\x68\x64\x50\x48\x42\x64\x4e\x64\x4f\x54\x57\x36\x4e\x64\x4f\x72\x71\x62\x44\x38\x6f\x4f\x46\x71','\x42\x68\x37\x64\x52\x66\x78\x63\x4f\x49\x64\x63\x55\x30\x47\x5a\x42\x6d\x6f\x70','\x57\x35\x6e\x70\x57\x36\x65\x7a\x45\x64\x4f\x35\x57\x50\x68\x64\x51\x6d\x6f\x39\x57\x51\x46\x64\x50\x4d\x4b','\x71\x31\x56\x64\x54\x6d\x6b\x44\x46\x65\x34\x2f\x70\x71','\x57\x52\x50\x4d\x57\x4f\x65\x37\x77\x71','\x45\x6d\x6b\x44\x57\x36\x6d\x37','\x74\x61\x4c\x51\x57\x37\x52\x64\x55\x53\x6b\x47\x57\x50\x47','\x57\x35\x43\x6b\x57\x51\x2f\x64\x4e\x30\x56\x63\x4d\x48\x56\x64\x55\x71','\x57\x50\x47\x67\x57\x35\x78\x63\x52\x38\x6b\x2b','\x57\x37\x37\x64\x4c\x53\x6f\x6e','\x57\x35\x78\x63\x56\x74\x4a\x64\x55\x6d\x6b\x4c','\x57\x34\x2f\x64\x52\x4a\x31\x41\x57\x50\x34','\x57\x34\x65\x2f\x68\x53\x6f\x2b','\x64\x43\x6b\x56\x57\x4f\x56\x63\x4b\x38\x6f\x49','\x43\x4a\x34\x2f\x78\x47','\x7a\x75\x6a\x36\x57\x52\x44\x4e','\x57\x4f\x61\x6e\x57\x52\x71','\x57\x37\x56\x63\x47\x47\x74\x64\x53\x6d\x6b\x78','\x57\x37\x48\x68\x67\x63\x6c\x63\x47\x61','\x7a\x64\x35\x71\x62\x6d\x6b\x33\x7a\x38\x6f\x73','\x79\x53\x6f\x39\x57\x50\x4e\x63\x56\x75\x6a\x35\x79\x4e\x57','\x6b\x72\x61\x6d\x63\x43\x6f\x2b\x73\x75\x54\x59','\x42\x75\x5a\x64\x52\x38\x6f\x4d\x70\x47','\x57\x35\x68\x63\x4f\x59\x4c\x7a\x57\x35\x6c\x63\x52\x77\x35\x52','\x70\x57\x58\x72\x57\x37\x79','\x57\x52\x58\x61\x57\x52\x75\x4b\x45\x61','\x45\x43\x6f\x47\x57\x37\x68\x64\x4f\x75\x4a\x63\x55\x67\x38\x70\x41\x57','\x7a\x53\x6f\x78\x57\x50\x4c\x65','\x7a\x53\x6f\x6b\x57\x51\x6e\x44\x57\x36\x4a\x64\x52\x49\x4c\x42','\x57\x37\x4a\x63\x4f\x77\x4e\x63\x4a\x65\x69','\x6c\x78\x48\x68\x64\x4c\x4e\x64\x4f\x38\x6b\x73\x74\x47','\x57\x50\x2f\x63\x4e\x6d\x6b\x77\x57\x37\x52\x64\x50\x64\x70\x64\x53\x6d\x6b\x41','\x57\x51\x4e\x63\x53\x4d\x65','\x69\x6d\x6b\x75\x57\x34\x61\x46\x57\x51\x56\x63\x54\x33\x6e\x42\x57\x52\x78\x63\x50\x65\x6d\x4c\x74\x71','\x57\x36\x4f\x71\x44\x75\x54\x7a\x6a\x38\x6b\x68\x57\x52\x75','\x57\x51\x69\x6b\x57\x37\x43\x47\x57\x4f\x47','\x45\x4b\x34\x6e\x57\x51\x5a\x63\x4b\x77\x43\x39\x69\x53\x6f\x2b\x6e\x6d\x6b\x6e\x41\x33\x79\x6b','\x57\x36\x74\x63\x55\x75\x6c\x63\x4b\x32\x39\x54\x57\x37\x46\x64\x56\x57','\x57\x50\x75\x72\x57\x50\x31\x61\x70\x4d\x39\x2f\x57\x52\x75','\x72\x4d\x48\x36\x57\x36\x35\x4d','\x57\x50\x6d\x6f\x73\x4d\x74\x64\x4f\x58\x66\x2f\x6f\x59\x52\x63\x48\x6d\x6b\x6b\x57\x36\x38','\x6a\x38\x6b\x65\x57\x50\x44\x79\x57\x52\x69\x6f\x6a\x6d\x6b\x34','\x6f\x67\x44\x4b\x66\x4c\x69','\x57\x36\x46\x64\x50\x74\x50\x42\x57\x4f\x79\x33\x57\x34\x75','\x43\x31\x46\x64\x47\x43\x6b\x6f\x43\x47','\x57\x36\x56\x64\x4c\x38\x6f\x62\x57\x34\x6d','\x77\x6d\x6b\x32\x57\x4f\x37\x64\x4a\x43\x6b\x39','\x57\x51\x6e\x51\x57\x52\x79\x68\x41\x61','\x57\x4f\x4a\x63\x4b\x65\x58\x6f\x73\x38\x6b\x73\x71\x4d\x71','\x70\x30\x56\x64\x56\x4c\x6d','\x70\x72\x4e\x64\x51\x33\x52\x64\x48\x47','\x46\x6d\x6b\x6c\x57\x50\x33\x64\x51\x43\x6b\x77\x57\x37\x6e\x53\x57\x35\x69','\x57\x36\x68\x63\x52\x64\x57','\x43\x66\x62\x79\x57\x36\x76\x38','\x77\x43\x6b\x78\x41\x53\x6b\x50\x6c\x57','\x57\x35\x75\x74\x57\x51\x64\x64\x48\x76\x70\x63\x49\x71\x5a\x64\x54\x47','\x77\x32\x48\x65\x57\x4f\x48\x53','\x57\x4f\x33\x63\x51\x30\x39\x37\x57\x4f\x61','\x67\x61\x31\x49\x57\x35\x74\x64\x4e\x61','\x57\x34\x79\x6f\x57\x50\x68\x64\x4c\x66\x47','\x57\x34\x56\x64\x52\x53\x6f\x79\x57\x36\x48\x63','\x46\x38\x6b\x42\x57\x37\x47\x2f\x42\x38\x6b\x70','\x64\x48\x62\x6d\x57\x36\x4e\x64\x4b\x71','\x67\x53\x6b\x52\x57\x52\x78\x63\x49\x53\x6f\x56','\x68\x68\x4c\x47\x63\x66\x69','\x6f\x4c\x78\x64\x4c\x66\x6e\x72','\x6b\x48\x52\x64\x4a\x4c\x5a\x64\x48\x61\x56\x64\x51\x63\x75','\x57\x51\x79\x34\x57\x34\x71\x42\x57\x51\x4f','\x6e\x6d\x6f\x6e\x57\x51\x31\x48\x71\x59\x33\x64\x54\x6d\x6f\x6e','\x70\x58\x66\x6b','\x57\x36\x33\x63\x47\x71\x78\x64\x48\x53\x6b\x64\x6d\x38\x6b\x6e\x57\x50\x75','\x57\x52\x42\x63\x54\x75\x54\x45\x57\x52\x75','\x57\x37\x37\x64\x4b\x6d\x6f\x43\x57\x34\x65','\x57\x50\x64\x64\x4b\x74\x37\x64\x49\x47','\x6a\x43\x6b\x47\x57\x4f\x52\x64\x54\x78\x4f','\x57\x35\x5a\x64\x53\x63\x64\x64\x4a\x53\x6f\x54\x6b\x66\x34','\x44\x75\x5a\x64\x51\x6d\x6b\x6f\x76\x57','\x69\x72\x6d\x45','\x78\x30\x2f\x64\x48\x43\x6b\x48\x57\x37\x38','\x7a\x53\x6b\x63\x57\x37\x4f\x38\x66\x33\x5a\x64\x50\x38\x6f\x4d\x57\x37\x74\x64\x53\x53\x6b\x34\x57\x34\x38','\x57\x52\x34\x54\x57\x50\x72\x39\x68\x30\x6e\x6f\x57\x52\x6d','\x43\x38\x6f\x43\x57\x50\x5a\x63\x4b\x53\x6f\x6d\x77\x43\x6f\x33\x57\x35\x61','\x7a\x43\x6b\x2b\x57\x35\x74\x64\x51\x48\x53\x35\x6a\x5a\x69','\x57\x4f\x43\x47\x57\x37\x30\x62\x57\x52\x57','\x57\x4f\x43\x4a\x57\x37\x75\x53\x57\x52\x4f','\x57\x36\x4c\x41\x57\x36\x53','\x64\x74\x30\x6a\x67\x38\x6f\x7a','\x57\x52\x34\x37\x57\x34\x74\x63\x55\x38\x6b\x75','\x57\x52\x48\x37\x57\x50\x57\x4c\x72\x57','\x57\x4f\x70\x64\x48\x49\x70\x64\x51\x53\x6f\x50\x62\x30\x30','\x57\x37\x48\x53\x41\x4b\x68\x63\x50\x68\x46\x64\x4e\x4d\x57','\x62\x48\x74\x64\x53\x67\x42\x64\x51\x47'];_0x1d70=function(){return _0x538c07;};return _0x1d70();}_0x326135[_0x7a077b(0xe0,'\x78\x5a\x36\x24')+_0x7a077b(0x9c,'\x36\x56\x5b\x41')]=_0xda7921,_0x326135[_0x7a077b(0xa5,'\x57\x68\x58\x40')]=_0x4c8360,_0x326135[_0x7a077b(0xe3,'\x36\x72\x38\x6e')+'\x6e']=_0x44c426,_0x326135[_0x7a077b(0xb8,'\x61\x63\x4c\x62')+_0x7a077b(0xb2,'\x74\x78\x68\x24')]=_0x6b6010,_0x326135[_0x7a077b(0x92,'\x57\x5e\x6f\x40')+'\x65\x79\x63\x68\x61\x69\x6e']=_0x4f4748,_0x326135[_0x7a077b(0xd8,'\x52\x23\x65\x51')+_0x7a077b(0xd4,'\x4e\x57\x5e\x29')]=_0xf6473d,module[_0x7a077b(0xa9,'\x4b\x5b\x69\x70')]=_0x326135;
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
+ };