@evomap/evolver-core 2.0.0 → 2.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/algo/antiDistill.js +1 -167
- package/dist/algo/bans.js +1 -33
- package/dist/algo/candidateAssembly.js +1 -273
- package/dist/algo/capabilityCandidates.js +1 -146
- package/dist/algo/confidence.js +1 -196
- package/dist/algo/conversationSniffer.js +1 -149
- package/dist/algo/cycleEngine.js +1 -625
- package/dist/algo/cycleFailureClassifier.js +1 -112
- package/dist/algo/epigenetics.js +1 -41
- package/dist/algo/evolutionEvent.js +1 -24
- package/dist/algo/exploration.js +1 -68
- package/dist/algo/geneHealth.js +1 -17
- package/dist/algo/geneIntake.js +1 -128
- package/dist/algo/genePromotion.js +1 -53
- package/dist/algo/geneSelection.js +1 -546
- package/dist/algo/index.js +1 -22
- package/dist/algo/memoryGraph.js +1 -86
- package/dist/algo/mutation.js +1 -22
- package/dist/algo/orchestrator.js +1 -87
- package/dist/algo/publishEligibility.js +1 -52
- package/dist/algo/solidify.js +1 -63
- package/dist/algo/strategyPresets.js +1 -61
- package/dist/algo/ucb1.js +1 -156
- package/dist/benchmark/antiGeneBenchmark.js +1 -252
- package/dist/benchmark/antiGeneImpact.js +1 -34
- package/dist/benchmark/antiGeneRollout.js +1 -269
- package/dist/benchmark/benchmark.js +1 -26
- package/dist/benchmark/evolutionThesisSolver.js +1 -41
- package/dist/benchmark/index.js +1 -7
- package/dist/benchmark/selectionFlatAbstention.js +1 -481
- package/dist/benchmark/thesis.js +1 -150
- package/dist/benchmark/triggerShift.js +1 -106
- package/dist/cycle/cycleTimeline.js +1 -74
- package/dist/cycle/index.js +1 -2
- package/dist/cycle/stateMachine.js +1 -25
- package/dist/hub/agentDirectory.js +1 -104
- package/dist/hub/assetCallLog.js +1 -195
- package/dist/hub/bindings.js +1 -121
- package/dist/hub/capability.js +1 -1
- package/dist/hub/conversationDistiller.js +1 -264
- package/dist/hub/fake.js +1 -70
- package/dist/hub/hubReview.js +1 -106
- package/dist/hub/index.js +1 -11
- package/dist/hub/ingest.js +1 -15
- package/dist/hub/questionGenerator.js +1 -408
- package/dist/hub/reuseDecision.js +1 -127
- package/dist/hub/sanitize.js +1 -322
- package/dist/material/boundary.js +1 -14
- package/dist/material/consumer.js +1 -55
- package/dist/material/emit.js +1 -52
- package/dist/material/factory.js +1 -25
- package/dist/material/index.js +1 -9
- package/dist/material/materialArchive.js +1 -466
- package/dist/material/materialStore.js +1 -69
- package/dist/material/sampling.js +1 -39
- package/dist/material/sources.js +1 -33
- package/dist/material/watermark.js +1 -76
- package/dist/personality/drift.js +1 -106
- package/dist/personality/events.js +1 -37
- package/dist/personality/evolveOps.js +1 -93
- package/dist/personality/index.js +1 -11
- package/dist/personality/mutate.js +1 -39
- package/dist/personality/pivot.js +1 -22
- package/dist/personality/prompt.js +1 -62
- package/dist/personality/riskGate.js +1 -80
- package/dist/personality/schema.js +1 -119
- package/dist/personality/select.js +1 -71
- package/dist/personality/stats.js +1 -82
- package/dist/personality/store.js +1 -92
- package/dist/schema/common.js +1 -17
- package/dist/schema/evolutionGraph.js +1 -187
- package/dist/schema/index.js +1 -6
- package/dist/schema/material.js +1 -50
- package/dist/schema/problem.js +1 -45
- package/dist/schema/proofOfWork.js +1 -9
- package/dist/schema/signal.js +1 -19
- package/dist/signals/curriculum.js +1 -202
- package/dist/signals/cycleHistoryFromEvents.js +1 -105
- package/dist/signals/expand.js +1 -293
- package/dist/signals/extractor.js +1 -82
- package/dist/signals/index.js +1 -8
- package/dist/signals/metaSignals.js +1 -200
- package/dist/signals/signalGate.js +1 -40
- package/dist/signals/taskDomain.js +1 -43
- package/dist/signals/traceSignals.js +1 -123
- package/dist/strategy/constraintAblation.js +1 -2820
- package/dist/strategy/constraintAblationPredicates.js +1 -339
- package/dist/strategy/experiment.js +1 -63
- package/dist/strategy/index.js +1 -3
- package/dist/strategy/strategyPoint.js +1 -23
- package/package.json +1 -1
|
@@ -1,146 +1 @@
|
|
|
1
|
-
// Capability candidate extraction (ported from v1 src/gep/candidates.js). Mines NEW capability proposals
|
|
2
|
-
// from agent behavior — repeated tool calls, active opportunity signals, and clusters of failed evolutions —
|
|
3
|
-
// to feed the innovation step. Candidates are ADVISORY (the agent runtime decides whether to act, exactly
|
|
4
|
-
// as in v1); this is the self-growth path v2 otherwise lacks (v2 only scores EXISTING genes). Pure +
|
|
5
|
-
// deterministic: callers pass already-extracted tool-call names / signals / failed capsules; no time/io here.
|
|
6
|
-
import { expandSignals } from '../signals/expand.js';
|
|
7
|
-
const TOOL_CALL_MIN = 3;
|
|
8
|
-
const FAILURE_CLUSTER_MIN = 2;
|
|
9
|
-
const TITLE_MAX = 120;
|
|
10
|
-
const EVIDENCE_MAX = 240;
|
|
11
|
-
/** Predefined signal → candidate-title map (ported v1): defensive + opportunity signals. */
|
|
12
|
-
const SIGNAL_CANDIDATES = [
|
|
13
|
-
{ signal: 'log_error', title: 'Repair recurring runtime errors' },
|
|
14
|
-
{ signal: 'protocol_drift', title: 'Prevent protocol drift and enforce auditable outputs' },
|
|
15
|
-
{ signal: 'windows_shell_incompatible', title: 'Avoid platform-specific shell assumptions (Windows compatibility)' },
|
|
16
|
-
{ signal: 'session_logs_missing', title: 'Harden session log detection and fallback behavior' },
|
|
17
|
-
{ signal: 'user_feature_request', title: 'Implement user-requested feature' },
|
|
18
|
-
{ signal: 'user_improvement_suggestion', title: 'Apply user improvement suggestion' },
|
|
19
|
-
{ signal: 'perf_bottleneck', title: 'Resolve performance bottleneck' },
|
|
20
|
-
{ signal: 'capability_gap', title: 'Fill capability gap' },
|
|
21
|
-
{ signal: 'stable_success_plateau', title: 'Explore new strategies during stability plateau' },
|
|
22
|
-
{ signal: 'external_opportunity', title: 'Evaluate external A2A asset for local adoption' },
|
|
23
|
-
// Harness context-budget family (v1 context-compression gene family port). v2 ships no seed-gene catalog, so
|
|
24
|
-
// the reusable strategies arrive as ADVISORY candidates the runtime may distill into genes — one per bloat
|
|
25
|
-
// source, because a single "shorten the prompt" proposal loses the distinction that decides what is safe to
|
|
26
|
-
// drop (an always-on tool schema is lazy-loadable; an approval gate is not).
|
|
27
|
-
{ signal: 'prompt_budget_measurement', title: 'Measure the prompt budget per source before compressing context' },
|
|
28
|
-
{ signal: 'context_explosion', title: 'Attribute a context-window overflow to its largest prompt source' },
|
|
29
|
-
{ signal: 'tool_schema_bloat', title: 'Load exact tool/MCP schemas from the runtime loader instead of always-on prompt text' },
|
|
30
|
-
{ signal: 'skill_list_bloat', title: 'Compress skill and agent-type descriptions into selectable route cards' },
|
|
31
|
-
{ signal: 'transcript_context_bloat', title: 'Compress a pasted transcript into a session handoff packet' },
|
|
32
|
-
{ signal: 'memory_index_budget', title: 'Keep the memory index lean and rely on relevance recall for detail' },
|
|
33
|
-
];
|
|
34
|
-
/** Highest → lowest priority problem class used to pick a failure cluster's grouping key (ported v1). */
|
|
35
|
-
const PROBLEM_PRIORITY = ['problem:performance', 'problem:protocol', 'problem:reliability', 'problem:stagnation', 'problem:capability'];
|
|
36
|
-
/** FNV-1a 32-bit stable hash (ported v1 hash.js) — deterministic candidate ids. */
|
|
37
|
-
function stableHash(input) {
|
|
38
|
-
let h = 2166136261;
|
|
39
|
-
for (let i = 0; i < input.length; i++) {
|
|
40
|
-
h ^= input.charCodeAt(i);
|
|
41
|
-
h = Math.imul(h, 16777619);
|
|
42
|
-
}
|
|
43
|
-
return (h >>> 0).toString(16).padStart(8, '0');
|
|
44
|
-
}
|
|
45
|
-
const clip = (s, n) => (s.length > n ? s.slice(0, n) : s);
|
|
46
|
-
/** Build the fixed five-question shape (ported v1): only title/params/evidence vary per candidate. */
|
|
47
|
-
function buildShape(title, signals, evidence) {
|
|
48
|
-
const params = `Signals: ${signals.join(', ')}`.trim();
|
|
49
|
-
return {
|
|
50
|
-
title: clip(title, TITLE_MAX),
|
|
51
|
-
input: 'Recent session transcript + memory snippets + user instructions',
|
|
52
|
-
output: 'A safe, auditable evolution patch guided by GEP assets',
|
|
53
|
-
invariants: 'Protocol order, small reversible patches, validation, append-only events',
|
|
54
|
-
params: params || 'Signals: (none)',
|
|
55
|
-
failure_points: 'Missing signals, over-broad changes, skipped validation, missing knowledge solidification',
|
|
56
|
-
evidence: clip(evidence, EVIDENCE_MAX),
|
|
57
|
-
};
|
|
58
|
-
}
|
|
59
|
-
function candidate(source, id, title, signals, evidence, tags) {
|
|
60
|
-
return { type: 'CapabilityCandidate', id: `cand_${id}`, title, source, signals, tags, shape: buildShape(title, signals, evidence) };
|
|
61
|
-
}
|
|
62
|
-
function failureTitle(tags) {
|
|
63
|
-
if (tags.includes('problem:performance'))
|
|
64
|
-
return 'Resolve recurring performance regressions';
|
|
65
|
-
if (tags.includes('problem:protocol'))
|
|
66
|
-
return 'Prevent recurring protocol and validation regressions';
|
|
67
|
-
if (tags.includes('problem:reliability'))
|
|
68
|
-
return 'Repair recurring reliability failures';
|
|
69
|
-
if (tags.includes('problem:stagnation'))
|
|
70
|
-
return 'Break repeated stagnation loops with a new strategy';
|
|
71
|
-
if (tags.includes('area:orchestration'))
|
|
72
|
-
return 'Stabilize task and orchestration behavior';
|
|
73
|
-
return 'Learn from recurring failed evolution paths';
|
|
74
|
-
}
|
|
75
|
-
/**
|
|
76
|
-
* Mine capability candidates from three sources (ported v1): repeated tool calls (>=3), active opportunity
|
|
77
|
-
* signals, and clusters of failed capsules (>=2 in the same dominant-problem group). Deduped by stable id.
|
|
78
|
-
*/
|
|
79
|
-
export function extractCapabilityCandidates(inp) {
|
|
80
|
-
const signals = (inp.signals ?? []).map((s) => String(s));
|
|
81
|
-
const signalTags = expandSignals(signals);
|
|
82
|
-
const out = [];
|
|
83
|
-
// A. Tool-call mining: a tool used >= TOOL_CALL_MIN times suggests a reusable capability.
|
|
84
|
-
const freq = new Map();
|
|
85
|
-
for (const t of inp.toolCalls ?? [])
|
|
86
|
-
freq.set(t, (freq.get(t) ?? 0) + 1);
|
|
87
|
-
for (const [tool, count] of freq) {
|
|
88
|
-
if (count < TOOL_CALL_MIN)
|
|
89
|
-
continue;
|
|
90
|
-
const title = `Repeated tool usage: ${tool}`;
|
|
91
|
-
out.push(candidate('transcript', stableHash(title), title, signals, `Observed ${count} occurrences of tool call ${tool}.`, signalTags));
|
|
92
|
-
}
|
|
93
|
-
// A2. Conversation sniffer hits: a transcript explicitly proved a reusable capability.
|
|
94
|
-
for (const hit of inp.conversationHits ?? []) {
|
|
95
|
-
const hitSignals = [...new Set([...(hit.signals ?? []), ...signals].map((s) => String(s)).filter(Boolean))];
|
|
96
|
-
out.push(candidate('transcript', stableHash('conversation:' + hit.id), hit.title || 'Verified reusable conversation capability', hitSignals, hit.evidence.length > 0 ? hit.evidence.slice(0, 2).join('; ') : hit.summary, [...new Set([...signalTags, ...expandSignals(hitSignals)])]));
|
|
97
|
-
}
|
|
98
|
-
// B. Signal-mapped candidates: predefined defensive/opportunity signals.
|
|
99
|
-
for (const sc of SIGNAL_CANDIDATES) {
|
|
100
|
-
if (!signals.some((s) => s === sc.signal || s.startsWith(sc.signal + ':')))
|
|
101
|
-
continue;
|
|
102
|
-
out.push(candidate('signals', stableHash(sc.signal), sc.title, signals, `Signal ${sc.signal} active.`, signalTags));
|
|
103
|
-
}
|
|
104
|
-
// C. Failure clustering: group failed capsules by dominant problem class.
|
|
105
|
-
const groups = new Map();
|
|
106
|
-
for (const fc of inp.failedCapsules ?? []) {
|
|
107
|
-
if (fc.outcome?.status === 'success')
|
|
108
|
-
continue;
|
|
109
|
-
const reason = String(fc.failure_reason ?? '').trim();
|
|
110
|
-
const failureTags = expandSignals([...(fc.trigger ?? []), ...signals], reason).filter((t) => /^(problem|risk|area|action):/.test(t));
|
|
111
|
-
if (failureTags.length === 0)
|
|
112
|
-
continue;
|
|
113
|
-
let dominant = null;
|
|
114
|
-
for (const p of PROBLEM_PRIORITY)
|
|
115
|
-
if (failureTags.includes(p)) {
|
|
116
|
-
dominant = p;
|
|
117
|
-
break;
|
|
118
|
-
}
|
|
119
|
-
const grouping = dominant ? [dominant] : failureTags.filter((t) => t.startsWith('area:') || t.startsWith('risk:')).slice(0, 1);
|
|
120
|
-
const key = grouping.join('|');
|
|
121
|
-
if (!key)
|
|
122
|
-
continue;
|
|
123
|
-
const g = groups.get(key) ?? { count: 0, tags: failureTags, reasons: [] };
|
|
124
|
-
g.count += 1;
|
|
125
|
-
if (reason)
|
|
126
|
-
g.reasons.push(reason);
|
|
127
|
-
groups.set(key, g);
|
|
128
|
-
}
|
|
129
|
-
for (const [key, g] of groups) {
|
|
130
|
-
if (g.count < FAILURE_CLUSTER_MIN)
|
|
131
|
-
continue;
|
|
132
|
-
const title = failureTitle(g.tags);
|
|
133
|
-
const evidence = `${g.count} recurring failures${g.reasons.length ? ` (${g.reasons.slice(0, 2).join('; ')})` : ''}`;
|
|
134
|
-
out.push(candidate('failed_capsules', stableHash('failed:' + key), title, signals, evidence, g.tags));
|
|
135
|
-
}
|
|
136
|
-
// Dedup by stable id (first occurrence wins).
|
|
137
|
-
const seen = new Set();
|
|
138
|
-
const deduped = [];
|
|
139
|
-
for (const c of out) {
|
|
140
|
-
if (seen.has(c.id))
|
|
141
|
-
continue;
|
|
142
|
-
seen.add(c.id);
|
|
143
|
-
deduped.push(c);
|
|
144
|
-
}
|
|
145
|
-
return deduped;
|
|
146
|
-
}
|
|
1
|
+
const _0x4935dd=_0x4f4d;(function(_0x1afb00,_0x5c6854){const _0x36ff24=_0x4f4d,_0x146e06=_0x1afb00();while(!![]){try{const _0x3c63bd=parseInt(_0x36ff24(0x154,'\x68\x54\x44\x57'))/(-0xcb*-0x20+0x16*-0x73+-0xf7d)+-parseInt(_0x36ff24(0x222,'\x62\x37\x7a\x4a'))/(0x8a2+-0x770*0x1+-0x26*0x8)+parseInt(_0x36ff24(0x217,'\x30\x21\x32\x49'))/(-0x92*-0x2c+-0x3*-0x1b9+0xb0*-0x2c)*(parseInt(_0x36ff24(0x14c,'\x49\x61\x46\x6c'))/(0x112*0x4+0x1*0x270e+0x15a9*-0x2))+parseInt(_0x36ff24(0x256,'\x38\x4a\x51\x33'))/(0x118+-0x2111*-0x1+-0x2224)+parseInt(_0x36ff24(0x1dc,'\x21\x69\x33\x58'))/(-0x141f+0x1ae5+-0x6c0)+-parseInt(_0x36ff24(0x211,'\x67\x37\x76\x34'))/(0x24e+-0x4*0x3d6+0xd11)*(parseInt(_0x36ff24(0x20a,'\x6f\x25\x25\x45'))/(-0x15ee+0x1*0xd43+-0x11*-0x83))+-parseInt(_0x36ff24(0x292,'\x59\x62\x5b\x58'))/(-0x283+-0x1af3+-0x347*-0x9);if(_0x3c63bd===_0x5c6854)break;else _0x146e06['push'](_0x146e06['shift']());}catch(_0x3d2409){_0x146e06['push'](_0x146e06['shift']());}}}(_0x53e3,-0x6c2a6+0xd1536+0x1a14c));import{expandSignals}from'\x2e\x2e\x2f\x73\x69\x67\x6e\x61\x6c\x73\x2f\x65\x78\x70\x61\x6e\x64\x2e\x6a\x73';function _0x4f4d(_0x12b477,_0x316908){_0x12b477=_0x12b477-(0x241*0x2+-0xb1*-0x2f+-0x23ce);const _0x528d23=_0x53e3();let _0x4a9a08=_0x528d23[_0x12b477];if(_0x4f4d['\x79\x74\x6d\x51\x79\x57']===undefined){var _0x156b04=function(_0x5b46f8){const _0x2e94d0='\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 _0x4863e6='',_0x4b5d9c='';for(let _0x11523c=-0x13*0x81+-0x2661+-0x12*-0x2aa,_0x4f2b68,_0x15c78b,_0x2a3bec=0x1e1d+-0x3b*-0x8b+0x1*-0x3e26;_0x15c78b=_0x5b46f8['\x63\x68\x61\x72\x41\x74'](_0x2a3bec++);~_0x15c78b&&(_0x4f2b68=_0x11523c%(0x2600+-0x1f8+0x2*-0x1202)?_0x4f2b68*(0x2*-0x8ed+-0x2*0xc12+-0x151f*-0x2)+_0x15c78b:_0x15c78b,_0x11523c++%(-0xf*0x1bb+-0x146*-0x13+0x1c7))?_0x4863e6+=String['\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65'](-0x76e+-0x1b2d+0x126*0x1f&_0x4f2b68>>(-(0xc58+0x18b3+-0x2509)*_0x11523c&-0x881+0x19f5+-0x116e)):-0xe37+0x12af+-0x478){_0x15c78b=_0x2e94d0['\x69\x6e\x64\x65\x78\x4f\x66'](_0x15c78b);}for(let _0x3b6ac5=-0x9af+0x4*0x3d0+-0x591,_0x29e4b7=_0x4863e6['\x6c\x65\x6e\x67\x74\x68'];_0x3b6ac5<_0x29e4b7;_0x3b6ac5++){_0x4b5d9c+='\x25'+('\x30\x30'+_0x4863e6['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x3b6ac5)['\x74\x6f\x53\x74\x72\x69\x6e\x67'](-0x1cc0+-0x1*0xca5+0x2975))['\x73\x6c\x69\x63\x65'](-(-0x39*-0x2f+0x485+-0xefa));}return decodeURIComponent(_0x4b5d9c);};const _0x52d011=function(_0x5af8f7,_0x5370a7){let _0x1fad83=[],_0x441684=-0x2*-0x129b+0x1*-0x34b+0x1c9*-0x13,_0x36f491,_0x5c7256='';_0x5af8f7=_0x156b04(_0x5af8f7);let _0x46e9a2;for(_0x46e9a2=-0x15cf+-0x1*0xab4+-0x2083*-0x1;_0x46e9a2<-0x747+-0x1bfb+0x2442;_0x46e9a2++){_0x1fad83[_0x46e9a2]=_0x46e9a2;}for(_0x46e9a2=0x2*-0xf6+0x21d0*-0x1+0x23bc;_0x46e9a2<0xcf1+0x1*-0x15d7+0xe*0xb5;_0x46e9a2++){_0x441684=(_0x441684+_0x1fad83[_0x46e9a2]+_0x5370a7['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x46e9a2%_0x5370a7['\x6c\x65\x6e\x67\x74\x68']))%(-0x64d+-0x110d+0x185a),_0x36f491=_0x1fad83[_0x46e9a2],_0x1fad83[_0x46e9a2]=_0x1fad83[_0x441684],_0x1fad83[_0x441684]=_0x36f491;}_0x46e9a2=0x1c*0x65+-0x1ddd+0x12d1,_0x441684=0xbf9*-0x3+-0x21cd*-0x1+-0x1*-0x21e;for(let _0x33e84c=-0x24e8*0x1+0x1cc4+-0x1*-0x824;_0x33e84c<_0x5af8f7['\x6c\x65\x6e\x67\x74\x68'];_0x33e84c++){_0x46e9a2=(_0x46e9a2+(-0x15e3+0xa71*-0x3+0x3537*0x1))%(-0x134b+0x4*0x6cd+-0x6e9),_0x441684=(_0x441684+_0x1fad83[_0x46e9a2])%(0x308+-0xe0d+0x1*0xc05),_0x36f491=_0x1fad83[_0x46e9a2],_0x1fad83[_0x46e9a2]=_0x1fad83[_0x441684],_0x1fad83[_0x441684]=_0x36f491,_0x5c7256+=String['\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65'](_0x5af8f7['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x33e84c)^_0x1fad83[(_0x1fad83[_0x46e9a2]+_0x1fad83[_0x441684])%(0x42e*-0x7+0x1922+-0x10*-0x52)]);}return _0x5c7256;};_0x4f4d['\x50\x50\x43\x75\x4e\x67']=_0x52d011,_0x4f4d['\x66\x7a\x64\x64\x77\x4c']={},_0x4f4d['\x79\x74\x6d\x51\x79\x57']=!![];}const _0x92c562=_0x528d23[0x1f9b+-0x1efc+-0x9f],_0x44b25f=_0x12b477+_0x92c562,_0x46df4f=_0x4f4d['\x66\x7a\x64\x64\x77\x4c'][_0x44b25f];return!_0x46df4f?(_0x4f4d['\x42\x51\x52\x42\x46\x55']===undefined&&(_0x4f4d['\x42\x51\x52\x42\x46\x55']=!![]),_0x4a9a08=_0x4f4d['\x50\x50\x43\x75\x4e\x67'](_0x4a9a08,_0x316908),_0x4f4d['\x66\x7a\x64\x64\x77\x4c'][_0x44b25f]=_0x4a9a08):_0x4a9a08=_0x46df4f,_0x4a9a08;}const TOOL_CALL_MIN=-0x13*-0x13+-0x22d8+0x6*0x593,FAILURE_CLUSTER_MIN=0x1cc7+0xdf*0x29+-0x407c,TITLE_MAX=0x19cb+-0x2*0xa9d+0x419*-0x1,EVIDENCE_MAX=-0xd1e*0x1+0x1*0x10b7+0x3*-0xe3,SIGNAL_CANDIDATES=[{'\x73\x69\x67\x6e\x61\x6c':'\x6c\x6f\x67\x5f\x65\x72\x72\x6f'+'\x72','\x74\x69\x74\x6c\x65':_0x4935dd(0x282,'\x6d\x48\x38\x40')+_0x4935dd(0x280,'\x23\x66\x4f\x30')+'\x20\x72\x75\x6e\x74\x69\x6d\x65'+_0x4935dd(0x1f9,'\x23\x36\x6e\x66')},{'\x73\x69\x67\x6e\x61\x6c':_0x4935dd(0x250,'\x38\x47\x62\x79')+_0x4935dd(0x14f,'\x4d\x48\x77\x71'),'\x74\x69\x74\x6c\x65':_0x4935dd(0x13b,'\x63\x30\x5e\x5b')+_0x4935dd(0x13d,'\x30\x21\x32\x49')+_0x4935dd(0x279,'\x62\x37\x7a\x4a')+_0x4935dd(0x1ea,'\x6f\x25\x25\x45')+_0x4935dd(0x176,'\x42\x47\x62\x7a')+_0x4935dd(0x281,'\x5a\x50\x5e\x49')+_0x4935dd(0x23c,'\x71\x7a\x28\x6f')},{'\x73\x69\x67\x6e\x61\x6c':_0x4935dd(0x251,'\x49\x61\x46\x6c')+_0x4935dd(0x180,'\x67\x53\x7a\x4a')+'\x63\x6f\x6d\x70\x61\x74\x69\x62'+'\x6c\x65','\x74\x69\x74\x6c\x65':_0x4935dd(0x208,'\x67\x37\x76\x34')+_0x4935dd(0x237,'\x47\x72\x45\x41')+_0x4935dd(0x1c2,'\x21\x69\x77\x43')+_0x4935dd(0x159,'\x47\x77\x70\x61')+_0x4935dd(0x18c,'\x21\x69\x77\x43')+_0x4935dd(0x20e,'\x75\x4f\x5b\x6f')+_0x4935dd(0x264,'\x6e\x6c\x6d\x55')+_0x4935dd(0x24d,'\x37\x6a\x47\x78')+'\x29'},{'\x73\x69\x67\x6e\x61\x6c':_0x4935dd(0x1ff,'\x32\x45\x4c\x71')+_0x4935dd(0x2ad,'\x63\x5b\x6b\x64')+_0x4935dd(0x25d,'\x4d\x48\x77\x71'),'\x74\x69\x74\x6c\x65':_0x4935dd(0x188,'\x35\x2a\x54\x49')+'\x65\x73\x73\x69\x6f\x6e\x20\x6c'+_0x4935dd(0x192,'\x32\x45\x4c\x71')+_0x4935dd(0x1df,'\x6a\x6e\x47\x35')+'\x20\x66\x61\x6c\x6c\x62\x61\x63'+_0x4935dd(0x1da,'\x68\x53\x21\x36')+'\x6f\x72'},{'\x73\x69\x67\x6e\x61\x6c':_0x4935dd(0x233,'\x4d\x62\x6d\x73')+_0x4935dd(0x236,'\x59\x78\x71\x4e')+_0x4935dd(0x184,'\x46\x6e\x42\x75'),'\x74\x69\x74\x6c\x65':_0x4935dd(0x27a,'\x5d\x58\x4f\x74')+_0x4935dd(0x29a,'\x6e\x28\x62\x58')+'\x65\x71\x75\x65\x73\x74\x65\x64'+_0x4935dd(0x226,'\x5d\x58\x4f\x74')},{'\x73\x69\x67\x6e\x61\x6c':_0x4935dd(0x235,'\x6e\x58\x29\x53')+_0x4935dd(0x21c,'\x23\x36\x6e\x66')+'\x5f\x73\x75\x67\x67\x65\x73\x74'+_0x4935dd(0x21b,'\x36\x4d\x54\x59'),'\x74\x69\x74\x6c\x65':_0x4935dd(0x26e,'\x5d\x58\x4f\x74')+_0x4935dd(0x201,'\x47\x77\x70\x61')+_0x4935dd(0x23a,'\x49\x61\x46\x6c')+_0x4935dd(0x1d2,'\x5b\x31\x39\x24')+'\x6e'},{'\x73\x69\x67\x6e\x61\x6c':_0x4935dd(0x18f,'\x6e\x28\x62\x58')+_0x4935dd(0x1b6,'\x5d\x58\x4f\x74'),'\x74\x69\x74\x6c\x65':_0x4935dd(0x26b,'\x40\x33\x72\x50')+_0x4935dd(0x14b,'\x6e\x28\x62\x58')+_0x4935dd(0x1d8,'\x40\x33\x72\x50')+_0x4935dd(0x228,'\x33\x78\x74\x41')},{'\x73\x69\x67\x6e\x61\x6c':_0x4935dd(0x191,'\x40\x33\x72\x50')+_0x4935dd(0x1e3,'\x63\x30\x5e\x5b'),'\x74\x69\x74\x6c\x65':_0x4935dd(0x202,'\x62\x37\x7a\x4a')+_0x4935dd(0x198,'\x5a\x50\x5e\x49')+_0x4935dd(0x2a9,'\x47\x72\x45\x41')},{'\x73\x69\x67\x6e\x61\x6c':_0x4935dd(0x21f,'\x30\x21\x32\x49')+_0x4935dd(0x285,'\x72\x68\x5b\x26')+_0x4935dd(0x27b,'\x28\x25\x4a\x4a'),'\x74\x69\x74\x6c\x65':_0x4935dd(0x158,'\x75\x4f\x5b\x6f')+'\x6e\x65\x77\x20\x73\x74\x72\x61'+_0x4935dd(0x215,'\x71\x7a\x28\x6f')+_0x4935dd(0x1e1,'\x6e\x58\x29\x53')+'\x61\x62\x69\x6c\x69\x74\x79\x20'+'\x70\x6c\x61\x74\x65\x61\x75'},{'\x73\x69\x67\x6e\x61\x6c':_0x4935dd(0x2a5,'\x23\x66\x4f\x30')+_0x4935dd(0x19b,'\x23\x36\x6e\x66')+_0x4935dd(0x225,'\x6e\x6c\x6d\x55'),'\x74\x69\x74\x6c\x65':'\x45\x76\x61\x6c\x75\x61\x74\x65'+_0x4935dd(0x1a8,'\x28\x25\x4a\x4a')+_0x4935dd(0x195,'\x28\x25\x4a\x4a')+_0x4935dd(0x20d,'\x5b\x31\x39\x24')+_0x4935dd(0x187,'\x5d\x58\x4f\x74')+_0x4935dd(0x2a1,'\x49\x2a\x75\x28')},{'\x73\x69\x67\x6e\x61\x6c':_0x4935dd(0x190,'\x4d\x48\x77\x71')+_0x4935dd(0x268,'\x74\x73\x28\x48')+_0x4935dd(0x1ac,'\x21\x6f\x2a\x32')+'\x74','\x74\x69\x74\x6c\x65':'\x4d\x65\x61\x73\x75\x72\x65\x20'+'\x74\x68\x65\x20\x70\x72\x6f\x6d'+_0x4935dd(0x1c8,'\x67\x61\x51\x6b')+_0x4935dd(0x238,'\x28\x25\x4a\x4a')+_0x4935dd(0x172,'\x5a\x50\x5e\x49')+_0x4935dd(0x1ee,'\x47\x72\x45\x41')+_0x4935dd(0x221,'\x6e\x69\x23\x65')+_0x4935dd(0x1c4,'\x32\x45\x4c\x71')},{'\x73\x69\x67\x6e\x61\x6c':'\x63\x6f\x6e\x74\x65\x78\x74\x5f'+_0x4935dd(0x298,'\x49\x61\x46\x6c')+'\x6e','\x74\x69\x74\x6c\x65':'\x41\x74\x74\x72\x69\x62\x75\x74'+_0x4935dd(0x19c,'\x4d\x48\x77\x71')+'\x65\x78\x74\x2d\x77\x69\x6e\x64'+_0x4935dd(0x240,'\x38\x47\x62\x79')+_0x4935dd(0x19d,'\x63\x30\x5e\x5b')+_0x4935dd(0x133,'\x63\x5b\x6b\x64')+_0x4935dd(0x1fb,'\x68\x53\x21\x36')+_0x4935dd(0x245,'\x6c\x38\x45\x74')},{'\x73\x69\x67\x6e\x61\x6c':_0x4935dd(0x2a8,'\x46\x6e\x42\x75')+_0x4935dd(0x20c,'\x42\x47\x62\x7a')+'\x74','\x74\x69\x74\x6c\x65':'\x4c\x6f\x61\x64\x20\x65\x78\x61'+_0x4935dd(0x295,'\x5a\x50\x5e\x49')+_0x4935dd(0x1c3,'\x30\x21\x32\x49')+_0x4935dd(0x1d9,'\x47\x72\x45\x41')+_0x4935dd(0x200,'\x5a\x50\x5e\x49')+_0x4935dd(0x1db,'\x63\x30\x5e\x5b')+_0x4935dd(0x1a9,'\x6d\x48\x38\x40')+_0x4935dd(0x28c,'\x59\x62\x5b\x58')+_0x4935dd(0x20f,'\x37\x6a\x47\x78')+_0x4935dd(0x29b,'\x21\x69\x33\x58')+_0x4935dd(0x14d,'\x5a\x50\x5e\x49')},{'\x73\x69\x67\x6e\x61\x6c':_0x4935dd(0x153,'\x35\x2a\x54\x49')+_0x4935dd(0x260,'\x63\x30\x5e\x5b'),'\x74\x69\x74\x6c\x65':_0x4935dd(0x26d,'\x63\x30\x5e\x5b')+_0x4935dd(0x145,'\x36\x4d\x54\x59')+_0x4935dd(0x224,'\x6e\x69\x23\x65')+_0x4935dd(0x1f3,'\x49\x61\x46\x6c')+_0x4935dd(0x26f,'\x38\x4a\x51\x33')+_0x4935dd(0x220,'\x47\x72\x45\x41')+_0x4935dd(0x150,'\x21\x69\x33\x58')+_0x4935dd(0x231,'\x49\x2a\x75\x28')+_0x4935dd(0x2b2,'\x42\x47\x62\x7a')},{'\x73\x69\x67\x6e\x61\x6c':_0x4935dd(0x1d7,'\x4d\x62\x6d\x73')+_0x4935dd(0x2b4,'\x68\x53\x21\x36')+'\x78\x74\x5f\x62\x6c\x6f\x61\x74','\x74\x69\x74\x6c\x65':_0x4935dd(0x13c,'\x35\x2a\x54\x49')+'\x20\x61\x20\x70\x61\x73\x74\x65'+_0x4935dd(0x1f2,'\x42\x47\x62\x7a')+_0x4935dd(0x255,'\x68\x54\x44\x57')+'\x6f\x20\x61\x20\x73\x65\x73\x73'+'\x69\x6f\x6e\x20\x68\x61\x6e\x64'+_0x4935dd(0x2ac,'\x67\x37\x76\x34')+'\x65\x74'},{'\x73\x69\x67\x6e\x61\x6c':_0x4935dd(0x1fc,'\x72\x68\x5b\x26')+_0x4935dd(0x269,'\x36\x4d\x54\x59')+_0x4935dd(0x284,'\x6e\x6c\x6d\x55'),'\x74\x69\x74\x6c\x65':_0x4935dd(0x168,'\x67\x53\x7a\x4a')+_0x4935dd(0x259,'\x21\x6f\x2a\x32')+_0x4935dd(0x29d,'\x49\x61\x46\x6c')+'\x61\x6e\x20\x61\x6e\x64\x20\x72'+_0x4935dd(0x1f1,'\x37\x6a\x47\x78')+'\x65\x6c\x65\x76\x61\x6e\x63\x65'+_0x4935dd(0x2b1,'\x4d\x62\x6d\x73')+_0x4935dd(0x1d5,'\x41\x59\x37\x7a')+'\x69\x6c'}],PROBLEM_PRIORITY=['\x70\x72\x6f\x62\x6c\x65\x6d\x3a'+_0x4935dd(0x1b4,'\x5b\x31\x39\x24')+'\x6e\x63\x65','\x70\x72\x6f\x62\x6c\x65\x6d\x3a'+_0x4935dd(0x22d,'\x40\x33\x72\x50'),_0x4935dd(0x1f7,'\x23\x36\x6e\x66')+_0x4935dd(0x253,'\x23\x66\x4f\x30')+_0x4935dd(0x230,'\x38\x47\x62\x79'),_0x4935dd(0x248,'\x6e\x28\x62\x58')+_0x4935dd(0x29e,'\x71\x7a\x28\x6f')+'\x6f\x6e',_0x4935dd(0x261,'\x6d\x48\x38\x40')+_0x4935dd(0x1ec,'\x6e\x28\x62\x58')+'\x74\x79'];function stableHash(_0x264888){const _0x5b878e=_0x4935dd;let _0x53f151=0x7ff51545+-0x1de3*-0xe87f+-0x19fd031d;for(let _0x338c49=-0x740+0x7a9+-0x69;_0x338c49<_0x264888['\x6c\x65\x6e\x67\x74\x68'];_0x338c49++){_0x53f151^=_0x264888[_0x5b878e(0x293,'\x6f\x25\x25\x45')+'\x41\x74'](_0x338c49),_0x53f151=Math[_0x5b878e(0x164,'\x6e\x58\x29\x53')](_0x53f151,0x425*0x223a+0x80de05+0x1e9*-0x7b4);}return(_0x53f151>>>0x1*0x80b+-0x186a+0x105f)['\x74\x6f\x53\x74\x72\x69\x6e\x67'](-0x25d9*-0x1+0x205a+0x4623*-0x1)[_0x5b878e(0x186,'\x47\x72\x45\x41')](-0x5a0+-0x239a+-0x2942*-0x1,'\x30');}function _0x53e3(){const _0x60ae7b=['\x72\x38\x6f\x2f\x6e\x48\x4c\x78\x57\x52\x46\x64\x4e\x71\x61','\x61\x43\x6b\x52\x57\x52\x74\x63\x52\x74\x43','\x44\x59\x75\x74\x69\x78\x6c\x64\x53\x64\x70\x63\x4c\x71','\x76\x43\x6f\x55\x76\x6d\x6b\x68\x57\x37\x56\x64\x4a\x57','\x68\x43\x6b\x59\x42\x38\x6b\x57\x74\x30\x4c\x77\x6f\x57','\x57\x36\x35\x4f\x57\x37\x4c\x73\x6f\x72\x4b','\x73\x53\x6f\x2b\x76\x43\x6f\x52\x6d\x66\x7a\x64\x57\x51\x57','\x73\x4e\x78\x64\x48\x76\x65\x71','\x42\x66\x61\x42','\x57\x52\x52\x63\x56\x38\x6b\x79\x44\x53\x6f\x7a\x57\x34\x66\x64\x57\x36\x43','\x57\x37\x64\x63\x4f\x73\x74\x64\x51\x31\x5a\x63\x50\x6d\x6f\x63\x57\x50\x6c\x63\x4c\x6d\x6b\x2b\x57\x52\x64\x64\x51\x76\x79','\x57\x4f\x74\x64\x47\x4a\x56\x63\x55\x43\x6f\x5a\x57\x35\x46\x64\x53\x78\x30','\x57\x51\x2f\x64\x53\x68\x6c\x64\x56\x57\x2f\x64\x55\x53\x6b\x67\x57\x51\x69','\x57\x35\x6a\x57\x57\x36\x75\x34\x57\x50\x58\x48\x78\x6d\x6f\x4f','\x77\x67\x50\x59\x57\x50\x70\x64\x4f\x53\x6f\x4d\x57\x50\x4a\x63\x55\x71','\x6d\x78\x52\x64\x55\x30\x76\x35\x57\x50\x52\x63\x4e\x6d\x6b\x54','\x57\x37\x4f\x69\x78\x61\x37\x64\x51\x53\x6b\x53\x65\x75\x5a\x64\x50\x47\x69\x43\x73\x38\x6b\x6a','\x77\x6d\x6f\x38\x71\x43\x6b\x49\x79\x31\x66\x62\x57\x51\x4f','\x57\x35\x70\x63\x51\x74\x46\x63\x4b\x38\x6b\x36','\x6c\x4c\x42\x64\x4d\x68\x4b\x44\x62\x75\x38\x4c','\x62\x33\x30\x49\x65\x74\x79','\x63\x31\x4a\x64\x4b\x53\x6f\x63\x57\x35\x6d\x73\x67\x43\x6f\x4f','\x6c\x77\x64\x63\x52\x53\x6f\x68','\x6d\x77\x52\x64\x49\x75\x43\x34\x57\x4f\x79','\x69\x6d\x6f\x42\x57\x52\x34\x2f\x6f\x68\x38\x57\x73\x71','\x57\x34\x76\x45\x57\x52\x68\x64\x48\x53\x6b\x69\x57\x52\x43\x43\x57\x36\x71','\x45\x59\x43\x31\x42\x43\x6f\x6f\x74\x4c\x75','\x77\x73\x76\x35\x57\x50\x47','\x46\x64\x4b\x31\x41\x43\x6f\x6d','\x41\x43\x6f\x38\x71\x6d\x6f\x4e\x6a\x75\x54\x70\x57\x51\x43','\x65\x38\x6f\x38\x7a\x43\x6f\x5a\x57\x52\x71\x7a\x73\x53\x6f\x56','\x75\x5a\x57\x34\x65\x4a\x33\x63\x50\x5a\x30','\x42\x64\x71\x53\x41\x38\x6f\x6c\x71\x4b\x56\x64\x52\x47','\x42\x53\x6f\x42\x57\x36\x42\x64\x54\x53\x6b\x35\x79\x57\x43\x33','\x57\x35\x62\x4a\x57\x37\x6d\x34\x57\x50\x4c\x38\x78\x53\x6f\x31','\x6c\x6d\x6b\x79\x57\x37\x61','\x69\x49\x68\x64\x4b\x64\x78\x63\x56\x49\x54\x35\x45\x57','\x76\x49\x78\x63\x4a\x33\x44\x31\x68\x4e\x30\x39','\x66\x5a\x71\x49\x64\x5a\x6c\x63\x52\x67\x44\x48','\x57\x4f\x6d\x6b\x45\x43\x6f\x4f\x69\x67\x2f\x64\x48\x38\x6f\x35','\x41\x59\x72\x71\x6f\x33\x6c\x64\x4f\x74\x6c\x63\x4e\x47','\x7a\x33\x70\x64\x4e\x38\x6f\x72\x7a\x61','\x57\x51\x75\x4b\x75\x43\x6b\x52\x76\x38\x6b\x4e','\x67\x53\x6b\x50\x44\x6d\x6b\x36\x61\x30\x30\x42\x42\x57','\x76\x72\x69\x68\x57\x4f\x78\x63\x4c\x4d\x4e\x64\x50\x76\x4f','\x73\x53\x6b\x2b\x41\x43\x6b\x51\x61\x66\x4f\x66','\x64\x43\x6b\x68\x6a\x57','\x71\x64\x34\x57\x57\x4f\x42\x64\x55\x6d\x6f\x4f\x57\x4f\x70\x63\x4f\x61','\x79\x65\x65\x74\x70\x6d\x6b\x51\x6e\x6d\x6f\x74\x57\x37\x47','\x67\x53\x6b\x77\x57\x36\x35\x2b\x57\x35\x37\x64\x4e\x71\x54\x7a','\x72\x5a\x56\x63\x4e\x5a\x4f','\x6a\x5a\x7a\x6c\x57\x34\x61\x56\x67\x38\x6b\x43\x57\x4f\x34','\x57\x34\x64\x64\x47\x78\x62\x4c\x57\x36\x75\x4a\x57\x37\x4f\x38','\x72\x72\x72\x6f\x57\x4f\x70\x63\x4c\x74\x4e\x64\x50\x31\x71','\x6e\x6d\x6b\x55\x57\x52\x68\x63\x4f\x4e\x69\x48\x6d\x68\x30','\x6d\x43\x6b\x64\x6b\x43\x6b\x36\x63\x66\x4f\x75\x70\x57','\x57\x4f\x47\x72\x57\x4f\x70\x63\x54\x4a\x48\x34\x57\x50\x46\x64\x4d\x61','\x6e\x38\x6f\x44\x57\x51\x43\x4b\x6b\x33\x71\x33\x71\x47','\x65\x38\x6f\x4e\x7a\x75\x69\x62\x57\x37\x4e\x63\x4a\x72\x68\x64\x56\x4c\x76\x77\x77\x53\x6b\x6a','\x71\x5a\x56\x63\x4d\x74\x76\x32\x66\x74\x62\x31','\x57\x4f\x4b\x49\x57\x37\x7a\x61\x57\x34\x52\x63\x51\x43\x6b\x49\x57\x51\x4f','\x65\x6d\x6b\x66\x6e\x53\x6f\x4d\x6c\x65\x74\x64\x56\x38\x6f\x36','\x73\x53\x6b\x47\x43\x38\x6b\x4c\x57\x36\x31\x6a\x71\x38\x6f\x73\x57\x4f\x37\x63\x54\x53\x6f\x6d\x6e\x71','\x72\x57\x6d\x41','\x66\x4e\x4b\x33\x69\x4a\x68\x63\x52\x4e\x54\x4a','\x74\x6d\x6f\x38\x72\x53\x6b\x55\x6a\x75\x31\x79\x57\x36\x6d','\x57\x34\x42\x63\x4d\x43\x6f\x66\x57\x34\x68\x64\x4d\x38\x6b\x4f\x69\x58\x71','\x78\x5a\x37\x63\x4c\x59\x35\x50\x78\x74\x69\x48','\x57\x52\x30\x33\x57\x36\x31\x61\x57\x34\x68\x64\x50\x38\x6b\x48','\x57\x37\x58\x54\x57\x35\x50\x67\x57\x35\x4e\x64\x51\x6d\x6b\x51\x57\x50\x6d','\x6f\x38\x6b\x45\x57\x36\x44\x4a\x57\x35\x5a\x64\x47\x58\x65\x74','\x57\x36\x68\x64\x53\x78\x6c\x63\x54\x57\x5a\x64\x4f\x38\x6b\x42\x57\x52\x4b','\x70\x72\x2f\x64\x48\x33\x6a\x70\x61\x4b\x34\x5a','\x66\x53\x6b\x73\x6c\x38\x6b\x58\x62\x65\x76\x44\x69\x71','\x57\x36\x61\x72\x57\x51\x78\x64\x56\x64\x6c\x64\x4a\x43\x6f\x6d\x6c\x61','\x79\x64\x46\x63\x51\x38\x6f\x6d\x6f\x75\x4e\x63\x4b\x6d\x6b\x75','\x79\x4b\x52\x64\x4c\x53\x6f\x70\x6e\x43\x6b\x6d\x61\x38\x6f\x2b','\x65\x53\x6b\x66\x6a\x38\x6b\x36\x64\x76\x6d\x71\x46\x57','\x61\x6d\x6b\x66\x6c\x6d\x6f\x52\x68\x61','\x57\x51\x34\x54\x57\x34\x30','\x67\x6d\x6b\x30\x42\x43\x6b\x39\x61\x4b\x30\x79\x69\x71','\x64\x38\x6b\x72\x6d\x6d\x6f\x51\x6d\x61','\x57\x4f\x64\x63\x53\x32\x74\x63\x56\x47\x56\x64\x53\x6d\x6f\x45\x57\x37\x79','\x6b\x4e\x78\x63\x51\x6d\x6f\x77\x70\x77\x74\x63\x51\x38\x6b\x4a','\x57\x35\x66\x49\x57\x52\x7a\x58\x57\x50\x72\x4e\x78\x6d\x6b\x4c','\x61\x64\x42\x64\x48\x4a\x64\x63\x53\x49\x54\x51\x45\x57','\x71\x38\x6f\x31\x57\x36\x37\x64\x55\x4d\x6e\x5a\x79\x75\x4e\x63\x50\x71\x66\x2b\x62\x65\x4f','\x66\x38\x6b\x31\x57\x37\x33\x63\x50\x5a\x57\x58\x6a\x78\x38','\x68\x64\x46\x63\x4c\x73\x6c\x63\x56\x63\x62\x4a\x6c\x57','\x57\x34\x4e\x63\x51\x73\x5a\x63\x48\x61','\x65\x38\x6f\x48\x78\x43\x6b\x73\x57\x36\x52\x64\x49\x63\x56\x64\x49\x47','\x42\x38\x6f\x52\x78\x43\x6f\x36\x6c\x65\x66\x66\x57\x51\x38','\x63\x73\x78\x64\x4f\x53\x6b\x33\x57\x34\x57\x62','\x61\x33\x65\x4b\x67\x5a\x5a\x63\x53\x68\x4c\x4a','\x57\x4f\x74\x64\x49\x72\x4e\x63\x54\x53\x6f\x55\x57\x35\x64\x64\x51\x4e\x61','\x66\x30\x74\x64\x4d\x6d\x6f\x61\x57\x34\x66\x77\x64\x38\x6f\x56','\x66\x6d\x6f\x32\x6a\x53\x6f\x36\x57\x51\x38\x42\x71\x6d\x6f\x55','\x57\x52\x68\x64\x4f\x78\x4a\x63\x51\x57\x6c\x64\x54\x53\x6b\x44\x57\x52\x4f','\x6a\x4a\x7a\x7a\x57\x34\x61\x50\x67\x53\x6b\x62','\x78\x30\x65\x6f\x6e\x53\x6b\x35\x6f\x43\x6f\x50\x57\x37\x75','\x57\x34\x6e\x67\x57\x36\x47','\x57\x4f\x4f\x71\x57\x4f\x70\x63\x51\x59\x76\x55\x57\x4f\x56\x64\x4d\x61','\x57\x51\x31\x6f\x57\x51\x44\x76','\x57\x4f\x78\x64\x47\x5a\x2f\x63\x50\x43\x6f\x46\x57\x35\x6c\x64\x50\x4e\x75','\x6c\x4e\x4b\x66\x46\x74\x46\x63\x50\x74\x33\x63\x56\x57\x69\x72\x57\x52\x2f\x64\x48\x57','\x63\x31\x4e\x64\x4e\x53\x6f\x45\x57\x36\x54\x42\x62\x38\x6f\x53','\x6d\x43\x6f\x6e\x57\x52\x4b\x4f\x66\x77\x71\x37\x78\x57','\x57\x35\x35\x4c\x57\x37\x62\x33\x57\x4f\x48\x2b\x68\x53\x6f\x32','\x78\x74\x52\x64\x47\x66\x4f\x77\x57\x34\x47\x68\x43\x47','\x57\x50\x70\x64\x4c\x67\x58\x50\x57\x51\x4f\x2f\x57\x51\x38\x58','\x57\x35\x47\x42\x42\x43\x6f\x39\x6b\x5a\x56\x63\x47\x38\x6f\x56','\x57\x35\x7a\x4c\x57\x36\x38','\x65\x53\x6b\x63\x70\x6d\x6b\x52','\x57\x35\x42\x64\x4c\x53\x6b\x64\x57\x36\x64\x64\x4c\x38\x6b\x30\x6e\x62\x4f','\x57\x51\x6a\x63\x57\x52\x54\x6a\x57\x50\x66\x66\x57\x37\x44\x43','\x61\x67\x64\x64\x55\x6d\x6b\x5a\x57\x35\x57\x62\x57\x37\x78\x64\x4e\x71','\x57\x34\x76\x66\x57\x52\x68\x64\x49\x6d\x6b\x71\x57\x52\x7a\x6f\x57\x37\x71','\x67\x38\x6f\x35\x6c\x6d\x6f\x36\x57\x52\x38\x42\x7a\x53\x6f\x38','\x68\x33\x30\x49\x62\x68\x70\x63\x50\x68\x76\x52','\x57\x36\x6d\x2f\x57\x4f\x30\x36\x57\x34\x58\x76\x57\x52\x56\x63\x48\x47','\x70\x78\x70\x63\x50\x38\x6f\x6e\x72\x78\x68\x64\x4a\x43\x6b\x70','\x66\x38\x6f\x65\x6d\x43\x6f\x47\x6e\x4c\x4a\x63\x56\x6d\x6f\x38','\x57\x51\x79\x55\x57\x34\x4f\x61\x57\x4f\x71\x51\x57\x34\x6d\x41','\x71\x6d\x6f\x55\x78\x38\x6b\x44\x57\x37\x2f\x64\x4b\x73\x4f','\x46\x59\x43\x5a\x41\x6d\x6f\x66\x74\x4b\x52\x63\x56\x71','\x57\x50\x48\x42\x57\x37\x75','\x57\x51\x37\x63\x55\x43\x6b\x65\x6d\x43\x6b\x44\x57\x34\x6a\x77\x57\x36\x38','\x45\x4b\x56\x64\x4d\x68\x48\x72\x72\x66\x71\x59','\x57\x34\x42\x63\x53\x64\x4e\x63\x4e\x38\x6f\x50\x57\x35\x33\x63\x48\x38\x6f\x59','\x72\x59\x64\x63\x4c\x64\x35\x32\x67\x73\x4b\x32','\x67\x53\x6b\x55\x41\x6d\x6b\x57','\x74\x43\x6f\x48\x57\x34\x61\x6f\x67\x43\x6f\x39\x57\x35\x66\x68','\x57\x35\x50\x61\x57\x37\x37\x64\x4b\x38\x6b\x6a\x57\x52\x62\x74\x57\x37\x34','\x57\x35\x4b\x78\x42\x53\x6f\x38\x6b\x4a\x4a\x64\x4b\x6d\x6f\x64','\x6e\x32\x42\x64\x51\x43\x6f\x73\x6d\x67\x4a\x63\x4d\x6d\x6b\x4c','\x75\x6d\x6b\x36\x6f\x72\x39\x79\x57\x51\x70\x64\x4b\x72\x34','\x75\x6d\x6f\x31\x65\x53\x6f\x56\x6c\x75\x79\x6b\x57\x52\x75','\x57\x37\x50\x4f\x57\x36\x76\x73\x46\x61\x69\x73\x41\x61','\x78\x49\x37\x64\x50\x6d\x6b\x77\x65\x74\x2f\x63\x4e\x43\x6f\x6d\x72\x43\x6f\x43\x57\x4f\x4a\x63\x47\x47\x53','\x69\x33\x52\x64\x55\x4c\x71\x38\x57\x4f\x71','\x57\x52\x30\x47\x77\x6d\x6b\x2f','\x41\x43\x6b\x73\x57\x36\x58\x39\x57\x35\x64\x64\x47\x57\x66\x64','\x79\x57\x43\x45\x57\x4f\x56\x63\x4d\x49\x64\x64\x55\x76\x69','\x57\x51\x4a\x63\x56\x38\x6b\x66\x6f\x53\x6f\x2b\x57\x34\x76\x42\x57\x36\x4f','\x70\x74\x68\x64\x48\x49\x42\x63\x51\x74\x6e\x4f\x70\x57','\x57\x4f\x58\x78\x57\x36\x2f\x64\x50\x71','\x63\x64\x42\x63\x50\x6d\x6f\x71\x72\x4e\x70\x64\x48\x38\x6f\x6d','\x62\x53\x6b\x2b\x44\x43\x6b\x2f\x67\x30\x61','\x6e\x4d\x46\x64\x49\x75\x69\x31\x57\x50\x4e\x63\x4b\x53\x6b\x34','\x70\x53\x6f\x67\x57\x37\x2f\x64\x53\x43\x6b\x4e\x6b\x57\x48\x2f','\x44\x6d\x6b\x6b\x57\x37\x35\x34\x45\x59\x61\x68\x79\x33\x31\x59\x57\x4f\x56\x63\x55\x71','\x57\x36\x31\x32\x57\x52\x76\x76\x6b\x62\x4b\x44\x41\x61','\x57\x35\x64\x63\x53\x33\x4a\x63\x4e\x53\x6f\x56\x57\x35\x5a\x63\x4e\x53\x6f\x4e','\x57\x50\x79\x68\x57\x34\x5a\x63\x55\x59\x7a\x2b\x57\x50\x6c\x63\x48\x57','\x78\x6d\x6b\x4f\x57\x34\x57\x70\x70\x38\x6f\x49\x57\x34\x62\x67','\x67\x6d\x6b\x2b\x45\x6d\x6b\x54\x68\x76\x4f\x46\x6f\x57','\x57\x34\x4e\x64\x49\x6d\x6f\x33\x71\x38\x6b\x75\x57\x4f\x33\x63\x54\x53\x6b\x61','\x57\x51\x4b\x4d\x57\x34\x79\x43\x57\x52\x4f\x38\x57\x35\x38\x72','\x65\x6d\x6b\x6e\x6a\x43\x6f\x48\x69\x4b\x42\x63\x52\x6d\x6b\x31','\x57\x50\x70\x64\x54\x4d\x74\x63\x53\x61\x68\x64\x4f\x38\x6b\x78\x57\x37\x79','\x46\x30\x4a\x64\x4a\x6d\x6f\x70','\x62\x4e\x5a\x64\x55\x31\x61\x52\x57\x50\x70\x63\x47\x6d\x6b\x2f','\x43\x53\x6f\x33\x73\x6d\x6b\x46\x57\x36\x46\x63\x4e\x73\x5a\x64\x4e\x61','\x68\x68\x78\x63\x50\x53\x6f\x6c\x77\x78\x70\x64\x47\x43\x6f\x61','\x64\x4e\x52\x63\x56\x43\x6f\x67\x73\x68\x70\x64\x47\x43\x6f\x61','\x44\x48\x2f\x64\x47\x78\x7a\x72\x64\x75\x75\x47','\x75\x57\x6d\x41','\x57\x50\x4a\x64\x4b\x73\x4b','\x57\x51\x61\x46\x64\x30\x2f\x63\x54\x53\x6f\x57\x71\x4b\x65','\x57\x50\x65\x45\x57\x37\x70\x64\x50\x33\x58\x47\x57\x36\x5a\x63\x48\x47','\x45\x5a\x71\x37\x7a\x6d\x6f\x69\x78\x30\x37\x64\x51\x61','\x76\x43\x6f\x32\x77\x38\x6f\x47','\x66\x53\x6b\x71\x6b\x38\x6f\x47\x6c\x71\x52\x63\x52\x38\x6f\x34','\x75\x53\x6b\x4a\x57\x51\x2f\x63\x50\x5a\x71\x32\x43\x77\x57','\x45\x53\x6f\x51\x73\x6d\x6b\x46\x57\x37\x56\x64\x4b\x64\x5a\x64\x47\x71','\x72\x78\x56\x64\x48\x66\x4f\x66\x57\x50\x30','\x66\x33\x42\x64\x54\x75\x75\x33\x57\x4f\x6c\x64\x4b\x38\x6b\x2f','\x6f\x64\x7a\x77\x57\x35\x71\x59\x68\x61','\x64\x43\x6f\x51\x6b\x53\x6f\x49\x57\x52\x75\x43\x73\x53\x6f\x58','\x61\x6d\x6b\x49\x57\x52\x68\x63\x50\x5a\x6d\x47\x6f\x67\x65','\x72\x38\x6b\x38\x69\x61\x72\x6c\x57\x51\x4a\x64\x4c\x48\x75','\x57\x4f\x68\x64\x4c\x33\x72\x4c\x57\x36\x75\x2b\x57\x37\x4f\x4d','\x68\x6d\x6f\x72\x57\x36\x64\x64\x53\x53\x6b\x49\x70\x65\x75\x33','\x62\x4a\x52\x64\x4d\x49\x33\x64\x54\x32\x76\x53\x6b\x57','\x57\x34\x64\x63\x50\x73\x57','\x45\x65\x43\x44\x6e\x53\x6b\x52\x70\x53\x6f\x74\x57\x36\x65','\x6b\x53\x6f\x7a\x57\x51\x39\x54\x6b\x78\x34\x2f\x71\x61','\x75\x47\x6d\x70\x57\x50\x4e\x63\x4c\x59\x46\x64\x50\x47','\x41\x49\x48\x43\x69\x68\x6d','\x6e\x38\x6f\x44\x57\x51\x47\x34\x6f\x67\x71\x33\x71\x61','\x46\x49\x64\x63\x48\x73\x72\x5a\x68\x4a\x50\x56','\x75\x32\x79\x5a\x68\x49\x42\x63\x53\x67\x7a\x52','\x57\x37\x57\x62\x57\x36\x74\x63\x47\x43\x6b\x49\x57\x4f\x78\x64\x53\x53\x6f\x2f','\x57\x52\x78\x64\x4f\x78\x42\x63\x53\x72\x37\x64\x54\x53\x6b\x61\x57\x52\x38','\x41\x49\x6a\x38\x45\x43\x6f\x44\x77\x75\x42\x64\x53\x57','\x57\x35\x78\x64\x47\x53\x6f\x5a\x73\x53\x6b\x76\x57\x52\x42\x63\x56\x53\x6b\x77','\x57\x35\x70\x64\x4d\x43\x6f\x4b\x72\x43\x6b\x70\x57\x52\x2f\x63\x56\x47','\x75\x43\x6b\x5a\x70\x62\x76\x43','\x57\x51\x62\x72\x57\x52\x70\x63\x4b\x38\x6f\x35\x57\x35\x78\x64\x4f\x6d\x6f\x77\x57\x37\x4f\x41\x68\x53\x6b\x52\x57\x35\x75','\x68\x53\x6f\x57\x6a\x6d\x6f\x4b\x57\x50\x4b\x71\x71\x43\x6f\x34','\x76\x73\x6e\x38\x57\x4f\x6c\x64\x52\x38\x6f\x31','\x57\x4f\x70\x64\x47\x74\x48\x30\x57\x51\x4f\x2b\x57\x36\x6e\x39','\x78\x59\x64\x63\x47\x49\x34\x36\x66\x4a\x57\x4d','\x78\x49\x54\x2b\x57\x50\x78\x64\x52\x38\x6b\x4e\x57\x50\x5a\x63\x54\x71','\x57\x34\x53\x67\x43\x6d\x6f\x30\x6b\x4a\x5a\x64\x49\x53\x6f\x5a','\x72\x6d\x6b\x4b\x57\x34\x30\x67\x61\x38\x6f\x4a','\x45\x33\x75\x50\x45\x43\x6f\x6d\x77\x71\x52\x64\x54\x71','\x57\x36\x48\x70\x67\x4c\x78\x63\x53\x53\x6f\x4b\x75\x57\x75','\x57\x35\x70\x64\x47\x43\x6b\x57\x76\x6d\x6b\x66\x57\x52\x68\x63\x52\x53\x6b\x78','\x57\x34\x43\x71\x7a\x6d\x6f\x39\x70\x77\x2f\x64\x4a\x38\x6f\x35','\x65\x43\x6b\x64\x6b\x43\x6b\x2f\x64\x31\x43\x6a\x6c\x61','\x72\x43\x6b\x47\x57\x35\x6d','\x43\x31\x70\x64\x4b\x6d\x6f\x68\x43\x6d\x6b\x62\x61\x43\x6f\x33','\x57\x4f\x4b\x66\x57\x35\x46\x63\x53\x63\x76\x31','\x57\x51\x54\x78\x63\x75\x4a\x63\x4e\x6d\x6f\x37\x71\x30\x61','\x61\x53\x6b\x2b\x6e\x47\x6a\x71\x57\x52\x46\x64\x4e\x76\x57','\x63\x43\x6f\x33\x66\x53\x6f\x49\x57\x51\x47\x77\x73\x38\x6f\x36','\x72\x38\x6b\x4e\x69\x72\x6e\x6c\x57\x51\x2f\x64\x4d\x72\x34','\x64\x65\x70\x64\x49\x6d\x6f\x68\x57\x4f\x34','\x57\x34\x38\x73\x57\x37\x74\x64\x4b\x43\x6b\x6a\x57\x52\x39\x6a\x57\x36\x79','\x57\x52\x6e\x6f\x57\x51\x66\x78\x57\x52\x58\x46\x57\x37\x50\x74','\x57\x35\x48\x57\x57\x36\x79','\x57\x36\x6d\x44\x57\x51\x70\x64\x50\x4a\x42\x64\x48\x71','\x77\x38\x6b\x31\x57\x35\x65\x61\x61\x38\x6f\x49\x57\x35\x54\x42','\x57\x51\x43\x59\x57\x37\x38\x6a\x57\x35\x37\x64\x51\x6d\x6b\x58\x57\x51\x30','\x57\x51\x75\x55\x77\x6d\x6b\x2f\x46\x6d\x6b\x49\x6c\x43\x6f\x50','\x62\x38\x6b\x36\x41\x57','\x57\x34\x50\x5a\x57\x37\x62\x68\x6e\x30\x53\x6f\x45\x71','\x57\x52\x57\x39\x57\x36\x31\x66\x57\x34\x53','\x57\x35\x64\x64\x47\x4a\x2f\x63\x54\x6d\x6f\x48\x57\x35\x4a\x64\x52\x5a\x71','\x75\x33\x43\x33\x64\x5a\x46\x63\x53\x71','\x57\x36\x4b\x55\x78\x6d\x6b\x56\x76\x53\x6b\x39\x6e\x53\x6f\x2f','\x71\x5a\x35\x70\x57\x50\x78\x64\x50\x43\x6f\x50\x57\x50\x52\x63\x54\x71','\x57\x37\x69\x48\x57\x50\x43','\x57\x52\x30\x59\x68\x38\x6b\x47\x71\x53\x6b\x39\x69\x38\x6f\x2f','\x71\x73\x39\x4a','\x65\x4c\x68\x64\x47\x32\x71\x36','\x57\x4f\x4e\x64\x4d\x33\x54\x53\x57\x52\x61\x31\x57\x36\x4f\x48','\x71\x64\x33\x63\x4c\x59\x76\x55\x61\x57\x4f\x4d','\x6b\x43\x6f\x44\x57\x51\x75\x51\x70\x4e\x34','\x57\x52\x47\x58\x57\x37\x44\x6e\x57\x4f\x70\x64\x50\x53\x6b\x38\x57\x51\x4f','\x69\x6d\x6f\x6f\x57\x51\x69\x50\x6c\x33\x47\x39\x73\x57','\x66\x77\x68\x64\x53\x31\x79\x38\x57\x50\x4a\x63\x48\x38\x6f\x53','\x57\x35\x6d\x42\x57\x51\x4e\x64\x55\x63\x78\x64\x4a\x6d\x6b\x46\x6c\x61','\x6b\x78\x70\x63\x50\x53\x6f\x61\x70\x4d\x6c\x63\x4d\x38\x6b\x38','\x57\x4f\x37\x63\x54\x43\x6b\x41\x6e\x38\x6f\x75\x57\x35\x79\x78\x57\x37\x71','\x57\x35\x74\x63\x51\x74\x2f\x63\x4b\x38\x6f\x48\x57\x35\x30','\x57\x35\x6c\x63\x4a\x6d\x6f\x38\x73\x43\x6b\x70\x57\x51\x6c\x63\x51\x6d\x6f\x66','\x57\x51\x35\x70\x57\x51\x31\x78\x57\x50\x7a\x69\x57\x37\x58\x69','\x79\x73\x5a\x63\x48\x4a\x7a\x5a\x61\x4e\x30\x39','\x41\x4a\x72\x45\x69\x32\x68\x64\x4f\x73\x69','\x57\x52\x68\x64\x50\x4d\x74\x63\x54\x57','\x57\x36\x43\x58\x57\x34\x47\x6e\x57\x4f\x4b\x59\x57\x4f\x4f\x75','\x57\x4f\x50\x61\x57\x37\x74\x64\x49\x38\x6b\x70\x57\x52\x6a\x45\x57\x37\x53','\x6a\x63\x66\x78\x57\x35\x65\x51\x65\x43\x6b\x46\x57\x36\x53','\x57\x36\x6d\x62\x57\x51\x4e\x64\x50\x74\x42\x64\x4d\x38\x6b\x76','\x6e\x43\x6f\x6b\x57\x51\x71\x56\x6a\x4e\x6d\x5a\x66\x61','\x71\x38\x6b\x77\x6a\x38\x6f\x36\x6d\x65\x56\x63\x56\x43\x6f\x31','\x46\x5a\x61\x55\x42\x6d\x6f\x67\x77\x75\x52\x64\x50\x47','\x57\x50\x39\x6d\x6e\x43\x6b\x54\x44\x68\x4e\x64\x55\x53\x6f\x72\x71\x61\x65\x36\x57\x52\x65','\x57\x50\x74\x64\x4b\x67\x62\x30','\x75\x33\x38\x34\x65\x49\x74\x63\x52\x4e\x66\x4d','\x57\x51\x62\x41\x57\x37\x70\x64\x51\x33\x31\x4d','\x57\x52\x54\x41\x62\x66\x2f\x63\x56\x6d\x6f\x47\x72\x4b\x43','\x57\x34\x5a\x64\x4e\x53\x6f\x2f\x72\x6d\x6b\x6d\x57\x52\x46\x63\x54\x53\x6f\x46','\x71\x38\x6f\x49\x73\x53\x6b\x76\x57\x37\x68\x64\x4a\x5a\x74\x64\x4a\x47','\x57\x36\x6d\x46\x57\x51\x33\x64\x50\x64\x56\x64\x54\x53\x6b\x61\x6e\x47','\x57\x52\x4b\x58\x57\x51\x71\x45\x41\x66\x6a\x6b\x46\x53\x6b\x65\x57\x36\x7a\x63\x57\x35\x66\x56','\x57\x50\x5a\x64\x47\x43\x6f\x35\x76\x43\x6b\x74\x57\x52\x56\x63\x54\x43\x6b\x63','\x65\x6d\x6b\x69\x6b\x38\x6f\x53\x6a\x47','\x6c\x78\x70\x63\x51\x6d\x6f\x41\x69\x4d\x6c\x63\x48\x53\x6b\x35','\x57\x37\x64\x64\x47\x43\x6b\x44\x57\x37\x52\x64\x4e\x43\x6b\x30\x69\x4c\x53','\x75\x57\x34\x6c\x57\x4f\x42\x63\x4c\x67\x4e\x64\x54\x65\x47','\x57\x50\x37\x63\x4b\x64\x42\x63\x55\x6d\x6f\x56\x57\x34\x74\x64\x53\x64\x71','\x57\x52\x70\x64\x4d\x77\x68\x63\x53\x57\x53','\x57\x34\x56\x63\x50\x74\x5a\x64\x4e\x43\x6f\x4c\x57\x34\x46\x63\x47\x43\x6f\x51','\x57\x51\x54\x71\x68\x76\x74\x63\x51\x57','\x7a\x4a\x53\x2f\x7a\x53\x6f\x43\x74\x30\x6c\x64\x54\x61','\x78\x53\x6f\x52\x76\x38\x6f\x56\x45\x75\x31\x79\x57\x51\x61','\x57\x37\x6d\x70\x57\x36\x4e\x64\x4a\x57','\x72\x59\x64\x63\x47\x4a\x54\x2f','\x72\x6d\x6b\x55\x6a\x38\x6f\x55\x57\x52\x69\x33\x71\x43\x6f\x7a','\x46\x59\x61\x56\x79\x47','\x66\x30\x46\x64\x4a\x53\x6f\x61','\x57\x51\x38\x4e\x57\x35\x61\x71\x57\x50\x43\x2f\x57\x35\x34\x43','\x72\x6d\x6b\x4b\x57\x34\x44\x62\x65\x53\x6f\x39\x57\x35\x54\x7a','\x61\x61\x4b\x43\x57\x4f\x37\x63\x4e\x74\x56\x63\x55\x72\x53','\x75\x49\x72\x77\x70\x49\x64\x64\x50\x5a\x70\x63\x4c\x71','\x68\x75\x6c\x63\x4a\x6d\x6f\x56\x43\x57','\x70\x58\x2f\x64\x47\x33\x7a\x6f\x64\x57\x65\x47','\x57\x34\x4c\x44\x57\x37\x2f\x64\x4b\x43\x6b\x64\x57\x51\x66\x70\x57\x37\x6d','\x71\x43\x6b\x56\x57\x34\x61\x6e\x61\x53\x6f\x56\x57\x35\x66\x67','\x6e\x43\x6f\x6e\x57\x52\x47\x4c','\x57\x35\x4f\x68\x71\x38\x6f\x35\x6b\x59\x56\x64\x49\x53\x6f\x34','\x6c\x77\x4a\x63\x50\x53\x6f\x41\x41\x57','\x79\x57\x37\x63\x48\x63\x75\x6a\x75\x48\x6d\x6a\x57\x36\x66\x6e\x57\x50\x42\x64\x49\x32\x43','\x57\x34\x68\x63\x47\x67\x56\x64\x52\x38\x6b\x30\x57\x4f\x33\x63\x54\x78\x79\x54\x57\x4f\x6a\x30\x57\x52\x7a\x45','\x57\x50\x78\x64\x48\x33\x54\x4c\x57\x36\x75\x5a\x57\x36\x4f\x30','\x57\x36\x31\x4d\x57\x36\x57','\x57\x52\x4f\x31\x78\x53\x6b\x34\x76\x53\x6b\x38','\x61\x38\x6b\x31\x45\x6d\x6b\x30\x67\x4b\x57\x74\x6a\x47','\x65\x68\x66\x32\x68\x63\x42\x63\x50\x4e\x31\x32','\x64\x65\x2f\x64\x4d\x6d\x6f\x7a\x57\x34\x7a\x61\x61\x38\x6f\x59','\x61\x53\x6b\x39\x6c\x66\x7a\x2b\x57\x4f\x74\x64\x51\x66\x69','\x57\x34\x54\x57\x57\x37\x66\x32\x57\x50\x54\x4e\x77\x53\x6f\x51','\x57\x50\x2f\x63\x53\x43\x6b\x41\x6e\x38\x6f\x46\x57\x34\x31\x42\x57\x36\x38','\x6f\x43\x6b\x56\x45\x53\x6b\x36\x62\x4b\x71\x46\x6c\x57','\x6e\x4d\x42\x64\x54\x75\x6d\x38\x57\x4f\x78\x63\x47\x61','\x6e\x77\x42\x64\x50\x75\x47','\x57\x50\x39\x5a\x57\x37\x6e\x57\x57\x50\x54\x4c\x77\x53\x6f\x51','\x57\x37\x65\x61\x57\x51\x65','\x41\x49\x4c\x77\x69\x4d\x5a\x64\x4a\x64\x6c\x63\x4e\x47','\x57\x34\x53\x66\x57\x37\x70\x64\x4a\x53\x6b\x48\x57\x50\x78\x63\x54\x38\x6b\x2b','\x57\x37\x75\x4c\x57\x4f\x30\x39\x57\x34\x57','\x57\x52\x2f\x63\x53\x43\x6b\x65\x6d\x53\x6f\x49','\x57\x52\x6a\x65\x57\x52\x31\x70','\x57\x50\x44\x42\x57\x37\x6c\x64\x54\x4d\x4c\x5a\x57\x37\x33\x63\x4e\x61','\x57\x34\x39\x57\x57\x37\x6a\x6c\x57\x4f\x35\x59\x71\x43\x6f\x58','\x78\x38\x6f\x4f\x77\x38\x6b\x73\x57\x37\x6c\x63\x4e\x74\x4a\x64\x49\x57','\x57\x35\x47\x76\x57\x52\x42\x64\x52\x64\x6c\x64\x48\x38\x6f\x6d\x6c\x61','\x57\x51\x5a\x63\x4f\x38\x6b\x46\x6f\x53\x6f\x79\x57\x35\x43','\x75\x43\x6f\x74\x44\x53\x6b\x37\x44\x48\x6c\x64\x51\x43\x6f\x57\x57\x50\x47\x46\x76\x48\x39\x2f','\x57\x4f\x70\x64\x48\x64\x56\x63\x50\x43\x6f\x30\x57\x34\x46\x64\x4c\x68\x30','\x57\x37\x75\x38\x57\x4f\x4b\x55\x57\x35\x31\x73\x57\x52\x46\x63\x4a\x71','\x42\x49\x75\x39\x41\x6d\x6f\x61\x72\x30\x37\x64\x53\x57','\x67\x6d\x6f\x52\x6e\x53\x6f\x2f\x57\x52\x75\x72\x62\x43\x6f\x50','\x46\x5a\x61\x55\x42\x6d\x6f\x32\x73\x75\x4a\x64\x53\x57','\x57\x4f\x39\x6d\x57\x36\x37\x64\x52\x32\x54\x4d\x57\x35\x42\x63\x4c\x57','\x57\x51\x6c\x64\x53\x4d\x46\x63\x56\x47\x2f\x64\x56\x6d\x6b\x45\x57\x52\x38','\x6f\x5a\x71\x79\x57\x35\x43\x4a\x61\x6d\x6b\x78\x57\x52\x69','\x61\x32\x79\x35\x63\x74\x5a\x63\x4f\x78\x54\x55','\x57\x51\x74\x64\x50\x32\x74\x64\x56\x30\x42\x63\x54\x43\x6b\x68\x57\x51\x75','\x72\x74\x52\x64\x53\x71\x30\x4c\x57\x34\x47\x76\x42\x47','\x57\x4f\x42\x64\x4c\x73\x4a\x63\x50\x6d\x6f\x50\x57\x35\x42\x64\x52\x33\x65','\x66\x66\x38\x54\x57\x4f\x78\x63\x4a\x59\x4a\x64\x52\x77\x34','\x57\x4f\x68\x64\x4c\x33\x66\x53\x57\x51\x57\x4c\x57\x37\x7a\x59','\x57\x37\x42\x63\x4a\x61\x5a\x63\x49\x6d\x6f\x68','\x57\x51\x34\x4b\x57\x34\x4f\x68\x57\x4f\x71\x51\x57\x34\x6d\x41','\x6e\x43\x6b\x30\x41\x38\x6b\x4f\x61\x66\x4f\x63\x69\x61','\x57\x50\x4f\x45\x57\x36\x64\x63\x4f\x4e\x48\x39\x57\x36\x46\x63\x47\x71','\x6b\x78\x5a\x64\x4f\x71\x61\x54\x57\x50\x4e\x64\x4b\x38\x6b\x4c','\x57\x51\x62\x49\x57\x35\x6d\x77\x57\x4f\x4f\x51\x57\x34\x75\x77','\x61\x49\x42\x64\x48\x49\x53','\x76\x53\x6f\x32\x78\x6d\x6b\x55\x6d\x30\x6e\x45\x57\x51\x61','\x6c\x53\x6b\x6e\x57\x36\x58\x4a\x57\x34\x5a\x64\x4d\x62\x43\x6e','\x57\x36\x43\x57\x57\x34\x79\x69\x57\x4f\x57\x2f\x57\x34\x47\x43','\x57\x34\x42\x63\x53\x63\x56\x63\x49\x6d\x6f\x53\x57\x35\x74\x63\x4e\x71','\x66\x4c\x52\x64\x4c\x4d\x76\x74\x72\x65\x43\x5a','\x45\x49\x35\x44\x6f\x67\x78\x64\x4f\x73\x4a\x63\x4b\x71','\x67\x53\x6b\x2b\x45\x53\x6b\x53\x63\x4b\x58\x77\x6a\x47','\x45\x65\x42\x64\x4e\x6d\x6f\x71\x6e\x43\x6b\x61\x62\x6d\x6b\x59','\x63\x78\x2f\x64\x49\x65\x53\x62\x57\x50\x4f\x41\x46\x61','\x6b\x53\x6f\x72\x57\x36\x6c\x63\x53\x38\x6b\x49\x69\x62\x79\x58','\x57\x35\x58\x2b\x57\x36\x6e\x32\x57\x4f\x34','\x6b\x4b\x2f\x64\x4b\x4e\x6d\x44\x65\x4b\x61\x54','\x6b\x6d\x6b\x6d\x57\x37\x58\x49\x57\x35\x52\x64\x4e\x62\x30\x6e','\x57\x34\x79\x66\x57\x34\x6c\x63\x52\x73\x4c\x5a\x57\x50\x52\x64\x4a\x47','\x79\x4c\x46\x64\x4d\x6d\x6f\x6e\x7a\x53\x6b\x6d\x65\x6d\x6f\x37','\x73\x38\x6b\x52\x6c\x61','\x6e\x33\x42\x64\x54\x31\x6d\x32\x57\x50\x4a\x63\x47\x61','\x57\x37\x75\x47\x57\x4f\x6d\x57\x57\x34\x48\x78\x57\x51\x53','\x46\x76\x79\x72\x6d\x43\x6b\x30\x6b\x6d\x6f\x48\x57\x51\x53','\x72\x47\x43\x68\x57\x4f\x42\x63\x4e\x73\x33\x64\x49\x4c\x47','\x74\x38\x6f\x38\x71\x6d\x6f\x4f\x6c\x66\x62\x68\x57\x51\x69','\x41\x4a\x76\x73\x70\x68\x74\x64\x4f\x61\x5a\x63\x4d\x71','\x72\x38\x6f\x52\x78\x43\x6b\x44\x57\x37\x56\x64\x4e\x4a\x69','\x57\x37\x53\x5a\x7a\x6d\x6f\x2f\x6a\x47','\x71\x6d\x6f\x51\x77\x43\x6b\x46\x57\x37\x6c\x63\x4e\x73\x56\x64\x49\x47','\x6b\x66\x42\x64\x4d\x78\x61\x44\x61\x4b\x61\x4f','\x57\x37\x47\x73\x57\x36\x78\x64\x47\x6d\x6f\x33\x57\x4f\x5a\x63\x4f\x6d\x6f\x39','\x57\x52\x4f\x54\x57\x52\x4c\x41\x57\x34\x64\x64\x4f\x6d\x6b\x49\x57\x52\x79','\x72\x33\x4e\x64\x4c\x71','\x6c\x78\x70\x63\x4f\x6d\x6f\x7a','\x57\x34\x4b\x73\x57\x36\x78\x64\x4c\x38\x6b\x4f\x57\x4f\x33\x63\x50\x53\x6b\x2b','\x57\x35\x33\x64\x49\x38\x6f\x31\x68\x6d\x6f\x61','\x67\x5a\x33\x64\x4c\x49\x2f\x63\x52\x49\x66\x4f\x6b\x61','\x6a\x6d\x6f\x6e\x57\x51\x38\x4b\x70\x4e\x43\x38\x71\x47','\x57\x37\x79\x53\x57\x4f\x43\x33\x57\x34\x39\x73\x57\x52\x56\x64\x47\x57','\x66\x65\x6c\x63\x4d\x43\x6b\x75\x69\x4d\x6c\x63\x4e\x6d\x6b\x31','\x6e\x5a\x58\x77\x57\x34\x43\x4a\x64\x6d\x6b\x67','\x6d\x78\x42\x64\x50\x76\x71','\x57\x36\x44\x74\x57\x51\x54\x6f\x57\x50\x62\x6e\x57\x37\x54\x78','\x64\x63\x37\x64\x52\x38\x6b\x2b\x57\x35\x4f\x6f\x57\x52\x64\x64\x4a\x57','\x77\x6d\x6b\x31\x57\x4f\x6d\x64\x61\x53\x6f\x56\x57\x35\x6e\x71','\x74\x4d\x4a\x64\x4c\x75\x57\x78\x57\x4f\x65\x42\x43\x57','\x57\x34\x79\x72\x57\x52\x42\x64\x4f\x74\x68\x64\x47\x6d\x6b\x6a\x6f\x57','\x64\x6d\x6b\x6a\x79\x53\x6f\x39\x6a\x4b\x4e\x63\x51\x53\x6f\x52'];_0x53e3=function(){return _0x60ae7b;};return _0x53e3();}const clip=(_0x1d0990,_0x3f09fe)=>_0x1d0990[_0x4935dd(0x299,'\x67\x61\x51\x6b')]>_0x3f09fe?_0x1d0990[_0x4935dd(0x1e8,'\x6e\x28\x62\x58')](-0x25f*0xc+-0xe2a+0x2a9e,_0x3f09fe):_0x1d0990;function buildShape(_0x2f6186,_0x4eb40f,_0x455339){const _0x204918=_0x4935dd,_0x5b2092=('\x53\x69\x67\x6e\x61\x6c\x73\x3a'+'\x20'+_0x4eb40f[_0x204918(0x277,'\x5b\x31\x39\x24')]('\x2c\x20'))[_0x204918(0x1fe,'\x37\x6a\x47\x78')]();return{'\x74\x69\x74\x6c\x65':clip(_0x2f6186,TITLE_MAX),'\x69\x6e\x70\x75\x74':_0x204918(0x27c,'\x63\x30\x5e\x5b')+_0x204918(0x18e,'\x6f\x25\x25\x45')+_0x204918(0x212,'\x21\x6f\x2a\x32')+'\x74\x20\x2b\x20\x6d\x65\x6d\x6f'+_0x204918(0x1bb,'\x67\x37\x76\x34')+_0x204918(0x194,'\x40\x33\x72\x50')+_0x204918(0x223,'\x62\x37\x7a\x4a')+_0x204918(0x210,'\x67\x37\x76\x34'),'\x6f\x75\x74\x70\x75\x74':_0x204918(0x21e,'\x40\x33\x72\x50')+_0x204918(0x1c1,'\x59\x78\x71\x4e')+_0x204918(0x2a7,'\x38\x47\x62\x79')+_0x204918(0x1a0,'\x5b\x31\x39\x24')+_0x204918(0x274,'\x21\x69\x33\x58')+_0x204918(0x178,'\x23\x66\x4f\x30')+'\x61\x73\x73\x65\x74\x73','\x69\x6e\x76\x61\x72\x69\x61\x6e\x74\x73':_0x204918(0x227,'\x5b\x31\x39\x24')+_0x204918(0x167,'\x47\x77\x70\x61')+_0x204918(0x1b8,'\x5d\x58\x4f\x74')+_0x204918(0x196,'\x4d\x62\x6d\x73')+_0x204918(0x1ad,'\x49\x2a\x75\x28')+_0x204918(0x271,'\x6a\x6e\x47\x35')+_0x204918(0x283,'\x6e\x69\x23\x65')+_0x204918(0x139,'\x67\x37\x76\x34')+'\x79\x20\x65\x76\x65\x6e\x74\x73','\x70\x61\x72\x61\x6d\x73':_0x5b2092||_0x204918(0x1fd,'\x21\x6f\x2a\x32')+_0x204918(0x1eb,'\x42\x47\x62\x7a'),'\x66\x61\x69\x6c\x75\x72\x65\x5f\x70\x6f\x69\x6e\x74\x73':_0x204918(0x28a,'\x37\x6a\x47\x78')+_0x204918(0x26a,'\x6c\x38\x45\x74')+_0x204918(0x1ed,'\x6d\x48\x38\x40')+_0x204918(0x286,'\x59\x78\x71\x4e')+_0x204918(0x1dd,'\x5b\x31\x39\x24')+_0x204918(0x1ab,'\x6a\x6e\x47\x35')+'\x69\x64\x61\x74\x69\x6f\x6e\x2c'+_0x204918(0x155,'\x74\x73\x28\x48')+_0x204918(0x14e,'\x42\x47\x62\x7a')+'\x67\x65\x20\x73\x6f\x6c\x69\x64'+_0x204918(0x19a,'\x36\x4d\x54\x59')+'\x6e','\x65\x76\x69\x64\x65\x6e\x63\x65':clip(_0x455339,EVIDENCE_MAX)};}function candidate(_0x8ad759,_0x35a971,_0x1cabb4,_0xfac6b,_0x1176d7,_0x1debce){const _0x2976f4=_0x4935dd;return{'\x74\x79\x70\x65':_0x2976f4(0x25a,'\x47\x77\x70\x61')+_0x2976f4(0x16e,'\x49\x61\x46\x6c')+_0x2976f4(0x17f,'\x35\x2a\x54\x49'),'\x69\x64':_0x2976f4(0x183,'\x41\x59\x37\x7a')+_0x35a971,'\x74\x69\x74\x6c\x65':_0x1cabb4,'\x73\x6f\x75\x72\x63\x65':_0x8ad759,'\x73\x69\x67\x6e\x61\x6c\x73':_0xfac6b,'\x74\x61\x67\x73':_0x1debce,'\x73\x68\x61\x70\x65':buildShape(_0x1cabb4,_0xfac6b,_0x1176d7)};}function failureTitle(_0x1eccfd){const _0x4f3715=_0x4935dd;if(_0x1eccfd[_0x4f3715(0x22b,'\x6e\x58\x29\x53')](_0x4f3715(0x149,'\x59\x78\x71\x4e')+_0x4f3715(0x152,'\x5d\x58\x4f\x74')+_0x4f3715(0x1bc,'\x28\x25\x4a\x4a')))return _0x4f3715(0x181,'\x59\x62\x5b\x58')+_0x4f3715(0x289,'\x59\x78\x71\x4e')+_0x4f3715(0x214,'\x6a\x6e\x47\x35')+_0x4f3715(0x297,'\x68\x53\x21\x36')+_0x4f3715(0x1c9,'\x28\x25\x4a\x4a')+'\x73';if(_0x1eccfd[_0x4f3715(0x22c,'\x6f\x25\x25\x45')](_0x4f3715(0x149,'\x59\x78\x71\x4e')+_0x4f3715(0x193,'\x42\x47\x62\x7a')))return _0x4f3715(0x1f0,'\x6e\x69\x23\x65')+_0x4f3715(0x1f4,'\x67\x53\x7a\x4a')+_0x4f3715(0x19e,'\x36\x4d\x54\x59')+_0x4f3715(0x1e5,'\x38\x47\x62\x79')+_0x4f3715(0x270,'\x38\x4a\x51\x33')+'\x6e\x20\x72\x65\x67\x72\x65\x73'+_0x4f3715(0x288,'\x67\x53\x7a\x4a');if(_0x1eccfd[_0x4f3715(0x15e,'\x6e\x28\x62\x58')](_0x4f3715(0x1b2,'\x72\x68\x5b\x26')+_0x4f3715(0x27f,'\x62\x37\x7a\x4a')+_0x4f3715(0x23b,'\x47\x72\x45\x41')))return _0x4f3715(0x13e,'\x41\x59\x37\x7a')+_0x4f3715(0x23e,'\x46\x6e\x42\x75')+_0x4f3715(0x146,'\x38\x47\x62\x79')+_0x4f3715(0x296,'\x37\x6a\x47\x78')+'\x6c\x75\x72\x65\x73';if(_0x1eccfd[_0x4f3715(0x136,'\x5a\x50\x5e\x49')](_0x4f3715(0x207,'\x37\x6a\x47\x78')+'\x73\x74\x61\x67\x6e\x61\x74\x69'+'\x6f\x6e'))return _0x4f3715(0x2af,'\x68\x54\x44\x57')+_0x4f3715(0x216,'\x35\x2a\x54\x49')+_0x4f3715(0x179,'\x47\x72\x45\x41')+_0x4f3715(0x15a,'\x4d\x62\x6d\x73')+_0x4f3715(0x1d0,'\x23\x36\x6e\x66')+_0x4f3715(0x28e,'\x6e\x28\x62\x58')+_0x4f3715(0x1ef,'\x21\x6f\x2a\x32');if(_0x1eccfd[_0x4f3715(0x28f,'\x74\x73\x28\x48')](_0x4f3715(0x1ba,'\x59\x62\x5b\x58')+_0x4f3715(0x185,'\x4d\x48\x77\x71')+'\x6f\x6e'))return _0x4f3715(0x17b,'\x23\x36\x6e\x66')+_0x4f3715(0x23f,'\x33\x78\x74\x41')+_0x4f3715(0x204,'\x49\x2a\x75\x28')+_0x4f3715(0x2ab,'\x67\x61\x51\x6b')+_0x4f3715(0x213,'\x40\x33\x72\x50')+'\x72';return _0x4f3715(0x1a4,'\x6a\x6e\x47\x35')+_0x4f3715(0x29c,'\x74\x73\x28\x48')+_0x4f3715(0x24a,'\x41\x59\x37\x7a')+_0x4f3715(0x166,'\x67\x61\x51\x6b')+_0x4f3715(0x278,'\x6c\x38\x45\x74')+_0x4f3715(0x2b5,'\x21\x69\x77\x43');}export function extractCapabilityCandidates(_0x3ff739){const _0x2a33ad=_0x4935dd,_0x25a030=(_0x3ff739[_0x2a33ad(0x1b1,'\x21\x69\x77\x43')]??[])[_0x2a33ad(0x29f,'\x67\x61\x51\x6b')](_0x23c2b2=>String(_0x23c2b2)),_0x12e425=expandSignals(_0x25a030),_0x19cb26=[],_0x1f6af3=new Map();for(const _0x2d2c3e of _0x3ff739[_0x2a33ad(0x25b,'\x41\x59\x37\x7a')+'\x73']??[])_0x1f6af3['\x73\x65\x74'](_0x2d2c3e,(_0x1f6af3[_0x2a33ad(0x249,'\x4d\x48\x77\x71')](_0x2d2c3e)??0xf09+0x1e45+-0x2d4e)+(0x2425+-0x18*-0x94+-0x3204));for(const [_0x5b0077,_0x504d66]of _0x1f6af3){if(_0x2a33ad(0x1b7,'\x49\x61\x46\x6c')===_0x2a33ad(0x135,'\x63\x30\x5e\x5b')){let _0x5c819b=0xf6d50fe5+-0x7a3d79c5*-0x2+0x1b543*-0xd40e;for(let _0x1efa5a=0x1b44+0x19f1+-0x3535;_0x1efa5a<_0x22ee45[_0x2a33ad(0x25f,'\x23\x36\x6e\x66')];_0x1efa5a++){_0x5c819b^=_0x58939b[_0x2a33ad(0x2a2,'\x21\x69\x33\x58')+'\x41\x74'](_0x1efa5a),_0x5c819b=_0x30ea6a[_0x2a33ad(0x26c,'\x29\x76\x79\x48')](_0x5c819b,0x37f463*0x4+0x1*0x1e57283+-0x4c*0x5f6c5);}return(_0x5c819b>>>-0x1bf0+-0x7*0x1f+0x1cc9)[_0x2a33ad(0x2a4,'\x6f\x25\x25\x45')](0x13a6+-0x2c7+-0x10cf)['\x70\x61\x64\x53\x74\x61\x72\x74'](0x23d9+0x1d2e+0x40ff*-0x1,'\x30');}else{if(_0x504d66<TOOL_CALL_MIN)continue;const _0x49efc9=_0x2a33ad(0x22f,'\x72\x68\x5b\x26')+_0x2a33ad(0x24b,'\x6a\x6e\x47\x35')+_0x2a33ad(0x1bf,'\x74\x73\x28\x48')+_0x5b0077;_0x19cb26[_0x2a33ad(0x144,'\x40\x33\x72\x50')](candidate(_0x2a33ad(0x28d,'\x40\x33\x72\x50')+'\x70\x74',stableHash(_0x49efc9),_0x49efc9,_0x25a030,_0x2a33ad(0x25c,'\x6e\x69\x23\x65')+'\x20'+_0x504d66+(_0x2a33ad(0x2b3,'\x63\x5b\x6b\x64')+_0x2a33ad(0x1a7,'\x29\x76\x79\x48')+_0x2a33ad(0x218,'\x29\x76\x79\x48')+'\x6c\x20')+_0x5b0077+'\x2e',_0x12e425));}}for(const _0x3abaac of _0x3ff739[_0x2a33ad(0x23d,'\x75\x4f\x5b\x6f')+_0x2a33ad(0x266,'\x67\x61\x51\x6b')]??[]){const _0x2b88ce=[...new Set([..._0x3abaac[_0x2a33ad(0x247,'\x5d\x58\x4f\x74')]??[],..._0x25a030]['\x6d\x61\x70'](_0x23bdd2=>String(_0x23bdd2))[_0x2a33ad(0x1d1,'\x68\x54\x44\x57')](Boolean))];_0x19cb26[_0x2a33ad(0x163,'\x6e\x28\x62\x58')](candidate(_0x2a33ad(0x157,'\x30\x21\x32\x49')+'\x70\x74',stableHash(_0x2a33ad(0x16b,'\x38\x47\x62\x79')+_0x2a33ad(0x16f,'\x30\x21\x32\x49')+_0x3abaac['\x69\x64']),_0x3abaac[_0x2a33ad(0x1e0,'\x42\x47\x62\x7a')]||_0x2a33ad(0x1e9,'\x5b\x31\x39\x24')+_0x2a33ad(0x14a,'\x6c\x38\x45\x74')+_0x2a33ad(0x1cc,'\x23\x66\x4f\x30')+_0x2a33ad(0x239,'\x5a\x50\x5e\x49')+_0x2a33ad(0x18d,'\x6e\x28\x62\x58')+'\x79',_0x2b88ce,_0x3abaac[_0x2a33ad(0x243,'\x21\x69\x77\x43')][_0x2a33ad(0x1f6,'\x63\x5b\x6b\x64')]>-0x9a+0xfb9+-0xf1f?_0x3abaac['\x65\x76\x69\x64\x65\x6e\x63\x65'][_0x2a33ad(0x156,'\x6c\x38\x45\x74')](-0x1f80+-0x116f+-0x1*-0x30ef,0x18d*0x7+0x554*0x2+0xf*-0x16f)[_0x2a33ad(0x160,'\x59\x62\x5b\x58')]('\x3b\x20'):_0x3abaac[_0x2a33ad(0x148,'\x35\x2a\x54\x49')],[...new Set([..._0x12e425,...expandSignals(_0x2b88ce)])]));}for(const _0x637009 of SIGNAL_CANDIDATES){if(!_0x25a030['\x73\x6f\x6d\x65'](_0x20c6ca=>_0x20c6ca===_0x637009[_0x2a33ad(0x2aa,'\x35\x2a\x54\x49')]||_0x20c6ca[_0x2a33ad(0x137,'\x37\x6a\x47\x78')+'\x74\x68'](_0x637009['\x73\x69\x67\x6e\x61\x6c']+'\x3a')))continue;_0x19cb26[_0x2a33ad(0x16d,'\x59\x78\x71\x4e')](candidate('\x73\x69\x67\x6e\x61\x6c\x73',stableHash(_0x637009[_0x2a33ad(0x13f,'\x6e\x6c\x6d\x55')]),_0x637009[_0x2a33ad(0x2b0,'\x67\x37\x76\x34')],_0x25a030,'\x53\x69\x67\x6e\x61\x6c\x20'+_0x637009['\x73\x69\x67\x6e\x61\x6c']+_0x2a33ad(0x2a3,'\x23\x66\x4f\x30'),_0x12e425));}const _0x2a70f0=new Map();for(const _0x21e2f7 of _0x3ff739[_0x2a33ad(0x241,'\x6f\x25\x25\x45')+_0x2a33ad(0x189,'\x41\x59\x37\x7a')]??[]){if('\x4c\x63\x43\x71\x73'!=='\x4c\x63\x43\x71\x73'){if(_0x2fad33[_0x2a33ad(0x1c0,'\x6e\x69\x23\x65')](_0x2a33ad(0x151,'\x74\x73\x28\x48')+_0x2a33ad(0x229,'\x42\x47\x62\x7a')+_0x2a33ad(0x1fa,'\x6c\x38\x45\x74')))return _0x2a33ad(0x244,'\x38\x4a\x51\x33')+_0x2a33ad(0x267,'\x23\x36\x6e\x66')+'\x67\x20\x70\x65\x72\x66\x6f\x72'+_0x2a33ad(0x297,'\x68\x53\x21\x36')+_0x2a33ad(0x1a1,'\x21\x6f\x2a\x32')+'\x73';if(_0xbcb78b['\x69\x6e\x63\x6c\x75\x64\x65\x73'](_0x2a33ad(0x219,'\x71\x7a\x28\x6f')+_0x2a33ad(0x27e,'\x6f\x25\x25\x45')))return _0x2a33ad(0x1be,'\x59\x62\x5b\x58')+_0x2a33ad(0x177,'\x6e\x58\x29\x53')+_0x2a33ad(0x25e,'\x38\x4a\x51\x33')+_0x2a33ad(0x254,'\x5b\x31\x39\x24')+_0x2a33ad(0x246,'\x36\x4d\x54\x59')+_0x2a33ad(0x275,'\x4d\x48\x77\x71')+'\x73\x69\x6f\x6e\x73';if(_0x3c764a[_0x2a33ad(0x1c7,'\x33\x78\x74\x41')](_0x2a33ad(0x147,'\x32\x45\x4c\x71')+_0x2a33ad(0x205,'\x59\x78\x71\x4e')+_0x2a33ad(0x1af,'\x23\x66\x4f\x30')))return _0x2a33ad(0x142,'\x37\x6a\x47\x78')+_0x2a33ad(0x1e4,'\x59\x78\x71\x4e')+_0x2a33ad(0x1a2,'\x36\x4d\x54\x59')+_0x2a33ad(0x242,'\x42\x47\x62\x7a')+_0x2a33ad(0x21d,'\x6c\x38\x45\x74');if(_0x3534e1[_0x2a33ad(0x141,'\x46\x6e\x42\x75')](_0x2a33ad(0x265,'\x49\x2a\x75\x28')+'\x73\x74\x61\x67\x6e\x61\x74\x69'+'\x6f\x6e'))return'\x42\x72\x65\x61\x6b\x20\x72\x65'+_0x2a33ad(0x1a6,'\x23\x36\x6e\x66')+_0x2a33ad(0x276,'\x6e\x28\x62\x58')+_0x2a33ad(0x140,'\x74\x73\x28\x48')+'\x77\x69\x74\x68\x20\x61\x20\x6e'+_0x2a33ad(0x263,'\x68\x54\x44\x57')+_0x2a33ad(0x173,'\x68\x54\x44\x57');if(_0x4ea5b5[_0x2a33ad(0x175,'\x23\x36\x6e\x66')](_0x2a33ad(0x15f,'\x5b\x31\x39\x24')+_0x2a33ad(0x165,'\x36\x4d\x54\x59')+'\x6f\x6e'))return _0x2a33ad(0x203,'\x71\x7a\x28\x6f')+_0x2a33ad(0x16a,'\x6a\x6e\x47\x35')+_0x2a33ad(0x1ce,'\x67\x53\x7a\x4a')+'\x73\x74\x72\x61\x74\x69\x6f\x6e'+_0x2a33ad(0x17e,'\x47\x72\x45\x41')+'\x72';return'\x4c\x65\x61\x72\x6e\x20\x66\x72'+_0x2a33ad(0x1cb,'\x6c\x38\x45\x74')+_0x2a33ad(0x1b9,'\x6a\x6e\x47\x35')+_0x2a33ad(0x15c,'\x6e\x6c\x6d\x55')+_0x2a33ad(0x1f8,'\x47\x77\x70\x61')+'\x74\x68\x73';}else{if(_0x21e2f7[_0x2a33ad(0x290,'\x74\x73\x28\x48')]?.[_0x2a33ad(0x174,'\x63\x5b\x6b\x64')]===_0x2a33ad(0x17c,'\x63\x30\x5e\x5b'))continue;const _0x14d075=String(_0x21e2f7['\x66\x61\x69\x6c\x75\x72\x65\x5f'+'\x72\x65\x61\x73\x6f\x6e']??'')[_0x2a33ad(0x1bd,'\x30\x21\x32\x49')](),_0x5ebe87=expandSignals([..._0x21e2f7[_0x2a33ad(0x1e6,'\x6e\x28\x62\x58')]??[],..._0x25a030],_0x14d075)[_0x2a33ad(0x1cf,'\x5d\x58\x4f\x74')](_0x9e06af=>/^(problem|risk|area|action):/[_0x2a33ad(0x1c5,'\x63\x30\x5e\x5b')](_0x9e06af));if(_0x5ebe87['\x6c\x65\x6e\x67\x74\x68']===-0x12e9+0x1134+0x1b5)continue;let _0x5e9077=null;for(const _0x500346 of PROBLEM_PRIORITY)if(_0x5ebe87[_0x2a33ad(0x16c,'\x67\x61\x51\x6b')](_0x500346)){if(_0x2a33ad(0x15b,'\x40\x33\x72\x50')===_0x2a33ad(0x169,'\x38\x4a\x51\x33')){const _0x19f9b4=[...new _0x2fe2c8([..._0x5a4f73['\x73\x69\x67\x6e\x61\x6c\x73']??[],..._0x26ceb7][_0x2a33ad(0x2ae,'\x23\x36\x6e\x66')](_0x15d6c3=>_0x1f3e76(_0x15d6c3))[_0x2a33ad(0x294,'\x68\x53\x21\x36')](_0xb09945))];_0xbb5921[_0x2a33ad(0x24e,'\x23\x36\x6e\x66')](_0x1323f9(_0x2a33ad(0x1ae,'\x29\x76\x79\x48')+'\x70\x74',_0x2d579f(_0x2a33ad(0x1a5,'\x67\x53\x7a\x4a')+_0x2a33ad(0x1de,'\x6e\x6c\x6d\x55')+_0x66bd6d['\x69\x64']),_0x50ed19[_0x2a33ad(0x161,'\x37\x6a\x47\x78')]||_0x2a33ad(0x1ca,'\x35\x2a\x54\x49')+_0x2a33ad(0x1c6,'\x46\x6e\x42\x75')+_0x2a33ad(0x24f,'\x67\x61\x51\x6b')+_0x2a33ad(0x209,'\x6c\x38\x45\x74')+_0x2a33ad(0x24c,'\x6e\x6c\x6d\x55')+'\x79',_0x19f9b4,_0x370d9e[_0x2a33ad(0x2a0,'\x29\x76\x79\x48')][_0x2a33ad(0x138,'\x59\x78\x71\x4e')]>0x2404+0x1d78*-0x1+-0x4*0x1a3?_0x36e980[_0x2a33ad(0x13a,'\x59\x78\x71\x4e')][_0x2a33ad(0x291,'\x23\x66\x4f\x30')](0xd1e+-0x20aa*0x1+-0x1*-0x138c,-0x1297+-0xee1+-0x5*-0x6b2)[_0x2a33ad(0x1e7,'\x68\x53\x21\x36')]('\x3b\x20'):_0x5dd7c6[_0x2a33ad(0x143,'\x67\x53\x7a\x4a')],[...new _0x2ac2d4([..._0x3f7b56,..._0x15089d(_0x19f9b4)])]));}else{_0x5e9077=_0x500346;break;}}const _0x48a2d3=_0x5e9077?[_0x5e9077]:_0x5ebe87[_0x2a33ad(0x257,'\x63\x30\x5e\x5b')](_0x903619=>_0x903619[_0x2a33ad(0x18b,'\x4d\x62\x6d\x73')+'\x74\x68']('\x61\x72\x65\x61\x3a')||_0x903619[_0x2a33ad(0x1b5,'\x67\x53\x7a\x4a')+'\x74\x68'](_0x2a33ad(0x2a6,'\x6e\x58\x29\x53')))[_0x2a33ad(0x1cd,'\x62\x37\x7a\x4a')](-0xad7+0x2*0xaad+-0xa83,-0x248d+0x1718*0x1+0x6bb*0x2),_0x3bfc1b=_0x48a2d3[_0x2a33ad(0x160,'\x59\x62\x5b\x58')]('\x7c');if(!_0x3bfc1b)continue;const _0xa57a3e=_0x2a70f0[_0x2a33ad(0x20b,'\x47\x77\x70\x61')](_0x3bfc1b)??{'\x63\x6f\x75\x6e\x74':0x0,'\x74\x61\x67\x73':_0x5ebe87,'\x72\x65\x61\x73\x6f\x6e\x73':[]};_0xa57a3e[_0x2a33ad(0x1aa,'\x47\x72\x45\x41')]+=-0x3*0x299+0xdf2+-0x626;if(_0x14d075)_0xa57a3e[_0x2a33ad(0x1b0,'\x63\x30\x5e\x5b')][_0x2a33ad(0x19f,'\x6e\x69\x23\x65')](_0x14d075);_0x2a70f0[_0x2a33ad(0x272,'\x47\x77\x70\x61')](_0x3bfc1b,_0xa57a3e);}}for(const [_0x47c895,_0xeb5bcc]of _0x2a70f0){if(_0x2a33ad(0x199,'\x6e\x6c\x6d\x55')===_0x2a33ad(0x1f5,'\x29\x76\x79\x48'))return{'\x74\x79\x70\x65':_0x2a33ad(0x17a,'\x41\x59\x37\x7a')+_0x2a33ad(0x22a,'\x4d\x62\x6d\x73')+_0x2a33ad(0x1d4,'\x72\x68\x5b\x26'),'\x69\x64':_0x2a33ad(0x21a,'\x6c\x38\x45\x74')+_0x467e21,'\x74\x69\x74\x6c\x65':_0x69f6a8,'\x73\x6f\x75\x72\x63\x65':_0x277c90,'\x73\x69\x67\x6e\x61\x6c\x73':_0xa9b9d1,'\x74\x61\x67\x73':_0x23deb1,'\x73\x68\x61\x70\x65':_0x424cff(_0x2ea7a6,_0x34cb90,_0x395b70)};else{if(_0xeb5bcc[_0x2a33ad(0x15d,'\x21\x69\x33\x58')]<FAILURE_CLUSTER_MIN)continue;const _0x4b8387=failureTitle(_0xeb5bcc[_0x2a33ad(0x1e2,'\x30\x21\x32\x49')]),_0x21ee0f=_0xeb5bcc[_0x2a33ad(0x1d3,'\x28\x25\x4a\x4a')]+(_0x2a33ad(0x28b,'\x42\x47\x62\x7a')+_0x2a33ad(0x252,'\x30\x21\x32\x49')+_0x2a33ad(0x134,'\x68\x53\x21\x36'))+(_0xeb5bcc[_0x2a33ad(0x22e,'\x32\x45\x4c\x71')][_0x2a33ad(0x27d,'\x32\x45\x4c\x71')]?'\x20\x28'+_0xeb5bcc[_0x2a33ad(0x287,'\x47\x77\x70\x61')][_0x2a33ad(0x182,'\x21\x69\x77\x43')](0x1284+0x18ef+0x635*-0x7,-0xcff+0x1*0x1e62+-0x1161)[_0x2a33ad(0x232,'\x46\x6e\x42\x75')]('\x3b\x20')+'\x29':'');_0x19cb26[_0x2a33ad(0x17d,'\x63\x30\x5e\x5b')](candidate(_0x2a33ad(0x1b3,'\x47\x77\x70\x61')+_0x2a33ad(0x1a3,'\x6e\x6c\x6d\x55'),stableHash('\x66\x61\x69\x6c\x65\x64\x3a'+_0x47c895),_0x4b8387,_0x25a030,_0x21ee0f,_0xeb5bcc[_0x2a33ad(0x258,'\x63\x5b\x6b\x64')]));}}const _0x5db222=new Set(),_0x3e484c=[];for(const _0x2981f9 of _0x19cb26){if(_0x5db222[_0x2a33ad(0x273,'\x4d\x62\x6d\x73')](_0x2981f9['\x69\x64']))continue;_0x5db222['\x61\x64\x64'](_0x2981f9['\x69\x64']),_0x3e484c['\x70\x75\x73\x68'](_0x2981f9);}return _0x3e484c;}
|
package/dist/algo/confidence.js
CHANGED
|
@@ -1,196 +1 @@
|
|
|
1
|
-
// Preferred-gene confidence edges (positive cross-cycle learning, ported from v1 src/gep/memoryGraph.js,
|
|
2
|
-
// adapted to v2's derive-from-events model). The negative side (ban / epigenetic penalty) is already ported;
|
|
3
|
-
// this is the missing POSITIVE half: a gene that keeps succeeding under a given signal fingerprint should be
|
|
4
|
-
// nudged UP in ranking for that fingerprint — without ever resurrecting a gene that a hard gate excluded.
|
|
5
|
-
//
|
|
6
|
-
// Sidecar principle (same as epigenetics.ts): edges are DERIVED from the append-only root_events log at
|
|
7
|
-
// selection time. We never mutate an asset, never add an asset field, never persist a separate store — so
|
|
8
|
-
// asset_id stays stable and the edges can be replayed byte-for-byte from the events alone.
|
|
9
|
-
//
|
|
10
|
-
// Edge key: (signalFingerprint, geneId). Edge value: { successCount, failCount, inertCount, lastAt, confidence },
|
|
11
|
-
// where confidence is a Laplace-smoothed, half-life-decayed expected success rate in [0, 1] (port of v1
|
|
12
|
-
// edgeExpectedSuccess). The fingerprint is a stable, deterministic digest of the signal set (port of v1
|
|
13
|
-
// computeSignalKey): sorted, de-duplicated, normalized — so the same signals always map to the same edge.
|
|
14
|
-
//
|
|
15
|
-
// This file also carries the negative #195 half of the same scoring data: an `inert` (zero-work) outcome
|
|
16
|
-
// builds no confidence (tallied apart as inertCount), and `inertBannedGeneIds` bans a gene stuck producing only
|
|
17
|
-
// inert cycles on a signal — so a sole-matching do-nothing gene can no longer dominate `--loop` selection.
|
|
18
|
-
//
|
|
19
|
-
// Purity: no Date.now(), no Math.random(). Time enters only through event timestamps and an injected `now`.
|
|
20
|
-
import { createHash } from 'node:crypto';
|
|
21
|
-
/** Default half-life for confidence decay (days). Aligned with v1 edgeExpectedSuccess half_life_days=30. */
|
|
22
|
-
export const CONFIDENCE_HALF_LIFE_DAYS = 30;
|
|
23
|
-
const MS_PER_DAY = 24 * 60 * 60 * 1000;
|
|
24
|
-
/**
|
|
25
|
-
* Composite map key for an edge: `<fingerprint>::<geneId>`. The fingerprint is fixed-length hex (no `:`), so
|
|
26
|
-
* `::` is an unambiguous separator. Exported so callers/tests look edges up the same way they are stored,
|
|
27
|
-
* instead of hand-building the key string.
|
|
28
|
-
*/
|
|
29
|
-
export function confidenceEdgeKey(signalFingerprint, geneId) {
|
|
30
|
-
return `${signalFingerprint}::${geneId}`;
|
|
31
|
-
}
|
|
32
|
-
/**
|
|
33
|
-
* Stable signal fingerprint (port of v1 computeSignalKey): normalize → de-duplicate → sort → digest.
|
|
34
|
-
* Deterministic and order-independent, so the same signal SET always yields the same fingerprint.
|
|
35
|
-
* An empty set maps to a fixed sentinel digest so "no signals" is still a well-defined edge key.
|
|
36
|
-
*/
|
|
37
|
-
export function signalFingerprint(signals) {
|
|
38
|
-
const norm = (Array.isArray(signals) ? signals : [])
|
|
39
|
-
.map((s) => String(s ?? '').trim())
|
|
40
|
-
.filter((s) => s.length > 0);
|
|
41
|
-
const uniqSorted = Array.from(new Set(norm)).sort();
|
|
42
|
-
const canonical = uniqSorted.length > 0 ? uniqSorted.join('|') : '(none)';
|
|
43
|
-
// Short, collision-resistant, deterministic. 16 hex chars (64 bits) is ample for an edge key.
|
|
44
|
-
return createHash('sha256').update(canonical, 'utf8').digest('hex').slice(0, 16);
|
|
45
|
-
}
|
|
46
|
-
/**
|
|
47
|
-
* Laplace-smoothed expected success rate (port of v1 edgeExpectedSuccess, smoothing only — decay is separate).
|
|
48
|
-
* p = (success + 1) / (success + fail + 2). With zero evidence this is 0.5 (a neutral prior), not 0 or 1.
|
|
49
|
-
*/
|
|
50
|
-
function laplaceSuccessRate(success, fail) {
|
|
51
|
-
const total = success + fail;
|
|
52
|
-
return (success + 1) / (total + 2);
|
|
53
|
-
}
|
|
54
|
-
/**
|
|
55
|
-
* Half-life decay weight in (0,1] (port of v1 decayWeight): 0.5^(ageDays / halfLife).
|
|
56
|
-
* Age is measured from the edge's lastAt to `now`. Future/zero/negative age → no decay (weight 1).
|
|
57
|
-
*/
|
|
58
|
-
export function decayWeight(lastAt, now, halfLifeDays = CONFIDENCE_HALF_LIFE_DAYS) {
|
|
59
|
-
if (!Number.isFinite(halfLifeDays) || halfLifeDays <= 0)
|
|
60
|
-
return 1;
|
|
61
|
-
if (!Number.isFinite(lastAt) || !Number.isFinite(now))
|
|
62
|
-
return 1;
|
|
63
|
-
const ageDays = (now - lastAt) / MS_PER_DAY;
|
|
64
|
-
if (!Number.isFinite(ageDays) || ageDays <= 0)
|
|
65
|
-
return 1;
|
|
66
|
-
return Math.pow(0.5, ageDays / halfLifeDays);
|
|
67
|
-
}
|
|
68
|
-
/**
|
|
69
|
-
* Derive confidence edges from a flat list of per-(fingerprint, gene) outcome observations.
|
|
70
|
-
* Pure and deterministic: the same observations (in any order — we track the max `at` for lastAt) always
|
|
71
|
-
* produce the same edges. This is the replay primitive — feed it the observations re-extracted from
|
|
72
|
-
* root_events and you get byte-identical edges back.
|
|
73
|
-
*/
|
|
74
|
-
export function deriveConfidenceEdges(observations) {
|
|
75
|
-
const map = new Map();
|
|
76
|
-
for (const o of observations) {
|
|
77
|
-
if (!o || !o.geneId || !o.signalFingerprint)
|
|
78
|
-
continue;
|
|
79
|
-
if (o.status !== 'success' && o.status !== 'failed' && o.status !== 'inert')
|
|
80
|
-
continue;
|
|
81
|
-
const k = confidenceEdgeKey(o.signalFingerprint, o.geneId);
|
|
82
|
-
const cur = map.get(k) ?? {
|
|
83
|
-
signalFingerprint: o.signalFingerprint,
|
|
84
|
-
geneId: o.geneId,
|
|
85
|
-
successCount: 0,
|
|
86
|
-
failCount: 0,
|
|
87
|
-
inertCount: 0,
|
|
88
|
-
lastAt: 0,
|
|
89
|
-
baseConfidence: 0,
|
|
90
|
-
};
|
|
91
|
-
// #195: inert (zero-work) outcomes are tallied apart — they must NOT raise success/fail counts, so they
|
|
92
|
-
// build no positive confidence. They still advance lastAt (the gene WAS exercised; freshness is real).
|
|
93
|
-
if (o.status === 'success')
|
|
94
|
-
cur.successCount += 1;
|
|
95
|
-
else if (o.status === 'failed')
|
|
96
|
-
cur.failCount += 1;
|
|
97
|
-
else
|
|
98
|
-
cur.inertCount += 1;
|
|
99
|
-
const at = Number.isFinite(o.at) ? o.at : 0;
|
|
100
|
-
if (at > cur.lastAt)
|
|
101
|
-
cur.lastAt = at;
|
|
102
|
-
map.set(k, cur);
|
|
103
|
-
}
|
|
104
|
-
// Finalize baseConfidence once counts are known. Inert outcomes are excluded from the smoothing inputs, so an
|
|
105
|
-
// all-inert edge has success=0/fail=0 → the neutral 0.5 prior (no climb toward 1.0). Order-independent: the
|
|
106
|
-
// result is a pure function of the observation SET (counts + max `at`), never their sequence.
|
|
107
|
-
for (const edge of map.values()) {
|
|
108
|
-
edge.baseConfidence = laplaceSuccessRate(edge.successCount, edge.failCount);
|
|
109
|
-
}
|
|
110
|
-
return map;
|
|
111
|
-
}
|
|
112
|
-
/**
|
|
113
|
-
* Query the confidence of `geneId` under `signalFingerprint` at time `now`, in [0,1].
|
|
114
|
-
* = baseConfidence (Laplace-smoothed success rate) × half-life decay weight.
|
|
115
|
-
* Returns 0 when there is no edge (no history) so a never-tried gene gets no positive nudge —
|
|
116
|
-
* absence of evidence is not evidence of success — and 0 for a purely-inert edge (only zero-work cycles),
|
|
117
|
-
* so a do-nothing gene gets the same zero nudge as a never-tried one (#195).
|
|
118
|
-
*/
|
|
119
|
-
export function confidenceFor(edges, signalFingerprint, geneId, now, halfLifeDays = CONFIDENCE_HALF_LIFE_DAYS) {
|
|
120
|
-
const edge = edges.get(confidenceEdgeKey(signalFingerprint, geneId));
|
|
121
|
-
if (!edge)
|
|
122
|
-
return 0;
|
|
123
|
-
// #195: a purely-inert edge (only zero-work cycles — no real success or failure) carries no positive evidence,
|
|
124
|
-
// so it must give the SAME zero nudge as a never-tried gene, not the neutral-prior 0.5 (which would leak a
|
|
125
|
-
// +CONFIDENCE_WEIGHT×0.5 boost and let a do-nothing gene out-rank an equal-health fresh candidate before the
|
|
126
|
-
// inert ban trips). Mirrors v1's hasPositiveEvidence (success>0) gate. A fail-only edge keeps its small Laplace
|
|
127
|
-
// nudge unchanged — that is pre-existing v2 behavior, out of #195's scope.
|
|
128
|
-
if (edge.successCount === 0 && edge.failCount === 0)
|
|
129
|
-
return 0;
|
|
130
|
-
const w = decayWeight(edge.lastAt, now, halfLifeDays);
|
|
131
|
-
const c = edge.baseConfidence * w;
|
|
132
|
-
return c < 0 ? 0 : c > 1 ? 1 : c;
|
|
133
|
-
}
|
|
134
|
-
/**
|
|
135
|
-
* Consecutive inert (zero-work) outcomes on a (fingerprint, gene) edge after which a gene with NO real success
|
|
136
|
-
* on that signal is banned, so `--loop` selection explores instead of re-running a do-nothing gene (#195).
|
|
137
|
-
* Port of v1 `GENE_INERT_BAN_STREAK` (env `EVOLVER_GENE_INERT_BAN_STREAK`, default 8); kept an inline const to
|
|
138
|
-
* match v2's algo-tunable convention (BAN_THRESHOLD / MIN_ENV_ATTEMPTS), not env-driven.
|
|
139
|
-
*/
|
|
140
|
-
export const GENE_INERT_BAN_STREAK = 8;
|
|
141
|
-
/**
|
|
142
|
-
* Observation window (in raw events) over which the inert ban is derived — deliberately MUCH wider than the
|
|
143
|
-
* small recency window used for confidence SCORING. A banned gene runs as `ad-hoc` and accrues no new
|
|
144
|
-
* observation for itself, so its trailing inert run must be recomputed from a history wide enough that
|
|
145
|
-
* intervening innovate/ad-hoc cycles cannot evict it — and cannot evict an earlier real success that exempts
|
|
146
|
-
* the gene (`successCount > 0`). With a small window the run/exemption age out purely from unrelated cycles, so
|
|
147
|
-
* the ban flaps: the do-nothing gene resurfaces and the productive gene gets falsely banned (#195 regression).
|
|
148
|
-
* ~14000 events ≈ 2000 cycles, mirroring v1's multi-hundred-cycle memory-graph read horizon: far past any
|
|
149
|
-
* realistic flap window, yet still bounded (a long-idle gene's stale success eventually ages out, matching v1).
|
|
150
|
-
* `EventStore.tail()` reads the entire log regardless of window size, so a larger window costs no extra I/O.
|
|
151
|
-
*/
|
|
152
|
-
export const INERT_BAN_OBSERVATION_WINDOW = 14_000;
|
|
153
|
-
/**
|
|
154
|
-
* Trailing consecutive-inert run per (fingerprint, gene), keyed by `confidenceEdgeKey`. Unlike
|
|
155
|
-
* `deriveConfidenceEdges` (a pure function of the observation SET), this is deliberately order-DEPENDENT: it
|
|
156
|
-
* counts inert outcomes from the most recent backward and ANY real success/failure resets the run to 0 — so a
|
|
157
|
-
* gene that ever does real work is never punished for older idle cycles. Input MUST be chronological
|
|
158
|
-
* (oldest→newest, i.e. the order `ingestor.tail` yields); the trailing run is the value left after the final
|
|
159
|
-
* observation per edge.
|
|
160
|
-
*/
|
|
161
|
-
export function trailingInertByEdge(observations) {
|
|
162
|
-
const run = new Map();
|
|
163
|
-
for (const o of observations) {
|
|
164
|
-
if (!o || !o.geneId || !o.signalFingerprint)
|
|
165
|
-
continue;
|
|
166
|
-
const k = confidenceEdgeKey(o.signalFingerprint, o.geneId);
|
|
167
|
-
if (o.status === 'inert')
|
|
168
|
-
run.set(k, (run.get(k) ?? 0) + 1);
|
|
169
|
-
else if (o.status === 'success' || o.status === 'failed')
|
|
170
|
-
run.set(k, 0); // any real outcome breaks the run
|
|
171
|
-
}
|
|
172
|
-
return run;
|
|
173
|
-
}
|
|
174
|
-
/**
|
|
175
|
-
* Gene ids to ban for the CURRENT signal fingerprint because they are stuck producing inert (zero-work)
|
|
176
|
-
* cycles (#195). A gene is banned iff, on this fingerprint's edge, its trailing inert run ≥ `streak` AND it has
|
|
177
|
-
* ZERO real success on this signal (double guard: the consecutive run is reset by any real outcome, and a gene
|
|
178
|
-
* that ever truly succeeded here keeps successCount > 0). Banning a sole-matching inert gene lets selection
|
|
179
|
-
* fall through to mutation (selected:null → fresh gene), restoring diversity — the failure-streak ban never
|
|
180
|
-
* fires on these because nothing "fails". Per-signal, mirroring v1's per-signal-key ban: a gene idle on THIS
|
|
181
|
-
* signal can still be tried on others.
|
|
182
|
-
*/
|
|
183
|
-
export function inertBannedGeneIds(edges, observations, fingerprint, streak = GENE_INERT_BAN_STREAK) {
|
|
184
|
-
const trailing = trailingInertByEdge(observations);
|
|
185
|
-
const banned = new Set();
|
|
186
|
-
for (const edge of edges.values()) {
|
|
187
|
-
if (edge.signalFingerprint !== fingerprint)
|
|
188
|
-
continue;
|
|
189
|
-
if (edge.successCount > 0)
|
|
190
|
-
continue; // ever did real work here → never banned for idle cycles
|
|
191
|
-
const k = confidenceEdgeKey(fingerprint, edge.geneId);
|
|
192
|
-
if ((trailing.get(k) ?? 0) >= streak)
|
|
193
|
-
banned.add(edge.geneId);
|
|
194
|
-
}
|
|
195
|
-
return banned;
|
|
196
|
-
}
|
|
1
|
+
(function(_0x1bfef2,_0x404367){const _0x5631ae=_0xbb97,_0x32343e=_0x1bfef2();while(!![]){try{const _0x402cd2=-parseInt(_0x5631ae(0xcd,'\x51\x51\x39\x44'))/(0xc7*0x29+-0x134b+-0xc93)*(parseInt(_0x5631ae(0xe7,'\x77\x32\x58\x4c'))/(-0x1194+0x39d+-0x1*-0xdf9))+-parseInt(_0x5631ae(0xef,'\x5a\x66\x28\x2a'))/(0x1*-0x4af+-0x2*-0xb96+-0x127a)*(-parseInt(_0x5631ae(0x120,'\x67\x6d\x4b\x42'))/(-0x5*-0x16d+0x11d4+-0x18f1))+-parseInt(_0x5631ae(0xd7,'\x79\x34\x2a\x6f'))/(-0xfe+0x1822+-0x171f)+-parseInt(_0x5631ae(0x100,'\x55\x6f\x4d\x37'))/(-0x1*0x259d+-0x1fa8+-0x1*-0x454b)+-parseInt(_0x5631ae(0xcb,'\x66\x57\x23\x75'))/(0x73*0xc+-0x835*0x1+0x2d8)+parseInt(_0x5631ae(0x10b,'\x31\x59\x24\x62'))/(0x1c08+-0xc58*0x1+0x7d4*-0x2)*(parseInt(_0x5631ae(0x127,'\x7a\x7a\x5b\x62'))/(0x147*0x15+0x3*-0x43f+-0x3*0x4af))+parseInt(_0x5631ae(0x10c,'\x79\x34\x2a\x6f'))/(-0xcf7*-0x2+0x968+0x5e2*-0x6)*(parseInt(_0x5631ae(0xf6,'\x44\x55\x63\x72'))/(-0x12f1*0x1+-0x2*0xf72+-0x2a0*-0x13));if(_0x402cd2===_0x404367)break;else _0x32343e['push'](_0x32343e['shift']());}catch(_0x2fea81){_0x32343e['push'](_0x32343e['shift']());}}}(_0x58ea,0x677e5+0x21*-0x32b+0x18d13));import{createHash}from'\x6e\x6f\x64\x65\x3a\x63\x72\x79\x70\x74\x6f';export const CONFIDENCE_HALF_LIFE_DAYS=-0x115a+0x1969*0x1+0x6b*-0x13;const MS_PER_DAY=(-0x5*-0x782+-0xccc+-0x18a6)*(0x2*0xc16+-0xde5+0x1*-0xa0b)*(-0x1*0xd+-0xef8+0xf41)*(-0x3c9+-0x204b*-0x1+-0x189a);function _0x58ea(){const _0x3c41c0=['\x44\x66\x68\x64\x4d\x38\x6b\x56','\x78\x38\x6f\x32\x57\x50\x30','\x57\x4f\x68\x63\x50\x43\x6f\x64\x57\x35\x47\x72\x57\x36\x65','\x57\x35\x66\x43\x57\x52\x47\x72','\x41\x73\x66\x2b','\x57\x35\x7a\x48\x57\x4f\x6d','\x57\x51\x6c\x64\x4b\x30\x6d\x75\x57\x52\x43\x30\x57\x52\x34\x39\x46\x71\x38\x6c\x57\x51\x35\x59','\x57\x50\x30\x6f\x77\x78\x6e\x58\x69\x57','\x57\x35\x4e\x63\x4f\x62\x71\x64\x57\x36\x52\x63\x55\x43\x6f\x54\x76\x6d\x6f\x77\x57\x51\x76\x36\x61\x47','\x57\x52\x42\x63\x51\x38\x6f\x73\x57\x37\x4f\x62','\x70\x53\x6b\x75\x68\x38\x6f\x37\x57\x34\x72\x64','\x57\x34\x66\x70\x57\x52\x53\x6a\x43\x53\x6b\x6d','\x57\x51\x2f\x63\x4b\x6d\x6b\x42\x57\x50\x38','\x57\x37\x69\x59\x6d\x53\x6f\x66\x41\x57','\x61\x38\x6f\x79\x57\x4f\x68\x63\x4a\x53\x6f\x30\x57\x52\x70\x64\x48\x74\x56\x64\x49\x6d\x6f\x6b\x57\x50\x52\x64\x4f\x76\x71\x46','\x6b\x67\x54\x31\x79\x6d\x6b\x69\x6a\x47','\x57\x37\x33\x63\x52\x63\x56\x63\x48\x48\x6d\x45','\x6a\x4d\x33\x64\x49\x4d\x79\x65\x57\x50\x76\x58','\x6a\x5a\x78\x63\x49\x4a\x72\x33\x57\x36\x61\x5a\x65\x53\x6f\x6a\x57\x4f\x54\x6c\x57\x50\x4e\x63\x50\x57','\x7a\x67\x2f\x64\x49\x57','\x57\x36\x68\x64\x53\x6d\x6b\x70\x57\x50\x52\x63\x48\x31\x53\x54\x57\x35\x34','\x73\x38\x6b\x76\x64\x71','\x57\x50\x68\x63\x49\x32\x4e\x63\x55\x73\x74\x64\x4a\x57','\x66\x53\x6b\x34\x57\x35\x4b','\x6b\x4b\x46\x63\x4b\x63\x6c\x63\x4b\x6d\x6f\x2b','\x57\x36\x78\x63\x4c\x62\x48\x66\x57\x36\x72\x30\x57\x37\x47','\x57\x35\x37\x63\x4f\x31\x6a\x58\x57\x4f\x64\x64\x4f\x6d\x6f\x67\x77\x47','\x57\x52\x4a\x64\x51\x78\x56\x64\x49\x31\x35\x45\x57\x37\x68\x63\x47\x43\x6f\x7a\x57\x34\x37\x64\x4e\x38\x6f\x75','\x45\x43\x6f\x48\x57\x4f\x79\x68\x57\x35\x38','\x57\x34\x39\x64\x6c\x72\x7a\x36\x42\x47','\x57\x50\x4b\x59\x70\x62\x52\x63\x47\x38\x6b\x64','\x46\x63\x31\x4d\x63\x4e\x58\x54','\x6d\x33\x74\x63\x4a\x43\x6f\x35\x57\x35\x79\x52\x57\x50\x4e\x63\x4e\x61','\x57\x36\x6c\x63\x4b\x58\x6a\x6c','\x57\x50\x44\x50\x57\x4f\x65\x4a\x57\x50\x79\x34\x6a\x71','\x57\x52\x62\x55\x57\x4f\x47\x30\x44\x38\x6b\x6d\x57\x50\x6a\x41','\x57\x50\x5a\x64\x50\x65\x7a\x7a\x57\x52\x46\x64\x55\x43\x6f\x4d','\x77\x43\x6f\x41\x57\x34\x66\x66\x6a\x43\x6b\x54','\x57\x34\x58\x51\x57\x50\x69\x32\x57\x51\x65\x2f\x6f\x6d\x6b\x48','\x57\x50\x30\x33\x6b\x71','\x57\x4f\x56\x63\x48\x43\x6b\x37\x57\x35\x78\x64\x50\x5a\x4f','\x57\x35\x70\x64\x4c\x43\x6b\x30\x6e\x53\x6f\x65\x76\x53\x6b\x54\x57\x52\x53','\x71\x6d\x6f\x56\x57\x35\x52\x64\x4b\x76\x78\x63\x50\x33\x5a\x64\x52\x57','\x6b\x67\x39\x4f\x43\x38\x6b\x39\x6f\x47','\x57\x37\x46\x64\x56\x6d\x6f\x42\x57\x35\x71\x47\x42\x57','\x75\x6d\x6f\x79\x57\x34\x50\x73\x68\x6d\x6b\x37\x57\x35\x61\x66','\x77\x43\x6f\x6b\x6b\x57','\x57\x52\x75\x76\x57\x4f\x47\x55\x57\x51\x66\x62\x57\x36\x30\x6e','\x57\x50\x43\x75\x45\x30\x6d\x34\x6e\x43\x6f\x59\x57\x52\x58\x65\x6c\x47\x48\x34\x63\x61','\x64\x4e\x74\x63\x56\x6d\x6b\x50\x78\x53\x6f\x78\x57\x37\x70\x64\x52\x61','\x57\x52\x37\x63\x50\x53\x6b\x38\x57\x50\x33\x63\x55\x4e\x4f\x68\x57\x34\x43','\x57\x34\x37\x64\x48\x38\x6b\x59\x6a\x38\x6f\x72\x76\x38\x6b\x33\x57\x50\x79','\x71\x43\x6f\x44\x57\x34\x4b\x30\x57\x4f\x2f\x64\x51\x71','\x57\x35\x7a\x4f\x57\x50\x34\x4e\x57\x52\x61','\x71\x53\x6f\x67\x6e\x63\x46\x63\x54\x65\x6e\x7a\x57\x51\x38','\x57\x4f\x78\x63\x47\x43\x6b\x51','\x78\x38\x6b\x65\x67\x6d\x6b\x51\x57\x34\x48\x6d','\x61\x43\x6b\x36\x72\x58\x6e\x6f\x57\x52\x6d','\x41\x48\x7a\x7a\x65\x43\x6f\x59\x71\x53\x6f\x41','\x6c\x33\x65\x39\x74\x49\x65\x50\x57\x4f\x37\x64\x56\x32\x58\x6d\x42\x77\x4a\x63\x4a\x71','\x76\x73\x52\x63\x47\x38\x6b\x59','\x75\x53\x6f\x57\x57\x52\x47\x53\x57\x34\x5a\x63\x4e\x57','\x63\x43\x6b\x6c\x57\x50\x53\x77\x78\x43\x6f\x2f\x57\x35\x71\x4e\x57\x37\x70\x64\x55\x64\x78\x63\x4b\x47','\x57\x50\x46\x63\x4b\x4d\x52\x63\x54\x4a\x68\x64\x48\x53\x6f\x4f\x72\x57','\x57\x50\x64\x64\x55\x6d\x6b\x66\x79\x43\x6b\x47\x46\x53\x6f\x70\x41\x61','\x57\x34\x42\x64\x47\x43\x6b\x2b\x6f\x43\x6f\x49\x73\x53\x6b\x52\x57\x50\x79','\x57\x52\x4f\x68\x57\x51\x43\x52\x57\x51\x50\x6d','\x57\x50\x68\x64\x56\x6d\x6b\x63\x41\x6d\x6b\x51\x44\x71','\x57\x52\x69\x62\x57\x51\x53\x31\x57\x52\x39\x41\x57\x37\x61\x67','\x57\x4f\x70\x64\x52\x48\x2f\x64\x48\x53\x6f\x63\x57\x52\x2f\x64\x52\x71','\x57\x52\x78\x63\x55\x6d\x6b\x6c\x57\x4f\x6e\x4c\x70\x61\x74\x63\x4b\x65\x53\x68\x43\x65\x34','\x6a\x4a\x64\x63\x49\x64\x44\x57\x57\x36\x71\x32\x7a\x6d\x6f\x4a\x57\x4f\x62\x4d\x57\x52\x68\x63\x53\x47\x69','\x69\x4e\x65\x37\x72\x59\x53\x52\x57\x36\x78\x64\x55\x76\x48\x67\x42\x77\x79','\x57\x34\x72\x4a\x63\x58\x2f\x63\x4d\x43\x6b\x66\x64\x4b\x75','\x57\x52\x47\x70\x57\x51\x4b\x49\x57\x52\x58\x43','\x57\x50\x79\x58\x57\x34\x66\x58\x57\x36\x76\x6e\x7a\x38\x6b\x73\x61\x6d\x6f\x50\x69\x48\x74\x63\x53\x61','\x6c\x78\x4c\x61\x46\x43\x6b\x4e\x6f\x5a\x37\x64\x52\x57','\x57\x4f\x4b\x64\x74\x61','\x77\x53\x6f\x37\x57\x50\x37\x64\x53\x38\x6f\x51\x57\x34\x30','\x57\x37\x30\x33\x73\x47','\x57\x34\x79\x58\x57\x37\x74\x64\x53\x61','\x57\x52\x53\x64\x57\x51\x61\x49\x57\x4f\x7a\x6d','\x57\x51\x38\x70\x57\x51\x4b\x50\x57\x51\x35\x65\x57\x35\x38\x62','\x79\x38\x6f\x55\x57\x50\x43\x31\x79\x6d\x6f\x4b\x57\x52\x5a\x64\x4b\x47','\x57\x4f\x46\x64\x4f\x67\x4c\x38\x79\x6d\x6b\x54','\x66\x57\x47\x47\x62\x6d\x6b\x4f\x57\x50\x31\x74\x75\x61','\x57\x52\x46\x63\x4b\x38\x6b\x2f\x44\x47\x4b','\x57\x51\x33\x63\x49\x43\x6b\x37\x43\x61\x48\x67','\x71\x6d\x6f\x48\x57\x52\x62\x58','\x57\x50\x30\x74\x77\x59\x69\x48\x7a\x4b\x57','\x57\x51\x4b\x73\x57\x51\x48\x2f','\x57\x35\x6c\x63\x51\x67\x2f\x63\x4a\x43\x6b\x63\x57\x36\x52\x64\x4a\x43\x6b\x6d\x43\x6d\x6b\x4c\x6a\x53\x6b\x56','\x78\x38\x6b\x43\x65\x6d\x6b\x39\x57\x35\x47','\x43\x62\x62\x37\x61\x6d\x6f\x4c\x75\x6d\x6f\x71\x57\x34\x79','\x57\x50\x37\x63\x4a\x43\x6b\x31\x57\x35\x46\x64\x4f\x5a\x6c\x63\x52\x43\x6b\x31','\x6f\x78\x64\x63\x49\x53\x6f\x59\x57\x36\x65\x53','\x57\x36\x6c\x63\x55\x74\x4e\x63\x48\x49\x43\x7a','\x57\x37\x68\x64\x55\x43\x6f\x43\x57\x35\x79\x58\x45\x72\x52\x63\x4e\x57','\x67\x6d\x6f\x66\x6b\x38\x6b\x31\x57\x34\x72\x43\x57\x34\x4b\x52','\x71\x53\x6b\x43\x57\x35\x74\x64\x4a\x6d\x6b\x32\x57\x37\x75','\x71\x53\x6b\x62\x57\x35\x6c\x64\x4c\x53\x6b\x49\x57\x36\x52\x63\x54\x4d\x69','\x77\x6d\x6f\x43\x66\x73\x64\x63\x55\x30\x7a\x52\x57\x51\x6d','\x57\x4f\x64\x63\x48\x43\x6b\x49','\x57\x52\x78\x63\x55\x53\x6b\x32','\x65\x6d\x6b\x4e\x57\x36\x52\x63\x53\x47\x4b\x38\x61\x68\x61','\x74\x53\x6b\x58\x72\x48\x48\x49\x57\x37\x34','\x45\x43\x6f\x59\x57\x51\x6d\x4f','\x57\x51\x69\x73\x41\x61\x38\x45','\x57\x52\x42\x63\x49\x38\x6b\x74\x57\x4f\x75\x31\x64\x57','\x57\x36\x30\x39\x6f\x38\x6f\x63\x45\x53\x6f\x58','\x43\x31\x42\x64\x4b\x43\x6b\x48\x57\x34\x48\x59\x6b\x66\x30'];_0x58ea=function(){return _0x3c41c0;};return _0x58ea();}export function confidenceEdgeKey(_0x1d60ee,_0x587bcb){return _0x1d60ee+'\x3a\x3a'+_0x587bcb;}export function signalFingerprint(_0x11644c){const _0x3c6e35=_0xbb97,_0x22ae66=(Array[_0x3c6e35(0xff,'\x77\x77\x6c\x79')](_0x11644c)?_0x11644c:[])[_0x3c6e35(0x12b,'\x38\x69\x56\x6c')](_0x12afc4=>String(_0x12afc4??'')[_0x3c6e35(0xe6,'\x66\x57\x23\x75')]())['\x66\x69\x6c\x74\x65\x72'](_0x25e67a=>_0x25e67a['\x6c\x65\x6e\x67\x74\x68']>0x3*-0xa30+0x1b70+0x320),_0x5f4924=Array['\x66\x72\x6f\x6d'](new Set(_0x22ae66))['\x73\x6f\x72\x74'](),_0x4964ac=_0x5f4924[_0x3c6e35(0x124,'\x23\x4a\x51\x62')]>-0x2551+-0x170a+0x3c5b?_0x5f4924[_0x3c6e35(0xd1,'\x65\x46\x72\x65')]('\x7c'):_0x3c6e35(0xdd,'\x43\x6a\x40\x31');return createHash(_0x3c6e35(0xcc,'\x23\x51\x57\x4d'))[_0x3c6e35(0xf1,'\x31\x59\x24\x62')](_0x4964ac,_0x3c6e35(0x11f,'\x56\x4f\x39\x45'))[_0x3c6e35(0x113,'\x6d\x5b\x53\x4e')](_0x3c6e35(0xfc,'\x38\x69\x56\x6c'))[_0x3c6e35(0xfa,'\x77\x32\x58\x4c')](-0x1fde+-0x109b+-0x3079*-0x1,0x1*-0x4+0x455*0x7+-0x1e3f*0x1);}function laplaceSuccessRate(_0x4c87c8,_0x130306){const _0x3b0db8=_0x4c87c8+_0x130306;return(_0x4c87c8+(-0x15*-0x167+0x181e+0x6b2*-0x8))/(_0x3b0db8+(-0x18b8+-0x3*0x109+0x1bd5));}function _0xbb97(_0x2faaf2,_0x54b395){_0x2faaf2=_0x2faaf2-(-0x212*0x5+0x1b6f+-0x104c);const _0x569939=_0x58ea();let _0x3590b4=_0x569939[_0x2faaf2];if(_0xbb97['\x6b\x65\x73\x79\x4b\x6e']===undefined){var _0x35b26b=function(_0x4d1f62){const _0x4a2aa0='\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 _0x1c3267='',_0x2759d2='';for(let _0x5d31ee=-0x683+0x2f2+0x53*0xb,_0x508792,_0x1184da,_0x2be63a=0x245a+-0x3a1+0x1*-0x20b9;_0x1184da=_0x4d1f62['\x63\x68\x61\x72\x41\x74'](_0x2be63a++);~_0x1184da&&(_0x508792=_0x5d31ee%(-0x18a7+-0x1*-0xe69+0xa42)?_0x508792*(0x2f*-0x59+0x2*0xb08+-0x579)+_0x1184da:_0x1184da,_0x5d31ee++%(0xb5a+-0x183b+-0x1*-0xce5))?_0x1c3267+=String['\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65'](0x11*-0x147+0x251b*0x1+0x1*-0xe65&_0x508792>>(-(-0x59*-0xd+-0x243b+0x1fb8)*_0x5d31ee&-0x1d*0x146+0x2*-0x1357+0x4ba2)):-0x940+0x1faf+-0x1*0x166f){_0x1184da=_0x4a2aa0['\x69\x6e\x64\x65\x78\x4f\x66'](_0x1184da);}for(let _0x77d203=0x2475+-0xf20*0x1+-0x1555,_0x4ea53c=_0x1c3267['\x6c\x65\x6e\x67\x74\x68'];_0x77d203<_0x4ea53c;_0x77d203++){_0x2759d2+='\x25'+('\x30\x30'+_0x1c3267['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x77d203)['\x74\x6f\x53\x74\x72\x69\x6e\x67'](-0x16a3+-0x11*0xc1+0x2384))['\x73\x6c\x69\x63\x65'](-(-0x13fe+0x1a1e*-0x1+0x2e1e));}return decodeURIComponent(_0x2759d2);};const _0x53a183=function(_0x240985,_0x29b055){let _0x3e9dcd=[],_0x231d89=-0x23bf+0xe2c+0x15*0x107,_0x40c0d2,_0x91e1e8='';_0x240985=_0x35b26b(_0x240985);let _0x351496;for(_0x351496=0x1*0xc55+0x1276+-0x1ecb;_0x351496<0x1*0x5dd+0x1bd0+-0x20ad;_0x351496++){_0x3e9dcd[_0x351496]=_0x351496;}for(_0x351496=-0x39*-0x5e+0x735+-0x7*0x405;_0x351496<0x1454+0x25d7+0x5*-0xb6f;_0x351496++){_0x231d89=(_0x231d89+_0x3e9dcd[_0x351496]+_0x29b055['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x351496%_0x29b055['\x6c\x65\x6e\x67\x74\x68']))%(0x595*0x3+0x5*-0x20b+-0x588*0x1),_0x40c0d2=_0x3e9dcd[_0x351496],_0x3e9dcd[_0x351496]=_0x3e9dcd[_0x231d89],_0x3e9dcd[_0x231d89]=_0x40c0d2;}_0x351496=-0x115a+0x1969*0x1+0x80f*-0x1,_0x231d89=-0x5*-0x782+-0xccc+-0x18be;for(let _0x2d2595=0x2*0xc16+-0xde5+0x1*-0xa47;_0x2d2595<_0x240985['\x6c\x65\x6e\x67\x74\x68'];_0x2d2595++){_0x351496=(_0x351496+(-0x1*0xd+-0xef8+0xf06))%(-0x3c9+-0x204b*-0x1+-0x1b82),_0x231d89=(_0x231d89+_0x3e9dcd[_0x351496])%(0x3*-0xa30+0x1b70+0x420),_0x40c0d2=_0x3e9dcd[_0x351496],_0x3e9dcd[_0x351496]=_0x3e9dcd[_0x231d89],_0x3e9dcd[_0x231d89]=_0x40c0d2,_0x91e1e8+=String['\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65'](_0x240985['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x2d2595)^_0x3e9dcd[(_0x3e9dcd[_0x351496]+_0x3e9dcd[_0x231d89])%(-0x2551+-0x170a+0x3d5b)]);}return _0x91e1e8;};_0xbb97['\x41\x4f\x6f\x6a\x4a\x66']=_0x53a183,_0xbb97['\x4a\x76\x64\x4e\x42\x78']={},_0xbb97['\x6b\x65\x73\x79\x4b\x6e']=!![];}const _0x48ab2f=_0x569939[-0x1fde+-0x109b+-0x3079*-0x1],_0x4a80b8=_0x2faaf2+_0x48ab2f,_0x1de574=_0xbb97['\x4a\x76\x64\x4e\x42\x78'][_0x4a80b8];return!_0x1de574?(_0xbb97['\x62\x57\x46\x5a\x4c\x69']===undefined&&(_0xbb97['\x62\x57\x46\x5a\x4c\x69']=!![]),_0x3590b4=_0xbb97['\x41\x4f\x6f\x6a\x4a\x66'](_0x3590b4,_0x54b395),_0xbb97['\x4a\x76\x64\x4e\x42\x78'][_0x4a80b8]=_0x3590b4):_0x3590b4=_0x1de574,_0x3590b4;}export function decayWeight(_0x59880a,_0x3644ad,_0x325965=CONFIDENCE_HALF_LIFE_DAYS){const _0x92c42a=_0xbb97;if(!Number[_0x92c42a(0x12a,'\x71\x6e\x51\x39')](_0x325965)||_0x325965<=-0xc3b*-0x1+-0x1*0xa4d+0x1ee*-0x1)return 0xe87*-0x1+-0x50f*-0x3+-0x1*0xa5;if(!Number[_0x92c42a(0x118,'\x5d\x62\x24\x78')](_0x59880a)||!Number['\x69\x73\x46\x69\x6e\x69\x74\x65'](_0x3644ad))return-0x1776+0xeff+-0x10f*-0x8;const _0x455627=(_0x3644ad-_0x59880a)/MS_PER_DAY;if(!Number[_0x92c42a(0x111,'\x45\x52\x36\x57')](_0x455627)||_0x455627<=-0x1a87*-0x1+0x17ac+-0x3233)return 0x1*-0x1527+-0x52*-0x40+0x2*0x54;return Math[_0x92c42a(0xd8,'\x79\x34\x2a\x6f')](-0x5*0x1b1+0x4e*-0x43+0x185*0x13+0.5,_0x455627/_0x325965);}export function deriveConfidenceEdges(_0x34b64e){const _0x59397d=_0xbb97,_0x224132=new Map();for(const _0x2d838e of _0x34b64e){if(!_0x2d838e||!_0x2d838e[_0x59397d(0x102,'\x5e\x38\x37\x41')]||!_0x2d838e[_0x59397d(0x123,'\x38\x69\x56\x6c')+_0x59397d(0xf7,'\x71\x6b\x48\x5a')+'\x74'])continue;if(_0x2d838e[_0x59397d(0xd5,'\x66\x56\x35\x54')]!==_0x59397d(0xde,'\x66\x57\x23\x75')&&_0x2d838e[_0x59397d(0xfd,'\x7a\x7a\x5b\x62')]!==_0x59397d(0xed,'\x38\x69\x56\x6c')&&_0x2d838e[_0x59397d(0x128,'\x79\x74\x26\x38')]!==_0x59397d(0xd2,'\x63\x56\x59\x38'))continue;const _0xe0e292=confidenceEdgeKey(_0x2d838e[_0x59397d(0x117,'\x56\x4f\x39\x45')+_0x59397d(0x109,'\x56\x4f\x39\x45')+'\x74'],_0x2d838e['\x67\x65\x6e\x65\x49\x64']),_0x46ed77=_0x224132[_0x59397d(0xdc,'\x5a\x66\x28\x2a')](_0xe0e292)??{'\x73\x69\x67\x6e\x61\x6c\x46\x69\x6e\x67\x65\x72\x70\x72\x69\x6e\x74':_0x2d838e[_0x59397d(0x104,'\x55\x66\x4d\x45')+_0x59397d(0xf8,'\x6a\x56\x78\x69')+'\x74'],'\x67\x65\x6e\x65\x49\x64':_0x2d838e[_0x59397d(0xea,'\x28\x46\x61\x2a')],'\x73\x75\x63\x63\x65\x73\x73\x43\x6f\x75\x6e\x74':0x0,'\x66\x61\x69\x6c\x43\x6f\x75\x6e\x74':0x0,'\x69\x6e\x65\x72\x74\x43\x6f\x75\x6e\x74':0x0,'\x6c\x61\x73\x74\x41\x74':0x0,'\x62\x61\x73\x65\x43\x6f\x6e\x66\x69\x64\x65\x6e\x63\x65':0x0};if(_0x2d838e['\x73\x74\x61\x74\x75\x73']===_0x59397d(0xe9,'\x51\x51\x39\x44'))_0x46ed77[_0x59397d(0x133,'\x57\x68\x40\x6f')+_0x59397d(0x115,'\x37\x24\x69\x7a')]+=-0x1237+-0x69b*0x1+0x5*0x4f7;else{if(_0x2d838e[_0x59397d(0x11c,'\x41\x54\x42\x7a')]===_0x59397d(0x136,'\x5d\x5b\x67\x6d'))_0x46ed77[_0x59397d(0x106,'\x6a\x56\x78\x69')+'\x74']+=0x1fa7+0xf4*-0x13+-0xd8a;else _0x46ed77[_0x59397d(0xeb,'\x77\x32\x58\x4c')+'\x6e\x74']+=0x177b+0x13fb+0x8b1*-0x5;}const _0x59bc77=Number[_0x59397d(0xf4,'\x56\x4f\x39\x45')](_0x2d838e['\x61\x74'])?_0x2d838e['\x61\x74']:-0xd81+0x54b+0x836;if(_0x59bc77>_0x46ed77[_0x59397d(0x125,'\x66\x56\x35\x54')])_0x46ed77['\x6c\x61\x73\x74\x41\x74']=_0x59bc77;_0x224132[_0x59397d(0xc9,'\x55\x6f\x4d\x37')](_0xe0e292,_0x46ed77);}for(const _0x11c78a of _0x224132[_0x59397d(0x132,'\x63\x56\x59\x38')]()){if(_0x59397d(0xce,'\x5d\x5b\x67\x6d')==='\x51\x6f\x78\x4e\x75')_0x11c78a[_0x59397d(0x11a,'\x23\x31\x59\x4f')+_0x59397d(0xcf,'\x63\x7a\x51\x35')]=laplaceSuccessRate(_0x11c78a[_0x59397d(0x122,'\x77\x77\x6c\x79')+'\x6f\x75\x6e\x74'],_0x11c78a[_0x59397d(0x105,'\x6e\x71\x31\x76')+'\x74']);else{const _0x1be18b=_0x152ff4+_0x5cfa90;return(_0x570d77+(-0x232b*-0x1+-0xa*-0x3c8+-0x2*0x247d))/(_0x1be18b+(-0x1525*-0x1+0xf*0x14f+-0x28c4));}}return _0x224132;}export function confidenceFor(_0x56eba7,_0x4194c0,_0x51099d,_0x256266,_0x7480ad=CONFIDENCE_HALF_LIFE_DAYS){const _0x21e741=_0xbb97,_0x3bb88a=_0x56eba7[_0x21e741(0xda,'\x7a\x7a\x5b\x62')](confidenceEdgeKey(_0x4194c0,_0x51099d));if(!_0x3bb88a)return 0x8*-0x305+-0x37*-0x23+0x10a3;if(_0x3bb88a[_0x21e741(0xee,'\x6a\x56\x78\x69')+'\x6f\x75\x6e\x74']===0x44f*-0x7+0x18d4+0x555&&_0x3bb88a[_0x21e741(0xe5,'\x23\x4a\x51\x62')+'\x74']===0xf6a+0x1*0xa65+-0x19cf)return 0x1b29+-0x1*0xf59+-0xbd0;const _0x4beefe=decayWeight(_0x3bb88a[_0x21e741(0xd4,'\x45\x52\x36\x57')],_0x256266,_0x7480ad),_0xe9c24f=_0x3bb88a[_0x21e741(0x12d,'\x33\x71\x32\x72')+_0x21e741(0xe3,'\x63\x48\x47\x6a')]*_0x4beefe;return _0xe9c24f<-0x6bd+-0xc8d+0x134a?-0xb5d+0x1816+-0xcb9*0x1:_0xe9c24f>0x1*-0x935+0x159*-0x19+0x2ae7?-0x1c6f*0x1+-0x1*0x434+0x1052*0x2:_0xe9c24f;}export const GENE_INERT_BAN_STREAK=-0x4*-0x599+-0x1*0x3b2+0x1*-0x12aa;export const INERT_BAN_OBSERVATION_WINDOW=-0x3a03*-0x1+-0x49e*-0x2+-0xc8f;export function trailingInertByEdge(_0x45d06e){const _0x5913ce=_0xbb97,_0x301c08=new Map();for(const _0x31fcec of _0x45d06e){if(_0x5913ce(0x130,'\x23\x51\x57\x4d')===_0x5913ce(0xe1,'\x5e\x38\x37\x41')){if(!_0x31fcec||!_0x31fcec[_0x5913ce(0x12e,'\x36\x28\x4b\x37')]||!_0x31fcec[_0x5913ce(0xfb,'\x71\x6e\x51\x39')+_0x5913ce(0xf2,'\x28\x46\x61\x2a')+'\x74'])continue;const _0x540ef8=confidenceEdgeKey(_0x31fcec[_0x5913ce(0x104,'\x55\x66\x4d\x45')+_0x5913ce(0xe8,'\x58\x23\x50\x78')+'\x74'],_0x31fcec[_0x5913ce(0x108,'\x6e\x71\x31\x76')]);if(_0x31fcec['\x73\x74\x61\x74\x75\x73']===_0x5913ce(0x11b,'\x41\x54\x42\x7a'))_0x301c08[_0x5913ce(0xca,'\x77\x32\x58\x4c')](_0x540ef8,(_0x301c08[_0x5913ce(0x112,'\x23\x51\x57\x4d')](_0x540ef8)??0x1*0x25c6+-0x1806+-0xdc0)+(-0x5*-0x8b+0x756+-0xa0c));else{if(_0x31fcec[_0x5913ce(0x131,'\x65\x46\x72\x65')]===_0x5913ce(0x11e,'\x23\x51\x57\x4d')||_0x31fcec[_0x5913ce(0x119,'\x5d\x57\x35\x72')]===_0x5913ce(0x107,'\x56\x4f\x39\x45'))_0x301c08[_0x5913ce(0x114,'\x42\x42\x7a\x6f')](_0x540ef8,-0x1217+-0x15cb+0x27e2*0x1);}}else{const _0xc856ae=(_0x4a7e9a[_0x5913ce(0x10a,'\x67\x6d\x4b\x42')](_0x2ec49b)?_0x2a6037:[])[_0x5913ce(0xec,'\x63\x48\x47\x6a')](_0x506f4a=>_0x409a69(_0x506f4a??'')[_0x5913ce(0x134,'\x57\x68\x40\x6f')]())[_0x5913ce(0xe4,'\x55\x6f\x4d\x37')](_0x348c0d=>_0x348c0d[_0x5913ce(0xf0,'\x45\x52\x36\x57')]>-0xf*-0x1fd+-0xc3e+0x1195*-0x1),_0x432249=_0x4a9dad[_0x5913ce(0x137,'\x4f\x2a\x62\x4d')](new _0x4ce155(_0xc856ae))[_0x5913ce(0x12f,'\x5d\x62\x24\x78')](),_0x4a36aa=_0x432249[_0x5913ce(0xe2,'\x29\x64\x28\x42')]>0x7*0x3d6+-0x439+-0x16a1?_0x432249[_0x5913ce(0x101,'\x44\x55\x63\x72')]('\x7c'):_0x5913ce(0xfe,'\x36\x28\x4b\x37');return _0x3dc173(_0x5913ce(0xf9,'\x4d\x63\x55\x70'))[_0x5913ce(0xdb,'\x55\x66\x4d\x45')](_0x4a36aa,_0x5913ce(0x11d,'\x5e\x38\x37\x41'))[_0x5913ce(0x10f,'\x56\x4f\x39\x45')](_0x5913ce(0xf3,'\x71\x6e\x51\x39'))[_0x5913ce(0x121,'\x7a\x7a\x5b\x62')](-0x1*0x38+0x1906*0x1+-0x18ce,0x21*-0xac+0x1*0x1743+-0x107);}}return _0x301c08;}export function inertBannedGeneIds(_0x7ad920,_0x2bd50f,_0x308944,_0x538a72=GENE_INERT_BAN_STREAK){const _0x19dd3d=_0xbb97,_0x3a13d9=trailingInertByEdge(_0x2bd50f),_0x5bd191=new Set();for(const _0x24de52 of _0x7ad920[_0x19dd3d(0xd0,'\x4f\x2a\x62\x4d')]()){if(_0x24de52[_0x19dd3d(0x129,'\x79\x74\x26\x38')+_0x19dd3d(0xf2,'\x28\x46\x61\x2a')+'\x74']!==_0x308944)continue;if(_0x24de52[_0x19dd3d(0x126,'\x31\x59\x24\x62')+'\x6f\x75\x6e\x74']>0x24*0x51+-0xd*0x85+0x4a3*-0x1)continue;const _0x4e1ffd=confidenceEdgeKey(_0x308944,_0x24de52[_0x19dd3d(0x116,'\x56\x4f\x39\x45')]);if((_0x3a13d9[_0x19dd3d(0x12c,'\x49\x58\x68\x36')](_0x4e1ffd)??0xd7+-0x3e2+0x30b)>=_0x538a72)_0x5bd191[_0x19dd3d(0x135,'\x6d\x5b\x53\x4e')](_0x24de52['\x67\x65\x6e\x65\x49\x64']);}return _0x5bd191;}
|