approval-md 0.4.0 → 0.4.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/SPEC.md +3 -0
- package/cli.js +72 -4
- package/dist/src/channels/contract.d.ts +53 -0
- package/dist/src/channels/contract.js +56 -0
- package/dist/src/channels/contract.js.map +1 -1
- package/dist/src/channels/tagging.d.ts +25 -0
- package/dist/src/channels/tagging.js +57 -5
- package/dist/src/channels/tagging.js.map +1 -1
- package/dist/src/channels/telegram-minimal.d.ts +251 -0
- package/dist/src/channels/telegram-minimal.js +618 -0
- package/dist/src/channels/telegram-minimal.js.map +1 -0
- package/dist/src/channels/telegram.d.ts +454 -19
- package/dist/src/channels/telegram.js +931 -80
- package/dist/src/channels/telegram.js.map +1 -1
- package/dist/src/cli/amend.js +8 -1
- package/dist/src/cli/amend.js.map +1 -1
- package/dist/src/cli/audit-card.d.ts +1 -1
- package/dist/src/cli/audit-card.js +40 -1
- package/dist/src/cli/audit-card.js.map +1 -1
- package/dist/src/cli/audit.d.ts +7 -5
- package/dist/src/cli/audit.js +22 -10
- package/dist/src/cli/audit.js.map +1 -1
- package/dist/src/cli/channel-telegram-webhook.d.ts +2 -0
- package/dist/src/cli/channel-telegram-webhook.js +7 -0
- package/dist/src/cli/channel-telegram-webhook.js.map +1 -1
- package/dist/src/cli/channel-telegram.d.ts +75 -2
- package/dist/src/cli/channel-telegram.js +170 -15
- package/dist/src/cli/channel-telegram.js.map +1 -1
- package/dist/src/cli/execute.d.ts +12 -0
- package/dist/src/cli/execute.js +46 -1
- package/dist/src/cli/execute.js.map +1 -1
- package/dist/src/cli/help.d.ts +1 -0
- package/dist/src/cli/help.js +39 -18
- package/dist/src/cli/help.js.map +1 -1
- package/dist/src/cli/hook.d.ts +114 -3
- package/dist/src/cli/hook.js +468 -50
- package/dist/src/cli/hook.js.map +1 -1
- package/dist/src/cli/log-unlock.d.ts +23 -0
- package/dist/src/cli/log-unlock.js +109 -0
- package/dist/src/cli/log-unlock.js.map +1 -0
- package/dist/src/cli/main.js +23 -6
- package/dist/src/cli/main.js.map +1 -1
- package/dist/src/cli/up.js +5 -0
- package/dist/src/cli/up.js.map +1 -1
- package/dist/src/cli/verb-registry.js +1 -0
- package/dist/src/cli/verb-registry.js.map +1 -1
- package/dist/src/cli/wordmark.d.ts +2 -2
- package/dist/src/cli/wordmark.js +2 -2
- package/dist/src/core/audit.d.ts +98 -9
- package/dist/src/core/audit.js +363 -15
- package/dist/src/core/audit.js.map +1 -1
- package/dist/src/core/command-class.js +6 -0
- package/dist/src/core/command-class.js.map +1 -1
- package/dist/src/core/gate.d.ts +58 -1
- package/dist/src/core/gate.js +30 -3
- package/dist/src/core/gate.js.map +1 -1
- package/dist/src/core/log-lock.d.ts +435 -0
- package/dist/src/core/log-lock.js +1093 -0
- package/dist/src/core/log-lock.js.map +1 -0
- package/dist/src/core/log.d.ts +82 -3
- package/dist/src/core/log.js +285 -40
- package/dist/src/core/log.js.map +1 -1
- package/dist/src/core/policy-proposal.d.ts +17 -0
- package/dist/src/core/policy-proposal.js +29 -14
- package/dist/src/core/policy-proposal.js.map +1 -1
- package/dist/src/core/prompt-layout.d.ts +186 -1
- package/dist/src/core/prompt-layout.js +345 -3
- package/dist/src/core/prompt-layout.js.map +1 -1
- package/dist/src/core/sender-identity.d.ts +24 -1
- package/dist/src/core/sender-identity.js +31 -0
- package/dist/src/core/sender-identity.js.map +1 -1
- package/dist/src/core/validate.d.ts +20 -6
- package/dist/src/core/validate.js +0 -0
- package/dist/src/core/validate.js.map +1 -1
- package/dist/src/daemon/git-evidence.d.ts +2 -2
- package/dist/src/daemon/git-evidence.js +1 -1
- package/dist/src/serve/archive.d.ts +8 -0
- package/dist/src/serve/archive.js +11 -2
- package/dist/src/serve/archive.js.map +1 -1
- package/docs/README-extended.md +2 -0
- package/docs/cli-reference.md +507 -25
- package/package.json +2 -2
- package/schema/event.schema.json +354 -28
- package/schema/fixtures/event/invalid/audit-lock-reclaimed-age-without-created.json +19 -0
- package/schema/fixtures/event/invalid/audit-lock-reclaimed-agent-actor.json +14 -0
- package/schema/fixtures/event/invalid/audit-lock-reclaimed-lockfile-path.json +14 -0
- package/schema/fixtures/event/invalid/audit-lock-reclaimed-operator-cleared-system-actor.json +14 -0
- package/schema/fixtures/event/invalid/audit-lock-reclaimed-unknown-reason.json +14 -0
- package/schema/fixtures/event/invalid/audit-lock-reclaimed-without-age.json +13 -0
- package/schema/fixtures/event/invalid/audit-reviewed-agent-actor.json +6 -1
- package/schema/fixtures/event/invalid/audit-reviewed-bad-payload-hash.json +21 -0
- package/schema/fixtures/event/invalid/audit-reviewed-loved-no-note.json +5 -0
- package/schema/fixtures/event/invalid/audit-reviewed-no-subject-hash.json +19 -0
- package/schema/fixtures/event/invalid/audit-reviewed-no-subject-seq.json +19 -0
- package/schema/fixtures/event/invalid/audit-reviewed-no-verdict-source.json +19 -0
- package/schema/fixtures/event/invalid/audit-reviewed-no-verdict.json +19 -0
- package/schema/fixtures/event/invalid/audit-reviewed-system-actor.json +6 -1
- package/schema/fixtures/event/invalid/audit-sampled-no-policy-hash.json +14 -0
- package/schema/fixtures/event/valid/audit-lock-reclaimed-implausible-created.json +18 -0
- package/schema/fixtures/event/valid/audit-lock-reclaimed-legacy.json +14 -0
- package/schema/fixtures/event/valid/audit-lock-reclaimed-unlock.json +19 -0
- package/schema/fixtures/event/valid/audit-lock-reclaimed.json +19 -0
- package/schema/fixtures/event/valid/audit-reviewed-reaction.json +5 -0
- package/schema/fixtures/event/valid/audit-reviewed.json +6 -1
- package/schema/fixtures/event/valid/audit-sampled.json +2 -1
- package/schema/fixtures/event/valid/daemon-identity.json +2 -1
- package/schema/policy.schema.json +52 -0
package/dist/src/core/audit.js
CHANGED
|
@@ -70,11 +70,16 @@
|
|
|
70
70
|
* the timestamp is read from the injected clock at the write boundary, and the
|
|
71
71
|
* party being audited does not author the clock it is judged by.
|
|
72
72
|
*/
|
|
73
|
+
import { readFileSync } from "node:fs";
|
|
73
74
|
import { tick } from "./clock.js";
|
|
74
|
-
import { findDeclaration, indexDeclarations } from "./execute.js";
|
|
75
|
+
import { declaringTasks, findDeclaration, indexDeclarations } from "./execute.js";
|
|
76
|
+
import { namesApprover, policyPathOf } from "./gate.js";
|
|
77
|
+
import { attestationRefusal, attestationSha256, checkAttestationOfBytes, isPolicySha256, POLICY_HASH_FIELD, policyBytesHash, unreadablePolicyStatus, } from "./attest.js";
|
|
75
78
|
import { appendEvent, } from "./log.js";
|
|
76
|
-
import { loadPolicy } from "./policy-load.js";
|
|
79
|
+
import { loadPolicy, loadPolicyText, } from "./policy-load.js";
|
|
77
80
|
import { resolve } from "./policy-match.js";
|
|
81
|
+
import { payloadStoreDirFor } from "./payload-store.js";
|
|
82
|
+
import { storedPolicyText } from "./policy-proposal.js";
|
|
78
83
|
import { resolveSampler } from "./sampler.js";
|
|
79
84
|
import { payloadOf, readVerifiedRecords } from "./state.js";
|
|
80
85
|
/**
|
|
@@ -93,12 +98,54 @@ const HUMAN_ACTOR = /^human:.+/u;
|
|
|
93
98
|
export const AUDIT_REFUSAL_CODES = [
|
|
94
99
|
/** Review was attempted by an actor that is not `human:<id>`. */
|
|
95
100
|
"actor-not-human",
|
|
101
|
+
/**
|
|
102
|
+
* The reviewer is a person the class's `approvers` roster does not name
|
|
103
|
+
* (APRV-483). Same comparison and same code as a grant's (`core/gate.ts`
|
|
104
|
+
* `namesApprover`), because under supervised-retro a review IS the approval,
|
|
105
|
+
* and a roster that bound the grant and not the review would be a roster the
|
|
106
|
+
* retrospective path walks around, including through `--as`. A rule that
|
|
107
|
+
* names no roster restricts nobody, exactly as for grants. Evaluated once the
|
|
108
|
+
* sample (and so its class) is located; nothing is appended.
|
|
109
|
+
*/
|
|
110
|
+
"actor-not-approver",
|
|
111
|
+
/**
|
|
112
|
+
* The policy the reviewer's roster would be read from is not the attested
|
|
113
|
+
* one: never attested, edited since, or unreadable (APRV-483 refutation).
|
|
114
|
+
* Same spelling as the gate's, with the attestation module's message. Before
|
|
115
|
+
* this a review read no policy and needed no attestation; once a review is
|
|
116
|
+
* held to a roster, a roster read from an unattested file (or from any file a
|
|
117
|
+
* terminal reviewer names with `--policy`) is a roster the reviewer chose,
|
|
118
|
+
* and a policy that fails to load would restrict nobody. Evaluated once the
|
|
119
|
+
* sample is located; nothing is appended.
|
|
120
|
+
*/
|
|
121
|
+
"policy-not-attested",
|
|
122
|
+
/**
|
|
123
|
+
* The attested policy bytes do not load (schema-invalid, a YAML error, no
|
|
124
|
+
* policy block), so no roster can be read from them (PR #614 refutation F1).
|
|
125
|
+
* A gate meeting the same bytes resolves every class `manual`, which
|
|
126
|
+
* compensates; a review has nothing that compensates, because the action
|
|
127
|
+
* already ran and this record is its approval. So a policy that names nobody
|
|
128
|
+
* because it failed to load is refused here rather than read as "no roster".
|
|
129
|
+
* Distinct from `policy-not-attested`: the bytes ARE the attested ones, and
|
|
130
|
+
* the repair is a corrected policy and a new attestation, not re-attesting
|
|
131
|
+
* what is on disk. Evaluated once the sample is located; nothing is appended.
|
|
132
|
+
*/
|
|
133
|
+
"policy-invalid",
|
|
96
134
|
/** No `audit.sampled` record matches the subject named. */
|
|
97
135
|
"not-sampled",
|
|
98
136
|
/** That sample already has a later `audit.reviewed`. */
|
|
99
137
|
"already-reviewed",
|
|
100
138
|
/** An action key with more than one unreviewed sample; name the seq instead. */
|
|
101
139
|
"ambiguous-subject",
|
|
140
|
+
/**
|
|
141
|
+
* The reviewing surface said it rendered the payload whole and named a hash
|
|
142
|
+
* that is not the sampled execution's recorded binding (APRV-481). Nothing is
|
|
143
|
+
* appended: a review's `payload_hash` says which bytes the reviewer read, and
|
|
144
|
+
* one naming bytes the execution did not bind to would claim a reading of
|
|
145
|
+
* something that never ran. Evaluated after the sample is located, before
|
|
146
|
+
* anything is written.
|
|
147
|
+
*/
|
|
148
|
+
"rendered-payload-mismatch",
|
|
102
149
|
/** No `reconciliation.required` record at the seq named (APRV-127). */
|
|
103
150
|
"not-obliged",
|
|
104
151
|
/** That obligation already has a `reconciliation.satisfied` (APRV-127). */
|
|
@@ -123,6 +170,17 @@ export const AUDIT_REFUSAL_CODES = [
|
|
|
123
170
|
* operator is pleased. The reviewer is asked to say which they meant.
|
|
124
171
|
*/
|
|
125
172
|
"reaction-conflicts-verdict",
|
|
173
|
+
/**
|
|
174
|
+
* A review that names no verdict (APRV-482). Under supervised-retro a review
|
|
175
|
+
* counts as the individual approval nobody gave before the action ran, and an
|
|
176
|
+
* approval is an affirmative act: a reaction tap on a card, or a bare
|
|
177
|
+
* `approval audit review <seq>`, used to write verdict `ok` on the reviewer's
|
|
178
|
+
* behalf. Now the verdict is said or nothing is written. Evaluated once the
|
|
179
|
+
* sample is located and the reviewer has passed the roster check (PR #614
|
|
180
|
+
* refutation N6: who may review is said before what the review lacks);
|
|
181
|
+
* nothing is appended.
|
|
182
|
+
*/
|
|
183
|
+
"verdict-required",
|
|
126
184
|
/**
|
|
127
185
|
* A `gated-revert` obligation whose satisfaction names no completed revert
|
|
128
186
|
* (APRV-127). The obligation is to undo the action THROUGH THE GATE, and the
|
|
@@ -250,6 +308,7 @@ export function sampledSubjects(records) {
|
|
|
250
308
|
task: stringOrNull(record.task) ?? stringOrNull(payload["task"]),
|
|
251
309
|
subjectHash: stringOrNull(payload["subject_hash"]),
|
|
252
310
|
subjectSeq: typeof subjectSeq === "number" && Number.isInteger(subjectSeq) ? subjectSeq : null,
|
|
311
|
+
policySha256: isPolicySha256(payload[POLICY_HASH_FIELD]) ? payload[POLICY_HASH_FIELD] : null,
|
|
253
312
|
reviewedSeq: null,
|
|
254
313
|
});
|
|
255
314
|
}
|
|
@@ -275,6 +334,33 @@ export function sampledSubjects(records) {
|
|
|
275
334
|
export function openSamples(records) {
|
|
276
335
|
return sampledSubjects(records).filter((subject) => subject.reviewedSeq === null);
|
|
277
336
|
}
|
|
337
|
+
/**
|
|
338
|
+
* The payload hash the sampled execution bound to, or `null` when the log
|
|
339
|
+
* records none (APRV-480).
|
|
340
|
+
*
|
|
341
|
+
* Read off the `execution.started` the sample names, whose `payload_hash` is the
|
|
342
|
+
* executor's recomputation of the bytes it ran; failing that, off the
|
|
343
|
+
* registration's declared binding. Both are records the log already holds, so
|
|
344
|
+
* nothing here takes a payload hash from the party under review, and the review
|
|
345
|
+
* card (`cli/audit-card.ts`) and the review record (APRV-481) derive the same
|
|
346
|
+
* answer from the same records.
|
|
347
|
+
*/
|
|
348
|
+
export function boundPayloadHash(records, subject) {
|
|
349
|
+
const start = subject.subjectSeq === null
|
|
350
|
+
? undefined
|
|
351
|
+
: records.find((record) => record.seq === subject.subjectSeq && record.event === "execution.started");
|
|
352
|
+
const started = start === undefined ? null : stringOrNull(payloadOf(start)["payload_hash"]);
|
|
353
|
+
if (started !== null)
|
|
354
|
+
return started;
|
|
355
|
+
if (subject.actionKey === null)
|
|
356
|
+
return null;
|
|
357
|
+
// PR #614 refutation N7: findDeclaration's contract. A key two tasks declare
|
|
358
|
+
// is a collision registration refuses, so a log holding one cannot say which
|
|
359
|
+
// binding governs, and no binding is the fail-closed answer.
|
|
360
|
+
if (declaringTasks(records, subject.actionKey).length > 1)
|
|
361
|
+
return null;
|
|
362
|
+
return findDeclaration(records, subject.actionKey)?.payload_hash ?? null;
|
|
363
|
+
}
|
|
278
364
|
/** The candidates a sweep would sample now: eligible, selected, not yet sampled. */
|
|
279
365
|
export function pendingSamples(records, load, sampler) {
|
|
280
366
|
if (!sampler.enabled)
|
|
@@ -364,7 +450,20 @@ export function sampleSupervised(logPath, cwd, options = {}) {
|
|
|
364
450
|
const next = pending.find((candidate) => !appended.some((done) => done.candidate.hash === candidate.hash));
|
|
365
451
|
if (next === undefined)
|
|
366
452
|
break;
|
|
367
|
-
|
|
453
|
+
// PR #614 refutation F2, recheck NF-3. The sample pins the attested policy
|
|
454
|
+
// the action RAN under (see `executionPolicySha256`), so the review is held
|
|
455
|
+
// to that policy's roster and not to one attested between the execution and
|
|
456
|
+
// this sweep. Only an execution older than every attestation in the log
|
|
457
|
+
// falls back to the latest attestation, the reading before NF-3. A log with
|
|
458
|
+
// no attestation cannot have run a supervised action (the executor refuses
|
|
459
|
+
// `policy-not-attested` on that path), so meeting one here is a fact about
|
|
460
|
+
// the log an operator must look at, never a sample written unpinned.
|
|
461
|
+
const policySha256 = executionPolicySha256(read.records, next) ?? latestAttestedSha256(read.records);
|
|
462
|
+
if (policySha256 === null) {
|
|
463
|
+
refusals.push(refuse("policy-not-attested", `audit.sampled for ${next.actionKey} was not appended: the log holds no policy attestation, so the sample could not name the policy it was taken under, and its review would have no roster to be held to. A human must run \`approval policy attest\`.`));
|
|
464
|
+
break;
|
|
465
|
+
}
|
|
466
|
+
const result = appendSample(logPath, next, sampler, read.head, policySha256, options);
|
|
368
467
|
if (!result.ok) {
|
|
369
468
|
// One failure ends the sweep either way, transient or not. A held lock or a
|
|
370
469
|
// moved head means another writer is mid-transaction, and walking the rest
|
|
@@ -383,7 +482,50 @@ export function sampleSupervised(logPath, cwd, options = {}) {
|
|
|
383
482
|
}
|
|
384
483
|
return { ok: true, sampler, appended, refusals, deferred };
|
|
385
484
|
}
|
|
386
|
-
|
|
485
|
+
/**
|
|
486
|
+
* The `sha256` the latest policy attestation in `records` names, or `null`
|
|
487
|
+
* when the log holds none (PR #614 refutation F2). The same record
|
|
488
|
+
* `checkAttestationOfBytes` compares against: the latest attestation is the
|
|
489
|
+
* policy in force.
|
|
490
|
+
*/
|
|
491
|
+
function latestAttestedSha256(records) {
|
|
492
|
+
for (let index = records.length - 1; index >= 0; index -= 1) {
|
|
493
|
+
const sha = attestationSha256(records[index]);
|
|
494
|
+
if (sha !== null)
|
|
495
|
+
return sha;
|
|
496
|
+
}
|
|
497
|
+
return null;
|
|
498
|
+
}
|
|
499
|
+
/**
|
|
500
|
+
* The attested policy the sampled execution ran under, or `null` when the log
|
|
501
|
+
* cannot say (PR #614 recheck NF-3).
|
|
502
|
+
*
|
|
503
|
+
* The latest attestation BEFORE the execution's seq. The log is append-only,
|
|
504
|
+
* so the attestations before a record's seq are exactly the ones that existed
|
|
505
|
+
* when it was written, and the latest of them is the policy in force at that
|
|
506
|
+
* append. That is the value the gate stamps on a harness `execution.started`
|
|
507
|
+
* (APRV-447: the attestation its write boundary checked, under the same
|
|
508
|
+
* compare-and-append), so the two agree by construction; reading it from the
|
|
509
|
+
* log rather than from the stamp also covers the starts no stamp is written on
|
|
510
|
+
* (`approval run`'s path, and every start older than APRV-447). `null` only
|
|
511
|
+
* for an execution older than every attestation in the log; the caller then
|
|
512
|
+
* pins the latest one, the reading samples had before NF-3.
|
|
513
|
+
*
|
|
514
|
+
* Read from verified records only, at the moment the sample is drawn, and
|
|
515
|
+
* never from a caller: the pin is a runtime-written fact about the log.
|
|
516
|
+
*/
|
|
517
|
+
function executionPolicySha256(records, candidate) {
|
|
518
|
+
let before = null;
|
|
519
|
+
for (const record of records) {
|
|
520
|
+
if (record.seq >= candidate.seq)
|
|
521
|
+
break;
|
|
522
|
+
const sha = attestationSha256(record);
|
|
523
|
+
if (sha !== null)
|
|
524
|
+
before = sha;
|
|
525
|
+
}
|
|
526
|
+
return before;
|
|
527
|
+
}
|
|
528
|
+
function appendSample(logPath, candidate, sampler, head, policySha256, options) {
|
|
387
529
|
const payload = {
|
|
388
530
|
// What was sampled, named by the chain's own identifiers so a reviewer (and
|
|
389
531
|
// a reproducing operator) can find the subject without a projection.
|
|
@@ -405,6 +547,10 @@ function appendSample(logPath, candidate, sampler, head, options) {
|
|
|
405
547
|
// was in force.
|
|
406
548
|
rate: sampler.rateFor(candidate.class).rate ?? sampler.rate,
|
|
407
549
|
autonomy: "supervised",
|
|
550
|
+
// PR #614 refutation F2, recheck NF-3: the attested policy the sampled
|
|
551
|
+
// execution ran under. Its review reads the class's roster from these
|
|
552
|
+
// bytes only.
|
|
553
|
+
[POLICY_HASH_FIELD]: policySha256,
|
|
408
554
|
};
|
|
409
555
|
const result = appendEvent(logPath, {
|
|
410
556
|
ts: tick(options),
|
|
@@ -507,27 +653,37 @@ export function obligationFor(reversible) {
|
|
|
507
653
|
* would be the party under oversight closing its own audit item, and a backlog
|
|
508
654
|
* that can be emptied by the thing it supervises measures nothing.
|
|
509
655
|
*
|
|
510
|
-
*
|
|
511
|
-
*
|
|
512
|
-
*
|
|
656
|
+
* It needs the ATTESTED policy since APRV-483 (it needed none before): under
|
|
657
|
+
* supervised-retro a review is the approval, so the reviewer is held to the
|
|
658
|
+
* class's `approvers` roster, and that roster is read only from bytes a human
|
|
659
|
+
* attested ({@link reviewerRoster}). It spends no budget and mints no token.
|
|
513
660
|
*
|
|
514
661
|
* `--note` is optional and recorded verbatim when present. It is not mandatory
|
|
515
662
|
* the way `execution resolve`'s is, because that verb writes an *outcome* the
|
|
516
663
|
* runtime does not know while this one writes only "seen".
|
|
517
664
|
*/
|
|
518
665
|
export function reviewSample(logPath, ref, actor, note, options = {}) {
|
|
519
|
-
const verdict = options.verdict ?? "ok";
|
|
520
666
|
if (!HUMAN_ACTOR.test(actor)) {
|
|
521
667
|
return refuse("actor-not-human", `audit review is human-only: the event's entire content is that a person looked at a sampled action, and a runtime that could mark its own samples reviewed would be a supervision backlog that empties itself. The actor must match human:<id>, got ${JSON.stringify(actor)}.`);
|
|
522
668
|
}
|
|
669
|
+
// APRV-482. The verdict is an affirmative act or it is nothing. Read here and
|
|
670
|
+
// REFUSED after the roster check (PR #614 refutation N6): who may review comes
|
|
671
|
+
// before what the review lacks, so a reviewer off the roster who taps a grade
|
|
672
|
+
// is told `actor-not-approver` at once rather than `verdict-required` first
|
|
673
|
+
// and the roster only on their next tap.
|
|
674
|
+
const verdict = options.verdict;
|
|
675
|
+
const hasVerdict = verdict === "ok" || verdict === "denied";
|
|
523
676
|
// APRV-239, and deliberately here: after the actor check and BEFORE the log is
|
|
524
677
|
// read. Both rules are properties of the two arguments in front of this
|
|
525
678
|
// function, so neither needs a log to decide, and a refusal that had already
|
|
526
679
|
// read (and verified) a log would report a log failure for an invocation that
|
|
527
680
|
// was malformed before it ever touched one. Nothing is appended on either
|
|
528
|
-
// path; the reviewer fixes the invocation and reviews again.
|
|
681
|
+
// path; the reviewer fixes the invocation and reviews again. Both judge a
|
|
682
|
+
// grade beside a verdict, so a review with no verdict skips them and meets
|
|
683
|
+
// `verdict-required` below: a card's lone `loved` is told it lacks a verdict,
|
|
684
|
+
// not a note it will be asked for once the verdict comes.
|
|
529
685
|
const reaction = options.reaction;
|
|
530
|
-
if (reaction !== undefined) {
|
|
686
|
+
if (hasVerdict && reaction !== undefined) {
|
|
531
687
|
if (verdict === "denied" && (reaction === "liked" || reaction === "loved")) {
|
|
532
688
|
return refuse("reaction-conflicts-verdict", `a denied review cannot also be ${reaction}: \`verdict\` says the action should not have happened and \`reaction\` says the human was pleased by it, and only the first of those is enforcement. A record carrying both reads afterwards as evidence of whichever half suits the reader, and reads to an agent as a denial being survivable when the operator is pleased. Nothing was appended. Say which one you meant: drop --deny, or use --reaction disliked or indifferent and put the nuance in --note.`);
|
|
533
689
|
}
|
|
@@ -543,14 +699,54 @@ export function reviewSample(logPath, ref, actor, note, options = {}) {
|
|
|
543
699
|
if (!located.ok)
|
|
544
700
|
return located;
|
|
545
701
|
const subject = located.subject;
|
|
702
|
+
// APRV-481. A review names the execution it judged, by the hash the sample
|
|
703
|
+
// recorded for it. Every sample the runtime writes carries one; a sample that
|
|
704
|
+
// does not names nothing a review could be about, and the write boundary
|
|
705
|
+
// requires the field, so this says so in the audit vocabulary rather than as
|
|
706
|
+
// a schema failure.
|
|
707
|
+
const sampledSubjectHash = subject.subjectHash;
|
|
708
|
+
if (sampledSubjectHash === null) {
|
|
709
|
+
return refuse("not-sampled", `the sample at seq ${String(subject.seq)} names no subject hash, so a review of it could not say which execution it judged. Nothing was appended.`, { seq: subject.seq });
|
|
710
|
+
}
|
|
711
|
+
// APRV-483. The roster check a grant makes, made of the reviewer. The class
|
|
712
|
+
// and reversibility come from the registration (never from the review or the
|
|
713
|
+
// execution's own payload, global invariant 4), failing that from the
|
|
714
|
+
// runtime-written sample; the rule is the single winner `resolve` picks, as
|
|
715
|
+
// for a grant; and a rule with no `approvers` restricts nobody. The roster is
|
|
716
|
+
// read from the ATTESTED policy bytes, as a grant's is.
|
|
717
|
+
const rosterRefusal = reviewerRoster(logPath, read.records, subject, actor, options);
|
|
718
|
+
if (rosterRefusal !== null)
|
|
719
|
+
return rosterRefusal;
|
|
720
|
+
if (!hasVerdict) {
|
|
721
|
+
return refuse("verdict-required", `a review must say its verdict: under supervised-retro it counts as the approval nobody gave before the action ran, so a grade alone, or a review that names nothing, records nothing. At a terminal pass --ok or --deny; on a review card tap OK, or Deny twice. Nothing was appended.`, { seq: subject.seq });
|
|
722
|
+
}
|
|
723
|
+
// APRV-481. The surface's word that it showed the bytes is checked against
|
|
724
|
+
// the binding the log holds, never copied on trust (SPEC.md §11.1 invariant 4
|
|
725
|
+
// in spirit: a field that claims more scrutiny than happened is the same
|
|
726
|
+
// defect as one that lowers it).
|
|
727
|
+
const rendered = options.renderedPayloadHash;
|
|
728
|
+
if (rendered !== undefined) {
|
|
729
|
+
const bound = boundPayloadHash(read.records, subject);
|
|
730
|
+
if (bound === null || bound !== rendered) {
|
|
731
|
+
return refuse("rendered-payload-mismatch", `the reviewing surface says it showed the payload with sha256 ${rendered}, and the execution the sample at seq ${String(subject.seq)} names is bound to ${bound === null ? "no payload hash at all" : bound}. A review's payload_hash says which bytes the reviewer read; one naming bytes that never ran would claim a reading of something else. Nothing was appended.`, { seq: subject.seq });
|
|
732
|
+
}
|
|
733
|
+
}
|
|
546
734
|
const payload = {
|
|
547
735
|
subject_seq: subject.seq,
|
|
548
736
|
subject_event: "audit.sampled",
|
|
549
737
|
reviewed: true,
|
|
550
738
|
verdict,
|
|
739
|
+
// PR #614 refutation F5: the discriminator a follower reads. Since APRV-482
|
|
740
|
+
// every verdict is the reviewer's own word; a review written before then
|
|
741
|
+
// may carry an `ok` the runtime filled in, and only this field (absent
|
|
742
|
+
// there) tells the two apart.
|
|
743
|
+
verdict_source: "explicit",
|
|
744
|
+
sampled_subject_hash: sampledSubjectHash,
|
|
551
745
|
};
|
|
552
|
-
|
|
553
|
-
|
|
746
|
+
// Only when the bytes were on the screen (APRV-481): absent says the
|
|
747
|
+
// reviewer saw a hash, nothing, or a terminal.
|
|
748
|
+
if (rendered !== undefined)
|
|
749
|
+
payload["payload_hash"] = rendered;
|
|
554
750
|
if (note !== null && note.trim().length > 0)
|
|
555
751
|
payload["note"] = note;
|
|
556
752
|
// Written only when it was given. An omitted reaction leaves no key, which is
|
|
@@ -602,6 +798,158 @@ export function reviewSample(logPath, ref, actor, note, options = {}) {
|
|
|
602
798
|
return obliged;
|
|
603
799
|
return { ok: true, record: result.record, subject, obligation: obliged.record };
|
|
604
800
|
}
|
|
801
|
+
/**
|
|
802
|
+
* `actor-not-approver` when the class's roster does not name `actor`,
|
|
803
|
+
* `policy-not-attested` when the roster cannot be read from the attested
|
|
804
|
+
* policy, else `null` (APRV-483).
|
|
805
|
+
*
|
|
806
|
+
* Fail-closed in every input it does not control (APRV-483 refutation):
|
|
807
|
+
*
|
|
808
|
+
* - the policy is read ONCE from the file a grant would read
|
|
809
|
+
* (`core/gate.ts` `policyPathOf`), its bytes must be the policy the sample
|
|
810
|
+
* pinned, the one its execution ran under (PR #614 refutation F2, recheck
|
|
811
|
+
* NF-3; for an unpinned pre-fix sample, the latest attestation's), and the
|
|
812
|
+
* roster is parsed from those same bytes, so neither
|
|
813
|
+
* an edited file, an unreadable one, a later re-attestation, nor a
|
|
814
|
+
* `--policy` pointed elsewhere can supply the roster;
|
|
815
|
+
* - a class that matches no rule in that policy is refused
|
|
816
|
+
* `actor-not-approver` (F2): the defaults carry no roster, and for a review
|
|
817
|
+
* "no roster" would mean "anyone";
|
|
818
|
+
* - a sample whose class cannot be named (no registration and no class on the
|
|
819
|
+
* runtime-written sample) is refused rather than resolved as "no rule, no
|
|
820
|
+
* roster", because that reading would let anyone review it;
|
|
821
|
+
* - attested bytes the loader refuses are refused `policy-invalid` (PR #614
|
|
822
|
+
* refutation F1): their fail-closed resolution names no roster, and for a
|
|
823
|
+
* review "no roster" would mean "anyone".
|
|
824
|
+
*
|
|
825
|
+
* What still restricts nobody, by design and exactly as for a grant: an
|
|
826
|
+
* attested rule that names no `approvers`.
|
|
827
|
+
*/
|
|
828
|
+
function reviewerRoster(logPath, records, subject, actor, options) {
|
|
829
|
+
const path = policyPathOf(options.policy === undefined ? {} : { policy: options.policy });
|
|
830
|
+
// PR #614 refutation F2 (ruling), recheck NF-3: the roster is the one in
|
|
831
|
+
// force when the action RAN, which the sample pins. A sample that pinned its
|
|
832
|
+
// policy is reviewed only against bytes hashing to that pin, so a later
|
|
833
|
+
// re-attestation that renames, re-rosters or drops the class's rule neither
|
|
834
|
+
// opens the review to a new reviewer nor leaves it with no roster; a sample
|
|
835
|
+
// written before samples pinned one keeps the latest-attestation reading.
|
|
836
|
+
// Fix round 3: the pinned bytes come from the payload store first, so a
|
|
837
|
+
// re-attestation does not strand the older open samples.
|
|
838
|
+
let bytes;
|
|
839
|
+
if (subject.policySha256 === null) {
|
|
840
|
+
try {
|
|
841
|
+
bytes = readFileSync(path);
|
|
842
|
+
}
|
|
843
|
+
catch (cause) {
|
|
844
|
+
return attestationRefused(unreadablePolicyStatus(path, cause instanceof Error ? cause.message : String(cause)), subject);
|
|
845
|
+
}
|
|
846
|
+
const attested = attestationRefused(checkAttestationOfBytes(records, bytes), subject);
|
|
847
|
+
if (attested !== null)
|
|
848
|
+
return attested;
|
|
849
|
+
}
|
|
850
|
+
else {
|
|
851
|
+
const pinned = pinnedPolicyBytes(logPath, records, subject, subject.policySha256, path);
|
|
852
|
+
if (!pinned.ok)
|
|
853
|
+
return pinned;
|
|
854
|
+
bytes = pinned.bytes;
|
|
855
|
+
}
|
|
856
|
+
// PR #614 refutation N7: findDeclaration's contract on an enforcement path.
|
|
857
|
+
// A key two tasks declare is a collision registration refuses (APRV-138), so
|
|
858
|
+
// a log holding one cannot say which class, and so which roster, governs.
|
|
859
|
+
if (subject.actionKey !== null &&
|
|
860
|
+
declaringTasks(records, subject.actionKey).length > 1) {
|
|
861
|
+
return refuse("actor-not-approver", `action ${subject.actionKey} is declared by more than one task, a collision registration refuses, so the log cannot say which class (and so which approvers roster) governs the sample at seq ${String(subject.seq)}. Nothing was appended.`, { seq: subject.seq });
|
|
862
|
+
}
|
|
863
|
+
const declared = subject.actionKey === null ? null : findDeclaration(records, subject.actionKey);
|
|
864
|
+
const sampleRecord = records.find((record) => record.seq === subject.seq);
|
|
865
|
+
const sampledClass = sampleRecord === undefined ? null : stringOrNull(payloadOf(sampleRecord)["class"]);
|
|
866
|
+
const cls = stringOrNull(declared?.class) ?? sampledClass;
|
|
867
|
+
if (cls === null) {
|
|
868
|
+
return refuse("actor-not-approver", `the sample at seq ${String(subject.seq)} names no class, so no approvers roster can be checked for it and no reviewer can be shown to be on one. Nothing was appended.`, { seq: subject.seq });
|
|
869
|
+
}
|
|
870
|
+
const load = loadPolicyText(path, Buffer.from(bytes).toString("utf8"), options.schemaDir === undefined ? {} : { schemaDir: options.schemaDir });
|
|
871
|
+
// PR #614 refutation F1. Attested is not the same as valid: `policy attest`
|
|
872
|
+
// hashes bytes and never parses them, so a policy the loader refuses can be
|
|
873
|
+
// attested. The fail-closed resolution such bytes produce carries
|
|
874
|
+
// `approvers: null`, which reads as "no restriction"; for a review that is
|
|
875
|
+
// the opposite of failing closed. Both checks, because the provenance is the
|
|
876
|
+
// resolution's own word for the same fact and a second spelling of it should
|
|
877
|
+
// not be able to slip past the first.
|
|
878
|
+
if (!load.ok)
|
|
879
|
+
return policyInvalid(path, `${load.code}: ${load.message}`, subject);
|
|
880
|
+
const resolution = resolve(load, cls, declared?.reversible === null || declared?.reversible === undefined
|
|
881
|
+
? {}
|
|
882
|
+
: { reversible: declared.reversible });
|
|
883
|
+
if (resolution.provenance === "fail-closed") {
|
|
884
|
+
return policyInvalid(path, "the policy resolved on its fail-closed path", subject);
|
|
885
|
+
}
|
|
886
|
+
// PR #614 refutation F2. A class no rule matches resolves to the defaults,
|
|
887
|
+
// which carry no roster; for a grant that is "restricts nobody", and for a
|
|
888
|
+
// review it would be "anyone may approve". Refused instead, with the reason.
|
|
889
|
+
if (resolution.matched === null) {
|
|
890
|
+
return refuse("actor-not-approver", `class ${cls} matches no rule in the policy ${subject.policySha256 === null ? "in force" : `the action sampled at seq ${String(subject.seq)} ran under (sha256 ${subject.policySha256})`}, so that policy names no approvers roster for it and no reviewer can be shown to be on one. Under supervised-retro a review is the approval, and a class with no rule would otherwise be approvable by anyone. Nothing was appended.`, { seq: subject.seq });
|
|
891
|
+
}
|
|
892
|
+
const approvers = resolution.approvers;
|
|
893
|
+
if (approvers === null || namesApprover(approvers, actor))
|
|
894
|
+
return null;
|
|
895
|
+
return refuse("actor-not-approver", `${actor} is not named in the approvers list for class ${cls}: the rule ${resolution.matched === null ? "in force" : `\`${resolution.matched.pattern}\``} names ${approvers.length === 0 ? "nobody" : approvers.map((name) => `\`${name}\``).join(", ")}. Under supervised-retro a review is the approval, so it is held to the roster a grant is. Ask a named approver to review it, or amend the policy and re-attest. Nothing was appended.`, { seq: subject.seq });
|
|
896
|
+
}
|
|
897
|
+
/**
|
|
898
|
+
* The bytes of the policy the sample pinned, or `policy-not-attested` (PR #614
|
|
899
|
+
* refutation F2, recheck NF-3, fix round 3).
|
|
900
|
+
*
|
|
901
|
+
* Authority first: a human must have attested the pinned hash before the
|
|
902
|
+
* sample was taken. The sampler copies the hash from the log, so a pin no
|
|
903
|
+
* earlier attestation names is a record nobody attested, refused like
|
|
904
|
+
* unattested bytes.
|
|
905
|
+
*
|
|
906
|
+
* Then the bytes, from two places, each verified against the pin and neither
|
|
907
|
+
* trusted otherwise:
|
|
908
|
+
*
|
|
909
|
+
* 1. the APRV-356 payload store beside the log, where every attestation since
|
|
910
|
+
* APRV-356 (and every phone proposal) leaves the attested text, read by
|
|
911
|
+
* `storedPolicyText`, which hashes what it reads. This is what keeps a
|
|
912
|
+
* re-attestation, a settings save included, from stranding the samples
|
|
913
|
+
* pinned to the earlier policy;
|
|
914
|
+
* 2. the policy file on disk, only when its bytes hash to the pin (a chain last
|
|
915
|
+
* attested before APRV-356 stored nothing).
|
|
916
|
+
*
|
|
917
|
+
* Bytes in neither place are refused, naming the hash needed. The pin is never
|
|
918
|
+
* compared with the latest attestation: the question is which roster governed
|
|
919
|
+
* the action when it ran, whether or not a later policy has been attested.
|
|
920
|
+
*/
|
|
921
|
+
function pinnedPolicyBytes(logPath, records, subject, pinned, path) {
|
|
922
|
+
const attestedBefore = records.some((record) => record.seq < subject.seq && attestationSha256(record) === pinned);
|
|
923
|
+
if (!attestedBefore) {
|
|
924
|
+
return refuse("policy-not-attested", `the sample at seq ${String(subject.seq)} pins policy sha256 ${pinned}, and no attestation before it names that hash, so the roster it pins is one nobody attested. Nothing was appended.`, { seq: subject.seq });
|
|
925
|
+
}
|
|
926
|
+
const stored = storedPolicyText(records, payloadStoreDirFor(logPath), pinned);
|
|
927
|
+
if (stored !== null)
|
|
928
|
+
return { ok: true, bytes: Buffer.from(stored, "utf8") };
|
|
929
|
+
let onDisk;
|
|
930
|
+
try {
|
|
931
|
+
const bytes = readFileSync(path);
|
|
932
|
+
const live = policyBytesHash(bytes);
|
|
933
|
+
if (live === pinned)
|
|
934
|
+
return { ok: true, bytes };
|
|
935
|
+
onDisk = `bytes hashing to ${live}`;
|
|
936
|
+
}
|
|
937
|
+
catch (cause) {
|
|
938
|
+
onDisk = `nothing readable (${cause instanceof Error ? cause.message : String(cause)})`;
|
|
939
|
+
}
|
|
940
|
+
return refuse("policy-not-attested", `the action sampled at seq ${String(subject.seq)} ran under the policy attested as sha256 ${pinned}. Its bytes are not in the payload store beside the log (an attestation made before APRV-356 stored none), and ${path} holds ${onDisk}. A review is held to the approvers roster in force when the action ran, so it needs the policy bytes hashing to ${pinned}: restore them to ${path}. Nothing was appended.`, { seq: subject.seq });
|
|
941
|
+
}
|
|
942
|
+
/** `policy-invalid`: attested bytes the loader refuses name no roster (F1). */
|
|
943
|
+
function policyInvalid(path, cause, subject) {
|
|
944
|
+
return refuse("policy-invalid", `the attested policy ${path} does not load (${cause}), so no approvers roster can be read from it for the sample at seq ${String(subject.seq)}. A gate meeting these bytes would hold every class for a human; a review has nothing that compensates, because the action already ran and the review is its approval. Correct the policy and attest the corrected bytes, then review again. Nothing was appended.`, { seq: subject.seq });
|
|
945
|
+
}
|
|
946
|
+
/** `policy-not-attested` for a non-attested status, else `null`. */
|
|
947
|
+
function attestationRefused(status, subject) {
|
|
948
|
+
const refusal = attestationRefusal(status);
|
|
949
|
+
if (refusal === null)
|
|
950
|
+
return null;
|
|
951
|
+
return refuse("policy-not-attested", `${refusal.message}. A review is held to the class's approvers roster, and a roster read from a policy nobody attested is one the reviewer could have chosen. Nothing was appended.`, { seq: subject.seq });
|
|
952
|
+
}
|
|
605
953
|
/**
|
|
606
954
|
* Append the `reconciliation.required` that a denial creates.
|
|
607
955
|
*
|
|
@@ -740,9 +1088,9 @@ export function openObligations(records) {
|
|
|
740
1088
|
* ceremony with its own `policy.updated` record — so the note is the discharge
|
|
741
1089
|
* there, and the note is required.
|
|
742
1090
|
*
|
|
743
|
-
* No attestation is required, for the reason `
|
|
744
|
-
*
|
|
745
|
-
*
|
|
1091
|
+
* No attestation is required, for the reason `execution resolve` states: this
|
|
1092
|
+
* record exercises no policy authority, authorizes nothing, spends no budget,
|
|
1093
|
+
* and mints no token.
|
|
746
1094
|
*/
|
|
747
1095
|
export function satisfyObligation(logPath, obligationSeq, actor, input, options = {}) {
|
|
748
1096
|
if (!HUMAN_ACTOR.test(actor)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"audit.js","sourceRoot":"","sources":["../../../src/core/audit.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuEG;AAEH,OAAO,EAAE,IAAI,EAAqB,MAAM,YAAY,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAClE,OAAO,EACL,WAAW,GAKZ,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,UAAU,EAAiD,MAAM,kBAAkB,CAAC;AAC7F,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAgB,MAAM,cAAc,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAG5D;;;;GAIG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,cAAc,CAAC;AAE1C,uDAAuD;AACvD,MAAM,WAAW,GAAG,YAAY,CAAC;AAEjC;;;;GAIG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,iEAAiE;IACjE,iBAAiB;IACjB,2DAA2D;IAC3D,aAAa;IACb,wDAAwD;IACxD,kBAAkB;IAClB,gFAAgF;IAChF,mBAAmB;IACnB,uEAAuE;IACvE,aAAa;IACb,2EAA2E;IAC3E,mBAAmB;IACnB;;;;;;OAMG;IACH,eAAe;IACf;;;;;;;;;;OAUG;IACH,4BAA4B;IAC5B;;;;OAIG;IACH,iBAAiB;IACjB;;;;;OAKG;IACH,yBAAyB;IACzB,uEAAuE;IACvE,gBAAgB;IAChB,8DAA8D;IAC9D,eAAe;IACf,+EAA+E;IAC/E,aAAa;IACb,uEAAuE;IACvE,eAAe;CACP,CAAC;AAsBX,SAAS,MAAM,CAAC,IAAsB,EAAE,OAAe,EAAE,KAAK,GAA0B,EAAE;IACxF,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,KAAK,EAAE,CAAC;AAChD,CAAC;AAED,SAAS,SAAS,CAAC,OAAqB,EAAE,GAAW;IACnD,MAAM,KAAK,GACT,OAAO,CAAC,MAAM,EAAE,IAAI,KAAK,SAAS;QAChC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE;QAC/B,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,MAAM,EAAE,GAAG,IAAI,GAAG,EAAE,CAAC;IAC1C,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS;QAAE,KAAK,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;IACzE,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC;AAC3B,CAAC;AAmBD;;;;;;;;GAQG;AACH,MAAM,UAAU,oBAAoB,CAClC,OAA+B,EAC/B,IAAsB;IAEtB,MAAM,GAAG,GAAG,OAAwB,CAAC;IACrC,MAAM,eAAe,GAAG,IAAI,GAAG,EAAkB,CAAC;IAClD,MAAM,UAAU,GAAqB,EAAE,CAAC;IAExC,0EAA0E;IAC1E,sEAAsE;IACtE,0EAA0E;IAC1E,8EAA8E;IAC9E,8EAA8E;IAC9E,yEAAyE;IACzE,6EAA6E;IAC7E,+EAA+E;IAC/E,MAAM,KAAK,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC;IAErC,KAAK,MAAM,MAAM,IAAI,GAAG,EAAE,CAAC;QACzB,IAAI,MAAM,CAAC,KAAK,KAAK,mBAAmB;YAAE,SAAS;QACnD,MAAM,SAAS,GAAG,MAAM,CAAC,UAAU,CAAC;QACpC,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;YAAE,SAAS;QAEtE,0EAA0E;QAC1E,+CAA+C;QAC/C,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC;YAAE,SAAS;QAErE,6EAA6E;QAC7E,yEAAyE;QACzE,2EAA2E;QAC3E,yEAAyE;QACzE,4EAA4E;QAC5E,4EAA4E;QAC5E,kEAAkE;QAClE,IAAI,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC;YAAE,SAAS;QAC7C,4EAA4E;QAC5E,4EAA4E;QAC5E,yBAAyB;QACzB,MAAM,QAAQ,GAAG,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC;QAC3D,IAAI,QAAQ,KAAK,IAAI;YAAE,SAAS;QAEhC,IAAI,QAAQ,GAAG,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACnD,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,QAAQ,GAAG,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC;YAClD,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QAChD,CAAC;QACD,IAAI,QAAQ,KAAK,YAAY;YAAE,SAAS;QAExC,UAAU,CAAC,IAAI,CAAC;YACd,GAAG,EAAE,MAAM,CAAC,GAAG;YACf,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,EAAE,EAAE,MAAM,CAAC,EAAE;YACb,SAAS;YACT,IAAI,EAAE,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI;YACnE,KAAK,EAAE,QAAQ,CAAC,KAAK;SACtB,CAAC,CAAC;IACL,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAiBD,SAAS,YAAY,CAAC,KAAc;IAClC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;AACtE,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,eAAe,CAAC,OAA+B;IAC7D,MAAM,QAAQ,GAAqB,EAAE,CAAC;IACtC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,IAAI,MAAM,CAAC,KAAK,KAAK,eAAe;YAAE,SAAS;QAC/C,MAAM,OAAO,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;QAClC,MAAM,SAAS,GAAG,YAAY,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,YAAY,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC;QACzF,MAAM,UAAU,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;QAC1C,QAAQ,CAAC,IAAI,CAAC;YACZ,GAAG,EAAE,MAAM,CAAC,GAAG;YACf,EAAE,EAAE,MAAM,CAAC,EAAE;YACb,SAAS;YACT,IAAI,EAAE,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YAChE,WAAW,EAAE,YAAY,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;YAClD,UAAU,EACR,OAAO,UAAU,KAAK,QAAQ,IAAI,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI;YACpF,WAAW,EAAE,IAAI;SAClB,CAAC,CAAC;IACL,CAAC;IAED,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,IAAI,MAAM,CAAC,KAAK,KAAK,gBAAgB,IAAI,MAAM,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG;gBAAE,SAAS;YAC7E,MAAM,OAAO,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;YAClC,MAAM,GAAG,GAAG,YAAY,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,YAAY,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC;YACnF,MAAM,WAAW,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;YAC3C,MAAM,eAAe,GACnB,OAAO,WAAW,KAAK,QAAQ,IAAI,WAAW,KAAK,OAAO,CAAC,GAAG;gBAC5D,CAAC,CAAC,IAAI;gBACN,CAAC,CAAC,OAAO,CAAC,SAAS,KAAK,IAAI,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,OAAO,CAAC,SAAS,CAAC;YAC9E,IAAI,CAAC,eAAe;gBAAE,SAAS;YAC/B,OAAO,CAAC,WAAW,GAAG,MAAM,CAAC,GAAG,CAAC;YACjC,MAAM;QACR,CAAC;IACH,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,6EAA6E;AAC7E,MAAM,UAAU,WAAW,CAAC,OAA+B;IACzD,OAAO,eAAe,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,WAAW,KAAK,IAAI,CAAC,CAAC;AACpF,CAAC;AAED,oFAAoF;AACpF,MAAM,UAAU,cAAc,CAC5B,OAA+B,EAC/B,IAAsB,EACtB,OAAgB;IAEhB,IAAI,CAAC,OAAO,CAAC,OAAO;QAAE,OAAO,EAAE,CAAC;IAChC,MAAM,cAAc,GAAG,IAAI,GAAG,EAAU,CAAC;IACzC,KAAK,MAAM,OAAO,IAAI,eAAe,CAAC,OAAO,CAAC,EAAE,CAAC;QAC/C,IAAI,OAAO,CAAC,WAAW,KAAK,IAAI;YAAE,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAC5E,CAAC;IACD,6EAA6E;IAC7E,iEAAiE;IACjE,+EAA+E;IAC/E,sEAAsE;IACtE,OAAO,oBAAoB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,MAAM,CAC/C,CAAC,SAAS,EAAE,EAAE,CACZ,CAAC,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC;QACnC,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,CACtD,CAAC;AACJ,CAAC;AAYD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAA+B,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC;AAEjG,qFAAqF;AACrF,MAAM,UAAU,sBAAsB,CAAC,KAAkB;IACvD,OAAO,sBAAsB,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AACrD,CAAC;AAsCD;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,gBAAgB,CAC9B,OAAe,EACf,GAAW,EACX,OAAO,GAAiB,EAAE;IAE1B,MAAM,IAAI,GAAG,SAAS,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IACrC,MAAM,OAAO,GAAG,cAAc,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC;IACjE,IAAI,CAAC,OAAO,CAAC,OAAO;QAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;IAE7F,MAAM,QAAQ,GAAqB,EAAE,CAAC;IACtC,MAAM,QAAQ,GAAmB,EAAE,CAAC;IACpC,MAAM,QAAQ,GAAqB,EAAE,CAAC;IACtC,MAAM,QAAQ,GACZ,OAAO,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC;IAE1E,SAAS,CAAC;QACR,MAAM,IAAI,GAAG,mBAAmB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QACpD,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;YACb,2EAA2E;YAC3E,yEAAyE;YACzE,OAAO,QAAQ,CAAC,MAAM,KAAK,CAAC;gBAC1B,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC;gBACjC,CAAC,CAAC;oBACE,EAAE,EAAE,IAAI;oBACR,OAAO;oBACP,QAAQ;oBACR,QAAQ,EAAE,CAAC,GAAG,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;oBACxD,QAAQ;iBACT,CAAC;QACR,CAAC;QAED,MAAM,OAAO,GAAG,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;QAC5D,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CACvB,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,KAAK,SAAS,CAAC,IAAI,CAAC,CAChF,CAAC;QACF,IAAI,IAAI,KAAK,SAAS;YAAE,MAAM;QAE9B,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACxE,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;YACf,4EAA4E;YAC5E,2EAA2E;YAC3E,yEAAyE;YACzE,2EAA2E;YAC3E,iDAAiD;YACjD,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,IAAI,sBAAsB,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;gBACzE,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;YAC7E,CAAC;iBAAM,CAAC;gBACN,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACxB,CAAC;YACD,MAAM;QACR,CAAC;QACD,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC5D,CAAC;IAED,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;AAC7D,CAAC;AAED,SAAS,YAAY,CACnB,OAAe,EACf,SAAyB,EACzB,OAAoC,EACpC,IAAoB,EACpB,OAAqB;IAErB,MAAM,OAAO,GAA4B;QACvC,4EAA4E;QAC5E,qEAAqE;QACrE,WAAW,EAAE,SAAS,CAAC,GAAG;QAC1B,YAAY,EAAE,SAAS,CAAC,IAAI;QAC5B,aAAa,EAAE,mBAAmB;QAClC,UAAU,EAAE,SAAS,CAAC,EAAE;QACxB,KAAK,EAAE,SAAS,CAAC,KAAK;QACtB,wEAAwE;QACxE,yEAAyE;QACzE,uEAAuE;QACvE,uBAAuB;QACvB,MAAM,EAAE,mBAAmB;QAC3B,SAAS,EAAE,wBAAwB;QACnC,4EAA4E;QAC5E,wEAAwE;QACxE,kEAAkE;QAClE,2EAA2E;QAC3E,gBAAgB;QAChB,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI;QAC3D,QAAQ,EAAE,YAAY;KACvB,CAAC;IAEF,MAAM,MAAM,GAAG,WAAW,CACxB,OAAO,EACP;QACE,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC;QACjB,KAAK,EAAE,eAAe;QACtB,KAAK,EAAE,WAAW;QAClB,GAAG,CAAC,SAAS,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC;QAC5D,UAAU,EAAE,SAAS,CAAC,SAAS;QAC/B,OAAO;KACR,EACD;QACE,GAAG,CAAC,OAAO,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC;QAC5E,YAAY,EAAE,IAAI;KACnB,CACF,CAAC;IACF,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;QACf,OAAO,MAAM,CACX,eAAe,EACf,qBAAqB,SAAS,CAAC,SAAS,sBAAsB,MAAM,CAAC,KAAK,CAAC,IAAI,MAAM,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,EAC3G,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,EAAE,CACzB,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC;AAC7C,CAAC;AAWD,oFAAoF;AACpF,MAAM,UAAU,eAAe,CAAC,IAAY;IAC1C,OAAO,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC;QAChC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE;QACpC,CAAC,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;AAC9C,CAAC;AAgBD;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,UAAU,EAAE,aAAa,EAAE,OAAO,EAAE,OAAO,CAAU,CAAC;AAIhF,sFAAsF;AACtF,MAAM,UAAU,UAAU,CAAC,KAAa;IACtC,OAAQ,SAA+B,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC1D,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,wBAAwB,GAAwB,IAAI,GAAG,CAAC,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;AAErF,8EAA8E;AAC9E,SAAS,OAAO,CAAC,IAA+B;IAC9C,OAAO,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;AACvE,CAAC;AAkCD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,MAAM,UAAU,aAAa,CAAC,UAA0B;IACtD,OAAO,UAAU,KAAK,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,gBAAgB,CAAC;AACjE,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,YAAY,CAC1B,OAAe,EACf,GAAe,EACf,KAAa,EACb,IAAmB,EACnB,OAAO,GAAkB,EAAE;IAE3B,MAAM,OAAO,GAAkB,OAAO,CAAC,OAAO,IAAI,IAAI,CAAC;IACvD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QAC7B,OAAO,MAAM,CACX,iBAAiB,EACjB,uPAAuP,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAChR,CAAC;IACJ,CAAC;IAED,+EAA+E;IAC/E,wEAAwE;IACxE,6EAA6E;IAC7E,8EAA8E;IAC9E,0EAA0E;IAC1E,6DAA6D;IAC7D,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;IAClC,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,IAAI,OAAO,KAAK,QAAQ,IAAI,CAAC,QAAQ,KAAK,OAAO,IAAI,QAAQ,KAAK,OAAO,CAAC,EAAE,CAAC;YAC3E,OAAO,MAAM,CACX,4BAA4B,EAC5B,kCAAkC,QAAQ,ocAAoc,CAC/e,CAAC;QACJ,CAAC;QACD,IAAI,wBAAwB,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YAC7D,OAAO,MAAM,CACX,eAAe,EACf,cAAc,QAAQ,wHAAwH,QAAQ,qJAAqJ,CAC5S,CAAC;QACJ,CAAC;IACH,CAAC;IAED,MAAM,IAAI,GAAG,mBAAmB,CAC9B,OAAO,EACP,OAAO,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,CACxE,CAAC;IACF,IAAI,CAAC,IAAI,CAAC,EAAE;QAAE,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IAErD,MAAM,QAAQ,GAAG,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC/C,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;IACtC,IAAI,CAAC,OAAO,CAAC,EAAE;QAAE,OAAO,OAAO,CAAC;IAChC,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAEhC,MAAM,OAAO,GAA4B;QACvC,WAAW,EAAE,OAAO,CAAC,GAAG;QACxB,aAAa,EAAE,eAAe;QAC9B,QAAQ,EAAE,IAAI;QACd,OAAO;KACR,CAAC;IACF,IAAI,OAAO,CAAC,WAAW,KAAK,IAAI;QAAE,OAAO,CAAC,sBAAsB,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC;IACxF,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;IACpE,8EAA8E;IAC9E,sEAAsE;IACtE,4DAA4D;IAC5D,IAAI,QAAQ,KAAK,SAAS;QAAE,OAAO,CAAC,UAAU,CAAC,GAAG,QAAQ,CAAC;IAC3D,4EAA4E;IAC5E,0EAA0E;IAC1E,2BAA2B;IAC3B,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QACjC,OAAO,CAAC,QAAQ,CAAC,GAAG;YAClB,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO;YAC/B,EAAE,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE;YACrB,mEAAmE;YACnE,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC5D,CAAC;QACF,IAAI,OAAO,CAAC,YAAY,KAAK,SAAS;YAAE,OAAO,CAAC,eAAe,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC;IAC1F,CAAC;IAED,MAAM,MAAM,GAAG,WAAW,CACxB,OAAO,EACP;QACE,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC;QACjB,KAAK,EAAE,gBAAgB;QACvB,KAAK;QACL,GAAG,CAAC,OAAO,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC;QACxD,GAAG,CAAC,OAAO,CAAC,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC;QACxE,OAAO;KACR,EACD;QACE,GAAG,CAAC,OAAO,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC;QAC5E,YAAY,EAAE,IAAI,CAAC,IAAI;KACxB,CACF,CAAC;IACF,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;QACf,OAAO,MAAM,CACX,eAAe,EACf,wCAAwC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,sBAAsB,MAAM,CAAC,KAAK,CAAC,IAAI,MAAM,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,EAC9H,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,EAAE,CACzB,CAAC;IACJ,CAAC;IAED,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;QACzB,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;IACxE,CAAC;IAED,4EAA4E;IAC5E,8EAA8E;IAC9E,2EAA2E;IAC3E,+EAA+E;IAC/E,4EAA4E;IAC5E,EAAE;IACF,yEAAyE;IACzE,4EAA4E;IAC5E,6BAA6B;IAC7B,MAAM,OAAO,GAAG,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACzF,IAAI,CAAC,OAAO,CAAC,EAAE;QAAE,OAAO,OAAO,CAAC;IAChC,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC;AAClF,CAAC;AAED;;;;;;;;;GASG;AACH,SAAS,gBAAgB,CACvB,OAAe,EACf,OAA+B,EAC/B,OAAuB,EACvB,MAAmB,EACnB,OAAqB;IAErB,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;IACpC,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;QACvB,OAAO,MAAM,CACX,aAAa,EACb,qBAAqB,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,+KAA+K,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAC5O,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,CACrB,CAAC;IACJ,CAAC;IAED,6EAA6E;IAC7E,8EAA8E;IAC9E,qEAAqE;IACrE,MAAM,QAAQ,GAAG,eAAe,CAAC,OAAwB,EAAE,SAAS,CAAC,CAAC;IACtE,MAAM,GAAG,GAAG,QAAQ,EAAE,KAAK,IAAI,IAAI,CAAC;IACpC,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrC,OAAO,MAAM,CACX,aAAa,EACb,UAAU,SAAS,gPAAgP,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EACxR,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,CACpB,CAAC;IACJ,CAAC;IACD,MAAM,UAAU,GAAG,QAAQ,EAAE,UAAU,IAAI,IAAI,CAAC;IAEhD,MAAM,MAAM,GAAG,WAAW,CACxB,OAAO,EACP;QACE,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC;QACjB,KAAK,EAAE,yBAAyB;QAChC,KAAK,EAAE,WAAW;QAClB,GAAG,CAAC,OAAO,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC;QACxD,UAAU,EAAE,SAAS;QACrB,OAAO,EAAE;YACP,UAAU,EAAE,SAAS;YACrB,KAAK,EAAE,GAAG;YACV,UAAU,EAAE,MAAM,CAAC,GAAG;YACtB,UAAU,EAAE,aAAa,CAAC,UAAU,CAAC;YACrC,UAAU;YACV,yEAAyE;YACzE,wEAAwE;YACxE,MAAM,EAAE,sBAAsB;SAC/B;KACF,EACD;QACE,GAAG,CAAC,OAAO,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC;QAC5E,YAAY,EAAE,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE;KACrD,CACF,CAAC;IACF,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;QACf,OAAO,MAAM,CACX,yBAAyB,EACzB,iBAAiB,SAAS,wBAAwB,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,wDAAwD,MAAM,CAAC,KAAK,CAAC,IAAI,MAAM,MAAM,CAAC,KAAK,CAAC,OAAO,8UAA8U,EACrf,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,EAAE,CAC1C,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC;AAC7C,CAAC;AAsBD,SAAS,YAAY,CAAC,MAAmB;IACvC,MAAM,OAAO,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;IAClC,MAAM,SAAS,GAAG,YAAY,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,YAAY,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC;IACzF,MAAM,GAAG,GAAG,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;IAC3C,MAAM,SAAS,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IACxC,MAAM,KAAK,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IACpC,IAAI,SAAS,KAAK,IAAI,IAAI,GAAG,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IACpD,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC;QAAE,OAAO,IAAI,CAAC;IAC/E,IAAI,KAAK,KAAK,cAAc,IAAI,KAAK,KAAK,gBAAgB;QAAE,OAAO,IAAI,CAAC;IACxE,MAAM,UAAU,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IACzC,OAAO;QACL,GAAG,EAAE,MAAM,CAAC,GAAG;QACf,EAAE,EAAE,MAAM,CAAC,EAAE;QACb,SAAS;QACT,IAAI,EAAE,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAChE,KAAK,EAAE,GAAG;QACV,SAAS;QACT,UAAU,EAAE,KAAK;QACjB,UAAU,EAAE,OAAO,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI;QAC/D,YAAY,EAAE,IAAI;KACnB,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,yBAAyB,CACvC,OAA+B;IAE/B,MAAM,KAAK,GAA+B,EAAE,CAAC;IAC7C,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,IAAI,MAAM,CAAC,KAAK,KAAK,yBAAyB;YAAE,SAAS;QACzD,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;QACpC,IAAI,MAAM,KAAK,IAAI;YAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC1C,CAAC;IAED,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,IAAI,MAAM,CAAC,KAAK,KAAK,0BAA0B,IAAI,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG;gBAAE,SAAS;YACpF,IAAI,SAAS,CAAC,MAAM,CAAC,CAAC,gBAAgB,CAAC,KAAK,IAAI,CAAC,GAAG;gBAAE,SAAS;YAC/D,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,GAAG,CAAC;YAC/B,MAAM;QACR,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,8EAA8E;AAC9E,MAAM,UAAU,eAAe,CAAC,OAA+B;IAC7D,OAAO,yBAAyB,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,KAAK,IAAI,CAAC,CAAC;AACzF,CAAC;AAmBD;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAM,UAAU,iBAAiB,CAC/B,OAAe,EACf,aAAqB,EACrB,KAAa,EACb,KAAmB,EACnB,OAAO,GAAiB,EAAE;IAE1B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QAC7B,OAAO,MAAM,CACX,iBAAiB,EACjB,sRAAsR,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAC/S,CAAC;IACJ,CAAC;IAED,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;IAC/B,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,OAAO,MAAM,CACX,eAAe,EACf,8QAA8Q,CAC/Q,CAAC;IACJ,CAAC;IAED,MAAM,IAAI,GAAG,mBAAmB,CAC9B,OAAO,EACP,OAAO,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,CACxE,CAAC;IACF,IAAI,CAAC,IAAI,CAAC,EAAE;QAAE,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IAErD,MAAM,UAAU,GAAG,yBAAyB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAC7D,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,KAAK,aAAa,CACrC,CAAC;IACF,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC7B,OAAO,MAAM,CACX,aAAa,EACb,4CAA4C,MAAM,CAAC,aAAa,CAAC,2KAA2K,EAC5O,EAAE,GAAG,EAAE,aAAa,EAAE,CACvB,CAAC;IACJ,CAAC;IACD,IAAI,UAAU,CAAC,YAAY,KAAK,IAAI,EAAE,CAAC;QACrC,OAAO,MAAM,CACX,mBAAmB,EACnB,yBAAyB,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,iCAAiC,MAAM,CAAC,UAAU,CAAC,YAAY,CAAC,2HAA2H,EAC1O,EAAE,GAAG,EAAE,UAAU,CAAC,YAAY,EAAE,CACjC,CAAC;IACJ,CAAC;IAED,MAAM,SAAS,GAAG,KAAK,CAAC,eAAe,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IACtD,IAAI,UAAU,CAAC,UAAU,KAAK,cAAc,EAAE,CAAC;QAC7C,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3B,OAAO,MAAM,CACX,iBAAiB,EACjB,yBAAyB,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,uBAAuB,UAAU,CAAC,SAAS,qSAAqS,EAC/X,EAAE,GAAG,EAAE,UAAU,CAAC,GAAG,EAAE,CACxB,CAAC;QACJ,CAAC;QACD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CACjC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,KAAK,qBAAqB,IAAI,MAAM,CAAC,UAAU,KAAK,SAAS,CACtF,CAAC;QACF,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,OAAO,MAAM,CACX,iBAAiB,EACjB,+CAA+C,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,4TAA4T,EACpY,EAAE,GAAG,EAAE,UAAU,CAAC,GAAG,EAAE,CACxB,CAAC;QACJ,CAAC;IACH,CAAC;IAED,MAAM,OAAO,GAA4B;QACvC,cAAc,EAAE,UAAU,CAAC,GAAG;QAC9B,IAAI;QACJ,UAAU,EAAE,UAAU,CAAC,SAAS;QAChC,KAAK,EAAE,UAAU,CAAC,KAAK;QACvB,UAAU,EAAE,UAAU,CAAC,UAAU;KAClC,CAAC;IACF,IAAI,UAAU,CAAC,UAAU,KAAK,cAAc;QAAE,OAAO,CAAC,mBAAmB,CAAC,GAAG,SAAS,CAAC;IAEvF,MAAM,MAAM,GAAG,WAAW,CACxB,OAAO,EACP;QACE,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC;QACjB,KAAK,EAAE,0BAA0B;QACjC,KAAK;QACL,GAAG,CAAC,UAAU,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,CAAC;QAC9D,UAAU,EAAE,UAAU,CAAC,SAAS;QAChC,OAAO;KACR,EACD;QACE,GAAG,CAAC,OAAO,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC;QAC5E,YAAY,EAAE,IAAI,CAAC,IAAI;KACxB,CACF,CAAC;IACF,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;QACf,OAAO,MAAM,CACX,eAAe,EACf,sDAAsD,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,sBAAsB,MAAM,CAAC,KAAK,CAAC,IAAI,MAAM,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,EAC/I,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,EAAE,CACzB,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,EAAE,CAAC;AACzD,CAAC;AAED,SAAS,MAAM,CACb,QAA0B,EAC1B,GAAe;IAEf,IAAI,GAAG,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;QACvB,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC;QAChE,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,OAAO,MAAM,CACX,aAAa,EACb,kCAAkC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,oLAAoL,EACrO,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,CACjB,CAAC;QACJ,CAAC;QACD,IAAI,OAAO,CAAC,WAAW,KAAK,IAAI,EAAE,CAAC;YACjC,OAAO,MAAM,CACX,kBAAkB,EAClB,qBAAqB,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,gCAAgC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,4HAA4H,EAC/N,EAAE,GAAG,EAAE,OAAO,CAAC,WAAW,EAAE,CAC7B,CAAC;QACJ,CAAC;QACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;IAC/B,CAAC;IAED,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,SAAS,KAAK,GAAG,CAAC,SAAS,CAAC,CAAC;IAC/E,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,MAAM,CACX,aAAa,EACb,wCAAwC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,mGAAmG,CACzK,CAAC;IACJ,CAAC;IACD,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,KAAK,IAAI,CAAC,CAAC;IACpE,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC3C,OAAO,MAAM,CACX,kBAAkB,EAClB,2BAA2B,GAAG,CAAC,SAAS,iCAAiC,MAAM,CAC7E,IAAI,EAAE,GAAG,IAAI,CAAC,CACf,YAAY,MAAM,CAAC,IAAI,EAAE,WAAW,IAAI,CAAC,CAAC,GAAG,EAC9C,IAAI,EAAE,WAAW,KAAK,SAAS,IAAI,IAAI,CAAC,WAAW,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,WAAW,EAAE,CAC9F,CAAC;IACJ,CAAC;IACD,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpB,OAAO,MAAM,CACX,mBAAmB,EACnB,UAAU,GAAG,CAAC,SAAS,QAAQ,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,4BAA4B,IAAI;aAC/E,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;aACjC,IAAI,CAAC,IAAI,CAAC,6GAA6G,CAC3H,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,CAAmB,EAAE,CAAC;AAC1D,CAAC;AAiDD,uEAAuE;AACvE,SAAS,OAAO,CAAC,MAAmB;IAClC,OAAO,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;AAC3F,CAAC;AAED;;;;;;;;;GASG;AACH,SAAS,gBAAgB,CAAC,OAA+B;IACvD,MAAM,UAAU,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC7C,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC3C,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,IAAI,MAAM,CAAC,KAAK,KAAK,iBAAiB,EAAE,CAAC;YACvC,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;YAC9B,IAAI,KAAK,KAAK,IAAI;gBAAE,SAAS;YAC7B,MAAM,OAAO,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC;YAC7C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;gBAAE,SAAS;YACtC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;gBAC5B,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI;oBAAE,SAAS;gBAC1D,MAAM,GAAG,GAAI,KAAiC,CAAC,iBAAiB,CAAC,CAAC;gBAClE,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC;oBAAE,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YAC5E,CAAC;YACD,SAAS;QACX,CAAC;QACD,IAAI,MAAM,CAAC,KAAK,KAAK,mBAAmB;YAAE,SAAS;QACnD,MAAM,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC;QAC9B,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;QAC9B,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACtF,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC;IACD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,QAAQ,EAAE,CAAC;QACpC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACvD,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,SAAS,UAAU,CAAC,OAAgC;IAClD,MAAM,KAAK,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IAClC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;AACvE,CAAC;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,aAAa,CAAC,OAA+B;IAC3D,MAAM,KAAK,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;IACzC,MAAM,MAAM,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACzC,MAAM,YAAY,GAAG,IAAI,GAAG,EAA0B,CAAC;IACvD,KAAK,MAAM,OAAO,IAAI,eAAe,CAAC,OAAO,CAAC,EAAE,CAAC;QAC/C,IAAI,OAAO,CAAC,WAAW,KAAK,IAAI;YAAE,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IACnF,CAAC;IAED,MAAM,OAAO,GAAoB,EAAE,CAAC;IACpC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,KAAK,gBAAgB,CAAC;QACnD,IAAI,CAAC,QAAQ,IAAI,MAAM,CAAC,KAAK,KAAK,kBAAkB;YAAE,SAAS;QAE/D,MAAM,OAAO,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;QAClC,MAAM,QAAQ,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;QACrC,MAAM,IAAI,GAAG,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;QAC3C,IAAI,QAAQ,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI;YAAE,SAAS;QAEjD,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACzE,MAAM,SAAS,GACb,YAAY,CAAC,MAAM,CAAC,UAAU,CAAC;YAC/B,YAAY,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;YACnC,OAAO,EAAE,SAAS;YAClB,IAAI,CAAC;QACP,MAAM,QAAQ,GAAG,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACpF,MAAM,UAAU,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;QAEtC,OAAO,CAAC,IAAI,CAAC;YACX,GAAG,EAAE,MAAM,CAAC,GAAG;YACf,EAAE,EAAE,MAAM,CAAC,EAAE;YACb,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU;YACxC,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,GAAG;YAC7B,QAAQ;YACR,IAAI;YACJ,OAAO,EAAE,QAAQ,IAAI,CAAC,UAAU,KAAK,IAAI,IAAI,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI;YACzF,SAAS;YACT,IAAI,EAAE,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,OAAO,EAAE,IAAI,IAAI,QAAQ,EAAE,IAAI,IAAI,IAAI;YAC1E,KAAK,EAAE,QAAQ,EAAE,KAAK,IAAI,IAAI;YAC9B,UAAU,EAAE,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC;YACvE,SAAS,EAAE,OAAO,EAAE,GAAG,IAAI,IAAI;SAChC,CAAC,CAAC;IACL,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
|
1
|
+
{"version":3,"file":"audit.js","sourceRoot":"","sources":["../../../src/core/audit.ts"],"names":[],"mappings":"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"}
|