@plurnk/plurnk-service 1.13.0 → 1.14.0
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/.env.defaults +0 -6
- package/SPEC.md +42 -82
- package/dist/build-info.json +1 -1
- package/dist/content/matcher.d.ts.map +1 -1
- package/dist/content/matcher.js +21 -1
- package/dist/content/matcher.js.map +1 -1
- package/dist/core/ChannelWrite.d.ts +1 -17
- package/dist/core/ChannelWrite.d.ts.map +1 -1
- package/dist/core/ChannelWrite.js +5 -5
- package/dist/core/ChannelWrite.js.map +1 -1
- package/dist/core/Dispatcher.d.ts +2 -4
- package/dist/core/Dispatcher.d.ts.map +1 -1
- package/dist/core/Dispatcher.js +10 -43
- package/dist/core/Dispatcher.js.map +1 -1
- package/dist/core/Engine.d.ts +3 -12
- package/dist/core/Engine.d.ts.map +1 -1
- package/dist/core/Engine.js +34 -44
- package/dist/core/Engine.js.map +1 -1
- package/dist/core/PacketBuilder.d.ts.map +1 -1
- package/dist/core/PacketBuilder.js +1 -6
- package/dist/core/PacketBuilder.js.map +1 -1
- package/dist/core/TurnRunner.d.ts.map +1 -1
- package/dist/core/TurnRunner.js +26 -5
- package/dist/core/TurnRunner.js.map +1 -1
- package/dist/core/packet-wire.d.ts +1 -1
- package/dist/core/packet-wire.d.ts.map +1 -1
- package/dist/core/packet-wire.js +2 -5
- package/dist/core/packet-wire.js.map +1 -1
- package/dist/digest/Digest.d.ts.map +1 -1
- package/dist/digest/Digest.js +69 -16
- package/dist/digest/Digest.js.map +1 -1
- package/dist/schemes/Worker.d.ts.map +1 -1
- package/dist/schemes/Worker.js +0 -2
- package/dist/schemes/Worker.js.map +1 -1
- package/dist/server/Daemon.d.ts +1 -1
- package/dist/server/Daemon.d.ts.map +1 -1
- package/dist/server/Daemon.js +81 -149
- package/dist/server/Daemon.js.map +1 -1
- package/dist/server/drain.sql +16 -0
- package/dist/server/lifecycle-recovery.sql +0 -7
- package/dist/server/model-route.d.ts +2 -2
- package/dist/server/model-route.d.ts.map +1 -1
- package/dist/server/model-route.js +8 -1
- package/dist/server/model-route.js.map +1 -1
- package/migrations/001_schema.sql +0 -51
- package/package.json +37 -37
- package/dist/core/BranchReceipt.d.ts +0 -6
- package/dist/core/BranchReceipt.d.ts.map +0 -1
- package/dist/core/BranchReceipt.js +0 -29
- package/dist/core/BranchReceipt.js.map +0 -1
- package/dist/core/GitBranch.d.ts +0 -23
- package/dist/core/GitBranch.d.ts.map +0 -1
- package/dist/core/GitBranch.js +0 -120
- package/dist/core/GitBranch.js.map +0 -1
- package/dist/server/BranchBatches.d.ts +0 -49
- package/dist/server/BranchBatches.d.ts.map +0 -1
- package/dist/server/BranchBatches.js +0 -599
- package/dist/server/BranchBatches.js.map +0 -1
- package/dist/server/branch-batch.sql +0 -156
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"BranchReceipt.d.ts","sourceRoot":"","sources":["../../src/core/BranchReceipt.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAalC,MAAM,CAAC,OAAO,OAAO,aAAa;;IAU9B,OAAa,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAepE;CACJ"}
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
export default class BranchReceipt {
|
|
2
|
-
static #revisionChars() {
|
|
3
|
-
const raw = process.env.PLURNK_SERVICE_BRANCH_RECEIPT_REVISION_CHARS;
|
|
4
|
-
const value = Number(raw);
|
|
5
|
-
if (!Number.isSafeInteger(value) || value < 1 || value > 64) {
|
|
6
|
-
throw new Error(`PLURNK_SERVICE_BRANCH_RECEIPT_REVISION_CHARS must be a safe integer from 1 through 64, got ${JSON.stringify(raw)}`);
|
|
7
|
-
}
|
|
8
|
-
return value;
|
|
9
|
-
}
|
|
10
|
-
static async render(db, workerId) {
|
|
11
|
-
const rows = await db.branch_batch_receipt_for_worker.all({
|
|
12
|
-
worker_id: workerId,
|
|
13
|
-
});
|
|
14
|
-
if (rows.length === 0)
|
|
15
|
-
return null;
|
|
16
|
-
const first = rows[0];
|
|
17
|
-
const revisionChars = BranchReceipt.#revisionChars();
|
|
18
|
-
// {§worker-branch-batch-receipt} — world state, not a next step: which worker, which
|
|
19
|
-
// branch, and the commit that now sits on it. What happens next is the parent's call.
|
|
20
|
-
const who = `Branch worker \`${first.worker_name}\``;
|
|
21
|
-
const tip = first.result_commit === null ? "" : ` at \`${first.result_commit.slice(0, revisionChars)}\``;
|
|
22
|
-
if (first.item_state !== "succeeded")
|
|
23
|
-
return `${who} ${first.item_state} on branch \`${first.branch}\`${tip}.`;
|
|
24
|
-
return first.changed === 1
|
|
25
|
-
? `${who} created branch \`${first.branch}\`${tip}.`
|
|
26
|
-
: `${who} left branch \`${first.branch}\` unchanged${tip}.`;
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
//# sourceMappingURL=BranchReceipt.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"BranchReceipt.js","sourceRoot":"","sources":["../../src/core/BranchReceipt.ts"],"names":[],"mappings":"AAaA,MAAM,CAAC,OAAO,OAAO,aAAa;IAC9B,MAAM,CAAC,cAAc;QACjB,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,4CAA4C,CAAC;QACrE,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QAC1B,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,EAAE,EAAE,CAAC;YAC1D,MAAM,IAAI,KAAK,CAAC,8FAA8F,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACzI,CAAC;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,EAAM,EAAE,QAAgB;QACxC,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,+BAA+B,CAAC,GAAG,CAAa;YAClE,SAAS,EAAE,QAAQ;SACtB,CAAC,CAAC;QACH,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QACnC,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACtB,MAAM,aAAa,GAAG,aAAa,CAAC,cAAc,EAAE,CAAC;QACrD,qFAAqF;QACrF,sFAAsF;QACtF,MAAM,GAAG,GAAG,mBAAmB,KAAK,CAAC,WAAW,IAAI,CAAC;QACrD,MAAM,GAAG,GAAG,KAAK,CAAC,aAAa,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,IAAI,CAAC;QACzG,IAAI,KAAK,CAAC,UAAU,KAAK,WAAW;YAAE,OAAO,GAAG,GAAG,IAAI,KAAK,CAAC,UAAU,gBAAgB,KAAK,CAAC,MAAM,KAAK,GAAG,GAAG,CAAC;QAC/G,OAAO,KAAK,CAAC,OAAO,KAAK,CAAC;YACtB,CAAC,CAAC,GAAG,GAAG,qBAAqB,KAAK,CAAC,MAAM,KAAK,GAAG,GAAG;YACpD,CAAC,CAAC,GAAG,GAAG,kBAAkB,KAAK,CAAC,MAAM,eAAe,GAAG,GAAG,CAAC;IACpE,CAAC;CACJ"}
|
package/dist/core/GitBranch.d.ts
DELETED
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
export interface GitSnapshot {
|
|
2
|
-
root: string;
|
|
3
|
-
ref: string | null;
|
|
4
|
-
commit: string;
|
|
5
|
-
}
|
|
6
|
-
export declare class GitUnavailableError extends Error {
|
|
7
|
-
constructor(cause: unknown);
|
|
8
|
-
}
|
|
9
|
-
export default class GitBranch {
|
|
10
|
-
#private;
|
|
11
|
-
static validate(branch: string, command?: string): Promise<void>;
|
|
12
|
-
static snapshot(root: string): Promise<GitSnapshot>;
|
|
13
|
-
static assertClean(root: string): Promise<void>;
|
|
14
|
-
static branchExists(root: string, branch: string): Promise<boolean>;
|
|
15
|
-
static create(root: string, branch: string, commit: string): Promise<void>;
|
|
16
|
-
static switch(root: string, branch: string): Promise<void>;
|
|
17
|
-
static restore(snapshot: GitSnapshot): Promise<void>;
|
|
18
|
-
static tip(root: string, branch: string): Promise<string>;
|
|
19
|
-
static head(root: string): Promise<string>;
|
|
20
|
-
static currentBranch(root: string): Promise<string | null>;
|
|
21
|
-
static delete(root: string, branch: string): Promise<void>;
|
|
22
|
-
}
|
|
23
|
-
//# sourceMappingURL=GitBranch.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"GitBranch.d.ts","sourceRoot":"","sources":["../../src/core/GitBranch.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,WAAW;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;CAClB;AAID,qBAAa,mBAAoB,SAAQ,KAAK;IAC1C,YAAY,KAAK,EAAE,OAAO,EAGzB;CACJ;AAED,MAAM,CAAC,OAAO,OAAO,SAAS;;IAG1B,OAAa,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,SAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAgBpE;IAED,OAAa,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CASxD;IAED,OAAa,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAKpD;IAED,OAAa,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAQxE;IAED,OAAa,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE/E;IAED,OAAa,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE/D;IAED,OAAa,OAAO,CAAC,QAAQ,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAUzD;IAED,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAExD;IAED,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAEzC;IAED,OAAa,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAO/D;IAED,OAAa,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE/D;CA4BJ"}
|
package/dist/core/GitBranch.js
DELETED
|
@@ -1,120 +0,0 @@
|
|
|
1
|
-
import { execFile } from "node:child_process";
|
|
2
|
-
import { promisify } from "node:util";
|
|
3
|
-
import { gitOutputMaxBytes, hermeticGitEnv } from "./git-env.js";
|
|
4
|
-
// A host without git cannot validate, create, or restore a branch at all; that is a
|
|
5
|
-
// condition of the host, never a verdict on the name (#384).
|
|
6
|
-
export class GitUnavailableError extends Error {
|
|
7
|
-
constructor(cause) {
|
|
8
|
-
super("git is not installed or not on PATH", { cause });
|
|
9
|
-
this.name = "GitUnavailableError";
|
|
10
|
-
}
|
|
11
|
-
}
|
|
12
|
-
export default class GitBranch {
|
|
13
|
-
static #execFile = promisify(execFile);
|
|
14
|
-
static async validate(branch, command = "git") {
|
|
15
|
-
if (branch.length === 0)
|
|
16
|
-
throw new Error("Git branch name must not be empty");
|
|
17
|
-
try {
|
|
18
|
-
await GitBranch.#execFile(command, ["check-ref-format", "--branch", branch], {
|
|
19
|
-
env: hermeticGitEnv(),
|
|
20
|
-
encoding: "utf8",
|
|
21
|
-
maxBuffer: gitOutputMaxBytes(),
|
|
22
|
-
});
|
|
23
|
-
}
|
|
24
|
-
catch (cause) {
|
|
25
|
-
if (cause.code === "ENOENT")
|
|
26
|
-
throw new GitUnavailableError(cause);
|
|
27
|
-
const detail = cause.stderr?.trim();
|
|
28
|
-
throw new Error(`git check-ref-format rejected '${branch}'${detail === undefined || detail.length === 0 ? "" : `: ${detail}`}`, { cause });
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
static async snapshot(root) {
|
|
32
|
-
const commit = await GitBranch.#text(root, ["rev-parse", "--verify", "HEAD"]);
|
|
33
|
-
let ref = null;
|
|
34
|
-
try {
|
|
35
|
-
ref = await GitBranch.#text(root, ["symbolic-ref", "--quiet", "--short", "HEAD"]);
|
|
36
|
-
}
|
|
37
|
-
catch (error) {
|
|
38
|
-
if (GitBranch.#exitCode(error) !== 1)
|
|
39
|
-
throw error;
|
|
40
|
-
}
|
|
41
|
-
return { root, ref, commit };
|
|
42
|
-
}
|
|
43
|
-
static async assertClean(root) {
|
|
44
|
-
const status = await GitBranch.#text(root, ["status", "--porcelain=v1", "--untracked-files=all"]);
|
|
45
|
-
if (status.length > 0) {
|
|
46
|
-
throw new Error(`Git checkout '${root}' is not clean (staged, unstaged, or nonignored untracked changes exist)`);
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
static async branchExists(root, branch) {
|
|
50
|
-
try {
|
|
51
|
-
await GitBranch.#git(root, ["show-ref", "--verify", "--quiet", `refs/heads/${branch}`]);
|
|
52
|
-
return true;
|
|
53
|
-
}
|
|
54
|
-
catch (error) {
|
|
55
|
-
if (GitBranch.#exitCode(error) === 1)
|
|
56
|
-
return false;
|
|
57
|
-
throw error;
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
static async create(root, branch, commit) {
|
|
61
|
-
await GitBranch.#git(root, ["branch", "--", branch, commit]);
|
|
62
|
-
}
|
|
63
|
-
static async switch(root, branch) {
|
|
64
|
-
await GitBranch.#git(root, ["switch", "--quiet", branch]);
|
|
65
|
-
}
|
|
66
|
-
static async restore(snapshot) {
|
|
67
|
-
if (snapshot.ref === null) {
|
|
68
|
-
await GitBranch.#git(snapshot.root, ["switch", "--quiet", "--detach", snapshot.commit]);
|
|
69
|
-
}
|
|
70
|
-
else {
|
|
71
|
-
await GitBranch.#git(snapshot.root, ["switch", "--quiet", snapshot.ref]);
|
|
72
|
-
}
|
|
73
|
-
const actual = await GitBranch.#text(snapshot.root, ["rev-parse", "--verify", "HEAD"]);
|
|
74
|
-
if (actual !== snapshot.commit) {
|
|
75
|
-
throw new Error(`Git checkout '${snapshot.root}' restored '${snapshot.ref ?? snapshot.commit}' at ${actual}, expected ${snapshot.commit}`);
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
static tip(root, branch) {
|
|
79
|
-
return GitBranch.#text(root, ["rev-parse", "--verify", `refs/heads/${branch}`]);
|
|
80
|
-
}
|
|
81
|
-
static head(root) {
|
|
82
|
-
return GitBranch.#text(root, ["rev-parse", "--verify", "HEAD"]);
|
|
83
|
-
}
|
|
84
|
-
static async currentBranch(root) {
|
|
85
|
-
try {
|
|
86
|
-
return await GitBranch.#text(root, ["symbolic-ref", "--quiet", "--short", "HEAD"]);
|
|
87
|
-
}
|
|
88
|
-
catch (error) {
|
|
89
|
-
if (GitBranch.#exitCode(error) === 1)
|
|
90
|
-
return null;
|
|
91
|
-
throw error;
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
static async delete(root, branch) {
|
|
95
|
-
await GitBranch.#git(root, ["branch", "-D", "--", branch]);
|
|
96
|
-
}
|
|
97
|
-
static async #text(root, args) {
|
|
98
|
-
const { stdout } = await GitBranch.#git(root, args);
|
|
99
|
-
return stdout.trim();
|
|
100
|
-
}
|
|
101
|
-
static async #git(root, args) {
|
|
102
|
-
try {
|
|
103
|
-
return await GitBranch.#execFile("git", args, {
|
|
104
|
-
cwd: root,
|
|
105
|
-
env: hermeticGitEnv(),
|
|
106
|
-
encoding: "utf8",
|
|
107
|
-
maxBuffer: gitOutputMaxBytes(),
|
|
108
|
-
});
|
|
109
|
-
}
|
|
110
|
-
catch (cause) {
|
|
111
|
-
const detail = cause.stderr?.trim();
|
|
112
|
-
throw new Error(`git ${args[0] ?? "command"} failed in '${root}'${detail === undefined || detail.length === 0 ? "" : `: ${detail}`}`, { cause });
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
static #exitCode(error) {
|
|
116
|
-
const cause = error instanceof Error ? error.cause : undefined;
|
|
117
|
-
return cause?.code;
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
//# sourceMappingURL=GitBranch.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"GitBranch.js","sourceRoot":"","sources":["../../src/core/GitBranch.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
import type { Db } from "../core/Db.ts";
|
|
2
|
-
import { type SchemeResult } from "../core/results.ts";
|
|
3
|
-
import type { LoopPolicy, WriterTier } from "../core/types.ts";
|
|
4
|
-
import type WorkspaceGate from "../core/WorkspaceGate.ts";
|
|
5
|
-
export interface EnqueueBranchWorker {
|
|
6
|
-
workspaceId: number;
|
|
7
|
-
parentWorkerId: number;
|
|
8
|
-
parentLoopId: number;
|
|
9
|
-
op: "WORK" | "FORK";
|
|
10
|
-
name: string;
|
|
11
|
-
prompt: string;
|
|
12
|
-
policy: LoopPolicy;
|
|
13
|
-
origin: WriterTier;
|
|
14
|
-
}
|
|
15
|
-
export interface BranchBatchDependencies {
|
|
16
|
-
settleWorkspace(workspaceId: number): Promise<void>;
|
|
17
|
-
createChild(args: EnqueueBranchWorker): Promise<{
|
|
18
|
-
workerId: number;
|
|
19
|
-
loopId: number;
|
|
20
|
-
}>;
|
|
21
|
-
startChild(workspaceId: number, workerId: number, loopId: number): Promise<SchemeResult>;
|
|
22
|
-
wakeParent(workspaceId: number, workerId: number): Promise<void>;
|
|
23
|
-
notify(workspaceId: number, payload: Readonly<Record<string, unknown>>): void;
|
|
24
|
-
}
|
|
25
|
-
export default class BranchBatches {
|
|
26
|
-
#private;
|
|
27
|
-
constructor(db: Db, gate: WorkspaceGate, dependencies: BranchBatchDependencies);
|
|
28
|
-
enqueue(args: {
|
|
29
|
-
workspaceId: number;
|
|
30
|
-
parentWorkerId: number;
|
|
31
|
-
parentLoopId: number;
|
|
32
|
-
parentTurnId: number;
|
|
33
|
-
op: "WORK" | "FORK";
|
|
34
|
-
name: string;
|
|
35
|
-
branch: string;
|
|
36
|
-
prompt: string;
|
|
37
|
-
policy: LoopPolicy;
|
|
38
|
-
origin: WriterTier;
|
|
39
|
-
}): Promise<{
|
|
40
|
-
workerId: number;
|
|
41
|
-
loopId: number;
|
|
42
|
-
}>;
|
|
43
|
-
sealTurn(parentTurnId: number): Promise<void>;
|
|
44
|
-
completionGate(workerId: number): Promise<SchemeResult | null>;
|
|
45
|
-
recover(): Promise<void>;
|
|
46
|
-
idle(): Promise<void>;
|
|
47
|
-
beginStop(): void;
|
|
48
|
-
}
|
|
49
|
-
//# sourceMappingURL=BranchBatches.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"BranchBatches.d.ts","sourceRoot":"","sources":["../../src/server/BranchBatches.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,eAAe,CAAC;AAKxC,OAAgB,EAAyB,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvF,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC/D,OAAO,KAAK,aAAa,MAAM,0BAA0B,CAAC;AA8B1D,MAAM,WAAW,mBAAmB;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,UAAU,CAAC;IACnB,MAAM,EAAE,UAAU,CAAC;CACtB;AAED,MAAM,WAAW,uBAAuB;IACpC,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACpD,WAAW,CAAC,IAAI,EAAE,mBAAmB,GAAG,OAAO,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACtF,UAAU,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IACzF,UAAU,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACjE,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;CACjF;AAID,MAAM,CAAC,OAAO,OAAO,aAAa;;IAQ9B,YAAY,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,YAAY,EAAE,uBAAuB,EAK7E;IAEK,OAAO,CAAC,IAAI,EAAE;QAChB,WAAW,EAAE,MAAM,CAAC;QACpB,cAAc,EAAE,MAAM,CAAC;QACvB,YAAY,EAAE,MAAM,CAAC;QACrB,YAAY,EAAE,MAAM,CAAC;QACrB,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;QACpB,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,UAAU,CAAC;QACnB,MAAM,EAAE,UAAU,CAAC;KACtB,GAAG,OAAO,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CA2IhD;IAKK,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAkBlD;IAEK,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CA8CnE;IAEK,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CA0B7B;IAEK,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAE1B;IAED,SAAS,IAAI,IAAI,CAEhB;CAqeJ"}
|