@cello-protocol/daemon 0.0.174 → 0.0.176
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/close-session-handler.d.ts.map +1 -1
- package/dist/close-session-handler.js +10 -186
- package/dist/close-session-handler.js.map +1 -1
- package/dist/daemon.d.ts.map +1 -1
- package/dist/daemon.js +76 -39
- package/dist/daemon.js.map +1 -1
- package/dist/seal-escalation.d.ts +80 -0
- package/dist/seal-escalation.d.ts.map +1 -0
- package/dist/seal-escalation.js +201 -0
- package/dist/seal-escalation.js.map +1 -0
- package/dist/session-content-handlers.d.ts.map +1 -1
- package/dist/session-content-handlers.js +82 -1
- package/dist/session-content-handlers.js.map +1 -1
- package/dist/session-node-manager.d.ts +231 -5
- package/dist/session-node-manager.d.ts.map +1 -1
- package/dist/session-node-manager.js +684 -17
- package/dist/session-node-manager.js.map +1 -1
- package/package.json +5 -5
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DOD-M12B-SEAL-ESCALATE-DUP-1 — the ONE unilateral escalation.
|
|
3
|
+
*
|
|
4
|
+
* There used to be two, and `daemon.ts`'s away/one-shot copy missed every fix this milestone made to
|
|
5
|
+
* the other: the empty-carry refusal, the gappy-chain refusal, the duplicate-own-ctrl-leaf refusal,
|
|
6
|
+
* and the bilateral-in-progress refusal. It spent the full timeout on each of those cases and then
|
|
7
|
+
* reported `seal_unilateral_timeout` — the label that names our own wait, which is the founding
|
|
8
|
+
* error-fidelity defect of this milestone. Pinned by `msg-019-one-escalation.test.ts`, which fails
|
|
9
|
+
* if a second implementation appears.
|
|
10
|
+
*/
|
|
11
|
+
import type { KeyProvider } from "@cello-protocol/crypto";
|
|
12
|
+
import type { SessionNodeManager } from "./session-node-manager.js";
|
|
13
|
+
import type { UnilateralResult } from "./seal-coordinator.js";
|
|
14
|
+
import type { Logger } from "./types.js";
|
|
15
|
+
/**
|
|
16
|
+
* How long to wait for the directory's answer to a `seal_unilateral` request.
|
|
17
|
+
*
|
|
18
|
+
* ONE number, because the two callers had their own copies of it and that is the same drift this
|
|
19
|
+
* module exists to end — the away path's was a hardcoded literal that no test could shorten.
|
|
20
|
+
*/
|
|
21
|
+
export declare const UNILATERAL_SEAL_TIMEOUT_MS = 30000;
|
|
22
|
+
export interface SealEscalationDeps {
|
|
23
|
+
logger: Logger;
|
|
24
|
+
sessionNodeManager: SessionNodeManager;
|
|
25
|
+
sendOver: (agentName: string, frame: Record<string, unknown>) => Promise<{
|
|
26
|
+
ok: boolean;
|
|
27
|
+
reason?: string;
|
|
28
|
+
}>;
|
|
29
|
+
pendingUnilateralWaiters: Map<string, (r: UnilateralResult) => void>;
|
|
30
|
+
sealKey: (agentName: string, sessionId: string) => string;
|
|
31
|
+
getKeyProvider: (agentName: string) => KeyProvider | undefined;
|
|
32
|
+
/** How long to wait for the directory's answer. */
|
|
33
|
+
timeoutMs: number;
|
|
34
|
+
/** Called on a completed seal, for callers holding per-session state to evict. */
|
|
35
|
+
onSealed?: (agentName: string, sessionId: string) => void;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* DOD-M12B-INTERRUPTED-ESCALATE-1 — ask the directory to notarize with the counterparty absent.
|
|
39
|
+
*
|
|
40
|
+
* Extracted from the ACTIVE branch so the INTERRUPTED branch can reach it too. It could not
|
|
41
|
+
* before: every exit from the interrupted branch is a `return`, so the active block below it —
|
|
42
|
+
* the only place this code lived — was structurally unreachable for an interrupted session. The
|
|
43
|
+
* result was that an interrupted session could never obtain a receipt, **even when a human closed
|
|
44
|
+
* it by hand**: it reached `seal_interrupted_pending`, a mutually signed record nobody was ever
|
|
45
|
+
* asked to notarize, and stopped there. 26 sessions sat in that state for up to 10.5 days.
|
|
46
|
+
*
|
|
47
|
+
* The directory enforces the delivery-grace gate and answers `seal_unilateral_too_early` with the
|
|
48
|
+
* time remaining, which is returned as `retry_after_seconds` so a caller that can wait does not
|
|
49
|
+
* have to be a human reading a sentence.
|
|
50
|
+
*/
|
|
51
|
+
export declare function escalateToUnilateralSeal(deps: SealEscalationDeps,
|
|
52
|
+
/** AGENT NAME, not a SessionRecord. The away path holds no record and was passing a two-field
|
|
53
|
+
* cast; only `agent_name` was ever read, so the cast bought nothing except a latent crash the
|
|
54
|
+
* first time someone here reaches for a third field. */
|
|
55
|
+
agentName: string, sessionId: string, escalation: {
|
|
56
|
+
reportedRootHex: string;
|
|
57
|
+
sequenceNumber: number;
|
|
58
|
+
}, correlationId: string,
|
|
59
|
+
/**
|
|
60
|
+
* Refuse locally when the carry cannot possibly verify, instead of spending 30 s to be told
|
|
61
|
+
* nothing. ON for the two paths `submitAndEscalate` drives — the interrupted close and the
|
|
62
|
+
* `seal_interrupted_pending` close — and deliberately OFF for the ACTIVE one. Those two are new
|
|
63
|
+
* and are what the restart-seal resolver drives automatically for every orphan. The ACTIVE path's
|
|
64
|
+
* behaviour is left exactly as it was — it has shipped and been exercised for milestones, and
|
|
65
|
+
* a pre-flight refusal there could turn a seal that works today into one that does not.
|
|
66
|
+
*/
|
|
67
|
+
opts?: {
|
|
68
|
+
refuseOnUnusableCarry: boolean;
|
|
69
|
+
}): Promise<{
|
|
70
|
+
ok: true;
|
|
71
|
+
sealed_root: string;
|
|
72
|
+
seal_type: "unilateral";
|
|
73
|
+
legibility?: unknown;
|
|
74
|
+
} | {
|
|
75
|
+
ok: false;
|
|
76
|
+
reason: string;
|
|
77
|
+
retry_after_seconds?: number;
|
|
78
|
+
guidance: string;
|
|
79
|
+
}>;
|
|
80
|
+
//# sourceMappingURL=seal-escalation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"seal-escalation.d.ts","sourceRoot":"","sources":["../src/seal-escalation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAEzC;;;;;GAKG;AACH,eAAO,MAAM,0BAA0B,QAAS,CAAC;AAEjD,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,kBAAkB,EAAE,kBAAkB,CAAC;IACvC,QAAQ,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC3G,wBAAwB,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,gBAAgB,KAAK,IAAI,CAAC,CAAC;IACrE,OAAO,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,MAAM,CAAC;IAC1D,cAAc,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,WAAW,GAAG,SAAS,CAAC;IAC/D,mDAAmD;IACnD,SAAS,EAAE,MAAM,CAAC;IAClB,kFAAkF;IAClF,QAAQ,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;CAC3D;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,wBAAwB,CAC5C,IAAI,EAAE,kBAAkB;AACxB;;yDAEyD;AACzD,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE;IAAE,eAAe,EAAE,MAAM,CAAC;IAAC,cAAc,EAAE,MAAM,CAAA;CAAE,EAC/D,aAAa,EAAE,MAAM;AACrB;;;;;;;GAOG;AACH,IAAI,GAAE;IAAE,qBAAqB,EAAE,OAAO,CAAA;CAAqC,GAC1E,OAAO,CACN;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,YAAY,CAAC;IAAC,UAAU,CAAC,EAAE,OAAO,CAAA;CAAE,GAChF;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAChF,CA8KA"}
|
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* How long to wait for the directory's answer to a `seal_unilateral` request.
|
|
3
|
+
*
|
|
4
|
+
* ONE number, because the two callers had their own copies of it and that is the same drift this
|
|
5
|
+
* module exists to end — the away path's was a hardcoded literal that no test could shorten.
|
|
6
|
+
*/
|
|
7
|
+
export const UNILATERAL_SEAL_TIMEOUT_MS = 30_000;
|
|
8
|
+
/**
|
|
9
|
+
* DOD-M12B-INTERRUPTED-ESCALATE-1 — ask the directory to notarize with the counterparty absent.
|
|
10
|
+
*
|
|
11
|
+
* Extracted from the ACTIVE branch so the INTERRUPTED branch can reach it too. It could not
|
|
12
|
+
* before: every exit from the interrupted branch is a `return`, so the active block below it —
|
|
13
|
+
* the only place this code lived — was structurally unreachable for an interrupted session. The
|
|
14
|
+
* result was that an interrupted session could never obtain a receipt, **even when a human closed
|
|
15
|
+
* it by hand**: it reached `seal_interrupted_pending`, a mutually signed record nobody was ever
|
|
16
|
+
* asked to notarize, and stopped there. 26 sessions sat in that state for up to 10.5 days.
|
|
17
|
+
*
|
|
18
|
+
* The directory enforces the delivery-grace gate and answers `seal_unilateral_too_early` with the
|
|
19
|
+
* time remaining, which is returned as `retry_after_seconds` so a caller that can wait does not
|
|
20
|
+
* have to be a human reading a sentence.
|
|
21
|
+
*/
|
|
22
|
+
export async function escalateToUnilateralSeal(deps,
|
|
23
|
+
/** AGENT NAME, not a SessionRecord. The away path holds no record and was passing a two-field
|
|
24
|
+
* cast; only `agent_name` was ever read, so the cast bought nothing except a latent crash the
|
|
25
|
+
* first time someone here reaches for a third field. */
|
|
26
|
+
agentName, sessionId, escalation, correlationId,
|
|
27
|
+
/**
|
|
28
|
+
* Refuse locally when the carry cannot possibly verify, instead of spending 30 s to be told
|
|
29
|
+
* nothing. ON for the two paths `submitAndEscalate` drives — the interrupted close and the
|
|
30
|
+
* `seal_interrupted_pending` close — and deliberately OFF for the ACTIVE one. Those two are new
|
|
31
|
+
* and are what the restart-seal resolver drives automatically for every orphan. The ACTIVE path's
|
|
32
|
+
* behaviour is left exactly as it was — it has shipped and been exercised for milestones, and
|
|
33
|
+
* a pre-flight refusal there could turn a seal that works today into one that does not.
|
|
34
|
+
*/
|
|
35
|
+
opts = { refuseOnUnusableCarry: false }) {
|
|
36
|
+
const { logger, sessionNodeManager, sendOver, pendingUnilateralWaiters, sealKey, getKeyProvider, onSealed } = deps;
|
|
37
|
+
const UNILATERAL_TIMEOUT_MS = deps.timeoutMs;
|
|
38
|
+
let resolveUni;
|
|
39
|
+
const uniP = new Promise((r) => { resolveUni = r; });
|
|
40
|
+
pendingUnilateralWaiters.set(sealKey(agentName, sessionId), resolveUni);
|
|
41
|
+
// FED-OPTIONB-SEAL-001 (Option B): carry the full leaf chain (both parties) + the relay receipts so
|
|
42
|
+
// the directory rebuilds + verifies the tree OFFLINE — no directory→relay getSealLeaves dial. The
|
|
43
|
+
// store is keyed by the agent's K_local pubkey (the same key the relay client recorded under).
|
|
44
|
+
const sealAgentKp = getKeyProvider(agentName);
|
|
45
|
+
const sealAgentPubkeyHex = sealAgentKp ? Buffer.from(await sealAgentKp.getPublicKey()).toString("hex") : "";
|
|
46
|
+
// NAMED SEPARATELY, because without it this falls through to an empty carry and answers
|
|
47
|
+
// `seal_carry_empty` — "the relay released the session, the receipt is no longer obtainable",
|
|
48
|
+
// which is TERMINAL in the restart-seal resolver. A local agent that is not loaded would have
|
|
49
|
+
// been written off as permanent relay-side loss, with a durable give-up row to match.
|
|
50
|
+
if (!sealAgentPubkeyHex) {
|
|
51
|
+
pendingUnilateralWaiters.delete(sealKey(agentName, sessionId));
|
|
52
|
+
return {
|
|
53
|
+
ok: false,
|
|
54
|
+
reason: "seal_agent_key_unavailable",
|
|
55
|
+
guidance: "This agent's identity key is not loaded in this daemon, so the leaf chain a notarization is verified from cannot be read. Start the agent (cello_start_agent) and retry cello_close_session. Nothing about the session is lost.",
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
const sealCarry = sessionNodeManager.getSealCarry(sealAgentPubkeyHex, sessionId);
|
|
59
|
+
const seal_leaves = sealCarry.map((l) => ({
|
|
60
|
+
sequence_number: l.sequenceNumber,
|
|
61
|
+
leaf_kind: l.leafKind,
|
|
62
|
+
structure2_cbor: l.structure2Cbor,
|
|
63
|
+
structure1_cbor: l.structure1Cbor,
|
|
64
|
+
// Relay receipt (present only for the present party's OWN leaves — the seq-pinning teeth).
|
|
65
|
+
relay_id: l.relayId,
|
|
66
|
+
relay_timestamp: l.relayTimestamp,
|
|
67
|
+
relay_signature: l.relaySignatureHex ? new Uint8Array(Buffer.from(l.relaySignatureHex, "hex")) : undefined,
|
|
68
|
+
}));
|
|
69
|
+
// REFUSE LOCALLY FOR A LOCALLY-KNOWABLE FAILURE, rather than spending 30 s to be told nothing.
|
|
70
|
+
//
|
|
71
|
+
// Every directory-side refusal — `unilateral_leaves_unavailable`, `unilateral_chain_noncontiguous`,
|
|
72
|
+
// `unilateral_own_leaf_unwitnessed`, `unilateral_receipt_invalid`, `unilateral_root_unverifiable`,
|
|
73
|
+
// `unilateral_seal_leaf_invalid`, and the already-sealed dedup — is a bare `return` that sends
|
|
74
|
+
// no frame. All seven reach the caller as `seal_unilateral_timeout`, which names our own wait:
|
|
75
|
+
// the one thing that was working. That is this milestone's founding error-fidelity defect,
|
|
76
|
+
// reproduced, and the restart-seal resolver now hits it automatically for every orphan.
|
|
77
|
+
//
|
|
78
|
+
// Two of the causes are checkable here, from the carry we are about to send, and they are the
|
|
79
|
+
// dominant ones. The directory still re-checks everything — this refuses earlier and by name,
|
|
80
|
+
// it does not become the authority.
|
|
81
|
+
if (opts.refuseOnUnusableCarry && seal_leaves.length === 0) {
|
|
82
|
+
pendingUnilateralWaiters.delete(sealKey(agentName, sessionId));
|
|
83
|
+
return {
|
|
84
|
+
ok: false,
|
|
85
|
+
reason: "seal_carry_empty",
|
|
86
|
+
guidance: "This side holds no relay-witnessed leaves for the session, so there is nothing the directory could rebuild the record from. That usually means the relay dropped the session (it releases one 24 hours after the last message) before it was closed. cello_transcript still shows what was said; a notarized receipt is no longer obtainable.",
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
const sequences = seal_leaves.map((l) => l.sequence_number).sort((a, b) => a - b);
|
|
90
|
+
const contiguousFromOne = sequences.every((n, i) => n === i + 1);
|
|
91
|
+
if (opts.refuseOnUnusableCarry && !contiguousFromOne) {
|
|
92
|
+
pendingUnilateralWaiters.delete(sealKey(agentName, sessionId));
|
|
93
|
+
return {
|
|
94
|
+
ok: false,
|
|
95
|
+
reason: "seal_carry_noncontiguous",
|
|
96
|
+
guidance: `The record this side holds has a gap: the relay assigned sequences ${sequences.join(", ")}, and a unilateral seal requires an unbroken chain from 1. A message the relay witnessed never reached this daemon. Try again once it arrives (cello_receive drains what the relay still holds); if it never does, only a force-abandon can end the session, and that produces no receipt.`,
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
// A THIRD locally-knowable cause: a carry that already holds TWO of our SEAL ctrl leaves. Those
|
|
100
|
+
// sessions exist right now — the one-shot submit mark has always been in memory, so any close
|
|
101
|
+
// in flight across a restart could post a second before the durable recovery shipped. The
|
|
102
|
+
// directory refuses them with `unilateral_seal_leaf_invalid`, silently, so each one currently
|
|
103
|
+
// burns five resolver attempts and 30 s apiece before being reported as a directory timeout.
|
|
104
|
+
// JUDGED FIRST, because it is the PERMANENT one. Two of our own ctrl leaves can never be
|
|
105
|
+
// notarized by any directory, and a carry holding those plus the counterparty's would otherwise
|
|
106
|
+
// match the bilateral check below and be answered "wait, a better receipt is coming" — for a
|
|
107
|
+
// session where nothing is coming, and where the resolver would then spend five attempts
|
|
108
|
+
// instead of giving up once with the truthful reason.
|
|
109
|
+
const ownCtrl = sealCarry.filter((l) => l.leafKind === 0x02 && l.senderPubkeyHex === sealAgentPubkeyHex);
|
|
110
|
+
if (opts.refuseOnUnusableCarry && ownCtrl.length > 1) {
|
|
111
|
+
pendingUnilateralWaiters.delete(sealKey(agentName, sessionId));
|
|
112
|
+
return {
|
|
113
|
+
ok: false,
|
|
114
|
+
reason: "seal_carry_duplicate_own_ctrl_leaf",
|
|
115
|
+
guidance: `This session's record holds ${ownCtrl.length} SEAL control leaves from this side where it may hold exactly one, so no directory can notarize it. That happens when a close was interrupted mid-flight and a later close posted a second leaf. The conversation itself is intact — cello_transcript shows it — but a notarized receipt is no longer obtainable, and only a force-abandon can end the session.`,
|
|
116
|
+
};
|
|
117
|
+
}
|
|
118
|
+
// WHAT THIS ACTUALLY CHECKS, and why it is deliberately NARROWER than the directory's rule.
|
|
119
|
+
// The directory refuses unless there is exactly ONE ctrl leaf (`ctrlLeaves.length !== 1`). This
|
|
120
|
+
// refuses only the case it can name usefully: more than one, from more than one SENDER — ours
|
|
121
|
+
// plus the counterparty's. Two cases the directory still refuses and this does NOT pre-empt:
|
|
122
|
+
// zero ctrl leaves — our own relay receipt may simply not have landed yet, so
|
|
123
|
+
// refusing here would be a FALSE refusal on a healthy session.
|
|
124
|
+
// >1, all authored by THEM — not ours to explain, and not actionable by this operator.
|
|
125
|
+
// The case it does catch is the responder-side normal: the relay reads two senders' leaves as
|
|
126
|
+
// both parties having posted and starts a full BILATERAL seal — a better receipt than a
|
|
127
|
+
// unilateral one — while this side would fire a unilateral request the directory refuses
|
|
128
|
+
// silently, costing a 30-second wait to be told nothing.
|
|
129
|
+
//
|
|
130
|
+
// ORDER MATTERS: the duplicate-own-leaf check above runs FIRST. A carry holding two of OUR
|
|
131
|
+
// leaves plus the counterparty's matches both predicates, and that session is permanently
|
|
132
|
+
// unsealable — telling the operator to wait for a bilateral seal that can never land would be
|
|
133
|
+
// worse than the silence this replaces.
|
|
134
|
+
const allCtrl = sealCarry.filter((l) => l.leafKind === 0x02);
|
|
135
|
+
if (opts.refuseOnUnusableCarry && allCtrl.length > 1 && new Set(allCtrl.map((l) => l.senderPubkeyHex)).size > 1) {
|
|
136
|
+
pendingUnilateralWaiters.delete(sealKey(agentName, sessionId));
|
|
137
|
+
return {
|
|
138
|
+
ok: false,
|
|
139
|
+
reason: "seal_carry_bilateral_in_progress",
|
|
140
|
+
guidance: "Both parties have posted their SEAL leaf, so the relay has what it needs to notarize this BILATERALLY — a better receipt than a unilateral one, and asking for a unilateral seal now would be refused. Wait for the seal to land (cello_sessions shows the status) and read the receipt with cello_sealed_receipt.",
|
|
141
|
+
};
|
|
142
|
+
}
|
|
143
|
+
const sent = await sendOver(agentName, {
|
|
144
|
+
type: "seal_unilateral",
|
|
145
|
+
session_id: new Uint8Array(Buffer.from(sessionId, "hex")),
|
|
146
|
+
reported_root: new Uint8Array(Buffer.from(escalation.reportedRootHex, "hex")),
|
|
147
|
+
reported_seq: escalation.sequenceNumber,
|
|
148
|
+
seal_leaves,
|
|
149
|
+
});
|
|
150
|
+
if (!sent.ok) {
|
|
151
|
+
pendingUnilateralWaiters.delete(sealKey(agentName, sessionId));
|
|
152
|
+
return {
|
|
153
|
+
ok: false,
|
|
154
|
+
reason: "seal_unilateral_send_failed",
|
|
155
|
+
guidance: "The unilateral seal request could not be sent to the directory. Check the directory connection (cello status) and retry cello_close_session.",
|
|
156
|
+
};
|
|
157
|
+
}
|
|
158
|
+
let uniTimer;
|
|
159
|
+
const uniTimeoutP = new Promise((r) => {
|
|
160
|
+
uniTimer = setTimeout(() => r({ ok: false, reason: "seal_unilateral_timeout" }), UNILATERAL_TIMEOUT_MS);
|
|
161
|
+
});
|
|
162
|
+
const uniResult = await Promise.race([uniP, uniTimeoutP]);
|
|
163
|
+
clearTimeout(uniTimer);
|
|
164
|
+
pendingUnilateralWaiters.delete(sealKey(agentName, sessionId));
|
|
165
|
+
if (uniResult.ok) {
|
|
166
|
+
logger.info("session.seal.completed", { sessionId, sealedRoot: uniResult.sealedRootHex, role: "unilateral", correlationId });
|
|
167
|
+
onSealed?.(agentName, sessionId); // Fix #1 review: evict the broker entry on terminal seal success (a FAILED close keeps it so a retry can still reconnect).
|
|
168
|
+
// M8B FINDING-3 (cascade-2): return the legibility certificate inline — same shape as the
|
|
169
|
+
// bilateral close (AC-006) — so the operator gets the receipt on the surface that proves
|
|
170
|
+
// the seal, not just a bare root. It is also persisted for cello_get_sealed_receipt.
|
|
171
|
+
return {
|
|
172
|
+
ok: true,
|
|
173
|
+
sealed_root: uniResult.sealedRootHex,
|
|
174
|
+
seal_type: "unilateral",
|
|
175
|
+
...(uniResult.legibility !== undefined ? { legibility: uniResult.legibility } : {}),
|
|
176
|
+
};
|
|
177
|
+
}
|
|
178
|
+
if (uniResult.reason === "seal_unilateral_too_early") {
|
|
179
|
+
// F20: tell the operator WHEN the unilateral seal becomes available, not just "later".
|
|
180
|
+
const when = typeof uniResult.remainingSeconds === "number"
|
|
181
|
+
? `A unilateral seal becomes available in ~${uniResult.remainingSeconds}s. `
|
|
182
|
+
: "";
|
|
183
|
+
return {
|
|
184
|
+
ok: false,
|
|
185
|
+
reason: "seal_counterparty_pending",
|
|
186
|
+
// DOD-M12B-RESTART-SEAL-1: the deadline as a NUMBER, not only inside the sentence. The
|
|
187
|
+
// directory tells us exactly when this becomes allowed and, until now, the only consumer of
|
|
188
|
+
// that fact was English prose asking a human to come back in eleven minutes.
|
|
189
|
+
...(typeof uniResult.remainingSeconds === "number"
|
|
190
|
+
? { retry_after_seconds: uniResult.remainingSeconds }
|
|
191
|
+
: {}),
|
|
192
|
+
guidance: `Your SEAL leaf is recorded, but the counterparty has not closed and the directory's delivery-grace window has not yet elapsed, so a unilateral seal is not yet allowed. ${when}Retry cello_close_session after the grace period, or once the counterparty closes.`,
|
|
193
|
+
};
|
|
194
|
+
}
|
|
195
|
+
return {
|
|
196
|
+
ok: false,
|
|
197
|
+
reason: uniResult.reason,
|
|
198
|
+
guidance: "The unilateral seal did not complete (the directory could not verify the reported root, or the certificate failed verification). Confirm your messages reached the relay (cello_sessions) before retrying cello_close_session.",
|
|
199
|
+
};
|
|
200
|
+
}
|
|
201
|
+
//# sourceMappingURL=seal-escalation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"seal-escalation.js","sourceRoot":"","sources":["../src/seal-escalation.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-content-handlers.d.ts","sourceRoot":"","sources":["../src/session-content-handlers.ts"],"names":[],"mappings":"AAeA,OAAO,EAA2C,KAAK,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAC9G,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAsB5D,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,kBAAkB,EAAE,kBAAkB,CAAC;IACvC,eAAe,EAAE,qBAAqB,CAAC;IACvC,UAAU,EAAE,UAAU,CAAC;IACvB,YAAY,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,SAAS,GAAG,SAAS,CAAC;IAC9D,mBAAmB,EAAE,CAAC,SAAS,EAAE,SAAS,GAAG,SAAS,EAAE,aAAa,CAAC,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAC;IACjG,yBAAyB,EAAE,OAAO,CAAC;IACnC,+EAA+E;IAC/E,mBAAmB,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,MAAM,CAAC;IACzE,uBAAuB,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACxF,qEAAqE;IACrE,iBAAiB,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,aAAa,EAAE,WAAW,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC;IACzG;;;;;OAKG;IACH,mBAAmB,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,MAAM,CAAC;IACzE,uBAAuB,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACxF,uEAAuE;IACvE,iBAAiB,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAClE,iGAAiG;IACjG,eAAe,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,MAAM,CAAC;IAC/C;;;;OAIG;IACH,YAAY,EAAE,iBAAiB,CAAC;CACjC;AAED,wBAAgB,8BAA8B,CAAC,IAAI,EAAE,kBAAkB,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"session-content-handlers.d.ts","sourceRoot":"","sources":["../src/session-content-handlers.ts"],"names":[],"mappings":"AAeA,OAAO,EAA2C,KAAK,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAC9G,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAsB5D,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,kBAAkB,EAAE,kBAAkB,CAAC;IACvC,eAAe,EAAE,qBAAqB,CAAC;IACvC,UAAU,EAAE,UAAU,CAAC;IACvB,YAAY,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,SAAS,GAAG,SAAS,CAAC;IAC9D,mBAAmB,EAAE,CAAC,SAAS,EAAE,SAAS,GAAG,SAAS,EAAE,aAAa,CAAC,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAC;IACjG,yBAAyB,EAAE,OAAO,CAAC;IACnC,+EAA+E;IAC/E,mBAAmB,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,MAAM,CAAC;IACzE,uBAAuB,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACxF,qEAAqE;IACrE,iBAAiB,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,aAAa,EAAE,WAAW,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC;IACzG;;;;;OAKG;IACH,mBAAmB,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,MAAM,CAAC;IACzE,uBAAuB,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACxF,uEAAuE;IACvE,iBAAiB,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAClE,iGAAiG;IACjG,eAAe,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,MAAM,CAAC;IAC/C;;;;OAIG;IACH,YAAY,EAAE,iBAAiB,CAAC;CACjC;AAED,wBAAgB,8BAA8B,CAAC,IAAI,EAAE,kBAAkB,GAAG,IAAI,CA4jC7E"}
|
|
@@ -105,7 +105,30 @@ export function registerSessionContentHandlers(deps) {
|
|
|
105
105
|
return { ok: false, reason: "session_not_owned", guidance: "This session belongs to a different agent. Call cello_use_agent to switch to the agent that owns it, then retry." };
|
|
106
106
|
}
|
|
107
107
|
if (record.status !== "active") {
|
|
108
|
-
|
|
108
|
+
/**
|
|
109
|
+
* DOD-M12B-SESSION-SEED-1 — THE DEMAND EDGE. Before this, an interrupted session refused here
|
|
110
|
+
* forever: a transport event could take a session out of `active` and no code path anywhere
|
|
111
|
+
* put one back, so a laptop close ended the conversation permanently even though both
|
|
112
|
+
* processes were alive and both peer ids still valid.
|
|
113
|
+
*
|
|
114
|
+
* The operator sending IS the demand, and it is the only trigger — nothing revives on a timer
|
|
115
|
+
* (the REDIAL-1 discipline, and Andre's tenet: a background rebuilder would hold a dialable
|
|
116
|
+
* endpoint open for a session nobody is using).
|
|
117
|
+
*
|
|
118
|
+
* A session that cannot be revived still refuses, and says WHY — `session_terminal` for one
|
|
119
|
+
* that has ended, `session_identity_lost` for one whose keypair died with a daemon restart.
|
|
120
|
+
* The second is the one an operator most needs named: it means waiting for a reconnect is
|
|
121
|
+
* pointless and the session should be closed for its receipt.
|
|
122
|
+
*/
|
|
123
|
+
const revived = await sessionNodeManager.reviveIfNeededForSend(agentName, sessionId);
|
|
124
|
+
if (!revived.ok) {
|
|
125
|
+
return {
|
|
126
|
+
ok: false,
|
|
127
|
+
reason: revived.reason,
|
|
128
|
+
guidance: revived.guidance
|
|
129
|
+
?? `Session is '${record.status}', not active. Content can only be sent on an active session.`,
|
|
130
|
+
};
|
|
131
|
+
}
|
|
109
132
|
}
|
|
110
133
|
// M8C-CURSOR-1: read-before-write gate. current_seq is the tree's highest leaf index
|
|
111
134
|
// (message_count is kept in sync with leafCount on every append, both directions — DAEMON-004
|
|
@@ -577,6 +600,44 @@ export function registerSessionContentHandlers(deps) {
|
|
|
577
600
|
// (D4 review F3: the old `record.agent_name !== agentName` → session_not_owned branch was dead
|
|
578
601
|
// code — getSessionRecord is keyed by (agent_name, session_id), so a record can never belong to
|
|
579
602
|
// a different agent. A cross-agent session id simply has no record under this agent.)
|
|
603
|
+
/**
|
|
604
|
+
* DOD-M12B-SESSION-SEED-1 (case B) — return an interrupted session to `active` on a local read.
|
|
605
|
+
*
|
|
606
|
+
* WHAT THIS ACTUALLY BUYS, stated correctly after review MEDIUM-5. The first version of this
|
|
607
|
+
* comment claimed an operator who only reads "was stuck forever" and that parked content never
|
|
608
|
+
* drained. **Neither is true.** The park drain runs off the AGENT's standing receiver, not the
|
|
609
|
+
* session node; `ingestReceivedContent` deliberately accepts `interrupted`; and the backstop
|
|
610
|
+
* tick fires for every agent every 5 minutes. So case-B content already reached the transcript.
|
|
611
|
+
*
|
|
612
|
+
* What the read-triggered revival adds is real but narrower: the status returns to `active`, so
|
|
613
|
+
* the operator's own next send is not refused, and the drain happens NOW rather than up to five
|
|
614
|
+
* minutes from now.
|
|
615
|
+
*
|
|
616
|
+
* WHY A READ MAY TRIGGER THIS AND AN INBOUND DIAL MAY NOT. Andre's tenet is about what a REMOTE
|
|
617
|
+
* party can cause — *"an open connection that a malicious agent can farm for."* Reviving because
|
|
618
|
+
* a peer dialled us would hand that lever to the peer. A read is the OPERATOR asking, on their
|
|
619
|
+
* own machine, for their own session.
|
|
620
|
+
*
|
|
621
|
+
* Narrowed to `interrupted` (review LOW-7). `reviveSessionNode` refuses the other non-active
|
|
622
|
+
* statuses by DENYLIST, so an allowlist here is what stops a sixth status added later from being
|
|
623
|
+
* force-flipped to `active` by a read.
|
|
624
|
+
*
|
|
625
|
+
* AWAITED — a loopback bind, sub-millisecond, and the receive deadline is computed after this so
|
|
626
|
+
* revival latency does not eat the read window — but its RESULT NEVER BLOCKS THE READ. Reading a
|
|
627
|
+
* stored transcript is always allowed, including for a sealed session, where this refuses.
|
|
628
|
+
*/
|
|
629
|
+
let revivalDeclined;
|
|
630
|
+
if (record && record.status === "interrupted") {
|
|
631
|
+
const revival = await sessionNodeManager.reviveIfNeededForRead(agentName, sessionId);
|
|
632
|
+
if (!revival.ok) {
|
|
633
|
+
// review MEDIUM-4: this path produced the single most useful message in the feature and
|
|
634
|
+
// threw it away. `session_identity_lost` tells an operator their session cannot come back
|
|
635
|
+
// and should be closed for its receipt — and without this they got an ordinary-looking
|
|
636
|
+
// answer, nothing in the log, and kept waiting. The send path surfaced it and the read path
|
|
637
|
+
// did not, which is the same asymmetry case B exists to close, on the error channel.
|
|
638
|
+
revivalDeclined = { reason: revival.reason, ...(revival.guidance ? { guidance: revival.guidance } : {}) };
|
|
639
|
+
}
|
|
640
|
+
}
|
|
580
641
|
// M8C-SINCESEQ-1: stateless catch-up. When since_seq is provided, return a BATCH of received
|
|
581
642
|
// transcript messages with sequence > since_seq (durable transcript, not the ephemeral buffer —
|
|
582
643
|
// so concurrent arrivals don't shift what a given since_seq returns; no replay race). Replaces
|
|
@@ -669,6 +730,10 @@ export function registerSessionContentHandlers(deps) {
|
|
|
669
730
|
// guidance line second, and only when there is something to explain.
|
|
670
731
|
const autoReplyCount = received.filter((m) => isAutoReplyMarked(m.text)).length;
|
|
671
732
|
return {
|
|
733
|
+
// review MEDIUM-4: a revival that could not happen is reported, not swallowed. The most
|
|
734
|
+
// important case is `session_identity_lost` — it tells the operator that waiting for a
|
|
735
|
+
// reconnect is pointless and the session should be closed for its receipt.
|
|
736
|
+
...(revivalDeclined ? { session_revival: revivalDeclined } : {}),
|
|
672
737
|
ok: true,
|
|
673
738
|
since_seq: sinceSeq,
|
|
674
739
|
count: received.length,
|
|
@@ -694,6 +759,10 @@ export function registerSessionContentHandlers(deps) {
|
|
|
694
759
|
// points the caller at the read that works.
|
|
695
760
|
if (transcriptOnly) {
|
|
696
761
|
return {
|
|
762
|
+
// review MEDIUM-4: a revival that could not happen is reported, not swallowed. The most
|
|
763
|
+
// important case is `session_identity_lost` — it tells the operator that waiting for a
|
|
764
|
+
// reconnect is pointless and the session should be closed for its receipt.
|
|
765
|
+
...(revivalDeclined ? { session_revival: revivalDeclined } : {}),
|
|
697
766
|
ok: false,
|
|
698
767
|
reason: "session_not_live",
|
|
699
768
|
attendance: attendingNow(agentName),
|
|
@@ -736,6 +805,10 @@ export function registerSessionContentHandlers(deps) {
|
|
|
736
805
|
unreadCount: terminal.unreadCount, correlationId: receiveCorrelationId,
|
|
737
806
|
});
|
|
738
807
|
return {
|
|
808
|
+
// review MEDIUM-4: a revival that could not happen is reported, not swallowed. The most
|
|
809
|
+
// important case is `session_identity_lost` — it tells the operator that waiting for a
|
|
810
|
+
// reconnect is pointless and the session should be closed for its receipt.
|
|
811
|
+
...(revivalDeclined ? { session_revival: revivalDeclined } : {}),
|
|
739
812
|
ok: true,
|
|
740
813
|
type: "session_sealed",
|
|
741
814
|
session_id: sessionId,
|
|
@@ -829,6 +902,10 @@ export function registerSessionContentHandlers(deps) {
|
|
|
829
902
|
// alive in the shape it was measured in.
|
|
830
903
|
const isAutoReply = isAutoReplyMarked(contentText);
|
|
831
904
|
return {
|
|
905
|
+
// review MEDIUM-4: a revival that could not happen is reported, not swallowed. The most
|
|
906
|
+
// important case is `session_identity_lost` — it tells the operator that waiting for a
|
|
907
|
+
// reconnect is pointless and the session should be closed for its receipt.
|
|
908
|
+
...(revivalDeclined ? { session_revival: revivalDeclined } : {}),
|
|
832
909
|
ok: true,
|
|
833
910
|
content: contentText,
|
|
834
911
|
...(isAutoReply ? { auto_reply: true, auto_reply_guidance: AUTO_REPLY_GUIDANCE } : {}),
|
|
@@ -861,6 +938,10 @@ export function registerSessionContentHandlers(deps) {
|
|
|
861
938
|
attendance: attendanceCount(agentName), correlationId: receiveCorrelationId,
|
|
862
939
|
});
|
|
863
940
|
return {
|
|
941
|
+
// review MEDIUM-4: a revival that could not happen is reported, not swallowed. The most
|
|
942
|
+
// important case is `session_identity_lost` — it tells the operator that waiting for a
|
|
943
|
+
// reconnect is pointless and the session should be closed for its receipt.
|
|
944
|
+
...(revivalDeclined ? { session_revival: revivalDeclined } : {}),
|
|
864
945
|
ok: true,
|
|
865
946
|
content: null,
|
|
866
947
|
reason: "content_undeliverable",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-content-handlers.js","sourceRoot":"","sources":["../src/session-content-handlers.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"session-content-handlers.js","sourceRoot":"","sources":["../src/session-content-handlers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,IAAI,EAAE,MAAM,8BAA8B,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAA8B,MAAM,yBAAyB,CAAC;AAO9G,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD;;;;;;;GAOG;AACH,MAAM,mBAAmB,GACvB,iGAAiG;IACjG,kGAAkG;IAClG,2FAA2F;IAC3F,mFAAmF;IACnF,8FAA8F;IAC9F,kGAAkG;IAClG,iGAAiG;IACjG,+FAA+F;IAC/F,eAAe,CAAC;AAoClB,MAAM,UAAU,8BAA8B,CAAC,IAAwB;IACrE,MAAM,EACJ,QAAQ,EAAE,MAAM,EAAE,kBAAkB,EAAE,eAAe,EAAE,UAAU,EACjE,YAAY,EAAE,mBAAmB,EAAE,yBAAyB,EAC5D,mBAAmB,EAAE,uBAAuB,EAAE,iBAAiB,EAC/D,mBAAmB,EAAE,uBAAuB,EAAE,iBAAiB,EAC/D,eAAe,EAAE,YAAY,GAC9B,GAAG,IAAI,CAAC;IAET;;;;;;;;;;;;;;;;;;OAkBG;IACH;;;;;;;;;;;;OAYG;IACH,MAAM,YAAY,GAAG,CAAC,SAAiB,EAAU,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC;IAE5F,MAAM,YAAY,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC/C;;;;;;;;;;;;;OAaG;IACH,MAAM,iBAAiB,GAAG,MAAM,CAAC;IAEjC,gFAAgF;IAChF,QAAQ,CAAC,GAAG,CAAC,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE;QACxD,MAAM,SAAS,GAAG,YAAY,CAAC,YAAY,CAAC,CAAC;QAC7C,gFAAgF;QAChF,MAAM,SAAS,GAAG,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,KAA2B,CAAC,CAAC;QACtF,IAAI,CAAC,SAAS;YAAE,OAAO,yBAAyB,CAAC;QAEjD,kFAAkF;QAClF,MAAM,SAAS,GAAG,MAAM,EAAE,UAAgC,CAAC;QAC3D,MAAM,UAAU,GAAG,OAAO,MAAM,EAAE,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;QACpF,IAAI,CAAC,SAAS,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YAC3C,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,gBAAgB,EAAE,QAAQ,EAAE,+DAA+D,EAAE,CAAC;QAC5H,CAAC;QAED,4EAA4E;QAC5E,MAAM,MAAM,GAAG,kBAAkB,CAAC,gBAAgB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QACzE,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,mBAAmB,EAAE,QAAQ,EAAE,0EAA0E,EAAE,CAAC;QAC1I,CAAC;QACD,IAAI,MAAM,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;YACpC,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,mBAAmB,EAAE,QAAQ,EAAE,kHAAkH,EAAE,CAAC;QAClL,CAAC;QACD,IAAI,MAAM,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC/B;;;;;;;;;;;;;;eAcG;YACH,MAAM,OAAO,GAAG,MAAM,kBAAkB,CAAC,qBAAqB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;YACrF,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC;gBAChB,OAAO;oBACL,EAAE,EAAE,KAAK;oBACT,MAAM,EAAE,OAAO,CAAC,MAAM;oBACtB,QAAQ,EAAE,OAAO,CAAC,QAAQ;2BACrB,eAAe,MAAM,CAAC,MAAM,+DAA+D;iBACjG,CAAC;YACJ,CAAC;QACH,CAAC;QAED,qFAAqF;QACrF,8FAA8F;QAC9F,+FAA+F;QAC/F,2FAA2F;QAC3F,+FAA+F;QAC/F,iFAAiF;QACjF,2FAA2F;QAC3F,4EAA4E;QAC5E,EAAE;QACF,uFAAuF;QACvF,EAAE;QACF,4FAA4F;QAC5F,wEAAwE;QACxE,EAAE;QACF,4FAA4F;QAC5F,gGAAgG;QAChG,0FAA0F;QAC1F,+FAA+F;QAC/F,0FAA0F;QAC1F,EAAE;QACF,8FAA8F;QAC9F,4EAA4E;QAC5E,EAAE;QACF,0FAA0F;QAC1F,+FAA+F;QAC/F,0FAA0F;QAC1F,+FAA+F;QAC/F,0EAA0E;QAC1E,MAAM,UAAU,GAAG,MAAM,CAAC,aAAa,GAAG,CAAC,CAAC;QAC5C,8FAA8F;QAC9F,wFAAwF;QACxF,WAAW;QACX,MAAM,cAAc,GAAG,kBAAkB,CAAC,cAAc,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,IAAI,EAAE,CAAC;QACtF,MAAM,gBAAgB,GAAG,mBAAmB,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;QACtE,MAAM,cAAc,GAAG,kBAAkB,CAAC,sBAAsB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QACvF,MAAM,QAAQ,GAAG,gBAAgB,IAAI,UAAU,IAAI,cAAc,KAAK,CAAC,CAAC;QACxE,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,yFAAyF;YACzF,wFAAwF;YACxF,8EAA8E;YAC9E,MAAM,CAAC,IAAI,CAAC,sBAAsB,EAAE;gBAClC,SAAS;gBACT,UAAU;gBACV,WAAW,EAAE,gBAAgB;gBAC7B,cAAc;gBACd,YAAY;gBACZ,SAAS;gBACT,0FAA0F;gBAC1F,2FAA2F;gBAC3F,2FAA2F;gBAC3F,4FAA4F;gBAC5F,oFAAoF;gBACpF,0FAA0F;gBAC1F,4EAA4E;gBAC5E,6DAA6D;gBAC7D,SAAS,EAAE,sBAAsB;aAClC,CAAC,CAAC;YACH,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,MAAM,EAAE,qBAAqB;gBAC7B,WAAW,EAAE,UAAU;gBACvB,aAAa,EAAE,gBAAgB;gBAC/B,eAAe,EAAE,cAAc;gBAC/B,0FAA0F;gBAC1F,4FAA4F;gBAC5F,wFAAwF;gBACxF,yFAAyF;gBACzF,qFAAqF;gBACrF,QAAQ,EAAE,GAAG,cAAc,0CAA0C,SAAS,8DAA8D,SAAS,4FAA4F;aAClP,CAAC;QACJ,CAAC;QAED,+FAA+F;QAC/F,2FAA2F;QAC3F,yFAAyF;QACzF,MAAM,YAAY,GAAG,MAAM,EAAE,oBAAoB,CAAC;QAClD,IAAI,mBAAyF,CAAC;QAC9F,IAAI,YAAY,IAAI,OAAO,YAAY,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;YACrF,MAAM,KAAK,GAA6D,EAAE,CAAC;YAC3E,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,YAAuC,CAAC,EAAE,CAAC;gBAC7E,IAAI,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,YAAY,IAAI,CAAC,KAAK,cAAc;oBAAE,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YACjF,CAAC;YACD,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC;gBAAE,mBAAmB,GAAG,KAAK,CAAC;QACjE,CAAC;QAED,MAAM,aAAa,GAAG,UAAU,EAAE,CAAC;QACnC,MAAM,YAAY,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAE1D,oFAAoF;QACpF,qFAAqF;QACrF,oFAAoF;QACpF,qFAAqF;QACrF,4BAA4B;QAC5B,IAAI,YAAY,CAAC,MAAM,GAAG,iBAAiB,EAAE,CAAC;YAC5C,MAAM,CAAC,IAAI,CAAC,4BAA4B,EAAE;gBACxC,SAAS;gBACT,WAAW,EAAE,YAAY,CAAC,MAAM;gBAChC,GAAG,EAAE,iBAAiB;gBACtB,aAAa;aACd,CAAC,CAAC;YACH,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,MAAM,EAAE,mBAAmB;gBAC3B,QAAQ,EAAE,mBAAmB,YAAY,CAAC,MAAM,oBAAoB,iBAAiB,0PAA0P;aAChV,CAAC;QACJ,CAAC;QAED,MAAM,eAAe,GAAG,MAAM,CAAC,mBAAmB,CAAC;QAEnD,0FAA0F;QAC1F,8FAA8F;QAC9F,gGAAgG;QAChG,gGAAgG;QAChG,MAAM,eAAe,GAAG,MAAM,eAAe,CAAC,cAAc,CAAC,YAAY,EAAE;YACzE,SAAS,EAAE,UAAU;YACrB,SAAS,EAAE,MAAM,CAAC,UAAU;YAC5B,SAAS;YACT,aAAa;YACb,GAAG,CAAC,mBAAmB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,mBAAmB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACtE,CAAC,CAAC;QACH,IAAI,eAAe,CAAC,WAAW,KAAK,OAAO,EAAE,CAAC;YAC5C,IAAI,eAAe,CAAC,MAAM,KAAK,kBAAkB,EAAE,CAAC;gBAClD,MAAM,CAAC,KAAK,CAAC,0BAA0B,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,eAAe,CAAC,MAAM,EAAE,aAAa,EAAE,CAAC,CAAC;YACzG,CAAC;iBAAM,IAAI,eAAe,CAAC,MAAM,KAAK,mBAAmB,EAAE,CAAC;gBAC1D,MAAM,CAAC,KAAK,CAAC,8BAA8B,EAAE,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,eAAe,CAAC,MAAM,EAAE,aAAa,EAAE,CAAC,CAAC;YACzH,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,IAAI,CAAC,2BAA2B,EAAE,EAAE,WAAW,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,eAAe,CAAC,MAAM,EAAE,aAAa,EAAE,CAAC,CAAC;YAC/H,CAAC;YACD,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,MAAM,EAAE,eAAe,CAAC,MAAM,IAAI,uBAAuB;gBACzD,QAAQ,EAAE,eAAe,CAAC,QAAQ;oBAChC,iGAAiG;gBACnG,MAAM,EAAE,CAAC,eAAe,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,KAAK,OAAO,CAAC;aAChF,CAAC;QACJ,CAAC;QACD,IAAI,eAAe,CAAC,WAAW,KAAK,MAAM,EAAE,CAAC;YAC3C,MAAM,CAAC,IAAI,CAAC,2BAA2B,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC,CAAC;YAC5F,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,MAAM,EAAE,iBAAiB;gBACzB,QAAQ,EAAE,eAAe,CAAC,QAAQ;oBAChC,oGAAoG;wBACpG,uGAAuG;gBACzG,KAAK,EAAE,CAAC,eAAe,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,KAAK,MAAM,CAAC;aAC9E,CAAC;QACJ,CAAC;QAED,gGAAgG;QAChG,mGAAmG;QACnG,kGAAkG;QAClG,+EAA+E;QAC/E,IAAI,eAAe,CAAC,WAAW,KAAK,QAAQ,IAAI,eAAe,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YACtF,MAAM,CAAC,KAAK,CAAC,yCAAyC,EAAE,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC,CAAC;YACtF,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,MAAM,EAAE,wBAAwB;gBAChC,QAAQ,EAAE,wFAAwF;oBAChG,qGAAqG;aACxG,CAAC;QACJ,CAAC;QAED,gGAAgG;QAChG,2FAA2F;QAC3F,MAAM,QAAQ,GAAG,eAAe,CAAC,WAAW,KAAK,QAAQ,IAAI,eAAe,CAAC,OAAO,KAAK,SAAS,CAAC;QACnG,MAAM,SAAS,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,eAAe,CAAC,OAAqB,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;QAClG,MAAM,WAAW,GAAG,eAAe,CAAC,SAAS,CAAC,CAAC;QAC/C,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAEhE,+FAA+F;QAC/F,+FAA+F;QAC/F,EAAE;QACF,2FAA2F;QAC3F,8FAA8F;QAC9F,+FAA+F;QAC/F,EAAE;QACF,8FAA8F;QAC9F,uFAAuF;QACvF,gGAAgG;QAChG,2FAA2F;QAC3F,6FAA6F;QAC7F,6FAA6F;QAC7F,2FAA2F;QAC3F,8FAA8F;QAC9F,YAAY;QACZ,EAAE;QACF,gGAAgG;QAChG,+FAA+F;QAC/F,4FAA4F;QAC5F,0FAA0F;QAC1F,gGAAgG;QAChG,yFAAyF;QACzF,4DAA4D;QAC5D,MAAM,WAAW,GAAG,kBAAkB,CAAC,cAAc,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,IAAI,EAAE,CAAC;QACnF,MAAM,WAAW,GAAG,GAAG,SAAS,SAAS,SAAS,EAAE,CAAC;QACrD,MAAM,SAAS,GAAG,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAChD,IAAI,SAAS,KAAK,SAAS,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,GAAG,iBAAiB,EAAE,CAAC;YAC1E,0FAA0F;YAC1F,sFAAsF;YACtF,6EAA6E;YAC7E,MAAM,CAAC,IAAI,CAAC,sBAAsB,EAAE;gBAClC,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa;gBACjD,SAAS,EAAE,wBAAwB;gBACnC,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;aACpC,CAAC,CAAC;YACH,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,MAAM,EAAE,0BAA0B;gBAClC,SAAS,EAAE,IAAI;gBACf,wFAAwF;gBACxF,6FAA6F;gBAC7F,oFAAoF;gBACpF,QAAQ,EAAE,8IAA8I,SAAS,6GAA6G;aAC/Q,CAAC;QACJ,CAAC;QACD,IAAI,WAAW,KAAK,cAAc,EAAE,CAAC;YACnC,MAAM,CAAC,IAAI,CAAC,sBAAsB,EAAE;gBAClC,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa;gBACjD,SAAS,EAAE,4BAA4B;gBACvC,cAAc,EAAE,WAAW;aAC5B,CAAC,CAAC;YACH,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,MAAM,EAAE,0BAA0B;gBAClC,gBAAgB,EAAE,cAAc;gBAChC,YAAY,EAAE,WAAW;gBACzB,yFAAyF;gBACzF,2FAA2F;gBAC3F,2FAA2F;gBAC3F,8DAA8D;gBAC9D,QAAQ,EAAE,8FAA8F,WAAW,GAAG,cAAc,0IAA0I,SAAS,gMAAgM;aACxd,CAAC;QACJ,CAAC;QACD,+FAA+F;QAC/F,kDAAkD;QAClD,EAAE;QACF,2FAA2F;QAC3F,gGAAgG;QAChG,2FAA2F;QAC3F,0FAA0F;QAC1F,6FAA6F;QAC7F,mDAAmD;QACnD,YAAY,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;QAC1C,IAAI,UAAsE,CAAC;QAC3E,IAAI,CAAC;YACH,UAAU,GAAG,MAAM,kBAAkB,CAAC,WAAW,CAAC,MAAM,CAAC,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,UAAU,CAAC,WAAW,CAAC,EAAE,aAAa,CAAC,CAAC;QACzI,CAAC;gBAAS,CAAC;YACT,YAAY,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QACnC,CAAC;QACD,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC;YACnB,8EAA8E;YAC9E,4EAA4E;YAC5E,wCAAwC;YACxC,EAAE;YACF,0FAA0F;YAC1F,2FAA2F;YAC3F,uFAAuF;YACvF,wFAAwF;YACxF,4EAA4E;YAC5E,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;gBACxB,MAAM,KAAK,GAAG,UAAU,EAAE,CAAC;gBAC3B,IAAI,CAAC;oBACH,UAAU,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC,CAAC;gBAC5E,CAAC;gBAAC,OAAO,GAAY,EAAE,CAAC;oBACtB,MAAM,CAAC,KAAK,CAAC,8BAA8B,EAAE;wBAC3C,SAAS;wBACT,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;wBACvD,aAAa;qBACd,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;YACD,MAAM,CAAC,IAAI,CAAC,6BAA6B,EAAE;gBACzC,SAAS;gBACT,eAAe;gBACf,MAAM,EAAE,UAAU,CAAC,MAAM;gBACzB,YAAY,EAAE,UAAU,CAAC,KAAK;gBAC9B,OAAO,EAAE,UAAU,CAAC,OAAO;gBAC3B,KAAK,EAAE,UAAU,CAAC,KAAK;gBACvB,aAAa;aACd,CAAC,CAAC;YACH,8FAA8F;YAC9F,6FAA6F;YAC7F,6FAA6F;YAC7F,8FAA8F;YAC9F,wFAAwF;YACxF,4FAA4F;YAC5F,uCAAuC;YACvC,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;gBACvB,0FAA0F;gBAC1F,0FAA0F;gBAC1F,6EAA6E;gBAC7E,MAAM,MAAM,GAAG,kBAAkB,CAAC,YAAY,CAC5C,MAAM,CAAC,UAAU,EAAE,SAAS,EAAE,cAAc,EAAE,SAAS,EAAE,UAAU,CAAC,cAAc,EAAE,aAAa,CAClG,CAAC;gBACF,0FAA0F;gBAC1F,uFAAuF;gBACvF,8DAA8D;gBAC9D,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACzD,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;oBAClB,kBAAkB,CAAC,uBAAuB,CAAC,MAAM,CAAC,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;oBACvH,uBAAuB,CAAC,YAAY,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;gBAC/D,CAAC;gBACD,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,kCAAkC,CAAC,CAAC,CAAC,6BAA6B,EAAE;oBAC9F,SAAS,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM;oBACxF,WAAW,EAAE,cAAc,EAAE,aAAa;iBAC3C,CAAC,CAAC;gBACH,OAAO;oBACL,EAAE,EAAE,KAAK;oBACT,MAAM,EAAE,UAAU,CAAC,MAAM;oBACzB,MAAM,EAAE,IAAI;oBACZ,yFAAyF;oBACzF,sCAAsC;oBACtC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;oBACxC,eAAe,EAAE,UAAU;oBAC3B,QAAQ,EAAE,UAAU,CAAC,QAAQ,IAAI,wGAAwG;iBAC1I,CAAC;YACJ,CAAC;YACD,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,MAAM,EAAE,UAAU,CAAC,MAAM;gBACzB,0FAA0F;gBAC1F,qFAAqF;gBACrF,4FAA4F;gBAC5F,2FAA2F;gBAC3F,2FAA2F;gBAC3F,4EAA4E;gBAC5E,QAAQ,EAAE,UAAU,CAAC,QAAQ,IAAI,kPAAkP;aACpR,CAAC;QACJ,CAAC;QAED,6FAA6F;QAC7F,8FAA8F;QAC9F,6FAA6F;QAC7F,sEAAsE;QACtE,8FAA8F;QAC9F,+FAA+F;QAC/F,4FAA4F;QAC5F,+FAA+F;QAC/F,gGAAgG;QAChG,qCAAqC;QACrC,MAAM,SAAS,GAAG,kBAAkB,CAAC,YAAY,CAC/C,MAAM,CAAC,UAAU,EAAE,SAAS,EAAE,cAAc,EAAE,SAAS,EAAE,UAAU,CAAC,cAAc,EAAE,aAAa,CAClG,CAAC;QACF,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;YACtB,uFAAuF;YACvF,4FAA4F;YAC5F,mEAAmE;YACnE,OAAO;gBACL,EAAE,EAAE,IAAI;gBACR,eAAe,EAAE,CAAC,CAAC;gBACnB,IAAI,EAAE,IAAI;gBACV,OAAO,EAAE,SAAS,CAAC,MAAM;gBACzB,2FAA2F;gBAC3F,iEAAiE;gBACjE,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC,eAAe,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,KAAK,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAClI,QAAQ,EAAE,2RAA2R;aACtS,CAAC;QACJ,CAAC;QACD,IAAI,SAAS,CAAC,QAAQ,EAAE,CAAC;YACvB,8FAA8F;YAC9F,4FAA4F;YAC5F,6FAA6F;YAC7F,wFAAwF;YACxF,8DAA8D;YAC9D,MAAM,CAAC,KAAK,CAAC,+BAA+B,EAAE;gBAC5C,SAAS,EAAE,SAAS,EAAE,MAAM,CAAC,UAAU,EAAE,cAAc,EAAE,SAAS,CAAC,SAAS,EAAE,aAAa;gBAC3F,MAAM,EAAE,sFAAsF;aAC/F,CAAC,CAAC;YACH,OAAO;gBACL,EAAE,EAAE,IAAI;gBACR,eAAe,EAAE,SAAS,CAAC,SAAS;gBACpC,QAAQ,EAAE,IAAI;gBACd,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC,eAAe,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,KAAK,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAClI,QAAQ,EAAE,8SAA8S,SAAS,iEAAiE,SAAS,0BAA0B;aACta,CAAC;QACJ,CAAC;QACD,MAAM,SAAS,GAAG,SAAS,CAAC,SAAS,CAAC;QACtC,yFAAyF;QACzF,mFAAmF;QACnF,+FAA+F;QAC/F,6FAA6F;QAC7F,2FAA2F;QAC3F,kBAAkB,CAAC,uBAAuB,CAAC,MAAM,CAAC,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;QACtH,yFAAyF;QACzF,+DAA+D;QAC/D,uBAAuB,CAAC,YAAY,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;QAC5D,yFAAyF;QACzF,+FAA+F;QAC/F,gGAAgG;QAChG,+FAA+F;QAC/F,gGAAgG;QAChG,8FAA8F;QAC9F,mGAAmG;QACnG,6FAA6F;QAC7F,8FAA8F;QAC9F,gDAAgD;QAChD,kBAAkB,CAAC,UAAU,CAAC,MAAM,CAAC,UAAU,EAAE,eAAe,EAAE,SAAS,EAAE,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QACrG,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,CAAC,IAAI,CAAC,2BAA2B,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAE,cAAc,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC,CAAC;QAC3H,CAAC;QACD,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC;YAC1B,0FAA0F;YAC1F,wFAAwF;YACxF,2FAA2F;YAC3F,yFAAyF;YACzF,MAAM,CAAC,IAAI,CAAC,qCAAqC,EAAE;gBACjD,SAAS;gBACT,eAAe;gBACf,cAAc;gBACd,cAAc,EAAE,SAAS;gBACzB,aAAa;aACd,CAAC,CAAC;YACH,OAAO;gBACL,EAAE,EAAE,IAAI;gBACR,eAAe,EAAE,SAAS;gBAC1B,SAAS,EAAE,KAAK;gBAChB,MAAM,EAAE,qBAAqB;gBAC7B,QAAQ;gBACR,QAAQ,EAAE,oOAAoO;gBAC9O,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,CAAC,eAAe,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,KAAK,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACnH,CAAC;QACJ,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,sBAAsB,EAAE;YAClC,SAAS;YACT,eAAe;YACf,cAAc;YACd,cAAc,EAAE,SAAS;YACzB,aAAa;SACd,CAAC,CAAC;QACH,OAAO;YACL,EAAE,EAAE,IAAI;YACR,eAAe,EAAE,SAAS;YAC1B,SAAS,EAAE,IAAI;YACf,QAAQ;YACR,yFAAyF;YACzF,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,CAAC,eAAe,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,KAAK,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACnH,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,oFAAoF;IACpF,gFAAgF;IAChF,wFAAwF;IACxF,4FAA4F;IAC5F,qDAAqD;IACrD,EAAE;IACF,qFAAqF;IACrF,gGAAgG;IAChG,+FAA+F;IAC/F,uFAAuF;IACvF,MAAM,0BAA0B,GAAG,KAAK,CAAC,CAAC,kDAAkD;IAC5F,MAAM,aAAa,GAAe,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE;QAC/D,MAAM,SAAS,GAAG,YAAY,CAAC,YAAY,CAAC,CAAC;QAC7C,gFAAgF;QAChF,MAAM,SAAS,GAAG,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,KAA2B,CAAC,CAAC;QACtF,IAAI,CAAC,SAAS;YAAE,OAAO,yBAAyB,CAAC;QAEjD,gEAAgE;QAChE,MAAM,SAAS,GAAG,MAAM,EAAE,UAAgC,CAAC;QAC3D,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,gBAAgB,EAAE,QAAQ,EAAE,uEAAuE,EAAE,CAAC;QACpI,CAAC;QACD,MAAM,MAAM,GAAG,kBAAkB,CAAC,gBAAgB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QACzE,6FAA6F;QAC7F,0FAA0F;QAC1F,6FAA6F;QAC7F,8FAA8F;QAC9F,4FAA4F;QAC5F,0CAA0C;QAC1C,IAAI,cAAc,GAAG,KAAK,CAAC;QAC3B,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,IAAI,kBAAkB,CAAC,cAAc,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAClF,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,mBAAmB,EAAE,QAAQ,EAAE,sDAAsD,EAAE,CAAC;YACtH,CAAC;YACD,cAAc,GAAG,IAAI,CAAC;QACxB,CAAC;QACD,+FAA+F;QAC/F,gGAAgG;QAChG,sFAAsF;QAEtF;;;;;;;;;;;;;;;;;;;;;;;;;WAyBG;QACH,IAAI,eAAkE,CAAC;QACvE,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,aAAa,EAAE,CAAC;YAC9C,MAAM,OAAO,GAAG,MAAM,kBAAkB,CAAC,qBAAqB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;YACrF,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC;gBAChB,wFAAwF;gBACxF,0FAA0F;gBAC1F,uFAAuF;gBACvF,4FAA4F;gBAC5F,qFAAqF;gBACrF,eAAe,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;YAC5G,CAAC;QACH,CAAC;QAED,6FAA6F;QAC7F,gGAAgG;QAChG,+FAA+F;QAC/F,kGAAkG;QAClG,2FAA2F;QAC3F,4FAA4F;QAC5F,MAAM,QAAQ,GAAG,MAAM,EAAE,SAAS,CAAC;QACnC,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC9D,MAAM,QAAQ,GAAG,QAAQ,CAAC;YAC1B,uFAAuF;YACvF,wFAAwF;YACxF,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,CAAC,IAAI,CAAC;YACxD,MAAM,EAAE,QAAQ,EAAE,GAAG,kBAAkB,CAAC,cAAc,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;YAC7E,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,UAAU,IAAI,CAAC,CAAC,QAAQ,GAAG,QAAQ,CAAC,CAAC;YAC7F,yFAAyF;YACzF,4FAA4F;YAC5F,MAAM,SAAS,GAAG,kBAAkB,CAAC,cAAc,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,MAAM,EAAE,CAAC;YACnF,6FAA6F;YAC7F,MAAM,WAAW,GAAG,CAAC,GAAW,EAAE,EAAE;gBAClC,MAAM,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC;gBAClC,OAAO,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,QAAQ,CAAC;YAC7C,CAAC,CAAC;YACF,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACxB,yFAAyF;gBACzF,0FAA0F;gBAC1F,oFAAoF;gBACpF,sFAAsF;gBACtF,qFAAqF;gBACrF,0FAA0F;gBAC1F,oFAAoF;gBACpF,0FAA0F;gBAC1F,EAAE;gBACF,4FAA4F;gBAC5F,EAAE;gBACF,0FAA0F;gBAC1F,6FAA6F;gBAC7F,4FAA4F;gBAC5F,qFAAqF;gBACrF,EAAE;gBACF,sFAAsF;gBACtF,2FAA2F;gBAC3F,yFAAyF;gBACzF,uFAAuF;gBACvF,2FAA2F;gBAC3F,wFAAwF;gBACxF,0FAA0F;gBAC1F,6EAA6E;gBAC7E,EAAE;gBACF,0FAA0F;gBAC1F,wFAAwF;gBACxF,6FAA6F;gBAC7F,6FAA6F;gBAC7F,6EAA6E;gBAC7E,IAAI,QAAQ,GAAG,QAAQ,CAAC;gBACxB,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;gBAC7D,0EAA0E;gBAC1E,EAAE;gBACF,4FAA4F;gBAC5F,2FAA2F;gBAC3F,yFAAyF;gBACzF,2FAA2F;gBAC3F,0FAA0F;gBAC1F,2FAA2F;gBAC3F,2FAA2F;gBAC3F,EAAE;gBACF,2FAA2F;gBAC3F,2FAA2F;gBAC3F,wEAAwE;gBACxE,OAAO,WAAW,CAAC,GAAG,CAAC,QAAQ,GAAG,CAAC,CAAC,IAAI,WAAW,CAAC,QAAQ,GAAG,CAAC,CAAC;oBAAE,QAAQ,IAAI,CAAC,CAAC;gBACjF,kBAAkB,CAAC,uBAAuB,CAAC,SAAS,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC,wBAAwB;gBACpG,iBAAiB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,qCAAqC;YAChF,CAAC;YACD,uFAAuF;YACvF,wFAAwF;YACxF,6FAA6F;YAC7F,4FAA4F;YAC5F,8FAA8F;YAC9F,2FAA2F;YAC3F,2DAA2D;YAC3D,iBAAiB,CACf,YAAY,EACZ,SAAS,EACT,IAAI,GAAG,CAAC;gBACN,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC;gBAClC,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;aACtG,CAAC,CACH,CAAC;YACF,MAAM,CAAC,IAAI,CAAC,2BAA2B,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;YAChH,+FAA+F;YAC/F,8FAA8F;YAC9F,8FAA8F;YAC9F,2FAA2F;YAC3F,qEAAqE;YACrE,MAAM,cAAc,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC;YAChF,OAAO;gBACL,wFAAwF;gBACxF,uFAAuF;gBACvF,2EAA2E;gBAC3E,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAChE,EAAE,EAAE,IAAI;gBACR,SAAS,EAAE,QAAQ;gBACnB,KAAK,EAAE,QAAQ,CAAC,MAAM;gBACtB,GAAG,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC3E,yFAAyF;gBACzF,wFAAwF;gBACxF,2FAA2F;gBAC3F,0FAA0F;gBAC1F,UAAU,EAAE,YAAY,CAAC,SAAS,CAAC;gBACnC,sFAAsF;gBACtF,gFAAgF;gBAChF,QAAQ,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;oBAC7B,QAAQ,EAAE,CAAC,CAAC,QAAQ;oBACpB,OAAO,EAAE,CAAC,CAAC,IAAI;oBACf,IAAI;oBACJ,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBAC3D,CAAC,CAAC;aACJ,CAAC;QACJ,CAAC;QAED,6FAA6F;QAC7F,4FAA4F;QAC5F,6FAA6F;QAC7F,4CAA4C;QAC5C,IAAI,cAAc,EAAE,CAAC;YACnB,OAAO;gBACL,wFAAwF;gBACxF,uFAAuF;gBACvF,2EAA2E;gBAC3E,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAChE,EAAE,EAAE,KAAK;gBACT,MAAM,EAAE,kBAAkB;gBAC1B,UAAU,EAAE,YAAY,CAAC,SAAS,CAAC;gBACnC,QAAQ,EAAE,0NAA0N;aACrO,CAAC;QACJ,CAAC;QAED,MAAM,UAAU,GAAG,MAAM,EAAE,UAAU,CAAC;QACtC,MAAM,SAAS,GAAG,OAAO,UAAU,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,UAAU,IAAI,CAAC;YAChG,CAAC,CAAC,UAAU;YACZ,CAAC,CAAC,0BAA0B,CAAC;QAC/B,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;QACxC,+FAA+F;QAC/F,gGAAgG;QAChG,gGAAgG;QAChG,iGAAiG;QACjG,oBAAoB;QACpB,MAAM,oBAAoB,GAAG,UAAU,EAAE,CAAC;QAC1C,8FAA8F;QAC9F,4FAA4F;QAC5F,4FAA4F;QAC5F,6FAA6F;QAC7F,qEAAqE;QAErE,SAAS,CAAC;YACR,4FAA4F;YAC5F,2FAA2F;YAC3F,wFAAwF;YACxF,8FAA8F;YAC9F,2FAA2F;YAC3F,EAAE;YACF,qFAAqF;YACrF,uFAAuF;YACvF,iFAAiF;YACjF,MAAM,QAAQ,GAAG,kBAAkB,CAAC,kBAAkB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;YAC7E,IAAI,QAAQ,EAAE,CAAC;gBACb,MAAM,UAAU,GAAG,kBAAkB,CAAC,gBAAgB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;gBAC7E,4FAA4F;gBAC5F,yFAAyF;gBACzF,MAAM,CAAC,IAAI,CAAC,wBAAwB,EAAE;oBACpC,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE,UAAU,EAAE,eAAe,CAAC,SAAS,CAAC;oBAC1E,WAAW,EAAE,QAAQ,CAAC,WAAW,EAAE,aAAa,EAAE,oBAAoB;iBACvE,CAAC,CAAC;gBACH,OAAO;oBACL,wFAAwF;oBACxF,uFAAuF;oBACvF,2EAA2E;oBAC3E,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBAChE,EAAE,EAAE,IAAI;oBACR,IAAI,EAAE,gBAAgB;oBACtB,UAAU,EAAE,SAAS;oBACrB,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBAClD,YAAY,EAAE,QAAQ,CAAC,WAAW;oBAClC,UAAU,EAAE,YAAY,CAAC,SAAS,CAAC;oBACnC,QAAQ,EAAE,QAAQ,CAAC,WAAW,GAAG,CAAC;wBAChC,CAAC,CAAC,gDAAgD,QAAQ,CAAC,WAAW,2JAA2J;wBACjO,CAAC,CAAC,mJAAmJ;iBACxJ,CAAC;YACJ,CAAC;YACD,qFAAqF;YACrF,EAAE;YACF,2EAA2E;YAC3E,2FAA2F;YAC3F,0FAA0F;YAC1F,6FAA6F;YAC7F,iCAAiC;YACjC,EAAE;YACF,wFAAwF;YACxF,8FAA8F;YAC9F,0FAA0F;YAC1F,qDAAqD;YACrD,EAAE;YACF,2FAA2F;YAC3F,uFAAuF;YACvF,EAAE;YACF,4FAA4F;YAC5F,6FAA6F;YAC7F,6FAA6F;YAC7F,2FAA2F;YAC3F,yFAAyF;YACzF,MAAM,gBAAgB,GAAG,mBAAmB,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;YACtE,+FAA+F;YAC/F,4FAA4F;YAC5F,kDAAkD;YAClD,EAAE;YACF,4FAA4F;YAC5F,6FAA6F;YAC7F,qFAAqF;YACrF,6FAA6F;YAC7F,6FAA6F;YAC7F,2FAA2F;YAC3F,MAAM,OAAO,GAAG,MAAM;gBACpB,CAAC,CAAC,kBAAkB,CAAC,qBAAqB,CAAC,SAAS,EAAE,SAAS,EAAE,gBAAgB,CAAC;gBAClF,CAAC,CAAC,IAAI,CAAC;YACT,MAAM,KAAK,GAAG,OAAO;gBACnB,CAAC,CAAC;oBACA,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;oBAC7D,YAAY,EAAE,MAAO,CAAC,mBAAmB;oBACzC,cAAc,EAAE,OAAO,CAAC,QAAQ;iBACjC;gBACD,CAAC,CAAC,IAAI,CAAC;YACT,IAAI,KAAK,EAAE,CAAC;gBACV,uFAAuF;gBACvF,6FAA6F;gBAC7F,kBAAkB,CAAC,uBAAuB,CAAC,SAAS,EAAE,SAAS,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC;gBACvF,iBAAiB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,qCAAqC;gBAC9E,yFAAyF;gBACzF,0FAA0F;gBAC1F,oFAAoF;gBACpF,iBAAiB,CAAC,YAAY,EAAE,SAAS,EAAE,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;gBAC5E,4FAA4F;gBAC5F,2FAA2F;gBAC3F,wBAAwB;gBACxB,uBAAuB,CAAC,YAAY,EAAE,SAAS,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC;gBACvE,gFAAgF;gBAChF,EAAE;gBACF,0FAA0F;gBAC1F,yFAAyF;gBACzF,sFAAsF;gBACtF,uFAAuF;gBACvF,wFAAwF;gBACxF,mFAAmF;gBACnF,YAAY,CAAC,MAAM,CAAC,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC;gBAC9E,MAAM,CAAC,IAAI,CAAC,2BAA2B,EAAE;oBACvC,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE,cAAc,EAAE,KAAK,CAAC,cAAc;oBACxE,UAAU,EAAE,eAAe,CAAC,SAAS,CAAC,EAAE,aAAa,EAAE,oBAAoB;iBAC5E,CAAC,CAAC;gBACH,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;gBAC1E,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,EAAE,CAAC;gBACtC,MAAM,cAAc,GAClB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC;oBAC1B,CAAC,CAAC,oEAAoE;oBACtE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC;wBAC5B,CAAC,CAAC,+GAA+G;wBACjH,CAAC,CAAC,2BAA2B,CAAC,IAAI,CAAC,OAAO,CAAC;4BACzC,CAAC,CAAC,uMAAuM;4BACzM,CAAC,CAAC,SAAS,CAAC;gBACpB,2FAA2F;gBAC3F,yFAAyF;gBACzF,yCAAyC;gBACzC,MAAM,WAAW,GAAG,iBAAiB,CAAC,WAAW,CAAC,CAAC;gBACnD,OAAO;oBACL,wFAAwF;oBACxF,uFAAuF;oBACvF,2EAA2E;oBAC3E,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBAChE,EAAE,EAAE,IAAI;oBACR,OAAO,EAAE,WAAW;oBACpB,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACtF,sFAAsF;oBACtF,wFAAwF;oBACxF,kFAAkF;oBAClF,oFAAoF;oBACpF,UAAU,EAAE,YAAY,CAAC,SAAS,CAAC;oBACnC,SAAS;oBACT,eAAe,EAAE,KAAK,CAAC,cAAc;oBACrC,YAAY,EAAE,KAAK,CAAC,YAAY;oBAChC,GAAG,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBACtE,CAAC;YACJ,CAAC;YACD,yDAAyD;YACzD,MAAM,SAAS,GAAG,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACxC,IAAI,SAAS,IAAI,CAAC,EAAE,CAAC;gBACnB,6FAA6F;gBAC7F,EAAE;gBACF,kFAAkF;gBAClF,0FAA0F;gBAC1F,yFAAyF;gBACzF,qFAAqF;gBACrF,2FAA2F;gBAC3F,2DAA2D;gBAC3D,MAAM,aAAa,GAAG,kBAAkB,CAAC,oBAAoB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;gBACpF,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC7B,MAAM,CAAC,KAAK,CAAC,+BAA+B,EAAE;wBAC5C,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE,aAAa;wBAC5D,UAAU,EAAE,eAAe,CAAC,SAAS,CAAC,EAAE,aAAa,EAAE,oBAAoB;qBAC5E,CAAC,CAAC;oBACH,OAAO;wBACL,wFAAwF;wBACxF,uFAAuF;wBACvF,2EAA2E;wBAC3E,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;wBAChE,EAAE,EAAE,IAAI;wBACR,OAAO,EAAE,IAAI;wBACb,MAAM,EAAE,uBAAuB;wBAC/B,UAAU,EAAE,YAAY,CAAC,SAAS,CAAC;wBACnC,uBAAuB,EAAE,CAAC,GAAG,aAAa,CAAC;wBAC3C,QAAQ,EAAE,GAAG,aAAa,CAAC,MAAM,4WAA4W;qBAC9Y,CAAC;gBACJ,CAAC;gBACD,MAAM,QAAQ,GAAG,kBAAkB,CAAC,kBAAkB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;gBAC7E,MAAM,UAAU,GAAG,eAAe,CAAC,SAAS,CAAC,CAAC;gBAC9C,oFAAoF;gBACpF,EAAE;gBACF,yFAAyF;gBACzF,4FAA4F;gBAC5F,wFAAwF;gBACxF,iFAAiF;gBACjF,EAAE;gBACF,2FAA2F;gBAC3F,0FAA0F;gBAC1F,6FAA6F;gBAC7F,0FAA0F;gBAC1F,2FAA2F;gBAC3F,MAAM,MAAM,GAAG,YAAY,CAAC,QAAQ,CAClC,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE,mBAAmB,CAAC,YAAY,EAAE,SAAS,CAAC,CACjF,CAAC;gBACF,IAAI,MAAM,EAAE,CAAC;oBACX,sFAAsF;oBACtF,wFAAwF;oBACxF,wFAAwF;oBACxF,qFAAqF;oBACrF,0FAA0F;oBAC1F,wFAAwF;oBACxF,cAAc;oBACd,MAAM,WAAW,GAAG;wBAClB,KAAK,EAAE,MAAM,CAAC,KAAK;wBACnB,aAAa,EAAE,MAAM,CAAC,YAAY;wBAClC,WAAW,EAAE,MAAM,CAAC,WAAW;wBAC/B,yEAAyE;wBACzE,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;qBACjD,CAAC;oBACF,MAAM,CAAC,IAAI,CAAC,kCAAkC,EAAE;wBAC9C,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ;wBACnE,UAAU,EAAE,MAAM,CAAC,KAAK,EAAE,YAAY,EAAE,MAAM,CAAC,YAAY,EAAE,OAAO,EAAE,MAAM,CAAC,WAAW;wBACxF,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,aAAa,EAAE,oBAAoB;qBACjE,CAAC,CAAC;oBACH,MAAM,UAAU,GAAG,mDAAmD,MAAM,CAAC,KAAK,sEAAsE,MAAM,CAAC,YAAY,mEAAmE,SAAS,GAAG,CAAC;oBAC3P,yFAAyF;oBACzF,oFAAoF;oBACpF,yFAAyF;oBACzF,yFAAyF;oBACzF,gFAAgF;oBAChF,yFAAyF;oBACzF,uFAAuF;oBACvF,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;wBACxB,OAAO;4BACL,EAAE,EAAE,IAAI;4BACR,OAAO,EAAE,IAAI;4BACb,MAAM,EAAE,mBAAmB;4BAC3B,QAAQ,EAAE,MAAM;4BAChB,gBAAgB,EAAE,WAAW;4BAC7B,UAAU;4BACV,QAAQ,EAAE,GAAG,UAAU,kVAAkV;yBAC1W,CAAC;oBACJ,CAAC;oBACD,OAAO;wBACL,EAAE,EAAE,IAAI;wBACR,OAAO,EAAE,IAAI;wBACb,MAAM,EAAE,0BAA0B;wBAClC,gBAAgB,EAAE,WAAW;wBAC7B,UAAU;wBACV,QAAQ,EAAE,GAAG,UAAU,gDAAgD;qBACxE,CAAC;gBACJ,CAAC;gBACD,qEAAqE;gBACrE,+EAA+E;gBAC/E,iFAAiF;gBACjF,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;oBACxB,MAAM,CAAC,IAAI,CAAC,uBAAuB,EAAE;wBACnC,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE,UAAU;wBACzD,QAAQ,EAAE,aAAa,EAAE,oBAAoB;qBAC9C,CAAC,CAAC;oBACH,OAAO;wBACL,EAAE,EAAE,IAAI;wBACR,OAAO,EAAE,IAAI;wBACb,UAAU,EAAE,YAAY,CAAC,SAAS,CAAC;wBACnC,MAAM,EAAE,mBAAmB;wBAC3B,QAAQ,EAAE,MAAM;wBAChB,QAAQ,EAAE,+TAA+T;qBAC1U,CAAC;gBACJ,CAAC;gBACD,qFAAqF;gBACrF,0FAA0F;gBAC1F,qFAAqF;gBACrF,mFAAmF;gBACnF,uFAAuF;gBACvF,4EAA4E;gBAC5E,IAAI,QAAQ,KAAK,UAAU,EAAE,CAAC;oBAC5B,MAAM,UAAU,GAAG,kBAAkB,CAAC,oBAAoB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;oBACjF,MAAM,CAAC,IAAI,CAAC,uBAAuB,EAAE;wBACnC,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE,UAAU;wBACzD,QAAQ,EAAE,eAAe,EAAE,UAAU,EAAE,KAAK,EAAE,kBAAkB,EAAE,UAAU,EAAE,QAAQ;wBACtF,aAAa,EAAE,oBAAoB;qBACpC,CAAC,CAAC;oBACH,qFAAqF;oBACrF,wFAAwF;oBACxF,mFAAmF;oBACnF,0FAA0F;oBAC1F,oFAAoF;oBACpF,uFAAuF;oBACvF,+DAA+D;oBAC/D,MAAM,IAAI,GAAG,UAAU,EAAE,KAAK,KAAK,cAAc;wBAC/C,CAAC,CAAC,oJAAoJ;wBACtJ,CAAC,CAAC,4FAA4F,CAAC;oBACjG,MAAM,QAAQ,GACZ,UAAU,EAAE,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,8IAA8I;wBAClL,CAAC,CAAC,UAAU,EAAE,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,qIAAqI;4BAC5K,CAAC,CAAC,UAAU,EAAE,QAAQ,KAAK,MAAM,CAAC,CAAC,CAAC,2GAA2G;gCAC/I,CAAC,CAAC,EAAE,CAAC;oBACP,OAAO;wBACL,EAAE,EAAE,IAAI;wBACR,OAAO,EAAE,IAAI;wBACb,UAAU,EAAE,YAAY,CAAC,SAAS,CAAC;wBACnC,MAAM,EAAE,mBAAmB;wBAC3B,QAAQ,EAAE,UAAU;wBACpB,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;wBACrC,QAAQ,EAAE,oBAAoB,IAAI,GAAG,QAAQ,sLAAsL;qBACpO,CAAC;gBACJ,CAAC;gBACD,MAAM,CAAC,IAAI,CAAC,uBAAuB,EAAE;oBACnC,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE,UAAU;oBACzD,QAAQ,EAAE,aAAa,EAAE,oBAAoB;iBAC9C,CAAC,CAAC;gBACH,uFAAuF;gBACvF,qFAAqF;gBACrF,qEAAqE;gBACrE,OAAO;oBACL,EAAE,EAAE,IAAI;oBACR,OAAO,EAAE,IAAI;oBACb,UAAU,EAAE,YAAY,CAAC,SAAS,CAAC;oBACnC,QAAQ,EAAE,0KAA0K;iBACrL,CAAC;YACJ,CAAC;YACD,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;QACnE,CAAC;IACH,CAAC,CAAC;IACF,QAAQ,CAAC,GAAG,CAAC,eAAe,EAAE,aAAa,CAAC,CAAC;AAC/C,CAAC"}
|