loopforge 2.11.0 → 3.2.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/README.md +4 -4
- package/dist/audit.d.ts +50 -0
- package/dist/audit.d.ts.map +1 -0
- package/dist/audit.js +158 -0
- package/dist/audit.js.map +1 -0
- package/dist/canonical-state.d.ts +21 -9
- package/dist/canonical-state.d.ts.map +1 -1
- package/dist/canonical-state.js +34 -16
- package/dist/canonical-state.js.map +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +16 -6
- package/dist/cli.js.map +1 -1
- package/dist/cognitive-governance.d.ts +40 -0
- package/dist/cognitive-governance.d.ts.map +1 -0
- package/dist/cognitive-governance.js +126 -0
- package/dist/cognitive-governance.js.map +1 -0
- package/dist/enforcement-gate.d.ts +8 -3
- package/dist/enforcement-gate.d.ts.map +1 -1
- package/dist/enforcement-gate.js +419 -92
- package/dist/enforcement-gate.js.map +1 -1
- package/dist/engine.d.ts +47 -7
- package/dist/engine.d.ts.map +1 -1
- package/dist/engine.js +303 -60
- package/dist/engine.js.map +1 -1
- package/dist/evidence-claims.d.ts +50 -0
- package/dist/evidence-claims.d.ts.map +1 -0
- package/dist/evidence-claims.js +134 -0
- package/dist/evidence-claims.js.map +1 -0
- package/dist/generate-schema.js +6 -1
- package/dist/generate-schema.js.map +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/loop-compiler.d.ts +41 -3
- package/dist/loop-compiler.d.ts.map +1 -1
- package/dist/loop-compiler.js +310 -38
- package/dist/loop-compiler.js.map +1 -1
- package/dist/loop-projection.d.ts +26 -0
- package/dist/loop-projection.d.ts.map +1 -0
- package/dist/loop-projection.js +142 -0
- package/dist/loop-projection.js.map +1 -0
- package/dist/loop-store.d.ts +91 -41
- package/dist/loop-store.d.ts.map +1 -1
- package/dist/loop-store.js +243 -173
- package/dist/loop-store.js.map +1 -1
- package/dist/mcp/round-lifecycle.d.ts +216 -0
- package/dist/mcp/round-lifecycle.d.ts.map +1 -0
- package/dist/mcp/round-lifecycle.js +926 -0
- package/dist/mcp/round-lifecycle.js.map +1 -0
- package/dist/mcp/server.d.ts +3 -2
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +65 -9
- package/dist/mcp/server.js.map +1 -1
- package/dist/mcp/session.d.ts +47 -139
- package/dist/mcp/session.d.ts.map +1 -1
- package/dist/mcp/session.js +284 -784
- package/dist/mcp/session.js.map +1 -1
- package/dist/mcp/tools.d.ts +23 -1
- package/dist/mcp/tools.d.ts.map +1 -1
- package/dist/mcp/tools.js +270 -79
- package/dist/mcp/tools.js.map +1 -1
- package/dist/policy-metrics.d.ts +11 -0
- package/dist/policy-metrics.d.ts.map +1 -1
- package/dist/policy-metrics.js +118 -21
- package/dist/policy-metrics.js.map +1 -1
- package/dist/policy.d.ts +26 -1
- package/dist/policy.d.ts.map +1 -1
- package/dist/policy.js +13 -2
- package/dist/policy.js.map +1 -1
- package/dist/prompt-assembler.d.ts +34 -1
- package/dist/prompt-assembler.d.ts.map +1 -1
- package/dist/prompt-assembler.js +320 -42
- package/dist/prompt-assembler.js.map +1 -1
- package/dist/protocol.d.ts +169 -1
- package/dist/protocol.d.ts.map +1 -1
- package/dist/protocol.js +39 -0
- package/dist/protocol.js.map +1 -1
- package/dist/replay.d.ts +5 -5
- package/dist/replay.d.ts.map +1 -1
- package/dist/replay.js +9 -8
- package/dist/replay.js.map +1 -1
- package/dist/round-coordinator.d.ts +6 -3
- package/dist/round-coordinator.d.ts.map +1 -1
- package/dist/round-coordinator.js +38 -19
- package/dist/round-coordinator.js.map +1 -1
- package/dist/round-driver.d.ts +9 -4
- package/dist/round-driver.d.ts.map +1 -1
- package/dist/round-driver.js +15 -7
- package/dist/round-driver.js.map +1 -1
- package/dist/round-transaction.d.ts +7 -3
- package/dist/round-transaction.d.ts.map +1 -1
- package/dist/round-transaction.js +93 -88
- package/dist/round-transaction.js.map +1 -1
- package/dist/self-eval.d.ts +31 -1
- package/dist/self-eval.d.ts.map +1 -1
- package/dist/self-eval.js +115 -12
- package/dist/self-eval.js.map +1 -1
- package/dist/storage.d.ts +3 -4
- package/dist/storage.d.ts.map +1 -1
- package/dist/storage.js +5 -4
- package/dist/storage.js.map +1 -1
- package/dist/token-utils.d.ts +20 -7
- package/dist/token-utils.d.ts.map +1 -1
- package/dist/token-utils.js +68 -9
- package/dist/token-utils.js.map +1 -1
- package/dist/verification-gate.d.ts +54 -2
- package/dist/verification-gate.d.ts.map +1 -1
- package/dist/verification-gate.js +433 -25
- package/dist/verification-gate.js.map +1 -1
- package/loop_policy.json +35 -8
- package/package.json +3 -2
- package/skills/perception/SKILL.md +24 -6
- package/dist/backends/interface.d.ts +0 -39
- package/dist/backends/interface.d.ts.map +0 -1
- package/dist/backends/interface.js +0 -6
- package/dist/backends/interface.js.map +0 -1
package/dist/engine.js
CHANGED
|
@@ -7,10 +7,12 @@
|
|
|
7
7
|
*/
|
|
8
8
|
import { randomUUID } from "node:crypto";
|
|
9
9
|
import { getPolicy } from "./policy.js";
|
|
10
|
-
import { FileLoopStore,
|
|
10
|
+
import { FileLoopStore, queryLoopEntries } from "./loop-store.js";
|
|
11
11
|
import { AgentStatus, Mode, makeExecutionFeedback, makeLoopCompileRequest, makeLoopObjective, makeLoopRoundResult, makeSessionState, makeTaskId, } from "./protocol.js";
|
|
12
12
|
import { compileLoop } from "./loop-compiler.js";
|
|
13
13
|
import { logEvent } from "./observability.js";
|
|
14
|
+
import { isRecord } from "./token-utils.js";
|
|
15
|
+
import { isProcessResult, parseRoundTransactionSnapshot } from "./round-transaction.js";
|
|
14
16
|
import { policyMetrics } from "./policy-metrics.js";
|
|
15
17
|
import { parseExecutionEvidence, parseCriterionRevisions, parseWorkerResults, } from "./self-eval.js";
|
|
16
18
|
import { parseLoopExtras } from "./loop-extras-parser.js";
|
|
@@ -27,25 +29,22 @@ function makeEngineMetrics() {
|
|
|
27
29
|
// ═══════════════════════════════════════════════════════════════════════════
|
|
28
30
|
export class LoopForgeEngine {
|
|
29
31
|
state = null;
|
|
30
|
-
|
|
32
|
+
store = null;
|
|
31
33
|
metrics = null;
|
|
32
34
|
lastTask = null;
|
|
33
|
-
constructor(
|
|
34
|
-
|
|
35
|
-
this.backend = "readSession" in storeOrBackend
|
|
36
|
-
? new LoopStoreBackend(storeOrBackend)
|
|
37
|
-
: storeOrBackend;
|
|
38
|
-
}
|
|
35
|
+
constructor(store) {
|
|
36
|
+
this.store = store ?? null;
|
|
39
37
|
}
|
|
40
|
-
|
|
41
|
-
if (this.
|
|
42
|
-
this.
|
|
38
|
+
resolveStore() {
|
|
39
|
+
if (this.store === null) {
|
|
40
|
+
this.store = new FileLoopStore(getPolicy().backend.root_dir);
|
|
43
41
|
}
|
|
44
|
-
return this.
|
|
42
|
+
return this.store;
|
|
45
43
|
}
|
|
46
|
-
/** Public accessor for the
|
|
47
|
-
|
|
48
|
-
|
|
44
|
+
/** Public accessor for the loop store — used by the round transaction
|
|
45
|
+
* coordinator and round driver. */
|
|
46
|
+
getStore() {
|
|
47
|
+
return this.resolveStore();
|
|
49
48
|
}
|
|
50
49
|
/** Expose engine health counters for observability (MCP status, logging). */
|
|
51
50
|
getMetrics() {
|
|
@@ -73,9 +72,10 @@ export class LoopForgeEngine {
|
|
|
73
72
|
// (autoFeedback calls persistFeedbackToVault then immediately flushFeedbackBuffer).
|
|
74
73
|
const entry = this.buildFeedbackEntry(signal);
|
|
75
74
|
if (!entry)
|
|
76
|
-
return;
|
|
75
|
+
return false;
|
|
77
76
|
try {
|
|
78
|
-
this.
|
|
77
|
+
this.resolveStore().appendEntry(entry);
|
|
78
|
+
return true;
|
|
79
79
|
}
|
|
80
80
|
catch (error) {
|
|
81
81
|
if (this.metrics)
|
|
@@ -83,6 +83,7 @@ export class LoopForgeEngine {
|
|
|
83
83
|
console.warn(`LoopForge: vault write failed (feedback_persist) — ${error}`);
|
|
84
84
|
logEvent("vault_write_error", { error: "feedback_persist" });
|
|
85
85
|
policyMetrics.recordVaultWriteError("feedback_persist");
|
|
86
|
+
return false;
|
|
86
87
|
}
|
|
87
88
|
}
|
|
88
89
|
buildFeedbackEntry(signal) {
|
|
@@ -115,6 +116,11 @@ export class LoopForgeEngine {
|
|
|
115
116
|
execution_evidence: signal.execution_evidence ?? null,
|
|
116
117
|
discovered_constraints: signal.discovered_constraints ?? [],
|
|
117
118
|
emerged_subtasks: signal.emerged_subtasks ?? [],
|
|
119
|
+
// v3.2.1: persisted so the subgoal_drift check can read prior
|
|
120
|
+
// rounds' completed/canceled sub-goals from committed entries.
|
|
121
|
+
completed_subtasks: signal.completed_subtasks ?? [],
|
|
122
|
+
blocked_subtasks: signal.blocked_subtasks ?? [],
|
|
123
|
+
canceled_subtasks: signal.canceled_subtasks ?? [],
|
|
118
124
|
retracted_constraints: signal.retracted_constraints ?? [],
|
|
119
125
|
worker_results: signal.worker_results ?? [],
|
|
120
126
|
};
|
|
@@ -145,6 +151,16 @@ export class LoopForgeEngine {
|
|
|
145
151
|
task: request.task,
|
|
146
152
|
success: true,
|
|
147
153
|
};
|
|
154
|
+
// v3.2: Persist what this round's prompt actually presented (L1 only —
|
|
155
|
+
// L0/L2 compiles leave the artifact field undefined). The next L1 compile
|
|
156
|
+
// reads these as its collapse diff baseline. Field extension of the
|
|
157
|
+
// existing lineage entry — no new persistence format.
|
|
158
|
+
const presented = response.prompt_artifact?.presentedState;
|
|
159
|
+
if (presented) {
|
|
160
|
+
structuredLineage.presented_constraint_ids = presented.constraintIds;
|
|
161
|
+
structuredLineage.presented_subgoals = presented.subGoals;
|
|
162
|
+
structuredLineage.presented_milestone_ranges = presented.milestoneRanges;
|
|
163
|
+
}
|
|
148
164
|
let lastOutputSummary = "";
|
|
149
165
|
let lastViolations = [];
|
|
150
166
|
if (request.last_round_result) {
|
|
@@ -170,7 +186,7 @@ export class LoopForgeEngine {
|
|
|
170
186
|
// 1. JSON vault write (primary)
|
|
171
187
|
let vaultOk = false;
|
|
172
188
|
try {
|
|
173
|
-
this.
|
|
189
|
+
this.resolveStore().appendEntry(entry);
|
|
174
190
|
vaultOk = true;
|
|
175
191
|
}
|
|
176
192
|
catch (error) {
|
|
@@ -192,7 +208,7 @@ export class LoopForgeEngine {
|
|
|
192
208
|
if (!entries.length)
|
|
193
209
|
return;
|
|
194
210
|
const taskId = `loop:${loopId}:r${round}:delegations`;
|
|
195
|
-
const existing = this.
|
|
211
|
+
const existing = queryLoopEntries(this.resolveStore(), loopId, { prefix: taskId })
|
|
196
212
|
.some((candidate) => candidate.task_id === taskId);
|
|
197
213
|
if (existing)
|
|
198
214
|
return;
|
|
@@ -214,12 +230,13 @@ export class LoopForgeEngine {
|
|
|
214
230
|
subTask: e.subTask,
|
|
215
231
|
resultSummary: e.resultSummary,
|
|
216
232
|
success: e.success,
|
|
233
|
+
outcome: e.outcome ?? (e.success ? "success" : "failed"),
|
|
217
234
|
discoveredConstraints: e.discoveredConstraints,
|
|
218
235
|
})),
|
|
219
236
|
},
|
|
220
237
|
};
|
|
221
238
|
try {
|
|
222
|
-
this.
|
|
239
|
+
this.resolveStore().appendEntry(entry);
|
|
223
240
|
}
|
|
224
241
|
catch (error) {
|
|
225
242
|
if (this.metrics)
|
|
@@ -232,37 +249,135 @@ export class LoopForgeEngine {
|
|
|
232
249
|
// ═══════════════════════════════════════════════════════════════════════
|
|
233
250
|
// Hydrate loop context from vault
|
|
234
251
|
// ═══════════════════════════════════════════════════════════════════════
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
252
|
+
/** Eval-owned fields merged from the committed round decision onto the
|
|
253
|
+
* lineage entry. These are the agent's report of what happened during the
|
|
254
|
+
* round; compile-time lineage fields (constraints_active, goal_text_hash,
|
|
255
|
+
* recompile_level, …) are left untouched. */
|
|
256
|
+
static EVAL_MERGED_LINEAGE_FIELDS = [
|
|
257
|
+
"execution_evidence",
|
|
258
|
+
"compression_checkpoint",
|
|
259
|
+
"checkpoint_label",
|
|
260
|
+
"discovered_constraints",
|
|
261
|
+
"emerged_subtasks",
|
|
262
|
+
"retracted_constraints",
|
|
263
|
+
"wrong_assumptions",
|
|
264
|
+
"completed_subtasks",
|
|
265
|
+
"blocked_subtasks",
|
|
266
|
+
"canceled_subtasks",
|
|
267
|
+
"next_action",
|
|
268
|
+
"objective_refinement",
|
|
269
|
+
"outcome",
|
|
270
|
+
"blocker",
|
|
271
|
+
"drift_clarification",
|
|
272
|
+
"revised_success_criteria",
|
|
273
|
+
"worker_results",
|
|
274
|
+
"prompt_requests",
|
|
275
|
+
];
|
|
276
|
+
/** Merge the committed round decision (feedback entry) into the compile-time
|
|
277
|
+
* lineage entry so the compiler and projections see the full per-round
|
|
278
|
+
* truth: verification flags, round success, and the agent's own evaluation. */
|
|
279
|
+
mergeCommittedRound(entry, lineage, fb) {
|
|
280
|
+
const fbLineage = isRecord(fb.loop_lineage) ? fb.loop_lineage : null;
|
|
281
|
+
const rt = fbLineage && isRecord(fbLineage.round_transaction)
|
|
282
|
+
? fbLineage.round_transaction
|
|
283
|
+
: null;
|
|
284
|
+
const result = rt && isProcessResult(rt.result) ? rt.result : null;
|
|
285
|
+
const snapshot = rt ? parseRoundTransactionSnapshot(rt.snapshot) : null;
|
|
286
|
+
const evaluation = snapshot && isRecord(snapshot.evaluation)
|
|
287
|
+
? snapshot.evaluation
|
|
288
|
+
: null;
|
|
289
|
+
if (result) {
|
|
290
|
+
if (Array.isArray(result.verificationFlags) &&
|
|
291
|
+
result.verificationFlags.length > 0) {
|
|
292
|
+
entry.verification_flags = result.verificationFlags;
|
|
253
293
|
}
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
const rnd = lineage.round;
|
|
258
|
-
if (rnd && fbSuccess.has(rnd)) {
|
|
259
|
-
lineage.success = fbSuccess.get(rnd);
|
|
260
|
-
entry.success = fbSuccess.get(rnd);
|
|
294
|
+
if (typeof result.roundSuccess === "boolean") {
|
|
295
|
+
entry.success = result.roundSuccess;
|
|
296
|
+
lineage.success = result.roundSuccess;
|
|
261
297
|
}
|
|
298
|
+
// The committed decision's action — lets the compiler detect a
|
|
299
|
+
// post-backtrack recovery boundary (L2 rehydration) without a
|
|
300
|
+
// second persistence format.
|
|
301
|
+
lineage.committed_action = result.action;
|
|
302
|
+
}
|
|
303
|
+
if (!evaluation)
|
|
304
|
+
return;
|
|
305
|
+
for (const key of LoopForgeEngine.EVAL_MERGED_LINEAGE_FIELDS) {
|
|
306
|
+
const value = evaluation[key];
|
|
307
|
+
if (value === undefined)
|
|
308
|
+
continue;
|
|
309
|
+
lineage[key] = value;
|
|
310
|
+
entry[key] = value;
|
|
262
311
|
}
|
|
263
|
-
|
|
264
|
-
|
|
312
|
+
if (typeof evaluation.success === "boolean") {
|
|
313
|
+
entry.success = evaluation.success;
|
|
314
|
+
lineage.success = evaluation.success;
|
|
315
|
+
}
|
|
316
|
+
if (typeof evaluation.output_summary === "string" && evaluation.output_summary) {
|
|
317
|
+
entry.output_summary = evaluation.output_summary;
|
|
318
|
+
}
|
|
319
|
+
if (Array.isArray(evaluation.constraint_violations)) {
|
|
320
|
+
entry.constraint_violations = evaluation.constraint_violations;
|
|
321
|
+
}
|
|
322
|
+
}
|
|
323
|
+
/** v3.0.1: Per-engine hydration cache. The vault is append-only per round —
|
|
324
|
+
* between two compiles of one loop only the newest round(s) changed. The
|
|
325
|
+
* cache holds the merged lineage entries (the exact shape the compiler
|
|
326
|
+
* consumes; feedback bodies are merged in, never returned), so a long-lived
|
|
327
|
+
* process compiles incrementally: one round document read per round
|
|
328
|
+
* boundary instead of the full history. Nothing is persisted; a fresh
|
|
329
|
+
* engine hydrates fully once. `coveredRound` is the highest CONTIGUOUS
|
|
330
|
+
* COMMITTED round (feedback merged) whose entries are in the cache — the
|
|
331
|
+
* compiler only reads rounds below the compile round, so
|
|
332
|
+
* `coveredRound >= round - 1` means the cache is complete for that compile.
|
|
333
|
+
* Lineage-only entries of not-yet-committed rounds may trail the cache but
|
|
334
|
+
* never advance coveredRound (a later read replaces them post-commit). */
|
|
335
|
+
hydrationCache = null;
|
|
336
|
+
/** The round a feedback entry belongs to, or null. */
|
|
337
|
+
static feedbackRound(taskId) {
|
|
338
|
+
const parts = taskId.split(":r");
|
|
339
|
+
if (parts.length < 2)
|
|
340
|
+
return null;
|
|
341
|
+
const roundStr = parts[1].split(":")[0];
|
|
342
|
+
const round = parseInt(roundStr, 10);
|
|
343
|
+
return Number.isNaN(round) ? null : round;
|
|
344
|
+
}
|
|
345
|
+
/** Highest contiguous round (from 1) present in the given feedback entries. */
|
|
346
|
+
static contiguousCommittedRound(fbEntries) {
|
|
347
|
+
const committed = new Set();
|
|
348
|
+
for (const fe of fbEntries) {
|
|
349
|
+
const round = LoopForgeEngine.feedbackRound(String(fe.task_id ?? ""));
|
|
350
|
+
if (round !== null)
|
|
351
|
+
committed.add(round);
|
|
352
|
+
}
|
|
353
|
+
let covered = 0;
|
|
354
|
+
while (committed.has(covered + 1))
|
|
355
|
+
covered++;
|
|
356
|
+
return covered;
|
|
357
|
+
}
|
|
358
|
+
/** Merge committed feedback entries into lineage entries and apply the
|
|
359
|
+
* legacy output_summary / constraint_violations backfill. Shared by the
|
|
360
|
+
* full and incremental hydration paths so both produce identical shapes.
|
|
361
|
+
*
|
|
362
|
+
* The round commit entry (`loop:<id>:r<N>:feedback`) carries the full
|
|
363
|
+
* committed decision — verification flags, round success, and the agent's
|
|
364
|
+
* SelfEvaluation — which the compiler needs to derive milestones,
|
|
365
|
+
* constraint decay, sub-goal accumulation, and rolling summaries. Without
|
|
366
|
+
* this merge the cross-round features only see the 8 compile-time lineage
|
|
367
|
+
* fields. */
|
|
368
|
+
buildMergedEntries(fresh, fbFresh) {
|
|
369
|
+
const fbByRound = new Map();
|
|
370
|
+
for (const fe of fbFresh) {
|
|
371
|
+
const fbRound = LoopForgeEngine.feedbackRound(String(fe.task_id ?? ""));
|
|
372
|
+
if (fbRound !== null)
|
|
373
|
+
fbByRound.set(fbRound, fe);
|
|
374
|
+
}
|
|
375
|
+
for (const entry of fresh) {
|
|
265
376
|
const lineage = (entry.loop_lineage ?? entry.lineage ?? {});
|
|
377
|
+
const rnd = lineage.round;
|
|
378
|
+
const fb = rnd ? fbByRound.get(rnd) : undefined;
|
|
379
|
+
if (fb)
|
|
380
|
+
this.mergeCommittedRound(entry, lineage, fb);
|
|
266
381
|
if (!entry.output_summary) {
|
|
267
382
|
entry.output_summary = lineage.output_summary ?? "";
|
|
268
383
|
}
|
|
@@ -271,9 +386,73 @@ export class LoopForgeEngine {
|
|
|
271
386
|
lineage.constraint_violations ?? [];
|
|
272
387
|
}
|
|
273
388
|
}
|
|
274
|
-
|
|
389
|
+
return fresh;
|
|
390
|
+
}
|
|
391
|
+
hydrateLoopContext(loopId, round) {
|
|
392
|
+
const store = this.resolveStore();
|
|
393
|
+
const prefix = `loop:${loopId}:r`;
|
|
394
|
+
// v3.0.1: cached hydration — fast path when the cache already covers the
|
|
395
|
+
// requested round (same-round retries), incremental read of only the
|
|
396
|
+
// rounds committed since the cache point otherwise.
|
|
397
|
+
if (round !== undefined && this.hydrationCache?.loopId === loopId) {
|
|
398
|
+
const cache = this.hydrationCache;
|
|
399
|
+
if (cache.coveredRound >= round - 1) {
|
|
400
|
+
return { results: cache.entries, global_entries: [] };
|
|
401
|
+
}
|
|
402
|
+
const sinceRound = cache.coveredRound + 1;
|
|
403
|
+
const fresh = queryLoopEntries(store, loopId, { prefix, sinceRound });
|
|
404
|
+
const freshFb = queryLoopEntries(store, loopId, {
|
|
405
|
+
prefix,
|
|
406
|
+
sinceRound,
|
|
407
|
+
feedbackOnly: true,
|
|
408
|
+
});
|
|
409
|
+
const merged = this.buildMergedEntries(fresh, freshFb);
|
|
410
|
+
for (const entry of merged) {
|
|
411
|
+
const tid = String(entry.task_id ?? "");
|
|
412
|
+
// Replace-by-task_id: a round read earlier as a lineage-only entry
|
|
413
|
+
// (not yet committed) must be replaced by its post-commit merged
|
|
414
|
+
// version — a stale unmerged entry would silently drop the round's
|
|
415
|
+
// committed decision (verification flags, committed_action, eval).
|
|
416
|
+
const index = cache.entries.findIndex((e) => String(e.task_id ?? "") === tid);
|
|
417
|
+
if (index >= 0)
|
|
418
|
+
cache.entries[index] = entry;
|
|
419
|
+
else
|
|
420
|
+
cache.entries.push(entry);
|
|
421
|
+
}
|
|
422
|
+
// Advance coveredRound only for rounds that actually committed since
|
|
423
|
+
// the cache point — the fresh reads start at coveredRound + 1, so the
|
|
424
|
+
// contiguous run extends from there.
|
|
425
|
+
const freshCommitted = new Set();
|
|
426
|
+
for (const fe of freshFb) {
|
|
427
|
+
const r = LoopForgeEngine.feedbackRound(String(fe.task_id ?? ""));
|
|
428
|
+
if (r !== null)
|
|
429
|
+
freshCommitted.add(r);
|
|
430
|
+
}
|
|
431
|
+
while (freshCommitted.has(cache.coveredRound + 1))
|
|
432
|
+
cache.coveredRound++;
|
|
433
|
+
return { results: cache.entries, global_entries: [] };
|
|
434
|
+
}
|
|
435
|
+
// Full path — cold engine, different loop, or a round-less hydrate (e.g.
|
|
436
|
+
// health checks). Merge all feedback entries, dedupe by task_id (round
|
|
437
|
+
// documents hold the latest write per key), and cache the merged view.
|
|
438
|
+
// coveredRound counts only contiguous COMMITTED rounds — lineage-only
|
|
439
|
+
// entries of uncommitted rounds may trail the cache but must not make the
|
|
440
|
+
// fast path serve unmerged state.
|
|
441
|
+
const results = queryLoopEntries(store, loopId, { prefix });
|
|
442
|
+
const fbEntries = queryLoopEntries(store, loopId, { prefix, feedbackOnly: true });
|
|
443
|
+
const merged = this.buildMergedEntries(results, fbEntries);
|
|
444
|
+
if (!merged.length)
|
|
275
445
|
return null;
|
|
276
|
-
|
|
446
|
+
const byTaskId = new Map();
|
|
447
|
+
for (const entry of merged)
|
|
448
|
+
byTaskId.set(String(entry.task_id ?? ""), entry);
|
|
449
|
+
const entries = [...byTaskId.values()];
|
|
450
|
+
this.hydrationCache = {
|
|
451
|
+
loopId,
|
|
452
|
+
coveredRound: LoopForgeEngine.contiguousCommittedRound(fbEntries),
|
|
453
|
+
entries,
|
|
454
|
+
};
|
|
455
|
+
return { results: entries, global_entries: [] };
|
|
277
456
|
}
|
|
278
457
|
// ═══════════════════════════════════════════════════════════════════════
|
|
279
458
|
// Feedback (public)
|
|
@@ -298,13 +477,20 @@ export class LoopForgeEngine {
|
|
|
298
477
|
// Loop-aware task_id for feedback→lineage backfill
|
|
299
478
|
const loopId = request.loop_id;
|
|
300
479
|
const loopRound = request.round;
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
480
|
+
// v2.14: feedback entries are loop-scoped — a request without loop_id
|
|
481
|
+
// and round can never be persisted. Fail loudly instead of reporting
|
|
482
|
+
// "Feedback Recorded" for a write that was silently dropped.
|
|
483
|
+
if (!loopId || loopRound === undefined) {
|
|
484
|
+
return {
|
|
485
|
+
status: AgentStatus.ERROR,
|
|
486
|
+
response: {
|
|
487
|
+
status: AgentStatus.ERROR,
|
|
488
|
+
prompt: null,
|
|
489
|
+
error: "Feedback requires loop_id and round — feedback entries are loop-scoped.",
|
|
490
|
+
},
|
|
491
|
+
};
|
|
307
492
|
}
|
|
493
|
+
const taskId = `loop:${loopId}:r${loopRound}:feedback`;
|
|
308
494
|
const signal = {
|
|
309
495
|
task_id: taskId,
|
|
310
496
|
task_type: request.task.slice(0, 80),
|
|
@@ -315,7 +501,17 @@ export class LoopForgeEngine {
|
|
|
315
501
|
loop_id: loopId,
|
|
316
502
|
round: loopRound,
|
|
317
503
|
};
|
|
318
|
-
this.persistFeedbackToVault(signal);
|
|
504
|
+
const persisted = this.persistFeedbackToVault(signal);
|
|
505
|
+
if (!persisted) {
|
|
506
|
+
return {
|
|
507
|
+
status: AgentStatus.ERROR,
|
|
508
|
+
response: {
|
|
509
|
+
status: AgentStatus.ERROR,
|
|
510
|
+
prompt: null,
|
|
511
|
+
error: "Feedback could not be persisted to the loop store — the round was not recorded.",
|
|
512
|
+
},
|
|
513
|
+
};
|
|
514
|
+
}
|
|
319
515
|
// Update state
|
|
320
516
|
this.state.call_count++;
|
|
321
517
|
this.state.success_trend.push(success);
|
|
@@ -357,15 +553,17 @@ export class LoopForgeEngine {
|
|
|
357
553
|
const transactionId = typeof roundTransaction?.round_id === "string"
|
|
358
554
|
? roundTransaction.round_id
|
|
359
555
|
: null;
|
|
360
|
-
const transactionPersisted = () => {
|
|
556
|
+
const transactionPersisted = (filter) => {
|
|
361
557
|
if (!transactionId)
|
|
362
558
|
return false;
|
|
363
|
-
return this.
|
|
559
|
+
return queryLoopEntries(this.resolveStore(), loopId, {
|
|
364
560
|
prefix: taskId,
|
|
365
561
|
feedbackOnly: true,
|
|
366
562
|
}).some((entry) => {
|
|
367
563
|
if (entry.task_id !== taskId)
|
|
368
564
|
return false;
|
|
565
|
+
if (filter && !filter(entry))
|
|
566
|
+
return false;
|
|
369
567
|
const lineage = entry.loop_lineage;
|
|
370
568
|
const transaction = lineage?.round_transaction;
|
|
371
569
|
return transaction !== null &&
|
|
@@ -374,7 +572,18 @@ export class LoopForgeEngine {
|
|
|
374
572
|
transaction.round_id === transactionId;
|
|
375
573
|
});
|
|
376
574
|
};
|
|
377
|
-
|
|
575
|
+
// v3.2.1: a committed backtrack decision is a roll-back directive, not
|
|
576
|
+
// the round's outcome. The redo submission reuses the same roundId and
|
|
577
|
+
// must REPLACE the backtrack entry in the vault — otherwise the stale
|
|
578
|
+
// entry keeps poisoning the R4/R5 progress window and the redo's work
|
|
579
|
+
// never lands (it is replayed or its data is ignored forever).
|
|
580
|
+
const alreadyCommitted = transactionPersisted((entry) => {
|
|
581
|
+
const transaction = isRecord(entry.loop_lineage)
|
|
582
|
+
? entry.loop_lineage.round_transaction
|
|
583
|
+
: null;
|
|
584
|
+
const result = isRecord(transaction) ? transaction.result : null;
|
|
585
|
+
return !(isRecord(result) && result.action === "backtrack");
|
|
586
|
+
});
|
|
378
587
|
// Multi-agent: Merge sub-agent discovered constraints into the main constraint flow
|
|
379
588
|
const subDiscovered = (selfEval.worker_results ?? [])
|
|
380
589
|
.flatMap((w) => w.discoveredConstraints ?? [])
|
|
@@ -395,6 +604,13 @@ export class LoopForgeEngine {
|
|
|
395
604
|
discovered_constraints: mergedDiscovered,
|
|
396
605
|
objective_refinement: selfEval.objective_refinement ?? "",
|
|
397
606
|
emerged_subtasks: selfEval.emerged_subtasks ?? [],
|
|
607
|
+
// v3.2.1: persist the sub-goal lifecycle fields — the subgoal_drift
|
|
608
|
+
// check reads them from committed feedback entries; before this they
|
|
609
|
+
// were never written, so prior rounds' completed/canceled sub-goals
|
|
610
|
+
// were invisible and the pending set grew stale.
|
|
611
|
+
completed_subtasks: selfEval.completed_subtasks ?? [],
|
|
612
|
+
blocked_subtasks: selfEval.blocked_subtasks ?? [],
|
|
613
|
+
canceled_subtasks: selfEval.canceled_subtasks ?? [],
|
|
398
614
|
// P4: Execution evidence
|
|
399
615
|
execution_evidence: selfEval.execution_evidence ?? null,
|
|
400
616
|
// P5: Self-correction
|
|
@@ -403,6 +619,8 @@ export class LoopForgeEngine {
|
|
|
403
619
|
wrong_assumptions: selfEval.wrong_assumptions ?? [],
|
|
404
620
|
// Multi-agent: Worker delegation results
|
|
405
621
|
worker_results: selfEval.worker_results ?? [],
|
|
622
|
+
// v2.12: Tri-state outcome (audit data source)
|
|
623
|
+
outcome: selfEval.outcome,
|
|
406
624
|
loop_lineage: roundTransaction
|
|
407
625
|
? {
|
|
408
626
|
round,
|
|
@@ -426,6 +644,7 @@ export class LoopForgeEngine {
|
|
|
426
644
|
subTask: w.subTask,
|
|
427
645
|
resultSummary: w.resultSummary,
|
|
428
646
|
success: w.success,
|
|
647
|
+
outcome: w.outcome,
|
|
429
648
|
discoveredConstraints: w.discoveredConstraints ?? [],
|
|
430
649
|
}));
|
|
431
650
|
this.recordDelegation(loopId, round, entries);
|
|
@@ -537,6 +756,22 @@ export class LoopForgeEngine {
|
|
|
537
756
|
: undefined,
|
|
538
757
|
// Multi-agent: Worker delegation results (shared parser)
|
|
539
758
|
worker_results: parseWorkerResults(rr.worker_results),
|
|
759
|
+
// v2.12: Tri-state outcome + blocker + retroactive claims
|
|
760
|
+
outcome: rr.outcome === "success" || rr.outcome === "partial" ||
|
|
761
|
+
rr.outcome === "failed" || rr.outcome === "blocked"
|
|
762
|
+
? rr.outcome
|
|
763
|
+
: undefined,
|
|
764
|
+
blocker: typeof rr.blocker === "string" && rr.blocker.trim().length > 0
|
|
765
|
+
? rr.blocker.slice(0, 500)
|
|
766
|
+
: undefined,
|
|
767
|
+
retroactiveClaims: Array.isArray(rr.retroactiveClaims)
|
|
768
|
+
? rr.retroactiveClaims
|
|
769
|
+
.filter((item) => isRecord(item) &&
|
|
770
|
+
typeof item.round === "number" && item.round >= 1 &&
|
|
771
|
+
typeof item.claim === "string" && item.claim.length > 0)
|
|
772
|
+
.map((item) => ({ round: item.round, claim: item.claim.slice(0, 500) }))
|
|
773
|
+
.slice(0, 20)
|
|
774
|
+
: [],
|
|
540
775
|
});
|
|
541
776
|
}
|
|
542
777
|
// Convert loop_objective if present (object already validated by parser)
|
|
@@ -553,7 +788,10 @@ export class LoopForgeEngine {
|
|
|
553
788
|
// Hydrate vault context for cross-round memory
|
|
554
789
|
let context = hydrateResults ?? null;
|
|
555
790
|
if (context === null && lcr.loop_id && lcr.round > 1) {
|
|
556
|
-
|
|
791
|
+
// v3.0.1: the compile round anchors the hydration cache — warm caches
|
|
792
|
+
// skip the read entirely; otherwise only rounds committed since the
|
|
793
|
+
// last hydration are read.
|
|
794
|
+
context = this.hydrateLoopContext(lcr.loop_id, lcr.round);
|
|
557
795
|
}
|
|
558
796
|
// Delegate to pure-function compiler
|
|
559
797
|
let response;
|
|
@@ -583,6 +821,11 @@ export class LoopForgeEngine {
|
|
|
583
821
|
state_file_content: response.state_file_content,
|
|
584
822
|
prompt_artifact: response.prompt_artifact,
|
|
585
823
|
warnings: response.warnings,
|
|
824
|
+
// v2.12: Pass the compiler's derived state through for typed
|
|
825
|
+
// projections (consumed by getProjection without re-persisting).
|
|
826
|
+
rolling_summary: response.rolling_summary,
|
|
827
|
+
sub_goals: response.sub_goals,
|
|
828
|
+
suggested_next_task: response.suggested_next_task,
|
|
586
829
|
},
|
|
587
830
|
};
|
|
588
831
|
}
|
package/dist/engine.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine.js","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"engine.js","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAElE,OAAO,EACL,WAAW,EACX,IAAI,EACJ,qBAAqB,EACrB,sBAAsB,EACtB,iBAAiB,EACjB,mBAAmB,EACnB,gBAAgB,EAChB,UAAU,GAQX,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,6BAA6B,EAAE,MAAM,wBAAwB,CAAC;AACxF,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EACL,sBAAsB,EACtB,uBAAuB,EACvB,kBAAkB,GACnB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE1D,4EAA4E;AAC5E,OAAO,EACL,sBAAsB,EACtB,uBAAuB,EACvB,kBAAkB,EAClB,qBAAqB,EACrB,mBAAmB,GACpB,MAAM,gBAAgB,CAAC;AAyBxB,SAAS,iBAAiB;IACxB,OAAO;QACL,gBAAgB,EAAE,CAAC;QACnB,YAAY,EAAE,IAAI,CAAC,GAAG,EAAE;KACzB,CAAC;AACJ,CAAC;AAED,8EAA8E;AAC9E,kBAAkB;AAClB,8EAA8E;AAE9E,MAAM,OAAO,eAAe;IAC1B,KAAK,GAAwB,IAAI,CAAC;IAC1B,KAAK,GAAqB,IAAI,CAAC;IAC/B,OAAO,GAAyB,IAAI,CAAC;IAC7C,QAAQ,GAAkB,IAAI,CAAC;IAE/B,YAAY,KAAiB;QAC3B,IAAI,CAAC,KAAK,GAAG,KAAK,IAAI,IAAI,CAAC;IAC7B,CAAC;IAEO,YAAY;QAClB,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;YACxB,IAAI,CAAC,KAAK,GAAG,IAAI,aAAa,CAAC,SAAS,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC/D,CAAC;QACD,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED;wCACoC;IACpC,QAAQ;QACN,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC;IAC7B,CAAC;IAED,6EAA6E;IAC7E,UAAU;QACR,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;YAC1B,IAAI,CAAC,OAAO,GAAG,iBAAiB,EAAE,CAAC;QACrC,CAAC;QACD,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAEO,UAAU,CAAC,OAAyB;QAC1C,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;YACxB,IAAI,CAAC,KAAK,GAAG,gBAAgB,CAC3B,OAAO,CAAC,OAAO,IAAI,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAC5C,CAAC;QACJ,CAAC;QACD,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;YAC1B,IAAI,CAAC,OAAO,GAAG,iBAAiB,EAAE,CAAC;QACrC,CAAC;IACH,CAAC;IAED,0EAA0E;IAC1E,uBAAuB;IACvB,0EAA0E;IAElE,sBAAsB,CAAC,MAA+B;QAC5D,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;YAC1B,IAAI,CAAC,OAAO,GAAG,iBAAiB,EAAE,CAAC;QACrC,CAAC;QACD,mEAAmE;QACnE,oFAAoF;QACpF,MAAM,KAAK,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;QAC9C,IAAI,CAAC,KAAK;YAAE,OAAO,KAAK,CAAC;QACzB,IAAI,CAAC;YACH,IAAI,CAAC,YAAY,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;YACvC,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,IAAI,CAAC,OAAO;gBAAE,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC;YAClD,OAAO,CAAC,IAAI,CAAC,sDAAsD,KAAK,EAAE,CAAC,CAAC;YAC5E,QAAQ,CAAC,mBAAmB,EAAE,EAAE,KAAK,EAAE,kBAAkB,EAAE,CAAC,CAAC;YAC7D,aAAa,CAAC,qBAAqB,CAAC,kBAAkB,CAAC,CAAC;YACxD,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAEO,kBAAkB,CAAC,MAA+B;QACxD,IAAI,CAAC;YACH,OAAO;gBACL,EAAE,EAAE,UAAU,EAAE;gBAChB,OAAO,EAAG,MAAM,CAAC,OAAkB,IAAI,UAAU;gBACjD,WAAW,EAAE,IAAI;gBACjB,SAAS,EAAE,IAAI;gBACf,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC;gBAC1D,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;gBACzD,OAAO,EAAG,MAAM,CAAC,OAAmB,IAAI,KAAK;gBAC7C,kBAAkB,EAAE,IAAI,CAAC,SAAS,CAAC;oBACjC,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,KAAK;oBAChC,MAAM,EAAG,MAAM,CAAC,OAAmB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;oBAC3D,qBAAqB,EAAE;wBACrB,wBAAwB,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,IAAK,MAAM,CAAC,UAAwB,CAAC,MAAM,KAAK,CAAC;wBAC5G,UAAU,EAAE,MAAM,CAAC,UAAU,IAAI,EAAE;qBACpC;oBACD,cAAc,EAAE,MAAM,CAAC,SAAS,IAAI,EAAE;oBACtC,iBAAiB,EAAE,MAAM,CAAC,YAAY,IAAI,EAAE;iBAC7C,CAAC;gBACF,SAAS,EAAG,MAAM,CAAC,SAAoB,IAAI,EAAE;gBAC7C,IAAI,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,UAAoB,CAAC,CAAC,CAAC,CAAC,EAAE;gBAC5D,UAAU,EAAG,MAAM,CAAC,UAAqB,IAAI,EAAE;gBAC/C,OAAO,EAAE,MAAM,CAAC,OAA6B;gBAC7C,YAAY,EAAG,MAAM,CAAC,YAAwC,IAAI,EAAE;gBACpE,iEAAiE;gBACjE,2DAA2D;gBAC3D,kBAAkB,EAAE,MAAM,CAAC,kBAAkB,IAAI,IAAI;gBACrD,sBAAsB,EAAE,MAAM,CAAC,sBAAsB,IAAI,EAAE;gBAC3D,gBAAgB,EAAE,MAAM,CAAC,gBAAgB,IAAI,EAAE;gBAC/C,8DAA8D;gBAC9D,+DAA+D;gBAC/D,kBAAkB,EAAE,MAAM,CAAC,kBAAkB,IAAI,EAAE;gBACnD,gBAAgB,EAAE,MAAM,CAAC,gBAAgB,IAAI,EAAE;gBAC/C,iBAAiB,EAAE,MAAM,CAAC,iBAAiB,IAAI,EAAE;gBACjD,qBAAqB,EAAE,MAAM,CAAC,qBAAqB,IAAI,EAAE;gBACzD,cAAc,EAAE,MAAM,CAAC,cAAc,IAAI,EAAE;aAC5C,CAAC;QACJ,CAAC;QAAC,MAAM,CAAC;YACP,IAAI,IAAI,CAAC,OAAO;gBAAE,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC;YAClD,QAAQ,CAAC,mBAAmB,EAAE,EAAE,KAAK,EAAE,sBAAsB,EAAE,CAAC,CAAC;YACjE,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,0EAA0E;IAC1E,sBAAsB;IACtB,0EAA0E;IAElE,kBAAkB,CACxB,QAA6B,EAC7B,OAA2B;QAE3B,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI;YAAE,IAAI,CAAC,OAAO,GAAG,iBAAiB,EAAE,CAAC;QAE9D,MAAM,WAAW,GAAG,QAAQ,CAAC,cAAc;YACzC,CAAC,CAAE,QAAQ,CAAC,cAAqD;YACjE,CAAC,CAAC,IAAI,CAAC;QAET,MAAM,iBAAiB,GAA4B;YACjD,OAAO,EAAE,QAAQ,CAAC,OAAO;YACzB,KAAK,EAAE,QAAQ,CAAC,KAAK;YACrB,OAAO,EAAE,QAAQ,CAAC,OAAO;YACzB,cAAc,EAAE,QAAQ,CAAC,cAAc;YACvC,eAAe,EAAE,QAAQ,CAAC,eAAe;YACzC,kBAAkB,EAAE,QAAQ,CAAC,kBAAkB;YAC/C,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,OAAO,EAAE,IAAI;SACd,CAAC;QAEF,uEAAuE;QACvE,0EAA0E;QAC1E,oEAAoE;QACpE,sDAAsD;QACtD,MAAM,SAAS,GAAG,QAAQ,CAAC,eAAe,EAAE,cAAc,CAAC;QAC3D,IAAI,SAAS,EAAE,CAAC;YACd,iBAAiB,CAAC,wBAAwB,GAAG,SAAS,CAAC,aAAa,CAAC;YACrE,iBAAiB,CAAC,kBAAkB,GAAG,SAAS,CAAC,QAAQ,CAAC;YAC1D,iBAAiB,CAAC,0BAA0B,GAAG,SAAS,CAAC,eAAe,CAAC;QAC3E,CAAC;QAED,IAAI,iBAAiB,GAAG,EAAE,CAAC;QAC3B,IAAI,cAAc,GAAa,EAAE,CAAC;QAClC,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC;YAC9B,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC,cAAc,IAAI,EAAE,CAAC;YACnE,cAAc,GAAG,OAAO,CAAC,iBAAiB,CAAC,qBAAqB,IAAI,EAAE,CAAC;QACzE,CAAC;QAED,MAAM,KAAK,GAAe;YACxB,EAAE,EAAE,UAAU,EAAE;YAChB,OAAO,EAAE,QAAQ,QAAQ,CAAC,OAAO,KAAK,QAAQ,CAAC,KAAK,EAAE;YACtD,WAAW,EAAE,IAAI;YACjB,SAAS,EAAE,IAAI;YACf,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC;YAC1D,WAAW,EAAE,sBAAsB,QAAQ,CAAC,KAAK,MAAM,QAAQ,CAAC,OAAO,EAAE;YACzE,SAAS,EAAE,cAAc;YACzB,OAAO,EAAE,QAAQ,CAAC,OAAO;YACzB,YAAY,EAAE,iBAAiB;YAC/B,cAAc,EAAE,WAAW;YAC3B,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,cAAc,EAAE,iBAAiB;YACjC,qBAAqB,EAAE,cAAc;YACrC,IAAI,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,eAAe,EAAE,QAAQ,CAAC,OAAO,CAAC;SACrE,CAAC;QAEF,gCAAgC;QAChC,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC;YACH,IAAI,CAAC,YAAY,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;YACvC,OAAO,GAAG,IAAI,CAAC;QACjB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,IAAI,CAAC,OAAO;gBAAE,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC;YAClD,OAAO,CAAC,IAAI,CAAC,qDAAqD,KAAK,EAAE,CAAC,CAAC;YAC3E,QAAQ,CAAC,mBAAmB,EAAE,EAAE,KAAK,EAAE,sBAAsB,EAAE,CAAC,CAAC;YACjE,aAAa,CAAC,qBAAqB,CAAC,iBAAiB,CAAC,CAAC;QACzD,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,0EAA0E;IAC1E,6CAA6C;IAC7C,0EAA0E;IAE1E;;yEAEqE;IACrE,gBAAgB,CACd,MAAc,EACd,KAAa,EACb,OAA0B;QAE1B,IAAI,CAAC,OAAO,CAAC,MAAM;YAAE,OAAO;QAC5B,MAAM,MAAM,GAAG,QAAQ,MAAM,KAAK,KAAK,cAAc,CAAC;QACtD,MAAM,QAAQ,GAAG,gBAAgB,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;aAC/E,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC;QACrD,IAAI,QAAQ;YAAE,OAAO;QACrB,MAAM,KAAK,GAAe;YACxB,EAAE,EAAE,UAAU,EAAE;YAChB,OAAO,EAAE,MAAM;YACf,WAAW,EAAE,IAAI;YACjB,SAAS,EAAE,IAAI;YACf,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC;YAC1D,WAAW,EAAE,8BAA8B,KAAK,EAAE;YAClD,SAAS,EAAE,oBAAoB;YAC/B,OAAO,EAAE,MAAM;YACf,YAAY,EAAE;gBACZ,KAAK;gBACL,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;oBAC/B,KAAK,EAAE,CAAC,CAAC,KAAK;oBACd,OAAO,EAAE,CAAC,CAAC,OAAO;oBAClB,YAAY,EAAE,CAAC,CAAC,YAAY;oBAC5B,OAAO,EAAE,CAAC,CAAC,OAAO;oBAClB,aAAa,EAAE,CAAC,CAAC,aAAa;oBAC9B,OAAO,EAAE,CAAC,CAAC,OAAO;oBAClB,OAAO,EAAE,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC;oBACxD,qBAAqB,EAAE,CAAC,CAAC,qBAAqB;iBAC/C,CAAC,CAAC;aACJ;SACF,CAAC;QACF,IAAI,CAAC;YACH,IAAI,CAAC,YAAY,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QACzC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,IAAI,CAAC,OAAO;gBAAE,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC;YAClD,OAAO,CAAC,IAAI,CAAC,wDAAwD,KAAK,EAAE,CAAC,CAAC;YAC9E,QAAQ,CAAC,mBAAmB,EAAE,EAAE,KAAK,EAAE,mBAAmB,EAAE,CAAC,CAAC;YAC9D,aAAa,CAAC,qBAAqB,CAAC,oBAAoB,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC;IAED,0EAA0E;IAC1E,kCAAkC;IAClC,0EAA0E;IAE1E;;;kDAG8C;IACtC,MAAM,CAAU,0BAA0B,GAAG;QACnD,oBAAoB;QACpB,wBAAwB;QACxB,kBAAkB;QAClB,wBAAwB;QACxB,kBAAkB;QAClB,uBAAuB;QACvB,mBAAmB;QACnB,oBAAoB;QACpB,kBAAkB;QAClB,mBAAmB;QACnB,aAAa;QACb,sBAAsB;QACtB,SAAS;QACT,SAAS;QACT,qBAAqB;QACrB,0BAA0B;QAC1B,gBAAgB;QAChB,iBAAiB;KACT,CAAC;IAEX;;oFAEgF;IACxE,mBAAmB,CACzB,KAAiB,EACjB,OAAgC,EAChC,EAAc;QAEd,MAAM,SAAS,GAAG,QAAQ,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC;QACrE,MAAM,EAAE,GAAG,SAAS,IAAI,QAAQ,CAAC,SAAS,CAAC,iBAAiB,CAAC;YAC3D,CAAC,CAAC,SAAS,CAAC,iBAAiB;YAC7B,CAAC,CAAC,IAAI,CAAC;QACT,MAAM,MAAM,GAAG,EAAE,IAAI,eAAe,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;QACnE,MAAM,QAAQ,GAAG,EAAE,CAAC,CAAC,CAAC,6BAA6B,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACxE,MAAM,UAAU,GAAG,QAAQ,IAAI,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC;YAC1D,CAAC,CAAC,QAAQ,CAAC,UAAU;YACrB,CAAC,CAAC,IAAI,CAAC;QAET,IAAI,MAAM,EAAE,CAAC;YACX,IACE,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAC;gBACvC,MAAM,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,EACnC,CAAC;gBACD,KAAK,CAAC,kBAAkB,GAAG,MAAM,CAAC,iBAAiB,CAAC;YACtD,CAAC;YACD,IAAI,OAAO,MAAM,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;gBAC7C,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC,YAAY,CAAC;gBACpC,OAAO,CAAC,OAAO,GAAG,MAAM,CAAC,YAAY,CAAC;YACxC,CAAC;YACD,+DAA+D;YAC/D,8DAA8D;YAC9D,6BAA6B;YAC7B,OAAO,CAAC,gBAAgB,GAAG,MAAM,CAAC,MAAM,CAAC;QAC3C,CAAC;QACD,IAAI,CAAC,UAAU;YAAE,OAAO;QACxB,KAAK,MAAM,GAAG,IAAI,eAAe,CAAC,0BAA0B,EAAE,CAAC;YAC7D,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;YAC9B,IAAI,KAAK,KAAK,SAAS;gBAAE,SAAS;YAClC,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;YACrB,KAAK,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QACrB,CAAC;QACD,IAAI,OAAO,UAAU,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YAC5C,KAAK,CAAC,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC;YACnC,OAAO,CAAC,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC;QACvC,CAAC;QACD,IAAI,OAAO,UAAU,CAAC,cAAc,KAAK,QAAQ,IAAI,UAAU,CAAC,cAAc,EAAE,CAAC;YAC/E,KAAK,CAAC,cAAc,GAAG,UAAU,CAAC,cAAc,CAAC;QACnD,CAAC;QACD,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,qBAAqB,CAAC,EAAE,CAAC;YACpD,KAAK,CAAC,qBAAqB,GAAG,UAAU,CAAC,qBAAqB,CAAC;QACjE,CAAC;IACH,CAAC;IAED;;;;;;;;;;;+EAW2E;IACnE,cAAc,GAIX,IAAI,CAAC;IAEhB,sDAAsD;IAC9C,MAAM,CAAC,aAAa,CAAC,MAAc;QACzC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACjC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC;QAClC,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACxC,MAAM,KAAK,GAAG,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QACrC,OAAO,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;IAC5C,CAAC;IAED,+EAA+E;IACvE,MAAM,CAAC,wBAAwB,CAAC,SAAuB;QAC7D,MAAM,SAAS,GAAG,IAAI,GAAG,EAAU,CAAC;QACpC,KAAK,MAAM,EAAE,IAAI,SAAS,EAAE,CAAC;YAC3B,MAAM,KAAK,GAAG,eAAe,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC;YACtE,IAAI,KAAK,KAAK,IAAI;gBAAE,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC3C,CAAC;QACD,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,OAAO,SAAS,CAAC,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC;YAAE,OAAO,EAAE,CAAC;QAC7C,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;;;;;;;;kBASc;IACN,kBAAkB,CACxB,KAAmB,EACnB,OAAqB;QAErB,MAAM,SAAS,GAAG,IAAI,GAAG,EAAsB,CAAC;QAChD,KAAK,MAAM,EAAE,IAAI,OAAO,EAAE,CAAC;YACzB,MAAM,OAAO,GAAG,eAAe,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC;YACxE,IAAI,OAAO,KAAK,IAAI;gBAAE,SAAS,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QACnD,CAAC;QAED,KAAK,MAAM,KAAK,IAAI,KAAK,EAAE,CAAC;YAC1B,MAAM,OAAO,GAAG,CAAC,KAAK,CAAC,YAAY,IAAI,KAAK,CAAC,OAAO,IAAI,EAAE,CAGzD,CAAC;YACF,MAAM,GAAG,GAAG,OAAO,CAAC,KAAe,CAAC;YACpC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAChD,IAAI,EAAE;gBAAE,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;YACrD,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC;gBAC1B,KAAK,CAAC,cAAc,GAAI,OAAO,CAAC,cAAyB,IAAI,EAAE,CAAC;YAClE,CAAC;YACD,IAAI,CAAC,KAAK,CAAC,qBAAqB,EAAE,CAAC;gBACjC,KAAK,CAAC,qBAAqB;oBACxB,OAAO,CAAC,qBAAkC,IAAI,EAAE,CAAC;YACtD,CAAC;QACH,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,kBAAkB,CAAC,MAAc,EAAE,KAAc;QAC/C,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QAClC,MAAM,MAAM,GAAG,QAAQ,MAAM,IAAI,CAAC;QAElC,yEAAyE;QACzE,qEAAqE;QACrE,oDAAoD;QACpD,IAAI,KAAK,KAAK,SAAS,IAAI,IAAI,CAAC,cAAc,EAAE,MAAM,KAAK,MAAM,EAAE,CAAC;YAClE,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC;YAClC,IAAI,KAAK,CAAC,YAAY,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;gBACpC,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,cAAc,EAAE,EAAE,EAAE,CAAC;YACxD,CAAC;YACD,MAAM,UAAU,GAAG,KAAK,CAAC,YAAY,GAAG,CAAC,CAAC;YAC1C,MAAM,KAAK,GAAG,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC;YACtE,MAAM,OAAO,GAAG,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE;gBAC9C,MAAM;gBACN,UAAU;gBACV,YAAY,EAAE,IAAI;aACnB,CAAC,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;YACvD,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;gBAC3B,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;gBACxC,mEAAmE;gBACnE,iEAAiE;gBACjE,mEAAmE;gBACnE,mEAAmE;gBACnE,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC,KAAK,GAAG,CAAC,CAAC;gBAC9E,IAAI,KAAK,IAAI,CAAC;oBAAE,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC;;oBACxC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACjC,CAAC;YACD,qEAAqE;YACrE,sEAAsE;YACtE,qCAAqC;YACrC,MAAM,cAAc,GAAG,IAAI,GAAG,EAAU,CAAC;YACzC,KAAK,MAAM,EAAE,IAAI,OAAO,EAAE,CAAC;gBACzB,MAAM,CAAC,GAAG,eAAe,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC;gBAClE,IAAI,CAAC,KAAK,IAAI;oBAAE,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACxC,CAAC;YACD,OAAO,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,YAAY,GAAG,CAAC,CAAC;gBAAE,KAAK,CAAC,YAAY,EAAE,CAAC;YACxE,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,cAAc,EAAE,EAAE,EAAE,CAAC;QACxD,CAAC;QAED,yEAAyE;QACzE,uEAAuE;QACvE,uEAAuE;QACvE,sEAAsE;QACtE,0EAA0E;QAC1E,kCAAkC;QAClC,MAAM,OAAO,GAAG,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;QAC5D,MAAM,SAAS,GAAG,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;QAClF,MAAM,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QAC3D,IAAI,CAAC,MAAM,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC;QAChC,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAsB,CAAC;QAC/C,KAAK,MAAM,KAAK,IAAI,MAAM;YAAE,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;QAC7E,MAAM,OAAO,GAAG,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;QACvC,IAAI,CAAC,cAAc,GAAG;YACpB,MAAM;YACN,YAAY,EAAE,eAAe,CAAC,wBAAwB,CAAC,SAAS,CAAC;YACjE,OAAO;SACR,CAAC;QACF,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,EAAE,EAAE,CAAC;IAClD,CAAC;IAED,0EAA0E;IAC1E,oBAAoB;IACpB,0EAA0E;IAE1E,cAAc,CACZ,OAAyB,EACzB,eAAgD;QAEhD,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QACzB,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;QAE7B,MAAM,EAAE,GAAG,OAAO,CAAC,QAAQ,CAAC;QAC5B,IAAI,CAAC,EAAE,EAAE,CAAC;YACR,OAAO;gBACL,MAAM,EAAE,WAAW,CAAC,KAAK;gBACzB,QAAQ,EAAE;oBACR,MAAM,EAAE,WAAW,CAAC,KAAK;oBACzB,MAAM,EAAE,IAAI;oBACZ,KAAK,EAAE,4CAA4C;iBACpD;aACF,CAAC;QACJ,CAAC;QAED,MAAM,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC;QAC3B,MAAM,UAAU,GAAG,EAAE,CAAC,qBAAqB,IAAI,EAAE,CAAC;QAClD,MAAM,KAAK,GAAG,EAAE,CAAC,mBAAmB,IAAI,EAAE,CAAC;QAE3C,mDAAmD;QACnD,MAAM,MAAM,GAAI,OAAmC,CAAC,OAEvC,CAAC;QACd,MAAM,SAAS,GAAI,OAAmC,CAAC,KAE1C,CAAC;QACd,sEAAsE;QACtE,qEAAqE;QACrE,6DAA6D;QAC7D,IAAI,CAAC,MAAM,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YACvC,OAAO;gBACL,MAAM,EAAE,WAAW,CAAC,KAAK;gBACzB,QAAQ,EAAE;oBACR,MAAM,EAAE,WAAW,CAAC,KAAK;oBACzB,MAAM,EAAE,IAAI;oBACZ,KAAK,EAAE,yEAAyE;iBACjF;aACF,CAAC;QACJ,CAAC;QACD,MAAM,MAAM,GAAG,QAAQ,MAAM,KAAK,SAAS,WAAW,CAAC;QAEvD,MAAM,MAAM,GAA4B;YACtC,OAAO,EAAE,MAAM;YACf,SAAS,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;YACpC,OAAO;YACP,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,EAAE;YACpC,UAAU;YACV,YAAY,EAAE,KAAK;YACnB,OAAO,EAAE,MAAM;YACf,KAAK,EAAE,SAAS;SACjB,CAAC;QACF,MAAM,SAAS,GAAG,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC;QACtD,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,OAAO;gBACL,MAAM,EAAE,WAAW,CAAC,KAAK;gBACzB,QAAQ,EAAE;oBACR,MAAM,EAAE,WAAW,CAAC,KAAK;oBACzB,MAAM,EAAE,IAAI;oBACZ,KAAK,EAAE,iFAAiF;iBACzF;aACF,CAAC;QACJ,CAAC;QAED,eAAe;QACf,IAAI,CAAC,KAAM,CAAC,UAAU,EAAE,CAAC;QACzB,IAAI,CAAC,KAAM,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACxC,IAAI,IAAI,CAAC,KAAM,CAAC,aAAa,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;YAC1C,IAAI,CAAC,KAAM,CAAC,aAAa,GAAG,IAAI,CAAC,KAAM,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;QACnE,CAAC;QAED,QAAQ,CAAC,gBAAgB,EAAE;YACzB,OAAO;YACP,MAAM,EAAE,MAAM,IAAI,SAAS;YAC3B,KAAK,EAAE,SAAS,IAAI,IAAI,CAAC,KAAM,CAAC,UAAU;SAC3C,CAAC,CAAC;QAEH,OAAO;YACL,MAAM,EAAE,WAAW,CAAC,EAAE;YACtB,QAAQ,EAAE;gBACR,MAAM,EAAE,WAAW,CAAC,EAAE;gBACtB,MAAM,EAAE,oCAAoC,OAAO,cAAc;gBACjE,KAAK,EAAE,IAAI;aACZ;SACF,CAAC;IACJ,CAAC;IAED,0EAA0E;IAC1E,+DAA+D;IAC/D,0EAA0E;IAE1E;;;;;gEAK4D;IAC5D,YAAY,CACV,QAAwB,EACxB,MAAc,EACd,KAAa,EACb,IAAY,EACZ,gBAA0C;QAE1C,IAAI,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QAEhG,MAAM,EAAE,GAAsB,qBAAqB,CAAC;YAClD,MAAM,EAAE,QAAQ,CAAC,cAAc;YAC/B,OAAO,EAAE,QAAQ,CAAC,OAAO;YACzB,qBAAqB,EAAE,QAAQ,CAAC,qBAAqB;YACrD,mBAAmB,EAAE,EAAE;SACxB,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,QAAQ,MAAM,KAAK,KAAK,WAAW,CAAC;QACnD,MAAM,aAAa,GAAG,OAAO,gBAAgB,EAAE,QAAQ,KAAK,QAAQ;YAClE,CAAC,CAAC,gBAAgB,CAAC,QAAQ;YAC3B,CAAC,CAAC,IAAI,CAAC;QACT,MAAM,oBAAoB,GAAG,CAC3B,MAAuC,EAC9B,EAAE;YACX,IAAI,CAAC,aAAa;gBAAE,OAAO,KAAK,CAAC;YACjC,OAAO,gBAAgB,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,MAAM,EAAE;gBACnD,MAAM,EAAE,MAAM;gBACd,YAAY,EAAE,IAAI;aACnB,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE;gBAChB,IAAI,KAAK,CAAC,OAAO,KAAK,MAAM;oBAAE,OAAO,KAAK,CAAC;gBAC3C,IAAI,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;oBAAE,OAAO,KAAK,CAAC;gBAC3C,MAAM,OAAO,GAAG,KAAK,CAAC,YAAY,CAAC;gBACnC,MAAM,WAAW,GAAG,OAAO,EAAE,iBAAiB,CAAC;gBAC/C,OAAO,WAAW,KAAK,IAAI;oBACzB,OAAO,WAAW,KAAK,QAAQ;oBAC/B,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC;oBAC1B,WAAuC,CAAC,QAAQ,KAAK,aAAa,CAAC;YACxE,CAAC,CAAC,CAAC;QACL,CAAC,CAAC;QACF,uEAAuE;QACvE,uEAAuE;QACvE,sEAAsE;QACtE,sEAAsE;QACtE,+DAA+D;QAC/D,MAAM,gBAAgB,GAAG,oBAAoB,CAAC,CAAC,KAAK,EAAE,EAAE;YACtD,MAAM,WAAW,GAAG,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC;gBAC9C,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,iBAAiB;gBACtC,CAAC,CAAC,IAAI,CAAC;YACT,MAAM,MAAM,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;YACjE,OAAO,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC;QAC9D,CAAC,CAAC,CAAC;QAEH,oFAAoF;QACpF,MAAM,aAAa,GAAG,CAAC,QAAQ,CAAC,cAAc,IAAI,EAAE,CAAC;aAClD,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,qBAAqB,IAAI,EAAE,CAAC;aAC7C,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC/B,MAAM,gBAAgB,GAAG;YACvB,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,sBAAsB,IAAI,EAAE,CAAC,EAAE,GAAG,aAAa,CAAC,CAAC;SAC3E,CAAC;QAEF,MAAM,MAAM,GAA4B;YACtC,OAAO,EAAE,MAAM;YACf,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;YAC5B,OAAO,EAAE,EAAE,CAAC,OAAO;YACnB,UAAU,EAAE,EAAE;YACd,UAAU,EAAE,QAAQ,CAAC,qBAAqB;YAC1C,YAAY,EAAE,EAAE;YAChB,OAAO,EAAE,MAAM;YACf,KAAK;YACL,0BAA0B;YAC1B,sBAAsB,EAAE,gBAAgB;YACxC,oBAAoB,EAAE,QAAQ,CAAC,oBAAoB,IAAI,EAAE;YACzD,gBAAgB,EAAE,QAAQ,CAAC,gBAAgB,IAAI,EAAE;YACjD,oEAAoE;YACpE,qEAAqE;YACrE,oEAAoE;YACpE,iDAAiD;YACjD,kBAAkB,EAAE,QAAQ,CAAC,kBAAkB,IAAI,EAAE;YACrD,gBAAgB,EAAE,QAAQ,CAAC,gBAAgB,IAAI,EAAE;YACjD,iBAAiB,EAAE,QAAQ,CAAC,iBAAiB,IAAI,EAAE;YACnD,yBAAyB;YACzB,kBAAkB,EAAE,QAAQ,CAAC,kBAAkB,IAAI,IAAI;YACvD,sBAAsB;YACtB,qBAAqB,EAAE,QAAQ,CAAC,qBAAqB,IAAI,EAAE;YAC3D,wBAAwB,EAAE,QAAQ,CAAC,wBAAwB,IAAI,EAAE;YACjE,iBAAiB,EAAE,QAAQ,CAAC,iBAAiB,IAAI,EAAE;YACnD,yCAAyC;YACzC,cAAc,EAAE,QAAQ,CAAC,cAAc,IAAI,EAAE;YAC7C,+CAA+C;YAC/C,OAAO,EAAE,QAAQ,CAAC,OAAO;YACzB,YAAY,EAAE,gBAAgB;gBAC5B,CAAC,CAAC;oBACE,KAAK;oBACL,QAAQ,EAAE,gBAAgB,CAAC,QAAQ;oBACnC,iBAAiB,EAAE,gBAAgB;iBACpC;gBACH,CAAC,CAAC,EAAE;SACP,CAAC;QACF,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACtB,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC;YACpC,IAAI,aAAa,IAAI,CAAC,oBAAoB,EAAE,EAAE,CAAC;gBAC7C,MAAM,IAAI,KAAK,CAAC,iCAAiC,aAAa,EAAE,CAAC,CAAC;YACpE,CAAC;QACH,CAAC;QAED,kEAAkE;QAClE,IAAI,QAAQ,CAAC,cAAc,IAAI,QAAQ,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAClE,MAAM,OAAO,GAAG,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;gBACrD,KAAK,EAAE,CAAC,GAAG,CAAC;gBACZ,OAAO,EAAE,CAAC,CAAC,OAAO;gBAClB,YAAY,EAAE,CAAC,CAAC,YAAY;gBAC5B,OAAO,EAAE,CAAC,CAAC,OAAO;gBAClB,aAAa,EAAE,CAAC,CAAC,aAAa;gBAC9B,OAAO,EAAE,CAAC,CAAC,OAAO;gBAClB,OAAO,EAAE,CAAC,CAAC,OAAO;gBAClB,qBAAqB,EAAE,CAAC,CAAC,qBAAqB,IAAI,EAAE;aACrD,CAAC,CAAC,CAAC;YACJ,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QAChD,CAAC;QAED,wEAAwE;QACxE,mEAAmE;QACnE,IAAI,gBAAgB;YAAE,OAAO,EAAE,CAAC,OAAO,CAAC;QAExC,eAAe;QACf,IAAI,CAAC,KAAM,CAAC,UAAU,EAAE,CAAC;QACzB,IAAI,CAAC,KAAM,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;QAC3C,IAAI,IAAI,CAAC,KAAM,CAAC,aAAa,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;YAC1C,IAAI,CAAC,KAAM,CAAC,aAAa,GAAG,IAAI,CAAC,KAAM,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;QACnE,CAAC;QAED,mEAAmE;QACnE,yDAAyD;QACzD,oEAAoE;QAEpE,QAAQ,CAAC,gBAAgB,EAAE;YACzB,MAAM;YACN,KAAK;YACL,OAAO,EAAE,EAAE,CAAC,OAAO;SACpB,CAAC,CAAC;QAEH,OAAO,EAAE,CAAC,OAAO,CAAC;IACpB,CAAC;IAED,0EAA0E;IAC1E,iCAAiC;IACjC,0EAA0E;IAE1E,iBAAiB,CACf,OAAyB,EACzB,cAA+C,EAC/C,UAAwC,EAAE;QAE1C,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QACzB,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;QAE7B,sEAAsE;QACtE,mEAAmE;QACnE,wEAAwE;QACxE,MAAM,MAAM,GAAG,OAAkC,CAAC;QAClD,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,eAAe,CACrC,MAAM,EACN,OAAO,CAAC,OAAO,IAAI,EAAE,CACtB,CAAC;QACF,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1B,QAAQ,CAAC,qBAAqB,EAAE;gBAC9B,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC;aAC1D,CAAC,CAAC;QACL,CAAC;QAED,MAAM,GAAG,GAAG,sBAAsB,CAAC;YACjC,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,kBAAkB,EAAE,MAAM,CAAC,kBAAkB;YAC7C,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,qBAAqB,EAAE,MAAM,CAAC,qBAAqB;YACnD,oBAAoB,EAAE,MAAM,CAAC,oBAAoB;YACjD,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,qBAAqB,EAAE,MAAM,CAAC,qBAAqB;YACnD,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;YACzC,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,kBAAkB,EAAE,MAAM,CAAC,kBAAkB;YAC7C,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,sBAAsB,EAAE,MAAM,CAAC,sBAAsB;YACrD,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;SAC1C,CAAC,CAAC;QAEH,4EAA4E;QAC5E,IAAI,MAAM,CAAC,iBAAiB,EAAE,CAAC;YAC7B,MAAM,EAAE,GAAG,MAAM,CAAC,iBAAiB,CAAC;YACpC,8CAA8C;YAC9C,MAAM,iBAAiB,GAAG,sBAAsB,CAC9C,EAAE,CAAC,kBAAyD,CAC7D,CAAC;YACF,oDAAoD;YACpD,MAAM,eAAe,GAAG,uBAAuB,CAAC,EAAE,CAAC,wBAAwB,CAAC,CAAC;YAC7E,GAAG,CAAC,iBAAiB,GAAG,mBAAmB,CAAC;gBAC1C,KAAK,EAAG,EAAE,CAAC,KAAgB,IAAI,CAAC;gBAChC,OAAO,EAAG,EAAE,CAAC,OAAmB,IAAI,KAAK;gBACzC,cAAc,EAAG,EAAE,CAAC,cAAyB,IAAI,EAAE;gBACnD,qBAAqB,EAClB,EAAE,CAAC,qBAAkC,IAAI,EAAE;gBAC9C,mBAAmB,EAAG,EAAE,CAAC,mBAA8B,IAAI,EAAE;gBAC7D,oCAAoC;gBACpC,sBAAsB,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,sBAAsB,CAAC;oBAC9D,CAAC,CAAE,EAAE,CAAC,sBAAmC,CAAC,MAAM,CAAC,CAAC,CAAU,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC;oBACvF,CAAC,CAAC,EAAE;gBACN,oBAAoB,EAAE,OAAO,EAAE,CAAC,oBAAoB,KAAK,QAAQ;oBAC/D,CAAC,CAAC,EAAE,CAAC,oBAAoB;oBACzB,CAAC,CAAC,EAAE;gBACN,gBAAgB,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,gBAAgB,CAAC;oBAClD,CAAC,CAAE,EAAE,CAAC,gBAA6B,CAAC,MAAM,CAAC,CAAC,CAAU,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC;oBACjF,CAAC,CAAC,EAAE;gBACN,yBAAyB;gBACzB,kBAAkB,EAAE,iBAAiB;gBACrC,sBAAsB;gBACtB,qBAAqB,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,qBAAqB,CAAC;oBAC5D,CAAC,CAAE,EAAE,CAAC,qBAAkC,CAAC,MAAM,CAAC,CAAC,CAAU,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC;oBACtF,CAAC,CAAC,EAAE;gBACN,wBAAwB,EAAE,eAAe;gBACzC,iBAAiB,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,iBAAiB,CAAC;oBACpD,CAAC,CAAE,EAAE,CAAC,iBAA8B,CAAC,MAAM,CAAC,CAAC,CAAU,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC;oBAClF,CAAC,CAAC,EAAE;gBACN,6BAA6B;gBAC7B,sBAAsB,EACpB,OAAO,EAAE,CAAC,sBAAsB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,sBAAsB,CAAC,CAAC,CAAC,KAAK;gBACpF,gBAAgB,EACd,OAAO,EAAE,CAAC,gBAAgB,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE;gBACpE,2BAA2B;gBAC3B,kBAAkB,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,kBAAkB,CAAC;oBACtD,CAAC,CAAE,EAAE,CAAC,kBAA+B,CAAC,MAAM,CAAC,CAAC,CAAU,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC;oBACnF,CAAC,CAAC,EAAE;gBACN,gBAAgB,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,gBAAgB,CAAC;oBAClD,CAAC,CAAE,EAAE,CAAC,gBAA6B,CAAC,MAAM,CAAC,CAAC,CAAU,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC;oBACjF,CAAC,CAAC,EAAE;gBACN,iBAAiB,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,iBAAiB,CAAC;oBACpD,CAAC,CAAE,EAAE,CAAC,iBAA8B,CAAC,MAAM,CAAC,CAAC,CAAU,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC;oBAClF,CAAC,CAAC,EAAE;gBACN,4BAA4B;gBAC5B,mBAAmB,EAAE,OAAO,EAAE,CAAC,mBAAmB,KAAK,QAAQ;oBAC7D,CAAC,CAAC,EAAE,CAAC,mBAAmB;oBACxB,CAAC,CAAC,SAAS;gBACb,yDAAyD;gBACzD,cAAc,EAAE,kBAAkB,CAAC,EAAE,CAAC,cAAc,CAAC;gBACrD,0DAA0D;gBAC1D,OAAO,EAAE,EAAE,CAAC,OAAO,KAAK,SAAS,IAAI,EAAE,CAAC,OAAO,KAAK,SAAS;oBAC3D,EAAE,CAAC,OAAO,KAAK,QAAQ,IAAI,EAAE,CAAC,OAAO,KAAK,SAAS;oBACnD,CAAC,CAAC,EAAE,CAAC,OAAO;oBACZ,CAAC,CAAC,SAAS;gBACb,OAAO,EAAE,OAAO,EAAE,CAAC,OAAO,KAAK,QAAQ,IAAI,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC;oBACrE,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;oBAC1B,CAAC,CAAC,SAAS;gBACb,iBAAiB,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,iBAAiB,CAAC;oBACpD,CAAC,CAAE,EAAE,CAAC,iBAAoD;yBACvD,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC;wBAC9B,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC;wBACjD,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;yBACzD,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAe,EAAE,KAAK,EAAG,IAAI,CAAC,KAAgB,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;yBAC7F,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;oBACf,CAAC,CAAC,EAAE;aACP,CAAC,CAAC;QACL,CAAC;QAED,yEAAyE;QACzE,IAAI,MAAM,CAAC,cAAc,EAAE,CAAC;YAC1B,MAAM,GAAG,GAAG,MAAM,CAAC,cAAc,CAAC;YAClC,GAAG,CAAC,cAAc,GAAG,iBAAiB,CAAC;gBACrC,SAAS,EAAG,GAAG,CAAC,SAAoB,IAAI,EAAE;gBAC1C,gBAAgB,EAAG,GAAG,CAAC,gBAA6B,IAAI,EAAE;gBAC1D,gBAAgB,EAAG,GAAG,CAAC,gBAA6B,IAAI,EAAE;gBAC1D,gBAAgB,EAAG,GAAG,CAAC,gBAA2B,IAAI,CAAC;gBACvD,OAAO,EAAG,GAAG,CAAC,OAAkB,IAAI,EAAE;aACvC,CAAC,CAAC;QACL,CAAC;QAED,+CAA+C;QAC/C,IAAI,OAAO,GAAG,cAAc,IAAI,IAAI,CAAC;QACrC,IAAI,OAAO,KAAK,IAAI,IAAI,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC;YACrD,sEAAsE;YACtE,oEAAoE;YACpE,2BAA2B;YAC3B,OAAO,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;QAC5D,CAAC;QAED,qCAAqC;QACrC,IAAI,QAA6B,CAAC;QAClC,IAAI,CAAC;YACH,QAAQ,GAAG,WAAW,CAAC,GAAG,EAAE,OAAyC,CAAC,CAAC;QACzE,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO;gBACL,MAAM,EAAE,WAAW,CAAC,KAAK;gBACzB,QAAQ,EAAE;oBACR,MAAM,EAAE,WAAW,CAAC,KAAK;oBACzB,MAAM,EAAE,IAAI;oBACZ,KAAK,EAAE,wBAAwB,GAAG,EAAE;iBACrC;aACF,CAAC;QACJ,CAAC;QAED,2BAA2B;QAC3B,IAAI,OAAO,CAAC,cAAc,KAAK,KAAK,EAAE,CAAC;YACrC,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;QACzC,CAAC;QAED,OAAO;YACL,MAAM,EAAE,WAAW,CAAC,EAAE;YACtB,QAAQ,EAAE;gBACR,MAAM,EAAE,WAAW,CAAC,EAAE;gBACtB,MAAM,EAAE,QAAQ,CAAC,MAAM;gBACvB,KAAK,EAAE,IAAI;gBACX,kBAAkB,EAAE,QAAQ,CAAC,kBAAkB;gBAC/C,eAAe,EAAE,QAAQ,CAAC,eAAe;gBACzC,QAAQ,EAAE,QAAQ,CAAC,QAAQ;gBAC3B,6DAA6D;gBAC7D,iEAAiE;gBACjE,eAAe,EAAE,QAAQ,CAAC,eAAe;gBACzC,SAAS,EAAE,QAAQ,CAAC,SAAS;gBAC7B,mBAAmB,EAAE,QAAQ,CAAC,mBAAmB;aAClD;SACF,CAAC;IACJ,CAAC;;AAIH,8EAA8E;AAC9E,UAAU;AACV,8EAA8E;AAE9E,MAAM,UAAU,YAAY,CAC1B,KAAiB;IAEjB,OAAO,IAAI,eAAe,CAAC,KAAK,CAAC,CAAC;AACpC,CAAC"}
|