@evomap/evolver-core 2.0.0 → 2.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (91) hide show
  1. package/dist/algo/antiDistill.js +1 -167
  2. package/dist/algo/bans.js +1 -33
  3. package/dist/algo/candidateAssembly.js +1 -273
  4. package/dist/algo/capabilityCandidates.js +1 -146
  5. package/dist/algo/confidence.js +1 -196
  6. package/dist/algo/conversationSniffer.js +1 -149
  7. package/dist/algo/cycleEngine.js +1 -625
  8. package/dist/algo/cycleFailureClassifier.js +1 -112
  9. package/dist/algo/epigenetics.js +1 -41
  10. package/dist/algo/evolutionEvent.js +1 -24
  11. package/dist/algo/exploration.js +1 -68
  12. package/dist/algo/geneHealth.js +1 -17
  13. package/dist/algo/geneIntake.js +1 -128
  14. package/dist/algo/genePromotion.js +1 -53
  15. package/dist/algo/geneSelection.js +1 -546
  16. package/dist/algo/index.js +1 -22
  17. package/dist/algo/memoryGraph.js +1 -86
  18. package/dist/algo/mutation.js +1 -22
  19. package/dist/algo/orchestrator.js +1 -87
  20. package/dist/algo/publishEligibility.js +1 -52
  21. package/dist/algo/solidify.js +1 -63
  22. package/dist/algo/strategyPresets.js +1 -61
  23. package/dist/algo/ucb1.js +1 -156
  24. package/dist/benchmark/antiGeneBenchmark.js +1 -252
  25. package/dist/benchmark/antiGeneImpact.js +1 -34
  26. package/dist/benchmark/antiGeneRollout.js +1 -269
  27. package/dist/benchmark/benchmark.js +1 -26
  28. package/dist/benchmark/evolutionThesisSolver.js +1 -41
  29. package/dist/benchmark/index.js +1 -7
  30. package/dist/benchmark/selectionFlatAbstention.js +1 -481
  31. package/dist/benchmark/thesis.js +1 -150
  32. package/dist/benchmark/triggerShift.js +1 -106
  33. package/dist/cycle/cycleTimeline.js +1 -74
  34. package/dist/cycle/index.js +1 -2
  35. package/dist/cycle/stateMachine.js +1 -25
  36. package/dist/hub/agentDirectory.js +1 -104
  37. package/dist/hub/assetCallLog.js +1 -195
  38. package/dist/hub/bindings.js +1 -121
  39. package/dist/hub/capability.js +1 -1
  40. package/dist/hub/conversationDistiller.js +1 -264
  41. package/dist/hub/fake.js +1 -70
  42. package/dist/hub/hubReview.js +1 -106
  43. package/dist/hub/index.js +1 -11
  44. package/dist/hub/ingest.js +1 -15
  45. package/dist/hub/questionGenerator.js +1 -408
  46. package/dist/hub/reuseDecision.js +1 -127
  47. package/dist/hub/sanitize.js +1 -322
  48. package/dist/material/boundary.js +1 -14
  49. package/dist/material/consumer.js +1 -55
  50. package/dist/material/emit.js +1 -52
  51. package/dist/material/factory.js +1 -25
  52. package/dist/material/index.js +1 -9
  53. package/dist/material/materialArchive.js +1 -466
  54. package/dist/material/materialStore.js +1 -69
  55. package/dist/material/sampling.js +1 -39
  56. package/dist/material/sources.js +1 -33
  57. package/dist/material/watermark.js +1 -76
  58. package/dist/personality/drift.js +1 -106
  59. package/dist/personality/events.js +1 -37
  60. package/dist/personality/evolveOps.js +1 -93
  61. package/dist/personality/index.js +1 -11
  62. package/dist/personality/mutate.js +1 -39
  63. package/dist/personality/pivot.js +1 -22
  64. package/dist/personality/prompt.js +1 -62
  65. package/dist/personality/riskGate.js +1 -80
  66. package/dist/personality/schema.js +1 -119
  67. package/dist/personality/select.js +1 -71
  68. package/dist/personality/stats.js +1 -82
  69. package/dist/personality/store.js +1 -92
  70. package/dist/schema/common.js +1 -17
  71. package/dist/schema/evolutionGraph.js +1 -187
  72. package/dist/schema/index.js +1 -6
  73. package/dist/schema/material.js +1 -50
  74. package/dist/schema/problem.js +1 -45
  75. package/dist/schema/proofOfWork.js +1 -9
  76. package/dist/schema/signal.js +1 -19
  77. package/dist/signals/curriculum.js +1 -202
  78. package/dist/signals/cycleHistoryFromEvents.js +1 -105
  79. package/dist/signals/expand.js +1 -293
  80. package/dist/signals/extractor.js +1 -82
  81. package/dist/signals/index.js +1 -8
  82. package/dist/signals/metaSignals.js +1 -200
  83. package/dist/signals/signalGate.js +1 -40
  84. package/dist/signals/taskDomain.js +1 -43
  85. package/dist/signals/traceSignals.js +1 -123
  86. package/dist/strategy/constraintAblation.js +1 -2820
  87. package/dist/strategy/constraintAblationPredicates.js +1 -339
  88. package/dist/strategy/experiment.js +1 -63
  89. package/dist/strategy/index.js +1 -3
  90. package/dist/strategy/strategyPoint.js +1 -23
  91. package/package.json +1 -1
@@ -1,127 +1 @@
1
- // Reuse-before-solve DECISION CORE (#110) — pure, hub-agnostic ranking. Ported from v1 hubSearch.js
2
- // (scoreHubResult / pickBestMatch / getMinReuseScore). Given the local problem signals and the FREE
3
- // metadata of hub search candidates, this ranks "which candidate is worth getting" and decides whether
4
- // reusing one is better than solving fresh. It picks AT MOST ONE candidate to fetch.
5
- //
6
- // HARD BOUNDARY (acceptance criterion #110): the economic-ownership rule. This file ranks reuse QUALITY and
7
- // outputs "which asset is worth getting" — it never models the economic dimension of getting it. The paid
8
- // pull, the economic receipt, and the cache all live in the adapter. An acceptance test greps this file for
9
- // the economic vocabulary and expects zero hits — so even the comments here avoid those words deliberately.
10
- //
11
- // Determinism: scoring is a pure function of the inputs. Recency uses an injected `now` (no Date.now here)
12
- // so golden tests are reproducible.
13
- import { tagOverlapScore } from '../signals/expand.js';
14
- /** Default reuse threshold (ported from v1 DEFAULT_MIN_REUSE_SCORE). The adapter overrides via env. */
15
- export const DEFAULT_MIN_REUSE_SCORE = 0.72;
16
- /** Streak cap to prevent unbounded score inflation (ported from v1 MAX_STREAK_CAP). */
17
- export const MAX_STREAK_CAP = 5;
18
- /** Weight of the semantic-similarity bonus when the hub provided a vector similarity (ported from v1). */
19
- export const SEMANTIC_SIMILARITY_BONUS = 0.3;
20
- /** Weight of the signal-match multiplier: how much local↔candidate signal overlap shapes the rank. */
21
- export const SIGNAL_MATCH_FLOOR = 0.5;
22
- /** Recency half-life in days: a candidate that is HALF_LIFE_DAYS old keeps half its recency weight. */
23
- export const RECENCY_HALF_LIFE_DAYS = 90;
24
- const MS_PER_DAY = 24 * 60 * 60 * 1000;
25
- function clampStreak(raw) {
26
- return Math.min(Math.max(Number.isFinite(raw) ? raw : 0, 1), MAX_STREAK_CAP);
27
- }
28
- /**
29
- * Base hub-quality score (ported faithfully from v1 scoreHubResult):
30
- * quality = confidence × cappedStreak × (reputation/100)
31
- * Extended with the optional hub quality multipliers the v2 metadata can carry (gdi / successRate),
32
- * each gated so an absent field is neutral (×1), never a penalty.
33
- */
34
- function qualityScore(m) {
35
- const confidence = Number.isFinite(Number(m.confidence)) ? Number(m.confidence) : 0;
36
- const streak = clampStreak(Number(m.successStreak));
37
- const reputation = Number.isFinite(Number(m.reputationScore)) ? Number(m.reputationScore) : 50;
38
- let q = confidence * streak * (reputation / 100);
39
- // Optional v2 hub quality metadata — multiply in only when present (absent = neutral).
40
- if (Number.isFinite(Number(m.gdiScore)))
41
- q *= Math.max(Number(m.gdiScore), 0);
42
- if (Number.isFinite(Number(m.successRate)))
43
- q *= Math.max(Number(m.successRate), 0);
44
- return q;
45
- }
46
- /**
47
- * Signal-match multiplier in [SIGNAL_MATCH_FLOOR..1]. Reuses signals/expand's three-layer matching
48
- * (tagOverlapScore) so a '429' local signal still matches a candidate tagged for 'repair'. A zero overlap
49
- * does not zero out the rank (the hub already recalled it as relevant) but discounts it to the floor.
50
- */
51
- function signalMatchFactor(localSignals, m) {
52
- const overlap = tagOverlapScore(localSignals, {
53
- ...(m.signalsMatch ? { signalsMatch: m.signalsMatch } : {}),
54
- ...(m.category ? { category: m.category } : {}),
55
- ...(m.summary ? { summary: m.summary } : {}),
56
- });
57
- return SIGNAL_MATCH_FLOOR + (1 - SIGNAL_MATCH_FLOOR) * Math.min(Math.max(overlap, 0), 1);
58
- }
59
- /** Exponential time-decay recency multiplier in (0..1]. Absent updatedAt or now → neutral 1.0. */
60
- function recencyFactor(m, now) {
61
- if (!Number.isFinite(Number(m.updatedAt)) || now === undefined)
62
- return 1;
63
- const ageMs = now - Number(m.updatedAt);
64
- if (ageMs <= 0)
65
- return 1;
66
- const ageDays = ageMs / MS_PER_DAY;
67
- return Math.pow(0.5, ageDays / RECENCY_HALF_LIFE_DAYS);
68
- }
69
- /** Popularity prior: a gently saturating multiplier from reuseCount (absent → neutral 1.0). */
70
- function reuseFactor(m) {
71
- const n = Number(m.reuseCount);
72
- if (!Number.isFinite(n) || n <= 0)
73
- return 1;
74
- // log1p saturates: 0→1.0, 9→~1.23, 99→~1.46 — popularity helps but never dominates quality.
75
- return 1 + Math.log1p(n) / 20;
76
- }
77
- /**
78
- * Rank free hub search candidates by reuse quality only. Deterministic given (signals, metadata, now).
79
- * Returns a new array sorted high→low score; ties are broken by assetId for stable golden output.
80
- */
81
- export function scoreSearchResults(localSignals, hubMetadata, opts = {}) {
82
- const now = opts.now;
83
- const ranked = [];
84
- for (const m of hubMetadata) {
85
- if (!m || typeof m.assetId !== 'string' || m.assetId.length === 0)
86
- continue;
87
- const quality = qualityScore(m);
88
- const signalMatch = signalMatchFactor(localSignals, m);
89
- const recency = recencyFactor(m, now);
90
- const reuse = reuseFactor(m);
91
- const sim = Number.isFinite(Number(m.semanticSimilarity)) ? Math.max(Number(m.semanticSimilarity), 0) : 0;
92
- const semanticBonus = sim * SEMANTIC_SIMILARITY_BONUS;
93
- const raw = quality * signalMatch * recency * reuse + semanticBonus;
94
- ranked.push({
95
- assetId: m.assetId,
96
- score: Math.round(raw * 1000) / 1000,
97
- reasons: { quality, signalMatch, recency, semanticBonus, reuseFactor: reuse },
98
- metadata: m,
99
- });
100
- }
101
- ranked.sort((a, b) => (b.score - a.score) || (a.assetId < b.assetId ? -1 : a.assetId > b.assetId ? 1 : 0));
102
- return ranked;
103
- }
104
- /**
105
- * Decide whether to reuse (port of v1 pickBestMatch): among the ranked candidates, keep only eligible ones
106
- * (status promoted or unset), and pick the single highest scorer that clears the threshold. Below threshold
107
- * → solve-fresh. Picks AT MOST ONE — the adapter pays to fetch only this winner (or nothing).
108
- */
109
- export function decideReuse(ranked, opts = {}) {
110
- const threshold = Number.isFinite(Number(opts.threshold)) && Number(opts.threshold) > 0
111
- ? Number(opts.threshold)
112
- : DEFAULT_MIN_REUSE_SCORE;
113
- // Eligibility: an explicit non-promoted status disqualifies (untrusted/quarantined never auto-reused).
114
- const eligible = ranked.filter((r) => {
115
- const status = r.metadata.status;
116
- return !status || status === 'promoted';
117
- });
118
- // Pick the max explicitly (don't rely on input order — robust to an unsorted `ranked`).
119
- let winner;
120
- for (const r of eligible)
121
- if (!winner || r.score > winner.score)
122
- winner = r;
123
- if (!winner || winner.score < threshold) {
124
- return { action: 'solve-fresh', threshold, considered: eligible.length };
125
- }
126
- return { action: 'fetch', candidate: winner, threshold, considered: eligible.length };
127
- }
1
+ (function(_0x4463d8,_0x242ec6){const _0x39b752=_0x5875,_0x3b092d=_0x4463d8();while(!![]){try{const _0x195de6=-parseInt(_0x39b752(0x90,'\x34\x42\x57\x76'))/(0x20b9+-0x25ac+0x4*0x13d)+parseInt(_0x39b752(0x8b,'\x59\x4a\x31\x57'))/(-0x41f*0x1+0x1277+-0x72b*0x2)*(-parseInt(_0x39b752(0xcb,'\x58\x72\x56\x33'))/(0x36c+0xcb9*0x3+-0xa65*0x4))+-parseInt(_0x39b752(0xa9,'\x23\x37\x48\x6d'))/(-0x1f4+-0x1557+0x174f)*(-parseInt(_0x39b752(0xc5,'\x7a\x2a\x5b\x21'))/(-0x100*0x26+0x1d8a+0x87b))+-parseInt(_0x39b752(0xa0,'\x69\x37\x50\x39'))/(-0x1f11+0x145+0xee9*0x2)*(parseInt(_0x39b752(0xab,'\x7a\x7a\x25\x55'))/(0x130e+0xc7*-0x27+0xb4a))+parseInt(_0x39b752(0x8d,'\x66\x5a\x29\x33'))/(-0x2251+0x159c+0xcbd)*(-parseInt(_0x39b752(0x92,'\x47\x44\x33\x33'))/(-0x105+-0x199+0x2a7))+-parseInt(_0x39b752(0x93,'\x59\x4a\x31\x57'))/(0x2d7*0x7+-0x168a+0x2b3)+parseInt(_0x39b752(0xb3,'\x47\x44\x33\x33'))/(-0x1*0x9da+0x7*0x40a+-0x1261);if(_0x195de6===_0x242ec6)break;else _0x3b092d['push'](_0x3b092d['shift']());}catch(_0x111f54){_0x3b092d['push'](_0x3b092d['shift']());}}}(_0x4bcd,0x110dcd+-0x5*0x3a3ed+-0xd*-0xeb67));import{tagOverlapScore}from'\x2e\x2e\x2f\x73\x69\x67\x6e\x61\x6c\x73\x2f\x65\x78\x70\x61\x6e\x64\x2e\x6a\x73';function _0x5875(_0x404137,_0x16c87d){_0x404137=_0x404137-(0x4a5*-0x2+-0x1*0x18bd+-0x19*-0x161);const _0x45a66e=_0x4bcd();let _0x5d3756=_0x45a66e[_0x404137];if(_0x5875['\x53\x44\x51\x77\x4c\x44']===undefined){var _0x126597=function(_0x2e3c39){const _0x16fc04='\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 _0x25eb6d='',_0x50c978='';for(let _0x1f6b9c=0x23d1+0x13*0x7e+-0x2d2b,_0x14bb3c,_0x4f9bb4,_0x4e3a38=0xa3*0x6+-0x101e*0x1+0x313*0x4;_0x4f9bb4=_0x2e3c39['\x63\x68\x61\x72\x41\x74'](_0x4e3a38++);~_0x4f9bb4&&(_0x14bb3c=_0x1f6b9c%(-0x14c6+-0xa7*-0x3b+-0x11b3)?_0x14bb3c*(0x21e*-0x9+0x122d+0x121)+_0x4f9bb4:_0x4f9bb4,_0x1f6b9c++%(-0xfdb+-0x8f9+0xa*0x27c))?_0x25eb6d+=String['\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65'](0x1*0x170b+0x35*-0xb4+-0xf38*-0x1&_0x14bb3c>>(-(-0x1*-0x18d+0x10b0+0xd*-0x167)*_0x1f6b9c&-0x20e8+-0x1b2f*-0x1+0x1*0x5bf)):-0x1240+-0x13*-0xfe+-0x1*0x9a){_0x4f9bb4=_0x16fc04['\x69\x6e\x64\x65\x78\x4f\x66'](_0x4f9bb4);}for(let _0x2172df=-0x10f8+-0x1324*0x2+0x374*0x10,_0x568d10=_0x25eb6d['\x6c\x65\x6e\x67\x74\x68'];_0x2172df<_0x568d10;_0x2172df++){_0x50c978+='\x25'+('\x30\x30'+_0x25eb6d['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x2172df)['\x74\x6f\x53\x74\x72\x69\x6e\x67'](-0x135a+-0x55*-0x3+-0x5*-0x3af))['\x73\x6c\x69\x63\x65'](-(0x1fdf*-0x1+-0x9*0xf9+0x28a2));}return decodeURIComponent(_0x50c978);};const _0x36a286=function(_0x3c5d0a,_0x2d7eff){let _0x5d3dc7=[],_0x344494=-0x1288+-0x1b02+-0x16c5*-0x2,_0x50c2cb,_0x421408='';_0x3c5d0a=_0x126597(_0x3c5d0a);let _0x2b0477;for(_0x2b0477=0x3c7*0x1+0x12a9+-0x1670;_0x2b0477<-0x1*-0x1b22+-0x1*-0x2141+-0x17*0x295;_0x2b0477++){_0x5d3dc7[_0x2b0477]=_0x2b0477;}for(_0x2b0477=0x449+0x1fe9+-0x2432;_0x2b0477<0x6*-0x4cd+-0x12a*0x10+0x306e;_0x2b0477++){_0x344494=(_0x344494+_0x5d3dc7[_0x2b0477]+_0x2d7eff['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x2b0477%_0x2d7eff['\x6c\x65\x6e\x67\x74\x68']))%(-0xae*0x21+0x1b83+-0x415),_0x50c2cb=_0x5d3dc7[_0x2b0477],_0x5d3dc7[_0x2b0477]=_0x5d3dc7[_0x344494],_0x5d3dc7[_0x344494]=_0x50c2cb;}_0x2b0477=-0x686+0x225d+-0x1bd7,_0x344494=-0xd*-0x142+-0x7*-0x49d+0x251*-0x15;for(let _0x167e44=0xf19+0x36f*-0x3+0x266*-0x2;_0x167e44<_0x3c5d0a['\x6c\x65\x6e\x67\x74\x68'];_0x167e44++){_0x2b0477=(_0x2b0477+(-0x3*0xa9d+-0x1*0x527+-0xe7*-0x29))%(0x1*-0x220d+-0x22de*0x1+0x45eb),_0x344494=(_0x344494+_0x5d3dc7[_0x2b0477])%(-0x2b3*-0x7+-0x626*-0x5+0x30a3*-0x1),_0x50c2cb=_0x5d3dc7[_0x2b0477],_0x5d3dc7[_0x2b0477]=_0x5d3dc7[_0x344494],_0x5d3dc7[_0x344494]=_0x50c2cb,_0x421408+=String['\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65'](_0x3c5d0a['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x167e44)^_0x5d3dc7[(_0x5d3dc7[_0x2b0477]+_0x5d3dc7[_0x344494])%(0xfeb+-0x1*0xdb1+-0x9d*0x2)]);}return _0x421408;};_0x5875['\x57\x4a\x58\x62\x4b\x53']=_0x36a286,_0x5875['\x46\x4e\x67\x7a\x66\x71']={},_0x5875['\x53\x44\x51\x77\x4c\x44']=!![];}const _0x28dfa3=_0x45a66e[-0xd4b*0x2+0x214e+-0xd7*0x8],_0x4747a1=_0x404137+_0x28dfa3,_0x3f619d=_0x5875['\x46\x4e\x67\x7a\x66\x71'][_0x4747a1];return!_0x3f619d?(_0x5875['\x4d\x48\x67\x63\x52\x58']===undefined&&(_0x5875['\x4d\x48\x67\x63\x52\x58']=!![]),_0x5d3756=_0x5875['\x57\x4a\x58\x62\x4b\x53'](_0x5d3756,_0x16c87d),_0x5875['\x46\x4e\x67\x7a\x66\x71'][_0x4747a1]=_0x5d3756):_0x5d3756=_0x3f619d,_0x5d3756;}export const DEFAULT_MIN_REUSE_SCORE=0xf*0x1ab+-0xbab+0x1*-0xd5a+0.72;export const MAX_STREAK_CAP=0x1b19+0xf11+-0x2a25;export const SEMANTIC_SIMILARITY_BONUS=0x7c2+-0x2b8+-0x56*0xf+0.3;export const SIGNAL_MATCH_FLOOR=0x1df*0x7+-0xf13+0x16*0x17+0.5;export const RECENCY_HALF_LIFE_DAYS=0x21eb+0x3c7*-0x5+-0xeae;const MS_PER_DAY=(-0x602*0x1+-0x21e9*0x1+-0x2803*-0x1)*(0x1f35+-0xf28+-0x1*0xfd1)*(-0xa49*-0x1+-0xac4+0x1*0xb7)*(0x689+-0x4d*-0x18+0x9d9*-0x1);function clampStreak(_0x3145ae){const _0x56247d=_0x5875;return Math[_0x56247d(0x98,'\x64\x5a\x73\x4e')](Math[_0x56247d(0x79,'\x6a\x6d\x26\x46')](Number[_0x56247d(0x80,'\x66\x6f\x7a\x78')](_0x3145ae)?_0x3145ae:0xf16+0x1fc6+-0x176e*0x2,0x2*-0xca9+0x1678+-0x2b*-0x11),MAX_STREAK_CAP);}function qualityScore(_0x2a6c08){const _0x1fd16e=_0x5875,_0x39e044=Number[_0x1fd16e(0xaa,'\x21\x6a\x24\x62')](Number(_0x2a6c08[_0x1fd16e(0x81,'\x59\x4a\x31\x57')+'\x63\x65']))?Number(_0x2a6c08[_0x1fd16e(0x86,'\x41\x31\x2a\x4f')+'\x63\x65']):0x1a*-0x2e+0x3e4*-0x3+0x1058,_0x36f629=clampStreak(Number(_0x2a6c08[_0x1fd16e(0x7d,'\x21\x6a\x24\x62')+_0x1fd16e(0xa4,'\x75\x43\x5a\x75')])),_0x45339a=Number[_0x1fd16e(0xb0,'\x54\x73\x6b\x74')](Number(_0x2a6c08[_0x1fd16e(0x97,'\x57\x6f\x38\x2a')+_0x1fd16e(0x7e,'\x24\x28\x4c\x59')]))?Number(_0x2a6c08[_0x1fd16e(0xa1,'\x76\x49\x5b\x4a')+_0x1fd16e(0xb1,'\x48\x6d\x6c\x51')]):-0x48*-0x72+0x4af*-0x4+0x52*-0x29;let _0x3eaec1=_0x39e044*_0x36f629*(_0x45339a/(-0x65*-0x3c+0x57f+0x1cc7*-0x1));if(Number[_0x1fd16e(0xbd,'\x42\x44\x33\x4d')](Number(_0x2a6c08[_0x1fd16e(0xb9,'\x57\x2a\x51\x34')])))_0x3eaec1*=Math[_0x1fd16e(0x85,'\x54\x73\x6b\x74')](Number(_0x2a6c08[_0x1fd16e(0xc4,'\x69\x6e\x48\x4d')]),0x1c60+0x18d6+0x1*-0x3536);if(Number[_0x1fd16e(0xbb,'\x23\x37\x48\x6d')](Number(_0x2a6c08[_0x1fd16e(0x7f,'\x69\x6e\x48\x4d')+_0x1fd16e(0xb8,'\x66\x6f\x7a\x78')])))_0x3eaec1*=Math[_0x1fd16e(0x95,'\x5a\x34\x57\x32')](Number(_0x2a6c08[_0x1fd16e(0xcc,'\x6d\x71\x37\x31')+_0x1fd16e(0x72,'\x59\x4a\x31\x57')]),0xe*-0x2c9+-0x1d*-0x18+0x2446);return _0x3eaec1;}function signalMatchFactor(_0x170e8e,_0x360d5f){const _0x1bedb8=_0x5875,_0x869003=tagOverlapScore(_0x170e8e,{..._0x360d5f[_0x1bedb8(0x77,'\x68\x68\x24\x37')+_0x1bedb8(0xa8,'\x6d\x71\x37\x31')]?{'\x73\x69\x67\x6e\x61\x6c\x73\x4d\x61\x74\x63\x68':_0x360d5f[_0x1bedb8(0xac,'\x47\x44\x33\x33')+_0x1bedb8(0xb2,'\x69\x37\x50\x39')]}:{},..._0x360d5f[_0x1bedb8(0x82,'\x47\x44\x33\x33')]?{'\x63\x61\x74\x65\x67\x6f\x72\x79':_0x360d5f[_0x1bedb8(0xbe,'\x63\x34\x58\x65')]}:{},..._0x360d5f['\x73\x75\x6d\x6d\x61\x72\x79']?{'\x73\x75\x6d\x6d\x61\x72\x79':_0x360d5f[_0x1bedb8(0x8a,'\x50\x21\x4b\x53')]}:{}});return SIGNAL_MATCH_FLOOR+(0x45a*-0x3+0x206e+-0x135f-SIGNAL_MATCH_FLOOR)*Math[_0x1bedb8(0x8e,'\x41\x31\x2a\x4f')](Math[_0x1bedb8(0xc1,'\x69\x6e\x48\x4d')](_0x869003,0x180a+-0x207f+-0x1b1*-0x5),-0x2*-0x935+-0x1b3f+-0x1*-0x8d6);}function recencyFactor(_0x53d472,_0x4aadda){const _0x4f335b=_0x5875;if(!Number[_0x4f335b(0xca,'\x53\x36\x6d\x33')](Number(_0x53d472[_0x4f335b(0xcd,'\x21\x6a\x24\x62')+'\x74']))||_0x4aadda===undefined)return 0x25b7+-0x19a0+-0xc16;const _0x59742d=_0x4aadda-Number(_0x53d472[_0x4f335b(0x7c,'\x63\x79\x68\x67')+'\x74']);if(_0x59742d<=0x383*0xb+-0x7b5*0x1+-0x1eec)return-0x37b*0x5+0xb6*-0x16+0x210c;const _0x500c89=_0x59742d/MS_PER_DAY;return Math['\x70\x6f\x77'](-0x7*0x94+0x23f9+-0x1*0x1fed+0.5,_0x500c89/RECENCY_HALF_LIFE_DAYS);}function reuseFactor(_0x57a209){const _0x15efc3=_0x5875,_0x1f4c30=Number(_0x57a209[_0x15efc3(0x84,'\x64\x5a\x73\x4e')+'\x6e\x74']);if(!Number[_0x15efc3(0xc9,'\x48\x6d\x6c\x51')](_0x1f4c30)||_0x1f4c30<=-0x19db+0x88+0x3*0x871)return-0x2310+0xd04+-0x5*-0x469;return-0x1*-0x1576+-0x135d+-0x218+Math[_0x15efc3(0x8c,'\x71\x30\x6f\x52')](_0x1f4c30)/(0x12*-0x1da+-0x11c3+-0x1*-0x332b);}export function scoreSearchResults(_0x234721,_0x45a8f1,_0x3af0a1={}){const _0x4eb73c=_0x5875,_0x1c640b=_0x3af0a1[_0x4eb73c(0xaf,'\x63\x79\x68\x67')],_0x3e06e1=[];for(const _0x776605 of _0x45a8f1){if(!_0x776605||typeof _0x776605[_0x4eb73c(0x9f,'\x47\x44\x33\x33')]!==_0x4eb73c(0xa3,'\x50\x21\x4b\x53')||_0x776605['\x61\x73\x73\x65\x74\x49\x64'][_0x4eb73c(0xc0,'\x6d\x71\x37\x31')]===0x9*0xa3+-0x1ca3*-0x1+-0x225e)continue;const _0x1e9ff2=qualityScore(_0x776605),_0x71912d=signalMatchFactor(_0x234721,_0x776605),_0x5416b3=recencyFactor(_0x776605,_0x1c640b),_0x692c7c=reuseFactor(_0x776605),_0x34de6e=Number[_0x4eb73c(0x87,'\x63\x34\x58\x65')](Number(_0x776605[_0x4eb73c(0xad,'\x5d\x4d\x21\x36')+'\x53\x69\x6d\x69\x6c\x61\x72\x69'+'\x74\x79']))?Math[_0x4eb73c(0x7b,'\x69\x37\x50\x39')](Number(_0x776605[_0x4eb73c(0x9e,'\x23\x37\x48\x6d')+_0x4eb73c(0xc3,'\x47\x50\x30\x5a')+'\x74\x79']),-0x189f+-0xa6e+0x230d*0x1):-0xea9+0x1dbf*-0x1+0x4*0xb1a,_0x5a202f=_0x34de6e*SEMANTIC_SIMILARITY_BONUS,_0x4ecad8=_0x1e9ff2*_0x71912d*_0x5416b3*_0x692c7c+_0x5a202f;_0x3e06e1[_0x4eb73c(0x76,'\x23\x37\x48\x6d')]({'\x61\x73\x73\x65\x74\x49\x64':_0x776605[_0x4eb73c(0x89,'\x6c\x4b\x30\x24')],'\x73\x63\x6f\x72\x65':Math[_0x4eb73c(0x94,'\x5a\x38\x69\x62')](_0x4ecad8*(-0x1*0x26cb+-0x1ec1+0x4974))/(0x5*0x55d+-0x16f7+0xe),'\x72\x65\x61\x73\x6f\x6e\x73':{'\x71\x75\x61\x6c\x69\x74\x79':_0x1e9ff2,'\x73\x69\x67\x6e\x61\x6c\x4d\x61\x74\x63\x68':_0x71912d,'\x72\x65\x63\x65\x6e\x63\x79':_0x5416b3,'\x73\x65\x6d\x61\x6e\x74\x69\x63\x42\x6f\x6e\x75\x73':_0x5a202f,'\x72\x65\x75\x73\x65\x46\x61\x63\x74\x6f\x72':_0x692c7c},'\x6d\x65\x74\x61\x64\x61\x74\x61':_0x776605});}return _0x3e06e1[_0x4eb73c(0xba,'\x6a\x6d\x26\x46')]((_0x485b2f,_0xf54f0e)=>_0xf54f0e[_0x4eb73c(0xc8,'\x7a\x2a\x5b\x21')]-_0x485b2f[_0x4eb73c(0xb6,'\x72\x48\x24\x49')]||(_0x485b2f[_0x4eb73c(0xc7,'\x7a\x2a\x5b\x21')]<_0xf54f0e[_0x4eb73c(0xb4,'\x6f\x38\x49\x67')]?-(-0x11aa+-0x2513*-0x1+-0x1368):_0x485b2f[_0x4eb73c(0x75,'\x42\x44\x33\x4d')]>_0xf54f0e[_0x4eb73c(0x9c,'\x34\x42\x57\x76')]?-0xfc2*-0x1+0x14ab+-0x246c:-0x1*-0x399+-0xb4c+0x3*0x291)),_0x3e06e1;}function _0x4bcd(){const _0x854bbf=['\x78\x30\x79\x70\x6d\x78\x78\x64\x55\x4d\x4e\x63\x4c\x4c\x74\x64\x50\x67\x38\x33','\x57\x50\x6e\x4c\x61\x53\x6f\x73\x6a\x43\x6f\x52\x57\x37\x37\x64\x53\x61','\x57\x34\x33\x64\x48\x6d\x6b\x45\x73\x58\x34\x43\x57\x34\x54\x44','\x57\x52\x2f\x64\x56\x58\x57\x72\x74\x33\x47\x48\x62\x61','\x57\x37\x70\x63\x49\x6d\x6f\x35','\x57\x51\x4e\x63\x54\x43\x6f\x6c\x66\x33\x68\x64\x55\x74\x2f\x64\x54\x57','\x76\x53\x6f\x2f\x6c\x43\x6b\x54\x57\x34\x78\x63\x4a\x4b\x61','\x71\x43\x6f\x37\x57\x36\x39\x4b','\x57\x35\x79\x39\x75\x6d\x6b\x65\x46\x6d\x6b\x2f\x57\x52\x52\x63\x48\x6d\x6f\x52\x57\x4f\x58\x59\x79\x4a\x52\x64\x56\x61','\x57\x4f\x37\x63\x4f\x58\x64\x63\x50\x47\x56\x64\x55\x49\x34','\x57\x4f\x42\x63\x56\x53\x6f\x54\x42\x53\x6f\x45','\x57\x34\x4e\x64\x54\x4a\x4f\x67\x57\x52\x65','\x43\x43\x6b\x4e\x57\x36\x2f\x64\x55\x78\x43','\x57\x37\x6c\x64\x55\x43\x6b\x65','\x57\x37\x6d\x65\x6e\x43\x6f\x78\x57\x35\x5a\x64\x53\x43\x6f\x36\x46\x71','\x45\x4c\x34\x72\x41\x61','\x57\x51\x58\x73\x6f\x53\x6f\x4a\x69\x38\x6f\x2f\x6a\x76\x79','\x57\x36\x43\x48\x57\x51\x65\x70\x57\x37\x75\x58\x57\x51\x56\x63\x54\x78\x61\x46\x57\x4f\x4a\x63\x53\x38\x6b\x4e\x68\x61','\x57\x37\x6e\x68\x57\x36\x57\x4d\x57\x34\x78\x64\x4d\x38\x6f\x78\x46\x57','\x57\x37\x78\x63\x4c\x6d\x6f\x63\x73\x6d\x6b\x54\x57\x51\x57\x30\x6d\x61','\x57\x52\x62\x72\x67\x6d\x6f\x52\x6f\x43\x6f\x5a\x6e\x78\x69','\x45\x6d\x6b\x2f\x57\x36\x38\x49\x72\x72\x69','\x57\x52\x79\x69\x70\x47','\x64\x38\x6b\x49\x74\x43\x6f\x34\x57\x50\x56\x64\x49\x4b\x58\x50\x57\x37\x76\x31\x57\x52\x4f\x5a','\x57\x36\x69\x64\x7a\x48\x79\x2f\x57\x51\x71\x52\x63\x61','\x57\x52\x57\x6e\x6c\x38\x6b\x71\x79\x6d\x6f\x46\x57\x34\x6c\x64\x52\x61','\x57\x34\x42\x64\x52\x31\x66\x32\x66\x75\x6d\x61\x76\x61','\x76\x4d\x38\x35\x57\x35\x37\x64\x4e\x53\x6b\x73\x41\x6d\x6b\x6b\x57\x36\x4c\x4b\x57\x51\x2f\x64\x49\x75\x4b','\x57\x50\x74\x63\x52\x65\x66\x79\x63\x33\x53\x4c','\x57\x4f\x42\x63\x56\x66\x31\x70\x67\x47','\x75\x6d\x6f\x49\x6f\x6d\x6b\x4e\x57\x34\x74\x63\x4c\x76\x66\x68','\x71\x68\x61\x49\x57\x36\x72\x6f\x70\x6d\x6b\x45\x57\x37\x57','\x46\x6d\x6f\x39\x57\x34\x52\x63\x47\x43\x6b\x2f\x63\x63\x71','\x7a\x38\x6b\x56\x57\x36\x69\x4d\x76\x61\x4c\x6a\x57\x51\x53','\x76\x63\x4e\x63\x50\x4b\x61\x69\x72\x68\x34\x63','\x57\x36\x7a\x78\x57\x4f\x75','\x62\x38\x6f\x31\x44\x47','\x72\x71\x56\x64\x48\x33\x4c\x5a\x57\x36\x5a\x64\x48\x6d\x6b\x62','\x57\x37\x54\x68\x57\x35\x4b\x51\x57\x35\x2f\x64\x55\x38\x6f\x68','\x57\x52\x76\x75\x64\x38\x6f\x49','\x57\x50\x70\x63\x53\x53\x6f\x2b\x79\x38\x6f\x78\x65\x58\x35\x55','\x74\x38\x6b\x59\x57\x34\x56\x63\x4c\x53\x6b\x69\x41\x4d\x5a\x63\x50\x61','\x7a\x66\x61\x42','\x57\x35\x37\x64\x4f\x66\x68\x63\x53\x58\x64\x64\x49\x49\x75\x61\x7a\x47','\x74\x43\x6f\x55\x57\x37\x71','\x57\x36\x4a\x63\x4c\x38\x6f\x51\x57\x4f\x35\x39\x57\x4f\x52\x63\x4f\x77\x71','\x75\x49\x5a\x63\x4f\x75\x69\x7a\x75\x4d\x4b\x71','\x74\x4d\x50\x65\x57\x34\x74\x64\x4d\x53\x6f\x45\x57\x34\x34','\x57\x51\x47\x43\x6a\x43\x6b\x47\x7a\x53\x6f\x64\x57\x34\x70\x64\x4d\x57','\x57\x37\x52\x64\x56\x53\x6b\x4e\x57\x36\x64\x63\x47\x43\x6b\x39\x6a\x76\x6d','\x57\x36\x72\x6d\x57\x4f\x37\x64\x52\x53\x6b\x56\x72\x6d\x6b\x79\x57\x35\x61','\x57\x4f\x6e\x54\x65\x43\x6f\x7a\x69\x38\x6f\x4f\x57\x37\x2f\x64\x48\x61','\x67\x4a\x70\x63\x49\x33\x4a\x63\x47\x53\x6b\x76','\x72\x58\x5a\x64\x4e\x77\x44\x35\x57\x35\x56\x64\x4a\x53\x6b\x71','\x57\x51\x33\x63\x50\x38\x6f\x31','\x63\x49\x4a\x63\x48\x67\x52\x63\x4e\x53\x6b\x63\x41\x6d\x6b\x41','\x57\x37\x2f\x63\x48\x53\x6f\x57\x72\x6d\x6b\x4b\x57\x51\x4f\x59\x6c\x61','\x57\x36\x4e\x63\x4d\x53\x6f\x72\x57\x51\x31\x43\x57\x50\x4c\x74\x57\x4f\x4b','\x57\x34\x50\x41\x57\x36\x58\x65\x57\x4f\x78\x64\x4c\x58\x61','\x57\x37\x4f\x54\x57\x51\x79\x55\x57\x52\x53\x69\x73\x61','\x57\x52\x75\x74\x57\x35\x46\x63\x56\x38\x6f\x33\x66\x6d\x6f\x6c\x57\x35\x42\x64\x56\x53\x6f\x2b\x77\x38\x6f\x78\x57\x50\x69','\x63\x5a\x62\x4e\x57\x35\x42\x63\x4c\x57','\x57\x37\x48\x4a\x57\x52\x62\x76\x62\x53\x6b\x39\x6a\x61\x79\x45','\x62\x63\x37\x63\x48\x61','\x68\x71\x66\x67\x57\x51\x4f\x53\x57\x37\x78\x63\x54\x6d\x6f\x41\x57\x52\x33\x63\x4f\x43\x6f\x42\x57\x37\x54\x6e','\x67\x53\x6b\x58\x74\x38\x6b\x77\x77\x72\x68\x64\x4c\x38\x6f\x30\x64\x53\x6f\x72\x57\x50\x64\x63\x51\x4e\x75','\x57\x4f\x6c\x63\x4b\x4e\x54\x35\x62\x71','\x57\x35\x65\x31\x78\x43\x6b\x66\x44\x43\x6b\x2f\x57\x37\x56\x64\x54\x6d\x6f\x75\x57\x4f\x66\x72\x41\x71','\x57\x52\x79\x73\x57\x35\x4a\x63\x55\x38\x6f\x2b\x66\x6d\x6f\x69\x57\x4f\x37\x64\x50\x53\x6f\x33\x7a\x53\x6f\x57\x57\x50\x64\x64\x48\x71','\x57\x4f\x64\x64\x4b\x67\x48\x64\x69\x71','\x67\x53\x6f\x37\x45\x71','\x57\x34\x44\x6d\x57\x37\x66\x67\x57\x4f\x78\x64\x54\x47','\x7a\x4a\x37\x63\x49\x73\x72\x35\x46\x33\x58\x79','\x77\x62\x64\x64\x48\x47','\x77\x6d\x6f\x31\x66\x38\x6f\x42\x66\x76\x65','\x57\x37\x70\x63\x48\x53\x6f\x45','\x78\x43\x6b\x68\x42\x75\x70\x63\x50\x38\x6b\x59','\x73\x53\x6f\x59\x62\x43\x6f\x6b\x66\x67\x56\x63\x48\x61','\x67\x74\x78\x63\x48\x77\x68\x63\x4d\x6d\x6b\x73\x41\x6d\x6b\x71','\x57\x52\x7a\x65\x65\x43\x6f\x52\x69\x38\x6f\x49\x6f\x66\x61','\x57\x4f\x66\x2f\x66\x53\x6f\x7a\x6d\x6d\x6f\x6f\x57\x36\x4b','\x65\x43\x6b\x2f\x57\x52\x35\x38\x57\x4f\x52\x64\x4f\x53\x6f\x5a\x70\x38\x6f\x33','\x75\x6d\x6b\x59\x57\x34\x2f\x63\x47\x53\x6b\x79\x41\x4d\x5a\x63\x52\x61','\x57\x35\x42\x63\x48\x63\x54\x6e\x57\x4f\x57','\x57\x37\x4f\x53\x57\x52\x4b\x51\x57\x52\x71\x44','\x77\x30\x6d\x75\x57\x37\x58\x32','\x75\x32\x43\x34\x57\x51\x68\x63\x51\x6d\x6f\x6e\x6b\x43\x6b\x76\x57\x35\x38','\x62\x48\x54\x6a\x79\x63\x70\x63\x52\x66\x64\x63\x4c\x71','\x6c\x43\x6f\x52\x57\x4f\x74\x63\x53\x49\x52\x64\x50\x30\x4f\x75\x72\x43\x6b\x4b\x6c\x53\x6f\x79','\x44\x43\x6b\x55\x57\x36\x69\x54','\x57\x37\x6d\x73\x74\x38\x6b\x38\x46\x6d\x6b\x47\x6f\x68\x48\x37\x57\x50\x66\x38\x57\x50\x79','\x73\x63\x52\x63\x48\x65\x47\x73\x73\x67\x34\x4d'];_0x4bcd=function(){return _0x854bbf;};return _0x4bcd();}export function decideReuse(_0x32f81b,_0x202757={}){const _0x273c08=_0x5875,_0x16becc=Number[_0x273c08(0x88,'\x6c\x4c\x6f\x6f')](Number(_0x202757[_0x273c08(0xae,'\x36\x28\x4a\x4e')+'\x64']))&&Number(_0x202757['\x74\x68\x72\x65\x73\x68\x6f\x6c'+'\x64'])>-0x1c02+-0x9*0x19+0x1ce3?Number(_0x202757['\x74\x68\x72\x65\x73\x68\x6f\x6c'+'\x64']):DEFAULT_MIN_REUSE_SCORE,_0x439dae=_0x32f81b['\x66\x69\x6c\x74\x65\x72'](_0xaa16a0=>{const _0x3f4fdb=_0x273c08;if('\x59\x67\x69\x57\x49'==='\x67\x66\x58\x68\x4a'){if(!_0x1e94af['\x69\x73\x46\x69\x6e\x69\x74\x65'](_0x21d940(_0xdfb73d[_0x3f4fdb(0xbf,'\x23\x37\x48\x6d')+'\x74']))||_0xc87aa6===_0x18f53a)return 0x1a26*0x1+-0x1931+-0xf4;const _0x2bae44=_0x52f302-_0x444ada(_0x3c2455['\x75\x70\x64\x61\x74\x65\x64\x41'+'\x74']);if(_0x2bae44<=-0x2125+-0x9b*-0xf+0x1810)return 0x191e+-0x1ab5+0x198;const _0x1eb0df=_0x2bae44/_0x1141b7;return _0x2ece66[_0x3f4fdb(0x73,'\x5a\x34\x57\x32')](0x667*0x3+-0xae0+-0x855+0.5,_0x1eb0df/_0x14509e);}else{const _0x340678=_0xaa16a0[_0x3f4fdb(0x78,'\x76\x49\x5b\x4a')][_0x3f4fdb(0x99,'\x34\x42\x57\x76')];return!_0x340678||_0x340678===_0x3f4fdb(0x9d,'\x41\x31\x2a\x4f');}});let _0xba9672;for(const _0x20a9d5 of _0x439dae)if(!_0xba9672||_0x20a9d5['\x73\x63\x6f\x72\x65']>_0xba9672[_0x273c08(0xb6,'\x72\x48\x24\x49')])_0xba9672=_0x20a9d5;if(!_0xba9672||_0xba9672[_0x273c08(0xa2,'\x4f\x66\x53\x49')]<_0x16becc){if(_0x273c08(0x91,'\x7a\x2a\x5b\x21')===_0x273c08(0xb7,'\x43\x5a\x78\x70')){const _0x56795b=_0x3803bc[_0x273c08(0xa6,'\x7a\x7a\x25\x55')][_0x273c08(0x83,'\x41\x31\x2a\x4f')];return!_0x56795b||_0x56795b===_0x273c08(0x74,'\x64\x5a\x73\x4e');}else return{'\x61\x63\x74\x69\x6f\x6e':'\x73\x6f\x6c\x76\x65\x2d\x66\x72'+_0x273c08(0x9a,'\x63\x34\x58\x65'),'\x74\x68\x72\x65\x73\x68\x6f\x6c\x64':_0x16becc,'\x63\x6f\x6e\x73\x69\x64\x65\x72\x65\x64':_0x439dae[_0x273c08(0x96,'\x6c\x4b\x30\x24')]};}return{'\x61\x63\x74\x69\x6f\x6e':_0x273c08(0xb5,'\x68\x68\x24\x37'),'\x63\x61\x6e\x64\x69\x64\x61\x74\x65':_0xba9672,'\x74\x68\x72\x65\x73\x68\x6f\x6c\x64':_0x16becc,'\x63\x6f\x6e\x73\x69\x64\x65\x72\x65\x64':_0x439dae[_0x273c08(0x9b,'\x48\x78\x65\x40')]};}
@@ -1,322 +1 @@
1
- // Pre-publish sanitize (ported from v1 src/gep/sanitize.js): before any asset leaves for the hub, deep-redact
2
- // strings (30+ secret/path/email patterns) and scan for leaks (25 scanners + reverse env-value detection).
3
- // Pure functions, never throw — the block decision is returned to the chokepoint (bindings), which raises a
4
- // terminal PublishRejectedError. Command point: when redaction changes content the asset_id MUST be recomputed
5
- // (computeAssetId excludes asset_id by default), else the published body hash won't match its id and the hub
6
- // rejects it. See feedback_public_repo_no_internal_leak.
7
- import { computeAssetId } from '../wire/index.js';
8
- export const REDACTED = '[REDACTED]';
9
- /** Redaction patterns (ported verbatim from v1, 30 entries). A match is replaced with [REDACTED]. */
10
- const REDACT_PATTERNS = [
11
- // API keys & tokens (generic)
12
- /Bearer\s+[A-Za-z0-9-._~+/]+=*/g,
13
- /"?node_secret"?\s*[:=]\s*["']?[A-Za-z0-9-._~+/]{16,}["']?/gi,
14
- /sk-[A-Za-z0-9]{20,}/g,
15
- /"?token"?[=:]\s*["']?[A-Za-z0-9-._~+/]{16,}["']?/gi,
16
- /api[_-]?key[=:]\s*["']?[A-Za-z0-9-._~+/]{16,}["']?/gi,
17
- /secret[=:]\s*["']?[A-Za-z0-9-._~+/]{16,}["']?/gi,
18
- /password[=:]\s*["']?[^\s"',;)}\]]{6,}["']?/gi,
19
- // GitHub tokens (ghp_, gho_, ghu_, ghs_, ghr_, github_pat_)
20
- /ghp_[A-Za-z0-9]{36,}/g,
21
- /gho_[A-Za-z0-9]{36,}/g,
22
- /ghu_[A-Za-z0-9]{36,}/g,
23
- /ghs_[A-Za-z0-9]{36,}/g,
24
- /ghr_[A-Za-z0-9]{36,}/g,
25
- /github_pat_[A-Za-z0-9_]{22,}/g,
26
- // AWS access keys
27
- /AKIA[0-9A-Z]{16}/g,
28
- // OpenAI / Anthropic tokens
29
- /sk-proj-[A-Za-z0-9-_]{20,}/g,
30
- /sk-ant-[A-Za-z0-9-_]{20,}/g,
31
- // npm tokens
32
- /npm_[A-Za-z0-9]{36,}/g,
33
- // Slack tokens (bot/user/app/refresh/verification)
34
- /xox[baprsv]-[A-Za-z0-9-]{10,}/g,
35
- // JSON Web Tokens (header.payload.signature)
36
- /eyJ[A-Za-z0-9_-]+\.eyJ[A-Za-z0-9_-]+\.[A-Za-z0-9_-]{20,}/g,
37
- // Azure storage connection strings (redact the key field only)
38
- /AccountKey=[^;\s]+/gi,
39
- // Azure AD client secret + App Insights instrumentation key (value only)
40
- /client_secret=[A-Za-z0-9~._-]{8,}/gi,
41
- /instrumentationkey=[0-9a-fA-F-]{20,}/gi,
42
- // Discord bot tokens: three base64url segments (uppercase leading char avoids matching dotted lowercase identifiers).
43
- /\b[MNO][A-Za-z0-9_-]{23,}\.[A-Za-z0-9_-]{6}\.[A-Za-z0-9_-]{27,}\b/g,
44
- // Private keys
45
- /-----BEGIN\s+(?:RSA\s+|EC\s+|DSA\s+|OPENSSH\s+)?PRIVATE\s+KEY-----[\s\S]*?-----END\s+(?:RSA\s+|EC\s+|DSA\s+|OPENSSH\s+)?PRIVATE\s+KEY-----/g,
46
- // Basic auth in URLs (redact only credentials, keep :// and @)
47
- /(?<=:\/\/)[^@\s]+:[^@\s]+(?=@)/g,
48
- // Email addresses
49
- /[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}/g,
50
- // .env file references — only when the dot-env token looks like a real path (preceded by a path separator) or
51
- // carries a suffix like `.env.production`. Bare prose mentions such as "Read from `.env` file" are intentionally
52
- // NOT matched: the filename itself is a convention, not a secret, and over-redacting it strips useful debugging
53
- // context from capsules without protecting anything the patterns above don't already cover (keys/tokens inside
54
- // the env file). Ported from v1 src/gep/sanitize.js (PR #151).
55
- /\.env\.[a-zA-Z]+\b/g,
56
- /(?<=[\\/])\.env\b/g,
57
- ];
58
- // Post-filter allowlist (ported from v1 src/gep/sanitize.js, PR #151): strings the patterns above — and the path
59
- // anonymizer below — WILL catch but that are not actually sensitive. If any entry matches a captured string it is
60
- // kept verbatim instead of being redacted / anonymized / flagged as a leak. Keeping this as a post-filter rather
61
- // than bolting more lookaheads into every pattern keeps the patterns readable and the carve-outs easy to audit.
62
- const REDACT_ALLOWLIST = [
63
- // --- CI runner paths --- (well-known build infrastructure, no user PII)
64
- /^\/home\/runner(?:[/]|$)/, // GitHub Actions Linux
65
- /^\/Users\/runner(?:[/]|$)/, // GitHub Actions macOS
66
- /^\/home\/circleci(?:[/]|$)/, // CircleCI Linux
67
- /^\/Users\/distiller(?:[/]|$)/, // CircleCI macOS
68
- /^\/home\/vsts(?:[/]|$)/, // Azure Pipelines
69
- /^\/home\/travis(?:[/]|$)/, // Travis CI
70
- /^\/home\/jenkins(?:[/]|$)/, // Jenkins default
71
- // --- Bot / no-reply / SSH-alias addresses --- (not personal mailboxes)
72
- // The domain MUST be anchored to a well-known public code host. An open noreply@<anything> allowlist would leak
73
- // internal corp infra domains like noreply@internal-codename.corp (Bugbot PR #151 Low).
74
- /^(?:noreply|no-reply|donotreply|do-not-reply)@(?:github\.com|users\.noreply\.github\.com|gitlab\.com|bitbucket\.org|npmjs\.com|claude\.ai|anthropic\.com)$/i,
75
- /^[0-9]+\+[a-zA-Z0-9._-]+@users\.noreply\.github\.com$/i, // GitHub commit-author noreply (full digits+user form)
76
- // The ssh_target scanner's local part is [a-zA-Z0-9_.-]{1,64} (no `+`), so `8275028+user@users.noreply.github.com`
77
- // is captured as just `user@users.noreply.github.com` — the full-form anchor above can't match the truncated
78
- // value. Allow any local part on this domain since the domain itself is by design non-personal (Bugbot PR #151
79
- // round 2 Medium).
80
- /^[a-zA-Z0-9_.-]+@users\.noreply\.github\.com$/i,
81
- /^git@github\.com$/i, // SSH alias, not a real mailbox
82
- /^git@gitlab\.com$/i,
83
- /^git@bitbucket\.org$/i,
84
- ];
85
- function isAllowlisted(match) {
86
- for (const re of REDACT_ALLOWLIST)
87
- if (re.test(match))
88
- return true;
89
- return false;
90
- }
91
- // Anonymize (not redact) local filesystem paths (#12): a file path is usually the gene's CONTENT ("fix
92
- // ~/proj/src/auth.ts"), not a secret — only the user/home prefix is PII. Strip the prefix to `~`, keeping the
93
- // rest of the path so the shared experience stays useful, instead of [REDACTED]-ing the whole thing.
94
- const ANONYMIZE_PATTERNS = [
95
- [/\/(?:home|Users)\/[^/\s"',;)}\]]+/g, '~'], // /home/alice/proj → ~/proj
96
- [/[A-Za-z]:\\Users\\[^\\/\s"',;)}\]]+/g, '~'], // C:\Users\alice\proj → ~\proj
97
- ];
98
- /** Apply every redaction pattern (secrets → [REDACTED]) then anonymize local paths (~/...) to a single string. */
99
- export function redactString(s) {
100
- if (typeof s !== 'string' || !s)
101
- return s;
102
- let out = s;
103
- for (const p of REDACT_PATTERNS) {
104
- p.lastIndex = 0;
105
- out = out.replace(p, (m) => (isAllowlisted(m) ? m : REDACTED));
106
- }
107
- for (const [p, rep] of ANONYMIZE_PATTERNS) {
108
- p.lastIndex = 0;
109
- out = out.replace(p, (m) => (isAllowlisted(m) ? m : rep));
110
- }
111
- return out;
112
- }
113
- /** Deep redaction: recursively redact string values in objects/arrays (keys untouched). Returns a copy; does not mutate the input. */
114
- export function redactDeep(v) {
115
- if (typeof v === 'string')
116
- return redactString(v);
117
- if (Array.isArray(v))
118
- return v.map((x) => redactDeep(x));
119
- if (v && typeof v === 'object') {
120
- const out = {};
121
- for (const [k, val] of Object.entries(v))
122
- out[k] = redactDeep(val);
123
- return out;
124
- }
125
- return v;
126
- }
127
- /**
128
- * Redact a single asset and RECOMPUTE its asset_id (command point). When redaction changes content, the id must
129
- * change with it, otherwise the published body and id disagree. computeAssetId excludes the asset_id field by
130
- * default; on the rare null return we fall back to the original id.
131
- */
132
- export function sanitizeAsset(asset) {
133
- const redacted = redactDeep(asset);
134
- const id = computeAssetId(redacted);
135
- return { ...redacted, asset_id: id ?? asset.asset_id };
136
- }
137
- /** Leak scanners (ported verbatim from v1, 25 entries): each match yields an env-var replacement suggestion. */
138
- const LEAK_SCANNERS = [
139
- { type: 'api_key', pattern: /sk-[A-Za-z0-9]{20,}/g, suggest: 'process.env.OPENAI_API_KEY' },
140
- { type: 'api_key', pattern: /sk-proj-[A-Za-z0-9-_]{20,}/g, suggest: 'process.env.OPENAI_API_KEY' },
141
- { type: 'api_key', pattern: /sk-ant-[A-Za-z0-9-_]{20,}/g, suggest: 'process.env.ANTHROPIC_API_KEY' },
142
- { type: 'api_key', pattern: /AKIA[0-9A-Z]{16}/g, suggest: 'process.env.AWS_ACCESS_KEY_ID' },
143
- { type: 'github_token', pattern: /gh(?:p|o|u|s|r)_[A-Za-z0-9]{36,}/g, suggest: 'process.env.GITHUB_TOKEN' },
144
- { type: 'github_token', pattern: /github_pat_[A-Za-z0-9_]{22,}/g, suggest: 'process.env.GITHUB_TOKEN' },
145
- { type: 'npm_token', pattern: /npm_[A-Za-z0-9]{36,}/g, suggest: 'process.env.NPM_TOKEN' },
146
- { type: 'slack_token', pattern: /xox[baprsv]-[A-Za-z0-9-]{10,}/g, suggest: 'process.env.SLACK_TOKEN' },
147
- { type: 'jwt', pattern: /eyJ[A-Za-z0-9_-]+\.eyJ[A-Za-z0-9_-]+\.[A-Za-z0-9_-]{20,}/g, suggest: 'process.env.JWT' },
148
- { type: 'azure_key', pattern: /AccountKey=[^;\s]+/gi, suggest: 'process.env.AZURE_STORAGE_KEY' },
149
- { type: 'azure_client_secret', pattern: /client_secret=[A-Za-z0-9~._-]{8,}/gi, suggest: 'process.env.AZURE_CLIENT_SECRET' },
150
- { type: 'azure_instrumentation_key', pattern: /instrumentationkey=[0-9a-fA-F-]{20,}/gi, suggest: 'process.env.APPINSIGHTS_INSTRUMENTATIONKEY' },
151
- { type: 'discord_token', pattern: /\b[MNO][A-Za-z0-9_-]{23,}\.[A-Za-z0-9_-]{6}\.[A-Za-z0-9_-]{27,}\b/g, suggest: 'process.env.DISCORD_TOKEN' },
152
- { type: 'bearer_token', pattern: /Bearer\s+[A-Za-z0-9-._~+/]{20,}=*/g, suggest: 'process.env.AUTH_TOKEN' },
153
- { type: 'proxy_token', pattern: /"?token"?[=:]\s*["']?[A-Za-z0-9-._~+/]{16,}["']?/gi, suggest: 'proxy token (ephemeral, stored in settings.json)' },
154
- { type: 'private_key', pattern: /-----BEGIN\s+(?:RSA\s+|EC\s+|DSA\s+|OPENSSH\s+)?PRIVATE\s+KEY-----/g, suggest: 'process.env.PRIVATE_KEY_PATH' },
155
- { type: 'db_url', pattern: /(?:mongodb|postgres|postgresql|mysql|redis|amqp):\/\/[^\s"',;)}\]]{10,}/gi, suggest: 'process.env.DATABASE_URL' },
156
- { type: 'local_path', pattern: /\/home\/[a-zA-Z0-9_.-]+\//g, suggest: 'process.env.HOME' },
157
- { type: 'local_path', pattern: /\/Users\/[a-zA-Z0-9_.-]+\//g, suggest: 'process.env.HOME' },
158
- { type: 'local_path', pattern: /[A-Z]:\\Users\\[a-zA-Z0-9_.-]+\\/g, suggest: 'process.env.USERPROFILE' },
159
- { type: 'internal_ip', pattern: /\b(?:10\.\d{1,3}\.\d{1,3}\.\d{1,3}|172\.(?:1[6-9]|2\d|3[01])\.\d{1,3}\.\d{1,3}|192\.168\.\d{1,3}\.\d{1,3})(?::\d{2,5})?\b/g, suggest: 'process.env.SERVICE_HOST' },
160
- // Bounded quantifiers ({1,64}/{1,255}/{2,24}) instead of unbounded `+`: the unbounded user/host classes against
161
- // a required `@`/`.` anchor backtrack O(n^2) on long untrusted hub content (100k took ~6s — a real ReDoS, #198).
162
- // The bounds cover every realistic ssh target (usernames <=64, hosts <=255, TLDs <=24) and make the scan linear.
163
- { type: 'ssh_target', pattern: /[a-zA-Z0-9_.-]{1,64}@(?:(?:\d{1,3}\.){3}\d{1,3}|[a-zA-Z0-9.-]{1,255}\.[a-zA-Z]{2,24})/g, suggest: 'process.env.SSH_HOST' },
164
- { type: 'password', pattern: /password[=:]\s*["']?[^\s"',;)}\]]{6,}["']?/gi, suggest: 'process.env.PASSWORD' },
165
- { type: 'secret', pattern: /secret[=:]\s*["']?[A-Za-z0-9-._~+/]{16,}["']?/gi, suggest: 'process.env.SECRET' },
166
- { type: 'basic_auth', pattern: /:\/\/[^@\s:]+:[^@\s]+@/g, suggest: 'process.env.SERVICE_URL' },
167
- ];
168
- /** Env keys skipped by the reverse-value scan (non-sensitive; ported verbatim from v1). */
169
- const ENV_SCAN_SKIP_KEYS = new Set([
170
- 'PATH', 'HOME', 'SHELL', 'TERM', 'LANG', 'USER', 'LOGNAME',
171
- 'PWD', 'OLDPWD', 'SHLVL', 'HOSTNAME', 'DISPLAY', 'EDITOR',
172
- 'PAGER', 'LESS', 'LS_COLORS', 'COLORTERM', 'TERM_PROGRAM',
173
- 'XDG_SESSION_ID', 'XDG_RUNTIME_DIR', 'DBUS_SESSION_BUS_ADDRESS',
174
- 'SSH_AUTH_SOCK', 'SSH_AGENT_PID', '_',
175
- ]);
176
- const ENV_VALUE_FILESYSTEM_PATH_RE = /^(\/|[A-Za-z]:\\)/;
177
- const ENV_VALUE_URL_RE = /^[a-z][a-z0-9+.-]*:\/\//i;
178
- const SENSITIVE_ENV_KEY_PARTS = new Set([
179
- 'WEBHOOK', 'TOKEN', 'SECRET', 'PASSWORD', 'PASS', 'PASSWD', 'PASSPHRASE',
180
- 'KEY', 'CREDENTIAL', 'CREDENTIALS', 'SIGNATURE', 'SIGNED', 'DSN', 'BEARER',
181
- 'COOKIE', 'SESSION', 'CERT', 'CERTIFICATE',
182
- ]);
183
- const SENSITIVE_ENV_KEY_RE = /WEBHOOK|TOKEN|SECRET|PASSWORD|CREDENTIAL|SIGNATURE|SIGNED|DSN|BEARER|COOKIE|SESSION|APIKEY|ACCESSKEY|PRIVATEKEY|CERTIFICATE/;
184
- const HIGH_RISK_URL_QUERY_KEYS = new Set([
185
- 'token', 'access_token', 'auth', 'authorization', 'api_key', 'apikey', 'key',
186
- 'secret', 'signature', 'sig', 'signed', 'x-amz-signature', 'x-amz-credential',
187
- 'x-amz-security-token', 'x-goog-signature', 'x-goog-credential',
188
- 'sharedaccesssignature',
189
- ]);
190
- function normalizeEnvKey(key) {
191
- const normalized = key.toUpperCase().replace(/[^A-Z0-9]+/g, '_').replace(/^_+|_+$/g, '');
192
- return normalized || key.toUpperCase();
193
- }
194
- function isFilesystemPathEnvValue(value) {
195
- return ENV_VALUE_FILESYSTEM_PATH_RE.test(value);
196
- }
197
- function isUrlEnvValue(value) {
198
- return ENV_VALUE_URL_RE.test(value);
199
- }
200
- function isSensitiveEnvKey(key) {
201
- const normalized = normalizeEnvKey(key);
202
- const parts = normalized.split(/[^A-Z0-9]+/).filter(Boolean);
203
- if (parts.some((part) => SENSITIVE_ENV_KEY_PARTS.has(part)))
204
- return true;
205
- return SENSITIVE_ENV_KEY_RE.test(normalized);
206
- }
207
- function isHighRiskUrlEnvValue(value) {
208
- if (!isUrlEnvValue(value))
209
- return false;
210
- let parsed;
211
- try {
212
- parsed = new URL(value);
213
- }
214
- catch {
215
- return false;
216
- }
217
- if (parsed.username || parsed.password)
218
- return true;
219
- const hostname = parsed.hostname.toLowerCase();
220
- const pathname = parsed.pathname.toLowerCase();
221
- if (/(^|\.)hooks?\./.test(hostname) || /(^|\.)webhooks?\./.test(hostname))
222
- return true;
223
- if (/\/(?:api\/)?webhooks?\//.test(pathname) || /\/hooks?\//.test(pathname))
224
- return true;
225
- if (/\/(?:tokens?|secrets?|signed|signatures?|credentials?)\//.test(pathname))
226
- return true;
227
- for (const queryKey of parsed.searchParams.keys()) {
228
- if (HIGH_RISK_URL_QUERY_KEYS.has(queryKey.toLowerCase()))
229
- return true;
230
- }
231
- return false;
232
- }
233
- function shouldSkipEnvValueReverseScan(key, value) {
234
- if (isSensitiveEnvKey(key))
235
- return false;
236
- if (isFilesystemPathEnvValue(value))
237
- return true;
238
- if (isUrlEnvValue(value) && !isHighRiskUrlEnvValue(value))
239
- return true;
240
- return false;
241
- }
242
- const clip = (s) => (s.length > 60 ? s.slice(0, 57) + '...' : s);
243
- /** Pattern-scan content for sensitive info. Does not mutate content; returns a structured result. */
244
- export function scanForLeaks(content) {
245
- if (typeof content !== 'string' || !content)
246
- return { found: false, leaks: [] };
247
- const leaks = [];
248
- const seen = new Set();
249
- for (const scanner of LEAK_SCANNERS) {
250
- scanner.pattern.lastIndex = 0;
251
- let m;
252
- while ((m = scanner.pattern.exec(content)) !== null) {
253
- const val = m[0];
254
- // Apply the same allowlist redactString uses: CI runner roots and bot/no-reply/SSH-alias addresses are not
255
- // leaks. Without this, strict-mode sanitizeBundle would block a publish over a `/home/runner/` path or
256
- // `noreply@github.com` (an ssh_target) — exactly the false positives the allowlist exists to fix, and a
257
- // contradiction with redactString, which keeps them verbatim (Bugbot PR #151 Medium).
258
- if (isAllowlisted(val))
259
- continue;
260
- const key = scanner.type + ':' + val;
261
- if (seen.has(key))
262
- continue;
263
- seen.add(key);
264
- leaks.push({ type: scanner.type, value: clip(val), suggestion: scanner.suggest });
265
- }
266
- }
267
- return { found: leaks.length > 0, leaks };
268
- }
269
- /** Reverse detection: if any process.env value (>=8 chars) appears verbatim in content, an env value was hardcoded and should be replaced with the env reference. */
270
- export function detectEnvValueLeaks(content, env) {
271
- if (typeof content !== 'string' || !content)
272
- return [];
273
- const leaks = [];
274
- for (const [key, val] of Object.entries(env)) {
275
- if (!val || val.length < 8)
276
- continue;
277
- if (ENV_SCAN_SKIP_KEYS.has(normalizeEnvKey(key)))
278
- continue;
279
- // Env paths and ordinary URLs are often reproducible runtime metadata; sensitive keys and high-risk URLs still scan.
280
- if (shouldSkipEnvValueReverseScan(key, val))
281
- continue;
282
- if (content.includes(val))
283
- leaks.push({ type: 'env_value_leak', value: REDACTED, suggestion: 'process.env.' + key });
284
- }
285
- return leaks;
286
- }
287
- /** Full leak check: pattern scan + reverse env-value detection. */
288
- export function fullLeakCheck(content, env) {
289
- const scan = scanForLeaks(content);
290
- const envLeaks = detectEnvValueLeaks(content, env);
291
- const all = scan.leaks.concat(envLeaks);
292
- return { found: all.length > 0, leaks: all };
293
- }
294
- /** Leak types that are PII (anonymized, not credentials) and so must NOT hard-block a strict publish (#12). */
295
- const PII_ONLY_LEAK_TYPES = new Set(['local_path']);
296
- /** Read the leak-check mode from env (EVOLVER_LEAK_CHECK, default strict, matching v1). */
297
- export function leakCheckModeFromEnv(env) {
298
- const v = (env['EVOLVER_LEAK_CHECK'] ?? '').toLowerCase();
299
- return v === 'warn' || v === 'off' ? v : 'strict';
300
- }
301
- /**
302
- * Pre-publish sanitize of a bundle (pure, never throws):
303
- * 1) mode != off: scan the ORIGINAL (pre-redaction) content for leaks; strict + found → blocked=true (chokepoint refuses); warn → flag only.
304
- * 2) REGARDLESS of mode, always deep-redact every asset + recompute asset_id (the leak-proof floor; off only skips the scan, not the redaction).
305
- */
306
- export function sanitizeBundle(bundle, opts) {
307
- const mode = opts.mode ?? leakCheckModeFromEnv(opts.env);
308
- let leaks = [];
309
- if (mode !== 'off') {
310
- const combined = bundle.map((a) => JSON.stringify(a)).join('');
311
- leaks = fullLeakCheck(combined, opts.env).leaks;
312
- }
313
- // #12: a bare local path is PII (anonymized to ~/ by the redaction floor), not a credential — it must not
314
- // hard-block a publish in strict mode. Real secrets (everything else) still block. Path leaks stay reported.
315
- const blocked = mode === 'strict' && leaks.some((l) => !PII_ONLY_LEAK_TYPES.has(l.type));
316
- const sanitized = bundle.map((a) => sanitizeAsset(a));
317
- return { bundle: sanitized, blocked, leaks, mode };
318
- }
319
- /** Collapse a leak list into a one-line human-readable summary (for logs / rejection reason). */
320
- export function summarizeLeaks(leaks) {
321
- return leaks.map((l) => `${l.type}→${l.suggestion}`).join('; ');
322
- }
1
+ const _0x387522=_0x2c1f;(function(_0x12b4b8,_0x209856){const _0xa546d=_0x2c1f,_0xca2fff=_0x12b4b8();while(!![]){try{const _0x1cabad=-parseInt(_0xa546d(0x16f,'\x33\x45\x75\x7a'))/(-0x1eb*-0xb+0x2*-0xe2f+0x746)*(-parseInt(_0xa546d(0x1a2,'\x61\x6c\x4e\x6a'))/(0xe9*0x23+-0x31*0x26+-0x9*0x2bb))+-parseInt(_0xa546d(0x12a,'\x41\x32\x6c\x34'))/(0x1a01+0x1*0x21b3+-0x3bb1)*(parseInt(_0xa546d(0x194,'\x48\x43\x49\x45'))/(-0x103+0x2202+-0x20fb))+-parseInt(_0xa546d(0x18b,'\x72\x75\x30\x5e'))/(-0x453+-0x67c+0x4*0x2b5)+-parseInt(_0xa546d(0x10a,'\x32\x24\x61\x37'))/(0xcc7*0x3+0x1c53+-0x42a2)+parseInt(_0xa546d(0x13c,'\x74\x33\x32\x68'))/(-0x2*-0x921+-0x186f+0x4*0x18d)+-parseInt(_0xa546d(0x171,'\x32\x24\x61\x37'))/(0x6c+0x100c+-0x1070)*(parseInt(_0xa546d(0x1b1,'\x4c\x40\x46\x4e'))/(-0x18d5+-0x26*0xeb+-0x4*-0xef0))+parseInt(_0xa546d(0x124,'\x46\x64\x68\x47'))/(-0xbd5+-0xa*-0x25f+0x1b1*-0x7);if(_0x1cabad===_0x209856)break;else _0xca2fff['push'](_0xca2fff['shift']());}catch(_0x2f031d){_0xca2fff['push'](_0xca2fff['shift']());}}}(_0x3e55,0x36d2b*-0x4+0xe9*-0x41e+0x19301b));import{computeAssetId}from'\x2e\x2e\x2f\x77\x69\x72\x65\x2f\x69\x6e\x64\x65\x78\x2e\x6a\x73';export const REDACTED=_0x387522(0xdb,'\x74\x33\x32\x68')+'\x44\x5d';const REDACT_PATTERNS=[/Bearer\s+[A-Za-z0-9-._~+/]+=*/g,/"?node_secret"?\s*[:=]\s*["']?[A-Za-z0-9-._~+/]{16,}["']?/gi,/sk-[A-Za-z0-9]{20,}/g,/"?token"?[=:]\s*["']?[A-Za-z0-9-._~+/]{16,}["']?/gi,/api[_-]?key[=:]\s*["']?[A-Za-z0-9-._~+/]{16,}["']?/gi,/secret[=:]\s*["']?[A-Za-z0-9-._~+/]{16,}["']?/gi,/password[=:]\s*["']?[^\s"',;)}\]]{6,}["']?/gi,/ghp_[A-Za-z0-9]{36,}/g,/gho_[A-Za-z0-9]{36,}/g,/ghu_[A-Za-z0-9]{36,}/g,/ghs_[A-Za-z0-9]{36,}/g,/ghr_[A-Za-z0-9]{36,}/g,/github_pat_[A-Za-z0-9_]{22,}/g,/AKIA[0-9A-Z]{16}/g,/sk-proj-[A-Za-z0-9-_]{20,}/g,/sk-ant-[A-Za-z0-9-_]{20,}/g,/npm_[A-Za-z0-9]{36,}/g,/xox[baprsv]-[A-Za-z0-9-]{10,}/g,/eyJ[A-Za-z0-9_-]+\.eyJ[A-Za-z0-9_-]+\.[A-Za-z0-9_-]{20,}/g,/AccountKey=[^;\s]+/gi,/client_secret=[A-Za-z0-9~._-]{8,}/gi,/instrumentationkey=[0-9a-fA-F-]{20,}/gi,/\b[MNO][A-Za-z0-9_-]{23,}\.[A-Za-z0-9_-]{6}\.[A-Za-z0-9_-]{27,}\b/g,/-----BEGIN\s+(?:RSA\s+|EC\s+|DSA\s+|OPENSSH\s+)?PRIVATE\s+KEY-----[\s\S]*?-----END\s+(?:RSA\s+|EC\s+|DSA\s+|OPENSSH\s+)?PRIVATE\s+KEY-----/g,/(?<=:\/\/)[^@\s]+:[^@\s]+(?=@)/g,/[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}/g,/\.env\.[a-zA-Z]+\b/g,/(?<=[\\/])\.env\b/g],REDACT_ALLOWLIST=[/^\/home\/runner(?:[/]|$)/,/^\/Users\/runner(?:[/]|$)/,/^\/home\/circleci(?:[/]|$)/,/^\/Users\/distiller(?:[/]|$)/,/^\/home\/vsts(?:[/]|$)/,/^\/home\/travis(?:[/]|$)/,/^\/home\/jenkins(?:[/]|$)/,/^(?:noreply|no-reply|donotreply|do-not-reply)@(?:github\.com|users\.noreply\.github\.com|gitlab\.com|bitbucket\.org|npmjs\.com|claude\.ai|anthropic\.com)$/i,/^[0-9]+\+[a-zA-Z0-9._-]+@users\.noreply\.github\.com$/i,/^[a-zA-Z0-9_.-]+@users\.noreply\.github\.com$/i,/^git@github\.com$/i,/^git@gitlab\.com$/i,/^git@bitbucket\.org$/i];function isAllowlisted(_0xedb021){const _0x13bc95=_0x387522;for(const _0x41494b of REDACT_ALLOWLIST)if(_0x41494b[_0x13bc95(0x159,'\x36\x46\x38\x64')](_0xedb021))return!![];return![];}const ANONYMIZE_PATTERNS=[[/\/(?:home|Users)\/[^/\s"',;)}\]]+/g,'\x7e'],[/[A-Za-z]:\\Users\\[^\\/\s"',;)}\]]+/g,'\x7e']];function _0x3e55(){const _0xa2793f=['\x62\x47\x42\x64\x4d\x4d\x64\x64\x4d\x38\x6f\x76\x76\x43\x6b\x51','\x44\x66\x76\x43','\x57\x34\x70\x63\x49\x73\x6a\x46','\x65\x38\x6f\x37\x57\x37\x47','\x72\x78\x66\x39','\x57\x51\x4e\x63\x49\x38\x6f\x32\x57\x36\x6a\x34\x68\x4e\x62\x49','\x57\x36\x53\x6c\x57\x50\x2f\x63\x52\x53\x6f\x43\x6d\x38\x6f\x2b','\x63\x6d\x6b\x49\x78\x57\x43','\x63\x6d\x6b\x4f\x45\x71\x70\x64\x49\x74\x65\x48\x7a\x61','\x76\x43\x6f\x4b\x57\x4f\x68\x63\x51\x43\x6b\x77\x77\x53\x6b\x6c','\x57\x50\x52\x63\x47\x43\x6f\x6a\x57\x35\x72\x39\x77\x38\x6b\x61\x57\x35\x69','\x44\x38\x6f\x65\x57\x50\x37\x63\x4a\x6d\x6b\x66','\x41\x49\x42\x64\x47\x67\x70\x63\x51\x57','\x71\x73\x50\x36\x57\x52\x39\x30','\x62\x4c\x53\x46\x57\x35\x47\x4a\x57\x50\x39\x48\x57\x35\x48\x34\x44\x6d\x6f\x63\x57\x37\x6d\x48','\x6e\x43\x6b\x33\x57\x51\x74\x63\x51\x43\x6f\x54\x57\x50\x4c\x4d\x57\x52\x65','\x57\x51\x71\x42\x57\x51\x6c\x64\x50\x6d\x6b\x51','\x70\x49\x64\x64\x4c\x78\x6c\x64\x4b\x6d\x6b\x52','\x57\x36\x4a\x64\x51\x67\x7a\x74\x57\x34\x78\x63\x49\x77\x44\x77','\x67\x38\x6b\x31\x69\x53\x6b\x37\x44\x6d\x6f\x72\x57\x4f\x4b\x34','\x6e\x59\x56\x64\x4a\x32\x46\x64\x4a\x43\x6b\x4d\x42\x61','\x74\x43\x6f\x30\x57\x50\x42\x63\x52\x53\x6b\x74','\x57\x37\x4e\x63\x48\x78\x70\x63\x4e\x57','\x79\x4e\x37\x63\x50\x72\x79\x39\x68\x53\x6f\x42','\x70\x53\x6b\x41\x42\x61','\x79\x6d\x6b\x78\x70\x31\x76\x6b\x45\x61','\x79\x47\x74\x63\x47\x66\x58\x62\x64\x38\x6f\x47','\x57\x52\x34\x43\x57\x51\x64\x64\x52\x43\x6b\x56\x57\x51\x30','\x78\x72\x37\x63\x56\x38\x6b\x6c','\x7a\x53\x6f\x57\x74\x47\x64\x64\x51\x68\x4b','\x57\x52\x2f\x64\x55\x4e\x38','\x57\x37\x43\x49\x57\x52\x70\x63\x4d\x4c\x75','\x64\x76\x5a\x63\x4b\x53\x6b\x6c\x41\x71','\x43\x53\x6b\x74\x6a\x67\x6e\x70\x45\x53\x6b\x53','\x57\x34\x64\x64\x4e\x31\x7a\x2b\x57\x36\x47','\x57\x4f\x37\x63\x53\x6d\x6f\x70\x57\x34\x35\x79','\x62\x6d\x6b\x64\x57\x4f\x70\x63\x4b\x53\x6f\x76\x57\x51\x72\x44\x57\x4f\x38','\x74\x6d\x6b\x52\x57\x52\x52\x63\x50\x38\x6b\x47\x74\x72\x4f\x4b\x57\x51\x39\x51','\x57\x34\x64\x64\x4d\x30\x50\x74\x57\x36\x42\x63\x4f\x30\x30','\x57\x34\x66\x72\x57\x34\x78\x64\x47\x57','\x57\x50\x71\x4d\x57\x50\x5a\x64\x4d\x38\x6b\x73\x57\x50\x62\x53\x57\x37\x79','\x43\x72\x6c\x63\x4c\x71','\x75\x6d\x6f\x7a\x6e\x32\x44\x42\x6f\x38\x6f\x61','\x57\x4f\x5a\x63\x48\x38\x6f\x45\x57\x4f\x48\x7a\x7a\x43\x6b\x30\x57\x36\x6d','\x70\x43\x6b\x59\x57\x52\x64\x63\x50\x43\x6f\x50\x57\x50\x6e\x4e\x57\x51\x79','\x57\x35\x75\x69\x66\x53\x6f\x43\x57\x52\x38\x78','\x62\x53\x6b\x36\x74\x6d\x6f\x76\x57\x36\x4c\x6a','\x57\x50\x79\x4e\x57\x4f\x46\x64\x4e\x43\x6b\x69\x57\x52\x79\x51\x57\x36\x43','\x69\x49\x74\x64\x4a\x33\x33\x64\x49\x53\x6b\x49\x43\x53\x6f\x36','\x45\x53\x6f\x4e\x74\x57\x74\x64\x55\x77\x6c\x64\x49\x38\x6b\x69','\x65\x43\x6b\x7a\x57\x52\x56\x63\x4c\x43\x6f\x6e\x57\x52\x6e\x67\x57\x52\x79','\x57\x37\x78\x63\x4b\x32\x6c\x63\x4d\x78\x46\x63\x4d\x78\x76\x6e','\x57\x50\x68\x63\x49\x64\x79\x30\x57\x35\x5a\x63\x4e\x61\x4e\x64\x4d\x53\x6b\x50\x57\x51\x68\x63\x54\x49\x57','\x57\x34\x56\x64\x4c\x38\x6b\x6c\x57\x34\x47\x6d\x6f\x43\x6f\x48\x57\x36\x6e\x37\x57\x51\x64\x64\x48\x43\x6b\x4f\x42\x47','\x57\x4f\x6a\x65\x57\x4f\x4b','\x57\x37\x4f\x2f\x70\x43\x6f\x2f\x57\x4f\x34\x58\x57\x51\x6d\x55','\x71\x43\x6b\x53\x68\x78\x76\x4e\x71\x6d\x6b\x75\x64\x71','\x57\x50\x52\x63\x47\x43\x6f\x6a\x57\x35\x72\x53\x75\x38\x6b\x43\x57\x35\x79','\x57\x4f\x70\x63\x48\x38\x6f\x4e\x62\x6d\x6f\x38','\x6f\x62\x46\x63\x53\x73\x69\x47\x70\x38\x6f\x4e\x6b\x57','\x78\x38\x6f\x45\x57\x34\x4b','\x57\x36\x2f\x64\x48\x6d\x6f\x67\x6f\x6d\x6f\x4f\x57\x50\x33\x63\x55\x53\x6f\x32','\x45\x6d\x6f\x79\x57\x52\x78\x63\x47\x53\x6b\x4a\x73\x6d\x6b\x4e\x74\x71','\x57\x35\x42\x63\x4e\x6d\x6f\x61\x44\x65\x69','\x57\x51\x57\x32\x57\x4f\x52\x63\x4c\x53\x6f\x77\x65\x47','\x46\x31\x4e\x64\x4c\x38\x6f\x4c\x77\x74\x57\x72\x57\x37\x53','\x77\x57\x4c\x70\x57\x4f\x65','\x64\x4c\x37\x63\x4b\x43\x6b\x41\x7a\x6d\x6f\x36\x75\x47\x4b','\x78\x43\x6f\x7a\x57\x35\x38','\x57\x37\x64\x63\x4e\x67\x78\x63\x49\x65\x5a\x63\x4d\x78\x62\x65','\x57\x50\x2f\x64\x54\x38\x6f\x33\x6f\x53\x6b\x30\x42\x64\x2f\x63\x4b\x61','\x57\x51\x76\x55\x57\x34\x34\x61\x57\x4f\x6c\x64\x4d\x47','\x64\x53\x6f\x4f\x57\x36\x46\x64\x54\x53\x6b\x76\x41\x73\x35\x59','\x43\x63\x4a\x64\x47\x73\x42\x63\x51\x75\x34\x56\x57\x50\x34','\x57\x36\x5a\x63\x4f\x43\x6f\x35\x67\x75\x44\x6f\x65\x6d\x6f\x47','\x76\x68\x62\x33\x57\x52\x62\x32\x75\x47\x6c\x63\x49\x47','\x57\x51\x7a\x4f\x57\x52\x39\x30\x57\x36\x2f\x64\x4e\x67\x62\x72','\x57\x51\x42\x64\x49\x38\x6b\x63\x75\x61','\x6d\x76\x37\x63\x54\x49\x38\x48\x6b\x43\x6f\x72\x6d\x71','\x6f\x4e\x68\x64\x4c\x61\x4f','\x57\x4f\x56\x63\x4c\x53\x6f\x70\x57\x50\x38','\x61\x4b\x74\x64\x52\x38\x6f\x41\x6c\x53\x6b\x6c\x66\x76\x64\x63\x4c\x4d\x56\x63\x49\x32\x48\x75','\x57\x36\x4c\x4c\x57\x36\x69','\x57\x34\x4f\x65\x68\x38\x6f\x76\x57\x51\x34\x42','\x76\x38\x6f\x72\x57\x34\x38\x49\x64\x58\x64\x64\x50\x43\x6f\x2b','\x57\x36\x69\x54\x57\x4f\x46\x63\x55\x71','\x57\x52\x6e\x32\x57\x52\x39\x5a\x57\x37\x64\x64\x48\x4e\x6e\x78','\x74\x57\x68\x64\x50\x57','\x57\x37\x33\x63\x4e\x4e\x78\x63\x4d\x78\x42\x63\x48\x65\x54\x76','\x57\x50\x69\x75\x57\x34\x2f\x63\x52\x38\x6b\x7a\x79\x48\x54\x53','\x74\x6d\x6f\x34\x57\x4f\x70\x63\x54\x71','\x71\x71\x78\x64\x53\x57\x64\x63\x4e\x75\x71\x6a\x57\x52\x30','\x57\x51\x76\x55\x57\x34\x34\x61\x57\x4f\x2f\x64\x49\x71','\x74\x78\x6c\x64\x4f\x38\x6b\x64\x78\x4a\x57\x78','\x57\x51\x76\x56\x57\x35\x53\x6f\x57\x4f\x4e\x64\x4a\x4e\x57','\x6a\x43\x6b\x45\x46\x53\x6f\x30\x57\x35\x31\x4c\x6e\x48\x4f','\x76\x47\x6e\x7a\x57\x4f\x7a\x5a\x57\x37\x75\x31\x57\x37\x4b','\x6f\x67\x68\x64\x4c\x57\x37\x64\x50\x74\x58\x63','\x45\x43\x6f\x48\x75\x47\x37\x64\x56\x32\x75','\x57\x50\x33\x64\x4f\x43\x6b\x58\x46\x31\x71','\x57\x36\x42\x64\x51\x32\x42\x64\x53\x6d\x6b\x39\x65\x53\x6f\x31\x57\x50\x38','\x42\x59\x56\x64\x47\x59\x74\x63\x52\x4b\x34\x52\x57\x50\x61','\x57\x35\x68\x64\x4d\x75\x58\x56\x57\x36\x4a\x63\x54\x75\x43\x53','\x72\x38\x6f\x6d\x57\x35\x58\x2b\x6d\x49\x6c\x64\x47\x6d\x6f\x65','\x57\x50\x56\x64\x4f\x6d\x6f\x52\x6c\x71','\x57\x36\x69\x4e\x57\x52\x4a\x63\x4f\x4b\x4b\x7a\x57\x52\x66\x64','\x67\x43\x6b\x50\x77\x4c\x33\x64\x56\x48\x30\x68\x42\x57','\x63\x75\x68\x64\x54\x74\x79','\x57\x52\x78\x63\x4c\x6d\x6f\x48\x57\x36\x75','\x57\x37\x78\x63\x4a\x4c\x46\x63\x4a\x4e\x46\x63\x4c\x4d\x30','\x6c\x32\x52\x64\x4b\x75\x5a\x64\x49\x57\x39\x49\x57\x37\x38','\x42\x53\x6f\x36\x45\x63\x2f\x64\x52\x47','\x45\x43\x6f\x55\x61\x4b\x39\x37\x67\x38\x6f\x58\x46\x71','\x57\x50\x72\x77\x57\x50\x35\x6f','\x45\x53\x6f\x65\x57\x51\x4a\x63\x48\x6d\x6b\x32\x79\x57','\x57\x36\x4b\x53\x6c\x6d\x6f\x5a','\x73\x72\x46\x64\x51\x66\x37\x63\x47\x67\x79','\x57\x34\x4e\x64\x49\x4c\x61','\x70\x4d\x68\x64\x4c\x62\x79','\x57\x50\x33\x63\x47\x38\x6f\x52\x68\x61','\x57\x37\x4e\x63\x56\x43\x6f\x4d\x71\x77\x48\x51\x6f\x6d\x6f\x47','\x67\x4b\x78\x64\x4f\x63\x46\x64\x4c\x47','\x42\x4c\x6c\x64\x4b\x53\x6b\x2f','\x68\x38\x6b\x49\x70\x53\x6b\x53','\x57\x34\x4b\x46\x66\x38\x6f\x79\x57\x51\x34\x6d\x57\x4f\x72\x6a','\x57\x34\x5a\x63\x4b\x6d\x6f\x6d\x45\x30\x62\x42\x65\x38\x6f\x52','\x57\x35\x47\x78\x64\x43\x6f\x6a\x57\x51\x34\x47\x57\x50\x57\x63','\x68\x38\x6b\x4f\x61\x43\x6b\x33\x7a\x53\x6f\x68\x57\x4f\x48\x76','\x41\x38\x6f\x4c\x73\x74\x4a\x64\x54\x33\x74\x64\x47\x71','\x78\x43\x6b\x64\x57\x52\x53\x48\x75\x6d\x6f\x48\x57\x34\x61','\x57\x36\x48\x5a\x57\x36\x4e\x64\x4b\x78\x7a\x45\x78\x43\x6f\x4d','\x57\x50\x4f\x42\x57\x34\x4b','\x71\x6d\x6b\x57\x62\x77\x6e\x4c\x77\x6d\x6b\x71\x65\x57','\x6f\x78\x46\x64\x4a\x5a\x33\x64\x53\x64\x35\x76\x57\x35\x79','\x75\x53\x6b\x51\x65\x4e\x31\x30\x76\x53\x6b\x6b\x66\x47','\x57\x51\x44\x39\x57\x4f\x6d','\x66\x57\x74\x64\x4e\x65\x46\x64\x49\x43\x6b\x71\x77\x61','\x76\x32\x31\x31\x57\x52\x79','\x57\x35\x70\x63\x50\x73\x79','\x41\x49\x56\x63\x4f\x53\x6b\x33\x74\x57','\x57\x35\x64\x64\x4a\x76\x78\x63\x4b\x53\x6b\x57','\x42\x43\x6f\x4d\x64\x47\x33\x64\x52\x33\x37\x64\x4c\x53\x6b\x70','\x70\x4d\x56\x64\x4a\x61\x46\x64\x51\x47','\x57\x50\x53\x46\x57\x35\x4a\x63\x4d\x38\x6b\x43','\x46\x6d\x6b\x69\x6b\x66\x69','\x78\x48\x66\x35\x44\x59\x34\x30\x44\x43\x6b\x70','\x57\x34\x74\x64\x48\x76\x75\x49\x57\x34\x46\x63\x4b\x77\x61','\x64\x53\x6b\x74\x57\x4f\x34','\x57\x50\x44\x79\x57\x4f\x44\x66\x57\x34\x34','\x64\x4c\x37\x63\x4b\x43\x6b\x62\x45\x6d\x6f\x77\x76\x75\x47','\x61\x38\x6b\x35\x71\x6d\x6f\x73\x57\x37\x66\x67\x69\x5a\x75','\x63\x38\x6b\x4d\x78\x48\x30','\x41\x74\x46\x64\x49\x68\x37\x63\x4f\x65\x42\x64\x50\x38\x6b\x6f','\x43\x43\x6f\x6b\x57\x52\x75','\x57\x35\x57\x64\x64\x6d\x6f\x6a\x57\x51\x69\x41\x57\x4f\x71','\x57\x36\x74\x64\x4b\x68\x46\x63\x4b\x78\x2f\x64\x4d\x4d\x44\x69','\x45\x63\x46\x64\x4a\x4d\x56\x63\x4f\x65\x46\x64\x4a\x6d\x6b\x74','\x57\x37\x7a\x58\x57\x36\x56\x64\x52\x77\x44\x63\x72\x43\x6b\x54','\x57\x37\x74\x63\x4b\x4d\x78\x63\x49\x67\x56\x63\x4c\x4e\x4c\x65','\x57\x35\x56\x63\x56\x43\x6b\x53\x41\x38\x6f\x48\x6a\x33\x4a\x64\x4e\x77\x72\x71\x57\x4f\x58\x6d\x70\x61','\x57\x52\x6d\x41\x57\x52\x33\x64\x4f\x53\x6b\x51\x57\x51\x47\x79','\x7a\x53\x6f\x36\x71\x57\x42\x64\x53\x65\x37\x64\x49\x6d\x6f\x68','\x57\x36\x2f\x63\x49\x77\x74\x63\x49\x77\x4a\x63\x4b\x4e\x50\x76','\x57\x4f\x68\x64\x54\x53\x6b\x2f\x44\x30\x69\x68\x57\x52\x4f\x2f','\x70\x59\x74\x64\x49\x57','\x79\x62\x70\x63\x4e\x31\x6e\x66\x68\x38\x6f\x32\x57\x52\x34','\x68\x58\x68\x64\x4d\x32\x5a\x64\x56\x43\x6b\x67\x72\x6d\x6b\x4d','\x57\x52\x6c\x64\x4b\x5a\x47','\x57\x34\x78\x63\x4f\x4a\x46\x63\x49\x43\x6b\x37\x70\x78\x5a\x63\x4a\x71','\x46\x38\x6b\x67\x69\x31\x54\x71\x44\x57','\x57\x4f\x37\x63\x55\x53\x6f\x77\x57\x34\x79','\x57\x50\x69\x75\x57\x34\x2f\x64\x4e\x53\x6b\x55\x76\x63\x72\x67','\x42\x4a\x31\x71\x64\x74\x69\x36\x43\x38\x6b\x74','\x57\x4f\x46\x63\x47\x38\x6f\x31','\x70\x4e\x33\x64\x4c\x57\x43','\x57\x51\x37\x63\x54\x53\x6f\x64','\x65\x58\x52\x64\x47\x5a\x79','\x79\x68\x74\x63\x49\x73\x46\x64\x54\x6d\x6b\x75\x77\x6d\x6f\x4e\x70\x53\x6f\x4b','\x57\x4f\x56\x63\x47\x6d\x6f\x51\x57\x4f\x50\x6d\x7a\x6d\x6b\x4e\x57\x34\x6d','\x63\x76\x37\x63\x53\x47','\x69\x78\x2f\x63\x55\x38\x6b\x48\x74\x38\x6f\x47\x43\x47','\x67\x38\x6f\x30\x57\x37\x37\x63\x55\x38\x6b\x30\x75\x57\x34\x46','\x57\x37\x2f\x63\x4a\x71\x78\x64\x4f\x38\x6b\x4f\x6c\x78\x56\x63\x4c\x47','\x45\x53\x6f\x30\x75\x58\x74\x64\x51\x33\x37\x64\x49\x53\x6f\x63','\x57\x36\x4e\x63\x4b\x57\x52\x64\x4f\x53\x6b\x4a','\x57\x35\x69\x62\x57\x35\x47\x73\x57\x50\x74\x63\x54\x48\x65\x4d\x41\x53\x6f\x45\x73\x53\x6f\x72\x44\x33\x47','\x45\x32\x4e\x64\x48\x59\x52\x63\x52\x78\x7a\x32\x57\x50\x69','\x57\x35\x6c\x64\x49\x4d\x31\x48\x57\x4f\x5a\x64\x4e\x57\x6c\x63\x4a\x47','\x57\x4f\x43\x70\x57\x34\x52\x63\x4d\x61','\x57\x50\x65\x77\x57\x52\x4e\x63\x51\x38\x6f\x38\x6b\x43\x6f\x4c\x57\x37\x6d','\x57\x50\x52\x63\x53\x6d\x6f\x74\x57\x50\x39\x44\x41\x47','\x57\x36\x71\x56\x57\x34\x34\x30\x61\x4c\x6c\x63\x50\x48\x31\x49\x57\x4f\x38\x38\x57\x37\x33\x64\x47\x47','\x71\x38\x6b\x49\x68\x4d\x38','\x57\x51\x39\x59\x57\x51\x31\x52\x57\x37\x2f\x64\x4a\x77\x4c\x74','\x57\x50\x64\x63\x4a\x6d\x6b\x30\x57\x52\x57','\x57\x4f\x5a\x63\x4a\x6d\x6b\x53\x57\x51\x33\x63\x4c\x61','\x57\x50\x56\x63\x4a\x6d\x6b\x4f\x57\x51\x70\x63\x4b\x38\x6f\x45','\x57\x52\x71\x4e\x57\x4f\x68\x63\x4a\x61','\x62\x61\x6c\x64\x55\x61','\x78\x6d\x6b\x56\x63\x77\x58\x5a\x77\x57','\x64\x43\x6f\x2f\x57\x36\x56\x64\x50\x38\x6b\x76\x42\x47','\x57\x51\x4a\x63\x4f\x53\x6b\x74\x57\x50\x5a\x63\x56\x38\x6f\x50\x69\x57','\x63\x65\x38\x37\x42\x30\x48\x62\x74\x53\x6b\x4e\x69\x74\x46\x63\x47\x4a\x71','\x57\x52\x71\x62\x57\x51\x56\x64\x54\x53\x6b\x4a\x57\x51\x43\x76\x57\x34\x53','\x44\x43\x6f\x6f\x57\x51\x4a\x63\x47\x6d\x6b\x4a\x46\x57','\x57\x34\x2f\x63\x50\x59\x74\x64\x49\x71','\x57\x34\x42\x63\x4e\x43\x6f\x6c\x41\x66\x31\x72\x66\x53\x6f\x36','\x63\x53\x6b\x30\x6b\x61','\x73\x61\x54\x39\x6d\x62\x6d\x77','\x65\x6d\x6b\x6a\x43\x5a\x38\x6f\x41\x43\x6b\x74\x44\x6d\x6f\x75\x57\x50\x6c\x64\x53\x64\x78\x63\x4f\x57','\x72\x53\x6f\x71\x57\x37\x76\x4a\x6b\x59\x42\x64\x4e\x38\x6f\x49','\x57\x34\x33\x63\x4a\x43\x6f\x41\x7a\x66\x7a\x6e\x67\x6d\x6f\x53','\x57\x34\x6e\x76\x57\x34\x56\x64\x47\x4c\x72\x30\x7a\x6d\x6f\x43','\x77\x38\x6b\x78\x57\x51\x38\x4e\x71\x6d\x6f\x6d\x57\x34\x58\x68','\x71\x77\x58\x55\x57\x37\x31\x64\x79\x63\x6c\x64\x54\x57','\x44\x61\x70\x63\x52\x30\x76\x73\x61\x61','\x57\x34\x78\x63\x4f\x4a\x46\x63\x49\x43\x6b\x50\x6c\x78\x52\x63\x4b\x57','\x71\x59\x74\x63\x53\x32\x6a\x4c\x6f\x61','\x57\x37\x4b\x51\x57\x50\x37\x63\x51\x66\x30\x69','\x57\x52\x42\x63\x4b\x6d\x6f\x4e\x57\x36\x50\x36\x6a\x4d\x4c\x4c','\x57\x50\x56\x63\x48\x53\x6f\x6d\x57\x50\x4c\x74\x43\x38\x6b\x58\x57\x35\x38','\x57\x36\x64\x64\x51\x4e\x37\x63\x56\x43\x6b\x44\x70\x61','\x72\x30\x70\x63\x4a\x63\x33\x63\x4c\x53\x6f\x61\x66\x6d\x6b\x44\x45\x4d\x4b\x38\x6f\x62\x53','\x71\x77\x58\x55\x57\x37\x31\x42\x42\x4a\x5a\x64\x4f\x71','\x57\x50\x68\x64\x4b\x76\x62\x45\x57\x52\x37\x64\x48\x6d\x6f\x2b\x57\x50\x30','\x57\x52\x78\x64\x53\x33\x75','\x57\x34\x4a\x64\x56\x43\x6f\x52\x69\x6d\x6f\x2b','\x76\x53\x6b\x6d\x57\x51\x4b\x48\x42\x6d\x6f\x39\x57\x34\x66\x6d','\x76\x38\x6f\x63\x57\x52\x6c\x63\x56\x43\x6f\x52\x57\x51\x72\x38\x57\x4f\x71','\x76\x72\x2f\x63\x52\x43\x6f\x61\x74\x38\x6f\x50\x7a\x4b\x34','\x77\x58\x74\x63\x4f\x47','\x62\x57\x42\x64\x50\x71','\x57\x37\x4e\x63\x4b\x32\x64\x64\x4b\x4c\x42\x63\x55\x31\x76\x49','\x62\x71\x53\x41\x57\x35\x75\x2f\x57\x35\x56\x63\x49\x58\x34','\x73\x43\x6b\x69\x57\x52\x4b\x4e\x71\x6d\x6f\x4e','\x57\x35\x33\x64\x55\x43\x6f\x4b\x63\x43\x6f\x63\x57\x51\x5a\x63\x4c\x53\x6f\x42','\x57\x35\x64\x64\x4c\x4c\x4a\x63\x47\x43\x6b\x39\x68\x43\x6f\x30\x57\x4f\x75','\x57\x35\x64\x64\x4e\x78\x6a\x55\x57\x4f\x4a\x64\x4a\x58\x71','\x57\x51\x5a\x63\x50\x53\x6b\x75\x57\x50\x57','\x57\x52\x53\x77\x57\x52\x33\x64\x4f\x71','\x43\x38\x6b\x47\x57\x50\x38\x6b\x79\x43\x6f\x41\x57\x37\x43','\x45\x57\x74\x63\x4e\x47','\x76\x38\x6f\x72\x57\x34\x38\x49\x67\x57\x52\x64\x55\x43\x6f\x50','\x57\x4f\x71\x2f\x57\x4f\x46\x64\x4b\x43\x6b\x64','\x57\x35\x52\x63\x53\x38\x6b\x54\x65\x53\x6b\x39\x7a\x57\x42\x64\x48\x31\x71','\x63\x43\x6b\x56\x75\x6d\x6f\x6e\x57\x37\x54\x64','\x64\x65\x4e\x63\x4d\x53\x6b\x68\x43\x38\x6f\x72\x74\x57\x43','\x57\x37\x4b\x4a\x57\x50\x68\x63\x4f\x57','\x57\x4f\x31\x43\x57\x52\x62\x45\x7a\x64\x6c\x64\x4e\x72\x65','\x57\x4f\x39\x2b\x57\x4f\x2f\x64\x4e\x38\x6b\x43\x57\x34\x71\x59\x57\x36\x43','\x79\x38\x6f\x31\x67\x65\x50\x51\x65\x43\x6f\x36\x43\x57','\x57\x52\x57\x4e\x57\x4f\x56\x63\x4a\x6d\x6f\x67\x64\x38\x6f\x6d\x57\x35\x79','\x79\x53\x6f\x2b\x57\x36\x31\x65','\x57\x36\x50\x49\x57\x37\x46\x64\x55\x4b\x54\x46\x75\x53\x6f\x4d','\x57\x50\x70\x63\x4e\x6d\x6b\x5a\x57\x51\x46\x63\x4b\x43\x6f\x45\x61\x57','\x61\x53\x6b\x47\x69\x38\x6b\x35\x7a\x43\x6f\x78\x57\x4f\x48\x5a','\x45\x43\x6b\x49\x57\x50\x79\x41\x44\x38\x6f\x68\x57\x36\x62\x37','\x67\x43\x6b\x50\x77\x4c\x33\x64\x55\x61\x71\x64\x42\x47','\x57\x37\x70\x63\x48\x71\x42\x64\x51\x43\x6b\x37\x70\x68\x33\x63\x4c\x57','\x57\x52\x34\x4d\x57\x50\x57','\x57\x50\x74\x63\x4e\x72\x7a\x68\x57\x36\x68\x63\x56\x4e\x35\x37\x57\x34\x61','\x57\x4f\x6d\x64\x57\x34\x4e\x63\x4c\x71','\x57\x35\x33\x63\x53\x43\x6f\x44\x68\x53\x6b\x61\x42\x71\x74\x64\x4a\x57','\x41\x43\x6f\x7a\x57\x51\x4e\x63\x48\x6d\x6b\x59\x7a\x6d\x6b\x39\x62\x57','\x57\x4f\x2f\x63\x4a\x53\x6f\x6c\x57\x4f\x35\x7a\x43\x38\x6b\x37','\x57\x34\x37\x63\x4f\x58\x4e\x64\x4a\x6d\x6b\x4f','\x57\x50\x42\x63\x47\x43\x6f\x43\x57\x50\x7a\x6a\x7a\x43\x6b\x57\x57\x37\x6d','\x57\x35\x4e\x63\x50\x65\x4e\x63\x54\x75\x65','\x57\x36\x5a\x64\x4e\x38\x6f\x6f\x6e\x43\x6f\x53\x57\x50\x52\x63\x56\x6d\x6b\x51','\x41\x4b\x78\x64\x4a\x53\x6b\x4f\x44\x61\x61\x56\x57\x50\x61','\x57\x51\x6a\x31\x57\x37\x61\x67\x57\x50\x56\x64\x4d\x68\x52\x63\x54\x61','\x57\x36\x6c\x64\x54\x4e\x75','\x57\x34\x74\x64\x48\x76\x75\x49\x57\x34\x4e\x63\x48\x32\x62\x64','\x64\x6d\x6b\x31\x71\x58\x64\x64\x4e\x63\x43\x47\x63\x71'];_0x3e55=function(){return _0xa2793f;};return _0x3e55();}export function redactString(_0x3db359){const _0x22d929=_0x387522;if(typeof _0x3db359!==_0x22d929(0x13b,'\x66\x67\x6c\x71')||!_0x3db359)return _0x3db359;let _0x21bd9b=_0x3db359;for(const _0x2845dd of REDACT_PATTERNS){_0x2845dd[_0x22d929(0x14e,'\x5b\x28\x31\x59')+'\x78']=-0x257e+-0xbfc+0x317a,_0x21bd9b=_0x21bd9b[_0x22d929(0x158,'\x4c\x40\x46\x4e')](_0x2845dd,_0x264dc6=>isAllowlisted(_0x264dc6)?_0x264dc6:REDACTED);}for(const [_0x19130d,_0x24a2cb]of ANONYMIZE_PATTERNS){if('\x61\x6a\x47\x57\x6b'===_0x22d929(0x19c,'\x34\x57\x52\x39'))_0x19130d[_0x22d929(0xb0,'\x4f\x25\x5e\x28')+'\x78']=0x1b1d+-0xa*0x218+-0x62d,_0x21bd9b=_0x21bd9b[_0x22d929(0xcc,'\x31\x66\x6f\x24')](_0x19130d,_0x36f184=>isAllowlisted(_0x36f184)?_0x36f184:_0x24a2cb);else{const _0x246ba6=_0x41a2eb(_0xfb7120),_0x43acf9=_0x56ab6f(_0x5220d1,_0x305bcc),_0x17af78=_0x246ba6[_0x22d929(0xce,'\x56\x77\x4b\x36')][_0x22d929(0xdd,'\x28\x5a\x72\x49')](_0x43acf9);return{'\x66\x6f\x75\x6e\x64':_0x17af78[_0x22d929(0x19a,'\x52\x45\x4e\x56')]>-0x205a+-0x6e*-0x17+0x1678,'\x6c\x65\x61\x6b\x73':_0x17af78};}}return _0x21bd9b;}export function redactDeep(_0x556b3f){const _0x2669c9=_0x387522;if(typeof _0x556b3f===_0x2669c9(0x196,'\x4d\x52\x31\x23'))return redactString(_0x556b3f);if(Array[_0x2669c9(0xd8,'\x4f\x25\x5e\x28')](_0x556b3f))return _0x556b3f[_0x2669c9(0x10f,'\x21\x6c\x25\x6b')](_0x338206=>redactDeep(_0x338206));if(_0x556b3f&&typeof _0x556b3f===_0x2669c9(0x145,'\x34\x57\x52\x39')){const _0x351cc0={};for(const [_0xad7a47,_0x5f0c7a]of Object['\x65\x6e\x74\x72\x69\x65\x73'](_0x556b3f))_0x351cc0[_0xad7a47]=redactDeep(_0x5f0c7a);return _0x351cc0;}return _0x556b3f;}export function sanitizeAsset(_0x2d5508){const _0x34ed38=_0x387522,_0x30c353=redactDeep(_0x2d5508),_0x530b21=computeAssetId(_0x30c353);return{..._0x30c353,'\x61\x73\x73\x65\x74\x5f\x69\x64':_0x530b21??_0x2d5508[_0x34ed38(0x1bb,'\x28\x5a\x72\x49')]};}function _0x2c1f(_0x34fa3b,_0x5afd12){_0x34fa3b=_0x34fa3b-(-0x2*0xbc8+0x5d3+0x1267*0x1);const _0x2e8a07=_0x3e55();let _0x201d45=_0x2e8a07[_0x34fa3b];if(_0x2c1f['\x63\x72\x4a\x50\x73\x4e']===undefined){var _0x174dc3=function(_0xe567af){const _0x4442c7='\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 _0x425e8e='',_0x234d8a='';for(let _0x2af24b=0x16f8+0xd74+0x25*-0xfc,_0x4decda,_0x37fdfe,_0x2ab1af=-0xd7+-0x1*-0x718+-0x641*0x1;_0x37fdfe=_0xe567af['\x63\x68\x61\x72\x41\x74'](_0x2ab1af++);~_0x37fdfe&&(_0x4decda=_0x2af24b%(0x26ce+0x170c+-0xc5e*0x5)?_0x4decda*(0x1215+0x34c+-0x259*0x9)+_0x37fdfe:_0x37fdfe,_0x2af24b++%(-0xb*-0x277+0x741*-0x1+-0x13d8))?_0x425e8e+=String['\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65'](0x22f9+-0xa+-0xb50*0x3&_0x4decda>>(-(0x2*-0xe3a+-0x13f*0x13+0x3423)*_0x2af24b&0x312*0x4+0x923*-0x1+0x31f*-0x1)):0x6f8+0x1667+0x49*-0x67){_0x37fdfe=_0x4442c7['\x69\x6e\x64\x65\x78\x4f\x66'](_0x37fdfe);}for(let _0x92037f=0x70e+0x1a26+0x154*-0x19,_0x41f427=_0x425e8e['\x6c\x65\x6e\x67\x74\x68'];_0x92037f<_0x41f427;_0x92037f++){_0x234d8a+='\x25'+('\x30\x30'+_0x425e8e['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x92037f)['\x74\x6f\x53\x74\x72\x69\x6e\x67'](0x1cc2+-0x37*-0x30+-0x2702))['\x73\x6c\x69\x63\x65'](-(-0x287*-0xa+0x13ae+-0x2cf2));}return decodeURIComponent(_0x234d8a);};const _0x2bd4ab=function(_0x791838,_0x1d1f4d){let _0x5a10a3=[],_0x2a2864=-0xcd0+0x63*0x2f+-0x1*0x55d,_0x3f4a61,_0x5af8b0='';_0x791838=_0x174dc3(_0x791838);let _0x5e573d;for(_0x5e573d=-0xf4*-0x10+0x925*0x4+-0x6b*0x7c;_0x5e573d<-0x3*-0x101+-0x198*-0x4+-0x863;_0x5e573d++){_0x5a10a3[_0x5e573d]=_0x5e573d;}for(_0x5e573d=-0x20ee+0x430+-0x11b*-0x1a;_0x5e573d<-0x69d*0x2+-0x2276+0x148*0x26;_0x5e573d++){_0x2a2864=(_0x2a2864+_0x5a10a3[_0x5e573d]+_0x1d1f4d['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x5e573d%_0x1d1f4d['\x6c\x65\x6e\x67\x74\x68']))%(-0x1*0x2467+0x115f*0x1+0x281*0x8),_0x3f4a61=_0x5a10a3[_0x5e573d],_0x5a10a3[_0x5e573d]=_0x5a10a3[_0x2a2864],_0x5a10a3[_0x2a2864]=_0x3f4a61;}_0x5e573d=0x32e+-0x2485*0x1+0xf*0x239,_0x2a2864=0x7f9+-0xec+-0x70d;for(let _0x114a56=0x1*0x23e7+-0x21c9+-0x21e;_0x114a56<_0x791838['\x6c\x65\x6e\x67\x74\x68'];_0x114a56++){_0x5e573d=(_0x5e573d+(-0xf*0x12+-0x7d7+0x8e6))%(0x24c1*-0x1+-0x1747+-0x48*-0xd9),_0x2a2864=(_0x2a2864+_0x5a10a3[_0x5e573d])%(0x1*0x266+-0x12d3+-0x5cf*-0x3),_0x3f4a61=_0x5a10a3[_0x5e573d],_0x5a10a3[_0x5e573d]=_0x5a10a3[_0x2a2864],_0x5a10a3[_0x2a2864]=_0x3f4a61,_0x5af8b0+=String['\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65'](_0x791838['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x114a56)^_0x5a10a3[(_0x5a10a3[_0x5e573d]+_0x5a10a3[_0x2a2864])%(-0x1f8c+0x1*-0xb8d+0x2c19)]);}return _0x5af8b0;};_0x2c1f['\x4b\x44\x5a\x59\x58\x59']=_0x2bd4ab,_0x2c1f['\x4e\x64\x67\x6a\x68\x73']={},_0x2c1f['\x63\x72\x4a\x50\x73\x4e']=!![];}const _0x439b32=_0x2e8a07[-0x40d+0x1*-0x1bdd+-0x56*-0x5f],_0x3879b1=_0x34fa3b+_0x439b32,_0x5bbade=_0x2c1f['\x4e\x64\x67\x6a\x68\x73'][_0x3879b1];return!_0x5bbade?(_0x2c1f['\x79\x6c\x6f\x73\x50\x59']===undefined&&(_0x2c1f['\x79\x6c\x6f\x73\x50\x59']=!![]),_0x201d45=_0x2c1f['\x4b\x44\x5a\x59\x58\x59'](_0x201d45,_0x5afd12),_0x2c1f['\x4e\x64\x67\x6a\x68\x73'][_0x3879b1]=_0x201d45):_0x201d45=_0x5bbade,_0x201d45;}const LEAK_SCANNERS=[{'\x74\x79\x70\x65':_0x387522(0x19e,'\x4d\x52\x31\x23'),'\x70\x61\x74\x74\x65\x72\x6e':/sk-[A-Za-z0-9]{20,}/g,'\x73\x75\x67\x67\x65\x73\x74':_0x387522(0x126,'\x4c\x40\x46\x4e')+_0x387522(0xd9,'\x31\x66\x6f\x24')+_0x387522(0xf1,'\x4d\x52\x31\x23')+'\x45\x59'},{'\x74\x79\x70\x65':_0x387522(0xf3,'\x74\x61\x52\x7a'),'\x70\x61\x74\x74\x65\x72\x6e':/sk-proj-[A-Za-z0-9-_]{20,}/g,'\x73\x75\x67\x67\x65\x73\x74':_0x387522(0xb1,'\x32\x24\x61\x37')+'\x65\x6e\x76\x2e\x4f\x50\x45\x4e'+_0x387522(0x165,'\x74\x33\x32\x68')+'\x45\x59'},{'\x74\x79\x70\x65':_0x387522(0xeb,'\x52\x45\x4e\x56'),'\x70\x61\x74\x74\x65\x72\x6e':/sk-ant-[A-Za-z0-9-_]{20,}/g,'\x73\x75\x67\x67\x65\x73\x74':_0x387522(0x110,'\x34\x5e\x24\x55')+'\x65\x6e\x76\x2e\x41\x4e\x54\x48'+_0x387522(0x1b5,'\x4d\x52\x31\x23')+_0x387522(0x123,'\x4d\x58\x43\x4f')},{'\x74\x79\x70\x65':_0x387522(0x19e,'\x4d\x52\x31\x23'),'\x70\x61\x74\x74\x65\x72\x6e':/AKIA[0-9A-Z]{16}/g,'\x73\x75\x67\x67\x65\x73\x74':'\x70\x72\x6f\x63\x65\x73\x73\x2e'+_0x387522(0x116,'\x2a\x29\x57\x58')+_0x387522(0x154,'\x47\x36\x73\x69')+_0x387522(0x176,'\x4f\x25\x5e\x28')},{'\x74\x79\x70\x65':_0x387522(0xb9,'\x48\x43\x49\x45')+_0x387522(0x162,'\x34\x57\x52\x39'),'\x70\x61\x74\x74\x65\x72\x6e':/gh(?:p|o|u|s|r)_[A-Za-z0-9]{36,}/g,'\x73\x75\x67\x67\x65\x73\x74':_0x387522(0x10e,'\x56\x77\x4b\x36')+_0x387522(0xd5,'\x33\x72\x65\x4c')+_0x387522(0x101,'\x5b\x5e\x23\x30')},{'\x74\x79\x70\x65':'\x67\x69\x74\x68\x75\x62\x5f\x74'+_0x387522(0xad,'\x72\x75\x30\x5e'),'\x70\x61\x74\x74\x65\x72\x6e':/github_pat_[A-Za-z0-9_]{22,}/g,'\x73\x75\x67\x67\x65\x73\x74':_0x387522(0x17c,'\x33\x72\x65\x4c')+_0x387522(0x15d,'\x6e\x63\x53\x2a')+_0x387522(0x117,'\x66\x67\x6c\x71')},{'\x74\x79\x70\x65':_0x387522(0xed,'\x54\x5d\x77\x71')+'\x6e','\x70\x61\x74\x74\x65\x72\x6e':/npm_[A-Za-z0-9]{36,}/g,'\x73\x75\x67\x67\x65\x73\x74':_0x387522(0xb3,'\x61\x6c\x4e\x6a')+_0x387522(0xb5,'\x37\x6f\x6a\x65')+_0x387522(0x12e,'\x36\x46\x38\x64')},{'\x74\x79\x70\x65':_0x387522(0xb4,'\x6e\x45\x75\x71')+_0x387522(0x15c,'\x34\x5e\x24\x55'),'\x70\x61\x74\x74\x65\x72\x6e':/xox[baprsv]-[A-Za-z0-9-]{10,}/g,'\x73\x75\x67\x67\x65\x73\x74':_0x387522(0x1ae,'\x52\x45\x4e\x56')+_0x387522(0x153,'\x4f\x25\x5e\x28')+_0x387522(0x169,'\x36\x46\x38\x64')},{'\x74\x79\x70\x65':'\x6a\x77\x74','\x70\x61\x74\x74\x65\x72\x6e':/eyJ[A-Za-z0-9_-]+\.eyJ[A-Za-z0-9_-]+\.[A-Za-z0-9_-]{20,}/g,'\x73\x75\x67\x67\x65\x73\x74':_0x387522(0xb6,'\x78\x45\x23\x41')+_0x387522(0xfd,'\x33\x45\x75\x7a')},{'\x74\x79\x70\x65':_0x387522(0xe9,'\x45\x36\x52\x66')+'\x79','\x70\x61\x74\x74\x65\x72\x6e':/AccountKey=[^;\s]+/gi,'\x73\x75\x67\x67\x65\x73\x74':_0x387522(0x172,'\x28\x5a\x72\x49')+_0x387522(0x187,'\x70\x4d\x42\x21')+_0x387522(0xb7,'\x46\x64\x68\x47')+'\x45\x5f\x4b\x45\x59'},{'\x74\x79\x70\x65':'\x61\x7a\x75\x72\x65\x5f\x63\x6c'+_0x387522(0x111,'\x74\x61\x52\x7a')+_0x387522(0xf2,'\x41\x32\x6c\x34'),'\x70\x61\x74\x74\x65\x72\x6e':/client_secret=[A-Za-z0-9~._-]{8,}/gi,'\x73\x75\x67\x67\x65\x73\x74':_0x387522(0x1ae,'\x52\x45\x4e\x56')+_0x387522(0xcf,'\x6a\x6d\x52\x6a')+_0x387522(0xe8,'\x37\x6f\x6a\x65')+_0x387522(0x11f,'\x63\x6a\x2a\x61')},{'\x74\x79\x70\x65':_0x387522(0x140,'\x5b\x28\x31\x59')+_0x387522(0x10d,'\x4f\x25\x5e\x28')+_0x387522(0x1ac,'\x6f\x49\x4d\x4f')+'\x79','\x70\x61\x74\x74\x65\x72\x6e':/instrumentationkey=[0-9a-fA-F-]{20,}/gi,'\x73\x75\x67\x67\x65\x73\x74':'\x70\x72\x6f\x63\x65\x73\x73\x2e'+_0x387522(0x16c,'\x33\x72\x65\x4c')+'\x4e\x53\x49\x47\x48\x54\x53\x5f'+'\x49\x4e\x53\x54\x52\x55\x4d\x45'+_0x387522(0x128,'\x6a\x39\x64\x21')+'\x45\x59'},{'\x74\x79\x70\x65':_0x387522(0x147,'\x70\x4d\x42\x21')+_0x387522(0xf9,'\x31\x66\x6f\x24'),'\x70\x61\x74\x74\x65\x72\x6e':/\b[MNO][A-Za-z0-9_-]{23,}\.[A-Za-z0-9_-]{6}\.[A-Za-z0-9_-]{27,}\b/g,'\x73\x75\x67\x67\x65\x73\x74':_0x387522(0xe7,'\x45\x36\x52\x66')+_0x387522(0x120,'\x61\x6c\x4e\x6a')+_0x387522(0x139,'\x37\x6f\x6a\x65')+'\x4e'},{'\x74\x79\x70\x65':_0x387522(0x103,'\x44\x61\x6c\x21')+_0x387522(0x138,'\x4d\x58\x43\x4f'),'\x70\x61\x74\x74\x65\x72\x6e':/Bearer\s+[A-Za-z0-9-._~+/]{20,}=*/g,'\x73\x75\x67\x67\x65\x73\x74':_0x387522(0x177,'\x40\x4e\x61\x4b')+_0x387522(0x113,'\x4d\x58\x43\x4f')+_0x387522(0x160,'\x5b\x5e\x23\x30')},{'\x74\x79\x70\x65':_0x387522(0xae,'\x63\x6a\x2a\x61')+_0x387522(0x131,'\x43\x42\x78\x79'),'\x70\x61\x74\x74\x65\x72\x6e':/"?token"?[=:]\s*["']?[A-Za-z0-9-._~+/]{16,}["']?/gi,'\x73\x75\x67\x67\x65\x73\x74':_0x387522(0x17d,'\x74\x61\x52\x7a')+'\x6b\x65\x6e\x20\x28\x65\x70\x68'+'\x65\x6d\x65\x72\x61\x6c\x2c\x20'+'\x73\x74\x6f\x72\x65\x64\x20\x69'+_0x387522(0x1b8,'\x48\x43\x49\x45')+_0x387522(0xf8,'\x52\x45\x4e\x56')},{'\x74\x79\x70\x65':_0x387522(0xe3,'\x37\x6f\x6a\x65')+_0x387522(0xfe,'\x52\x76\x38\x5d'),'\x70\x61\x74\x74\x65\x72\x6e':/-----BEGIN\s+(?:RSA\s+|EC\s+|DSA\s+|OPENSSH\s+)?PRIVATE\s+KEY-----/g,'\x73\x75\x67\x67\x65\x73\x74':'\x70\x72\x6f\x63\x65\x73\x73\x2e'+_0x387522(0x1b6,'\x70\x4d\x42\x21')+_0x387522(0x156,'\x40\x4e\x61\x4b')+_0x387522(0x167,'\x6e\x63\x53\x2a')},{'\x74\x79\x70\x65':_0x387522(0x142,'\x34\x5e\x24\x55'),'\x70\x61\x74\x74\x65\x72\x6e':/(?:mongodb|postgres|postgresql|mysql|redis|amqp):\/\/[^\s"',;)}\]]{10,}/gi,'\x73\x75\x67\x67\x65\x73\x74':_0x387522(0x108,'\x54\x5d\x77\x71')+_0x387522(0x17b,'\x33\x45\x75\x7a')+_0x387522(0xc6,'\x6e\x45\x75\x71')},{'\x74\x79\x70\x65':'\x6c\x6f\x63\x61\x6c\x5f\x70\x61'+'\x74\x68','\x70\x61\x74\x74\x65\x72\x6e':/\/home\/[a-zA-Z0-9_.-]+\//g,'\x73\x75\x67\x67\x65\x73\x74':_0x387522(0xb3,'\x61\x6c\x4e\x6a')+_0x387522(0x14a,'\x78\x45\x23\x41')},{'\x74\x79\x70\x65':_0x387522(0x10c,'\x52\x45\x4e\x56')+'\x74\x68','\x70\x61\x74\x74\x65\x72\x6e':/\/Users\/[a-zA-Z0-9_.-]+\//g,'\x73\x75\x67\x67\x65\x73\x74':_0x387522(0xd1,'\x33\x45\x75\x7a')+_0x387522(0xac,'\x4a\x43\x4b\x63')},{'\x74\x79\x70\x65':_0x387522(0x146,'\x61\x66\x49\x75')+'\x74\x68','\x70\x61\x74\x74\x65\x72\x6e':/[A-Z]:\\Users\\[a-zA-Z0-9_.-]+\\/g,'\x73\x75\x67\x67\x65\x73\x74':_0x387522(0x100,'\x63\x6a\x2a\x61')+_0x387522(0x150,'\x47\x62\x51\x62')+'\x50\x52\x4f\x46\x49\x4c\x45'},{'\x74\x79\x70\x65':_0x387522(0x1b0,'\x4f\x25\x5e\x28')+_0x387522(0x11e,'\x48\x43\x49\x45'),'\x70\x61\x74\x74\x65\x72\x6e':/\b(?:10\.\d{1,3}\.\d{1,3}\.\d{1,3}|172\.(?:1[6-9]|2\d|3[01])\.\d{1,3}\.\d{1,3}|192\.168\.\d{1,3}\.\d{1,3})(?::\d{2,5})?\b/g,'\x73\x75\x67\x67\x65\x73\x74':'\x70\x72\x6f\x63\x65\x73\x73\x2e'+_0x387522(0x14b,'\x41\x71\x77\x76')+_0x387522(0x18f,'\x33\x45\x75\x7a')},{'\x74\x79\x70\x65':_0x387522(0xf0,'\x31\x66\x6f\x24')+'\x65\x74','\x70\x61\x74\x74\x65\x72\x6e':/[a-zA-Z0-9_.-]{1,64}@(?:(?:\d{1,3}\.){3}\d{1,3}|[a-zA-Z0-9.-]{1,255}\.[a-zA-Z]{2,24})/g,'\x73\x75\x67\x67\x65\x73\x74':_0x387522(0xe7,'\x45\x36\x52\x66')+_0x387522(0xbf,'\x6e\x63\x53\x2a')+_0x387522(0x12d,'\x36\x46\x38\x64')},{'\x74\x79\x70\x65':'\x70\x61\x73\x73\x77\x6f\x72\x64','\x70\x61\x74\x74\x65\x72\x6e':/password[=:]\s*["']?[^\s"',;)}\]]{6,}["']?/gi,'\x73\x75\x67\x67\x65\x73\x74':_0x387522(0x190,'\x42\x44\x4c\x46')+_0x387522(0x141,'\x78\x45\x23\x41')+_0x387522(0xb8,'\x56\x77\x4b\x36')},{'\x74\x79\x70\x65':_0x387522(0x155,'\x5b\x28\x31\x59'),'\x70\x61\x74\x74\x65\x72\x6e':/secret[=:]\s*["']?[A-Za-z0-9-._~+/]{16,}["']?/gi,'\x73\x75\x67\x67\x65\x73\x74':'\x70\x72\x6f\x63\x65\x73\x73\x2e'+_0x387522(0xfc,'\x66\x67\x6c\x71')+'\x45\x54'},{'\x74\x79\x70\x65':_0x387522(0xcb,'\x72\x75\x30\x5e')+'\x74\x68','\x70\x61\x74\x74\x65\x72\x6e':/:\/\/[^@\s:]+:[^@\s]+@/g,'\x73\x75\x67\x67\x65\x73\x74':_0x387522(0xe7,'\x45\x36\x52\x66')+_0x387522(0x143,'\x4d\x58\x43\x4f')+'\x49\x43\x45\x5f\x55\x52\x4c'}],ENV_SCAN_SKIP_KEYS=new Set([_0x387522(0xde,'\x45\x36\x52\x66'),'\x48\x4f\x4d\x45',_0x387522(0xf7,'\x6a\x6d\x52\x6a'),_0x387522(0x115,'\x61\x66\x49\x75'),'\x4c\x41\x4e\x47',_0x387522(0xc5,'\x28\x5a\x72\x49'),_0x387522(0x186,'\x28\x5a\x72\x49'),_0x387522(0x17e,'\x78\x45\x23\x41'),_0x387522(0x132,'\x4d\x52\x31\x23'),_0x387522(0x18d,'\x6f\x49\x4d\x4f'),'\x48\x4f\x53\x54\x4e\x41\x4d\x45',_0x387522(0x10b,'\x6f\x49\x4d\x4f'),'\x45\x44\x49\x54\x4f\x52',_0x387522(0xe4,'\x31\x66\x6f\x24'),_0x387522(0x15a,'\x6f\x49\x4d\x4f'),'\x4c\x53\x5f\x43\x4f\x4c\x4f\x52'+'\x53',_0x387522(0x16b,'\x5b\x28\x31\x59')+'\x4d','\x54\x45\x52\x4d\x5f\x50\x52\x4f'+_0x387522(0x1a4,'\x54\x5d\x77\x71'),_0x387522(0x1a9,'\x52\x76\x38\x5d')+_0x387522(0x198,'\x6f\x49\x4d\x4f'),_0x387522(0x163,'\x41\x32\x6c\x34')+_0x387522(0x15b,'\x5b\x28\x31\x59'),_0x387522(0x13e,'\x37\x6f\x6a\x65')+'\x53\x49\x4f\x4e\x5f\x42\x55\x53'+_0x387522(0x121,'\x4d\x58\x43\x4f'),_0x387522(0x157,'\x6a\x6d\x52\x6a')+_0x387522(0xaa,'\x37\x6f\x6a\x65'),_0x387522(0xef,'\x4d\x52\x31\x23')+_0x387522(0x192,'\x28\x5a\x72\x49'),'\x5f']),ENV_VALUE_FILESYSTEM_PATH_RE=/^(\/|[A-Za-z]:\\)/,ENV_VALUE_URL_RE=/^[a-z][a-z0-9+.-]*:\/\//i,SENSITIVE_ENV_KEY_PARTS=new Set([_0x387522(0xc8,'\x4a\x43\x4b\x63'),_0x387522(0x1a0,'\x61\x66\x49\x75'),_0x387522(0x144,'\x34\x5e\x24\x55'),_0x387522(0x18c,'\x52\x76\x38\x5d'),_0x387522(0x12b,'\x4d\x52\x31\x23'),_0x387522(0x1ab,'\x5b\x5e\x23\x30'),_0x387522(0xc1,'\x46\x64\x68\x47')+'\x53\x45',_0x387522(0x19b,'\x41\x71\x77\x76'),_0x387522(0x136,'\x6f\x49\x4d\x4f')+'\x41\x4c',_0x387522(0x1b4,'\x45\x36\x52\x66')+_0x387522(0x14c,'\x41\x71\x77\x76'),_0x387522(0x16d,'\x4d\x58\x43\x4f')+'\x45','\x53\x49\x47\x4e\x45\x44',_0x387522(0xc2,'\x44\x61\x6c\x21'),_0x387522(0xdf,'\x44\x61\x6c\x21'),_0x387522(0x12f,'\x36\x46\x38\x64'),'\x53\x45\x53\x53\x49\x4f\x4e',_0x387522(0xd6,'\x31\x66\x6f\x24'),'\x43\x45\x52\x54\x49\x46\x49\x43'+_0x387522(0x11a,'\x6b\x67\x4c\x4f')]),SENSITIVE_ENV_KEY_RE=/WEBHOOK|TOKEN|SECRET|PASSWORD|CREDENTIAL|SIGNATURE|SIGNED|DSN|BEARER|COOKIE|SESSION|APIKEY|ACCESSKEY|PRIVATEKEY|CERTIFICATE/,HIGH_RISK_URL_QUERY_KEYS=new Set([_0x387522(0xff,'\x46\x64\x68\x47'),_0x387522(0xc3,'\x4f\x25\x5e\x28')+_0x387522(0xfb,'\x4d\x52\x31\x23'),'\x61\x75\x74\x68',_0x387522(0x1a1,'\x52\x76\x38\x5d')+_0x387522(0x189,'\x44\x61\x6c\x21'),_0x387522(0x1a3,'\x33\x45\x75\x7a'),'\x61\x70\x69\x6b\x65\x79',_0x387522(0x151,'\x47\x62\x51\x62'),_0x387522(0x133,'\x61\x6c\x4e\x6a'),_0x387522(0x1ba,'\x40\x4e\x61\x4b')+'\x65',_0x387522(0xf5,'\x4d\x58\x43\x4f'),_0x387522(0xbe,'\x45\x36\x52\x66'),_0x387522(0x106,'\x4f\x25\x5e\x28')+_0x387522(0xec,'\x5b\x28\x31\x59'),'\x78\x2d\x61\x6d\x7a\x2d\x63\x72'+'\x65\x64\x65\x6e\x74\x69\x61\x6c',_0x387522(0x164,'\x6f\x49\x4d\x4f')+_0x387522(0x1a5,'\x6f\x49\x4d\x4f')+_0x387522(0xd7,'\x61\x66\x49\x75'),'\x78\x2d\x67\x6f\x6f\x67\x2d\x73'+_0x387522(0x16a,'\x42\x44\x4c\x46'),_0x387522(0x125,'\x6e\x45\x75\x71')+_0x387522(0x161,'\x63\x6a\x2a\x61')+'\x6c',_0x387522(0x1a8,'\x70\x4d\x42\x21')+_0x387522(0x166,'\x6a\x39\x64\x21')+_0x387522(0x19f,'\x33\x45\x75\x7a')]);function normalizeEnvKey(_0x41c7fe){const _0x5ea173=_0x387522,_0x52c4fd=_0x41c7fe[_0x5ea173(0x185,'\x33\x72\x65\x4c')+'\x61\x73\x65']()[_0x5ea173(0x197,'\x34\x5e\x24\x55')](/[^A-Z0-9]+/g,'\x5f')[_0x5ea173(0x1a7,'\x74\x33\x32\x68')](/^_+|_+$/g,'');return _0x52c4fd||_0x41c7fe[_0x5ea173(0x11d,'\x70\x4d\x42\x21')+_0x5ea173(0x1b3,'\x46\x64\x68\x47')]();}function isFilesystemPathEnvValue(_0x2fdbbe){const _0x22f3e3=_0x387522;return ENV_VALUE_FILESYSTEM_PATH_RE[_0x22f3e3(0xe6,'\x42\x44\x4c\x46')](_0x2fdbbe);}function isUrlEnvValue(_0x146e10){const _0x36ca42=_0x387522;return ENV_VALUE_URL_RE[_0x36ca42(0xc0,'\x34\x57\x52\x39')](_0x146e10);}function isSensitiveEnvKey(_0x5c9736){const _0x52f848=_0x387522,_0x305b94=normalizeEnvKey(_0x5c9736),_0x26b3f5=_0x305b94[_0x52f848(0x19d,'\x63\x6a\x2a\x61')](/[^A-Z0-9]+/)['\x66\x69\x6c\x74\x65\x72'](Boolean);if(_0x26b3f5[_0x52f848(0xf4,'\x78\x45\x23\x41')](_0x4248b9=>SENSITIVE_ENV_KEY_PARTS[_0x52f848(0x118,'\x6b\x67\x4c\x4f')](_0x4248b9)))return!![];return SENSITIVE_ENV_KEY_RE['\x74\x65\x73\x74'](_0x305b94);}function isHighRiskUrlEnvValue(_0x372f66){const _0x210a98=_0x387522;if(!isUrlEnvValue(_0x372f66))return![];let _0x49cfbf;try{if(_0x210a98(0xda,'\x52\x45\x4e\x56')===_0x210a98(0x14d,'\x40\x4e\x61\x4b')){const _0x3a0edd={};for(const [_0x54c69d,_0x244814]of _0x52a072[_0x210a98(0x105,'\x45\x36\x52\x66')](_0x4c389a))_0x3a0edd[_0x54c69d]=_0x339186(_0x244814);return _0x3a0edd;}else _0x49cfbf=new URL(_0x372f66);}catch{return![];}if(_0x49cfbf[_0x210a98(0xd2,'\x6e\x63\x53\x2a')]||_0x49cfbf[_0x210a98(0x122,'\x52\x45\x4e\x56')])return!![];const _0x5786c0=_0x49cfbf[_0x210a98(0x109,'\x4f\x25\x5e\x28')][_0x210a98(0x179,'\x62\x48\x6e\x58')+_0x210a98(0x17a,'\x6a\x6d\x52\x6a')](),_0x17fa3d=_0x49cfbf[_0x210a98(0x1ad,'\x21\x6c\x25\x6b')][_0x210a98(0x13d,'\x6e\x63\x53\x2a')+_0x210a98(0x181,'\x78\x45\x23\x41')]();if(/(^|\.)hooks?\./[_0x210a98(0xe1,'\x31\x66\x6f\x24')](_0x5786c0)||/(^|\.)webhooks?\./[_0x210a98(0xe5,'\x4a\x43\x4b\x63')](_0x5786c0))return!![];if(/\/(?:api\/)?webhooks?\//[_0x210a98(0xd3,'\x32\x24\x61\x37')](_0x17fa3d)||/\/hooks?\//['\x74\x65\x73\x74'](_0x17fa3d))return!![];if(/\/(?:tokens?|secrets?|signed|signatures?|credentials?)\//[_0x210a98(0x184,'\x33\x72\x65\x4c')](_0x17fa3d))return!![];for(const _0x10afee of _0x49cfbf[_0x210a98(0xca,'\x5b\x5e\x23\x30')+_0x210a98(0xe2,'\x6b\x67\x4c\x4f')][_0x210a98(0x130,'\x6a\x39\x64\x21')]()){if(_0x210a98(0x174,'\x4d\x58\x43\x4f')!==_0x210a98(0x188,'\x28\x5a\x72\x49')){if(_0x114a56(_0x4f1d5a))return![];if(_0x473423(_0x28ed37))return!![];if(_0x12c3b7(_0x4e0cc2)&&!_0x246ff4(_0x566ef4))return!![];return![];}else{if(HIGH_RISK_URL_QUERY_KEYS[_0x210a98(0x195,'\x5b\x5e\x23\x30')](_0x10afee[_0x210a98(0xd4,'\x34\x57\x52\x39')+'\x61\x73\x65']()))return!![];}}return![];}function shouldSkipEnvValueReverseScan(_0x2f8b84,_0xc0144d){if(isSensitiveEnvKey(_0x2f8b84))return![];if(isFilesystemPathEnvValue(_0xc0144d))return!![];if(isUrlEnvValue(_0xc0144d)&&!isHighRiskUrlEnvValue(_0xc0144d))return!![];return![];}const clip=_0x5e55a0=>_0x5e55a0[_0x387522(0x18e,'\x21\x6c\x25\x6b')]>0x5*0x224+-0x1933*0x1+0xebb?_0x5e55a0[_0x387522(0x15e,'\x6f\x49\x4d\x4f')](0x224a+0x3b5+0x47*-0x89,0x1aa1*0x1+0x1ee8+0x1ca8*-0x2)+_0x387522(0x112,'\x4f\x25\x5e\x28'):_0x5e55a0;export function scanForLeaks(_0x5aca17){const _0x5a1f76=_0x387522;if(typeof _0x5aca17!=='\x73\x74\x72\x69\x6e\x67'||!_0x5aca17)return{'\x66\x6f\x75\x6e\x64':![],'\x6c\x65\x61\x6b\x73':[]};const _0x4aedec=[],_0x380b78=new Set();for(const _0x2216cb of LEAK_SCANNERS){if(_0x5a1f76(0xf6,'\x47\x62\x51\x62')===_0x5a1f76(0x18a,'\x72\x75\x30\x5e')){const _0xc702b=(_0x569853['\x45\x56\x4f\x4c\x56\x45\x52\x5f'+_0x5a1f76(0x12c,'\x46\x64\x68\x47')+'\x43\x4b']??'')[_0x5a1f76(0xea,'\x42\x44\x4c\x46')+_0x5a1f76(0x1a6,'\x34\x5e\x24\x55')]();return _0xc702b===_0x5a1f76(0x102,'\x33\x72\x65\x4c')||_0xc702b==='\x6f\x66\x66'?_0xc702b:_0x5a1f76(0xab,'\x6a\x39\x64\x21');}else{_0x2216cb[_0x5a1f76(0x134,'\x36\x46\x38\x64')][_0x5a1f76(0x168,'\x54\x5d\x77\x71')+'\x78']=-0x1*0x103d+0x3*0x8e7+-0x86*0x14;let _0x49e6e5;while((_0x49e6e5=_0x2216cb[_0x5a1f76(0x173,'\x70\x4d\x42\x21')][_0x5a1f76(0x193,'\x4f\x25\x5e\x28')](_0x5aca17))!==null){const _0x52838e=_0x49e6e5[-0x10*0x1eb+-0x1e66+-0x7*-0x8ba];if(isAllowlisted(_0x52838e))continue;const _0xebec7b=_0x2216cb[_0x5a1f76(0x170,'\x2a\x29\x57\x58')]+'\x3a'+_0x52838e;if(_0x380b78[_0x5a1f76(0xe0,'\x33\x45\x75\x7a')](_0xebec7b))continue;_0x380b78[_0x5a1f76(0x16e,'\x6a\x39\x64\x21')](_0xebec7b),_0x4aedec[_0x5a1f76(0xba,'\x31\x66\x6f\x24')]({'\x74\x79\x70\x65':_0x2216cb[_0x5a1f76(0xbb,'\x70\x4d\x42\x21')],'\x76\x61\x6c\x75\x65':clip(_0x52838e),'\x73\x75\x67\x67\x65\x73\x74\x69\x6f\x6e':_0x2216cb[_0x5a1f76(0xc9,'\x62\x48\x6e\x58')]});}}}return{'\x66\x6f\x75\x6e\x64':_0x4aedec[_0x5a1f76(0x1aa,'\x45\x36\x52\x66')]>0x5d5*-0x5+-0x10fe+0x2e27,'\x6c\x65\x61\x6b\x73':_0x4aedec};}export function detectEnvValueLeaks(_0x5a9854,_0x5be3cd){const _0x47d075=_0x387522;if(typeof _0x5a9854!==_0x47d075(0xb2,'\x62\x48\x6e\x58')||!_0x5a9854)return[];const _0xeecfa9=[];for(const [_0x450eb2,_0x340879]of Object[_0x47d075(0x191,'\x21\x6c\x25\x6b')](_0x5be3cd)){if(!_0x340879||_0x340879[_0x47d075(0x114,'\x4d\x52\x31\x23')]<-0x1*0xdee+0x4*0x569+0x7ae*-0x1)continue;if(ENV_SCAN_SKIP_KEYS[_0x47d075(0x104,'\x28\x5a\x72\x49')](normalizeEnvKey(_0x450eb2)))continue;if(shouldSkipEnvValueReverseScan(_0x450eb2,_0x340879))continue;if(_0x5a9854[_0x47d075(0x175,'\x70\x4d\x42\x21')](_0x340879))_0xeecfa9[_0x47d075(0x127,'\x2a\x29\x57\x58')]({'\x74\x79\x70\x65':_0x47d075(0xc4,'\x2a\x29\x57\x58')+_0x47d075(0x129,'\x70\x4d\x42\x21'),'\x76\x61\x6c\x75\x65':REDACTED,'\x73\x75\x67\x67\x65\x73\x74\x69\x6f\x6e':_0x47d075(0x178,'\x4a\x43\x4b\x63')+_0x47d075(0x11b,'\x74\x61\x52\x7a')+_0x450eb2});}return _0xeecfa9;}export function fullLeakCheck(_0x21d910,_0x55fe4a){const _0x4ec5c6=_0x387522,_0x3c7f5a=scanForLeaks(_0x21d910),_0x3beacf=detectEnvValueLeaks(_0x21d910,_0x55fe4a),_0x229845=_0x3c7f5a[_0x4ec5c6(0x1b7,'\x6b\x67\x4c\x4f')][_0x4ec5c6(0x148,'\x6a\x6d\x52\x6a')](_0x3beacf);return{'\x66\x6f\x75\x6e\x64':_0x229845[_0x4ec5c6(0x137,'\x28\x5a\x72\x49')]>0x1*0x1349+-0x18da+-0x3*-0x1db,'\x6c\x65\x61\x6b\x73':_0x229845};}const PII_ONLY_LEAK_TYPES=new Set([_0x387522(0xd0,'\x6e\x45\x75\x71')+'\x74\x68']);export function leakCheckModeFromEnv(_0x47fb6d){const _0x4e0fe9=_0x387522,_0x120c58=(_0x47fb6d[_0x4e0fe9(0x13f,'\x54\x5d\x77\x71')+'\x4c\x45\x41\x4b\x5f\x43\x48\x45'+'\x43\x4b']??'')[_0x4e0fe9(0x1af,'\x52\x76\x38\x5d')+_0x4e0fe9(0x13a,'\x42\x44\x4c\x46')]();return _0x120c58===_0x4e0fe9(0xdc,'\x46\x64\x68\x47')||_0x120c58===_0x4e0fe9(0xbd,'\x54\x5d\x77\x71')?_0x120c58:_0x4e0fe9(0xcd,'\x52\x45\x4e\x56');}export function sanitizeBundle(_0x47a8e3,_0x4d2b2c){const _0x3c1f67=_0x387522,_0x3bbbf6=_0x4d2b2c[_0x3c1f67(0x199,'\x47\x62\x51\x62')]??leakCheckModeFromEnv(_0x4d2b2c['\x65\x6e\x76']);let _0x3004ee=[];if(_0x3bbbf6!==_0x3c1f67(0xaf,'\x6e\x63\x53\x2a')){const _0x5439a9=_0x47a8e3[_0x3c1f67(0x1b9,'\x6e\x63\x53\x2a')](_0x4eb7be=>JSON[_0x3c1f67(0x182,'\x61\x66\x49\x75')+'\x79'](_0x4eb7be))[_0x3c1f67(0x17f,'\x6c\x6d\x66\x42')]('');_0x3004ee=fullLeakCheck(_0x5439a9,_0x4d2b2c['\x65\x6e\x76'])[_0x3c1f67(0xfa,'\x2a\x29\x57\x58')];}const _0x5464eb=_0x3bbbf6===_0x3c1f67(0xc7,'\x62\x48\x6e\x58')&&_0x3004ee['\x73\x6f\x6d\x65'](_0x422d92=>!PII_ONLY_LEAK_TYPES[_0x3c1f67(0x152,'\x43\x42\x78\x79')](_0x422d92['\x74\x79\x70\x65'])),_0x14fadd=_0x47a8e3[_0x3c1f67(0xee,'\x2a\x29\x57\x58')](_0x32d935=>sanitizeAsset(_0x32d935));return{'\x62\x75\x6e\x64\x6c\x65':_0x14fadd,'\x62\x6c\x6f\x63\x6b\x65\x64':_0x5464eb,'\x6c\x65\x61\x6b\x73':_0x3004ee,'\x6d\x6f\x64\x65':_0x3bbbf6};}export function summarizeLeaks(_0x37dc55){const _0x386f6c=_0x387522;return _0x37dc55[_0x386f6c(0x180,'\x61\x6c\x4e\x6a')](_0x5aa8a5=>_0x5aa8a5[_0x386f6c(0x119,'\x31\x66\x6f\x24')]+'\u2192'+_0x5aa8a5[_0x386f6c(0x107,'\x44\x61\x6c\x21')+'\x6f\x6e'])['\x6a\x6f\x69\x6e']('\x3b\x20');}