@corenel/harness 0.16.0 → 0.18.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/dist/prompts/library/defaults.generated.d.ts.map +1 -1
- package/dist/prompts/library/defaults.generated.js +9 -5
- package/dist/prompts/library/defaults.generated.js.map +1 -1
- package/dist/sidecar/host.d.ts +40 -5
- package/dist/sidecar/host.d.ts.map +1 -1
- package/dist/sidecar/host.js +132 -2
- package/dist/sidecar/host.js.map +1 -1
- package/dist/sidecar/memberGate.d.ts.map +1 -1
- package/dist/sidecar/memberGate.js +5 -0
- package/dist/sidecar/memberGate.js.map +1 -1
- package/dist/sidecar/server.d.ts +38 -2
- package/dist/sidecar/server.d.ts.map +1 -1
- package/dist/sidecar/server.js +193 -2
- package/dist/sidecar/server.js.map +1 -1
- package/dist/skills.d.ts +3 -1
- package/dist/skills.d.ts.map +1 -1
- package/dist/skills.js +25 -8
- package/dist/skills.js.map +1 -1
- package/dist/tools/urlGuard.d.ts +11 -2
- package/dist/tools/urlGuard.d.ts.map +1 -1
- package/dist/tools/urlGuard.js +70 -15
- package/dist/tools/urlGuard.js.map +1 -1
- package/dist/workflows/results/resultFile.d.ts +23 -0
- package/dist/workflows/results/resultFile.d.ts.map +1 -0
- package/dist/workflows/results/resultFile.js +70 -0
- package/dist/workflows/results/resultFile.js.map +1 -0
- package/dist/workflows/results/resultStore.d.ts +37 -0
- package/dist/workflows/results/resultStore.d.ts.map +1 -0
- package/dist/workflows/results/resultStore.js +191 -0
- package/dist/workflows/results/resultStore.js.map +1 -0
- package/package.json +3 -2
package/dist/skills.d.ts
CHANGED
|
@@ -93,7 +93,9 @@ export declare function installSkillFiles(files: readonly {
|
|
|
93
93
|
content: string;
|
|
94
94
|
}[], fallbackName: string, origin?: Omit<SkillOrigin, 'installedAt'>): Promise<string>;
|
|
95
95
|
export declare function removeSkill(name: string): Promise<void>;
|
|
96
|
-
export declare function isSkillEnabled(name: string
|
|
96
|
+
export declare function isSkillEnabled(name: string, opts?: {
|
|
97
|
+
shipped?: boolean;
|
|
98
|
+
}): boolean;
|
|
97
99
|
export declare function setSkillEnabled(name: string, on: boolean): void;
|
|
98
100
|
export declare function subscribeSkills(cb: () => void): () => void;
|
|
99
101
|
/** The FileService a skill's own files are read through. */
|
package/dist/skills.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skills.d.ts","sourceRoot":"","sources":["../skills.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"skills.d.ts","sourceRoot":"","sources":["../skills.ts"],"names":[],"mappings":"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"}
|
package/dist/skills.js
CHANGED
|
@@ -19,15 +19,23 @@
|
|
|
19
19
|
*/
|
|
20
20
|
import { configWorkspace, promptHost } from './prompts/host.js';
|
|
21
21
|
import { seedConfig } from './prompts/config.js';
|
|
22
|
+
import { CONFIG_DEFAULTS } from './prompts/library/index.js';
|
|
22
23
|
import { stateReadDirs } from '@corenel/protocol';
|
|
23
24
|
let extractPdpkg = null;
|
|
24
25
|
export function setPdpkgExtractor(fn) { extractPdpkg = fn; }
|
|
25
26
|
const ROOT = 'skills';
|
|
26
27
|
const ENABLED_LS = 'prompd.web.skills.enabled';
|
|
27
28
|
const DISABLED_LS = 'prompd.web.skills.disabled';
|
|
28
|
-
/**
|
|
29
|
-
*
|
|
30
|
-
|
|
29
|
+
/** Every skill we SHIP (a `skills/<name>/` folder in CONFIG_DEFAULTS) is ON out
|
|
30
|
+
* of the box. Still toggleable: an explicit disable wins and persists.
|
|
31
|
+
*
|
|
32
|
+
* This used to be a hand-kept list of two, so the other shipped skills were
|
|
33
|
+
* listed everywhere and offered to no run -- the composer showed writing-plans
|
|
34
|
+
* while the model was never told it existed. Derived from the defaults, a newly
|
|
35
|
+
* shipped skill cannot be left off by forgetting a second list. */
|
|
36
|
+
const SHIPPED = new Set(Object.keys(CONFIG_DEFAULTS)
|
|
37
|
+
.map((k) => /^skills\/([^/]+)\//.exec(k)?.[1])
|
|
38
|
+
.filter((n) => !!n));
|
|
31
39
|
export const ORIGIN_FILE = '.origin.json';
|
|
32
40
|
const SCRIPT_KIND = {
|
|
33
41
|
js: 'js', jsx: 'js', ts: 'js', tsx: 'js', mjs: 'js', cjs: 'js',
|
|
@@ -177,8 +185,9 @@ export async function removeSkill(name) {
|
|
|
177
185
|
}
|
|
178
186
|
/* ---- enable state (localStorage) ----
|
|
179
187
|
* Two sets: explicit enables and explicit disables. A skill is on when explicitly
|
|
180
|
-
* enabled OR
|
|
181
|
-
*
|
|
188
|
+
* enabled OR shipped — unless explicitly disabled (the user's off always wins,
|
|
189
|
+
* including across reinstalls/reseeds of a shipped default). Anything else, an
|
|
190
|
+
* install from a package or a repository or a skill the user wrote, starts off. */
|
|
182
191
|
function lsSet(key) {
|
|
183
192
|
try {
|
|
184
193
|
return new Set(JSON.parse(localStorage.getItem(key) || '[]'));
|
|
@@ -193,10 +202,15 @@ function writeLsSet(key, s) {
|
|
|
193
202
|
}
|
|
194
203
|
catch { /* ignore */ }
|
|
195
204
|
}
|
|
196
|
-
export function isSkillEnabled(name
|
|
205
|
+
export function isSkillEnabled(name,
|
|
206
|
+
/* `shipped: false` for a folder that only shares a shipped skill's name
|
|
207
|
+
* (installed over it from a repository, or read from a project's install
|
|
208
|
+
* dir): the default-on is for OUR text, not for whatever now has that name.
|
|
209
|
+
* Omitted = decided by the name alone. */
|
|
210
|
+
opts = {}) {
|
|
197
211
|
if (lsSet(DISABLED_LS).has(name))
|
|
198
212
|
return false;
|
|
199
|
-
return lsSet(ENABLED_LS).has(name) ||
|
|
213
|
+
return lsSet(ENABLED_LS).has(name) || ((opts.shipped ?? true) && SHIPPED.has(name));
|
|
200
214
|
}
|
|
201
215
|
export function setSkillEnabled(name, on) {
|
|
202
216
|
const en = lsSet(ENABLED_LS);
|
|
@@ -325,7 +339,10 @@ async function listFrom(files, root, source, strict = false) {
|
|
|
325
339
|
description,
|
|
326
340
|
instructions: skillPath,
|
|
327
341
|
scripts,
|
|
328
|
-
|
|
342
|
+
/* A shipped NAME whose folder came from a repository (it carries an
|
|
343
|
+
* origin file) is someone else's words now: it starts off like any
|
|
344
|
+
* other install, whatever we used to ship under that name. */
|
|
345
|
+
enabled: isSkillEnabled(name, { shipped: source === 'config' && !rels.includes(ORIGIN_FILE) }),
|
|
329
346
|
source,
|
|
330
347
|
readOnly: source === 'installed',
|
|
331
348
|
...(origin ? { origin } : {}),
|
package/dist/skills.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skills.js","sourceRoot":"","sources":["../skills.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE7D,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAKlD,IAAI,YAAY,GAA0B,IAAI,CAAC;AAC/C,MAAM,UAAU,iBAAiB,CAAC,EAAkB,IAAU,YAAY,GAAG,EAAE,CAAC,CAAC,CAAC;AAElF,MAAM,IAAI,GAAG,QAAQ,CAAC;AACtB,MAAM,UAAU,GAAG,2BAA2B,CAAC;AAC/C,MAAM,WAAW,GAAG,4BAA4B,CAAC;AAEjD;oFACoF;AACpF,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,CAAC,mBAAmB,EAAE,mBAAmB,CAAC,CAAC,CAAC;AAkC5E,MAAM,CAAC,MAAM,WAAW,GAAG,cAAc,CAAC;AAE1C,MAAM,WAAW,GAA+B;IAC9C,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI;IAC9D,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO;CACzD,CAAC;AAeF,MAAM,YAAY,GAAmB,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;AAC/E,IAAI,QAAQ,GAAyB,GAAG,EAAE,CAAC,YAAY,CAAC;AAExD;uCACuC;AACvC,MAAM,UAAU,iBAAiB,CAAC,EAAiC;IACjE,QAAQ,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,CAAC;AACxC,CAAC;AAED,MAAM,UAAU,cAAc,KAAqB,OAAO,QAAQ,EAAE,CAAC,CAAC,CAAC;AAEvE,oFAAoF;AACpF,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;IACxD,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;IAC9B,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IACvB,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;AACpD,CAAC;AAED,kEAAkE;AAClE,MAAM,UAAU,QAAQ,CAAC,CAAS;IAChC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,gBAAgB,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,OAAO,CAAC;AAC7H,CAAC;AAED,yFAAyF;AACzF,MAAM,UAAU,eAAe,CAAC,KAAe;IAC7C,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACxD,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;QAC3D,MAAM,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;QAClC,OAAO,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACvC,CAAC;IACD,OAAO,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,SAAS,gBAAgB,CAAC,GAAW;IACnC,MAAM,CAAC,GAAG,6BAA6B,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC;IACxD,IAAI,CAAC,CAAC;QAAE,OAAO,EAAE,CAAC;IAClB,sFAAsF;IACtF,MAAM,GAAG,GAA4B,EAAE,CAAC;IACxC,KAAK,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;QACvC,MAAM,EAAE,GAAG,6BAA6B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpD,IAAI,EAAE;YAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAChE,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,GAAW;IAC1C,OAAO,GAAG,CAAC,OAAO,CAAC,iCAAiC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;AACnE,CAAC;AAED,iGAAiG;AACjG,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,IAA8C,EAAE,QAAgB;IAEhE,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,CAAC;IAC7C,IAAI,QAAQ,EAAE,CAAC;QAAC,IAAI,CAAC;YAAC,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YAAC,IAAI,CAAC,EAAE,IAAI;gBAAE,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;IAAC,CAAC;IAC9H,MAAM,KAAK,GAAG,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;IACrE,IAAI,KAAK,EAAE,CAAC;QAAC,MAAM,EAAE,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;QAAC,MAAM,CAAC,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC;QAAC,IAAI,CAAC;YAAE,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IAAC,CAAC;IACjH,OAAO,QAAQ,CAAC,QAAQ,CAAC,CAAC;AAC5B,CAAC;AAED;;;;;;;2BAO2B;AAC3B,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,IAAY;IACtD,MAAM,KAAK,GAAG,CAAC,MAAM,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;IAChE,IAAI,CAAC,KAAK,EAAE,YAAY;QAAE,OAAO,IAAI,CAAC;IACtC,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACvC,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IACxB,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;AAC1D,CAAC;AAED,uBAAuB;AAEvB;+EAC+E;AAC/E,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,KAA+B,EAAE,YAAY,GAAG,OAAO;IAC3F,IAAI,CAAC,YAAY;QAAE,MAAM,IAAI,KAAK,CAAC,4EAA4E,CAAC,CAAC;IACjH,MAAM,MAAM,GAAG,KAAK,YAAY,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC;IAC3E,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,+CAA+C;IACzF,IAAI,CAAC,KAAK,CAAC,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;IAEhE,MAAM,KAAK,GAAG,CAAC,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;IAChC,MAAM,GAAG,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;IACnC,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAChG,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;IACjF,OAAO,iBAAiB,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;AAC5C,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,KAAmD,EACnD,YAAoB,EACpB,MAAyC;IAEzC,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAC5E,MAAM,IAAI,GAAG,MAAM,gBAAgB,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,IAAI,IAAI,EAAE,YAAY,CAAC,CAAC;IACpG,MAAM,eAAe,EAAE,CAAC,MAAM,CAAC,GAAG,IAAI,IAAI,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAuB,CAAC,CAAC,CAAC;IACvF,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACtB,MAAM,eAAe,EAAE,CAAC,KAAK,CAAC,GAAG,IAAI,IAAI,IAAI,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;IACxE,CAAC;IACD,IAAI,MAAM,EAAE,CAAC;QACX,MAAM,GAAG,GAAgB,EAAE,GAAG,MAAM,EAAE,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;QAChE,MAAM,eAAe,EAAE,CAAC,KAAK,CAAC,GAAG,IAAI,IAAI,IAAI,IAAI,WAAW,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;IACvF,CAAC;IACD,MAAM,EAAE,CAAC;IACT,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,IAAY;IAC5C;;;iFAG6E;IAC7E,MAAM,KAAK,GAAG,CAAC,MAAM,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;IAChE,IAAI,KAAK,EAAE,QAAQ,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CAAC,IAAI,IAAI,sFAAsF,CAAC,CAAC;IAClH,CAAC;IACD,+EAA+E;IAC/E,yEAAyE;IACzE,MAAM,eAAe,EAAE,CAAC,MAAM,CAAC,GAAG,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAsB,CAAC,CAAC,CAAC;IAChG,eAAe,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAC7B,MAAM,EAAE,CAAC;AACX,CAAC;AAED;;;sEAGsE;AAEtE,SAAS,KAAK,CAAC,GAAW;IACxB,IAAI,CAAC;QAAC,OAAO,IAAI,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,CAAa,CAAC,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC;QAAC,OAAO,IAAI,GAAG,EAAE,CAAC;IAAC,CAAC;AAChH,CAAC;AACD,SAAS,UAAU,CAAC,GAAW,EAAE,CAAc;IAC7C,IAAI,CAAC;QAAC,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;AACnF,CAAC;AACD,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,IAAI,KAAK,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IAC/C,OAAO,KAAK,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAClE,CAAC;AACD,MAAM,UAAU,eAAe,CAAC,IAAY,EAAE,EAAW;IACvD,MAAM,EAAE,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC;IAC7B,MAAM,GAAG,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC;IAC/B,IAAI,EAAE,EAAE,CAAC;QAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAAC,CAAC;SAAM,CAAC;QAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAAC,CAAC;IACpF,UAAU,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IAC3B,UAAU,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;IAC7B,MAAM,EAAE,CAAC;AACX,CAAC;AAED,MAAM,IAAI,GAAG,IAAI,GAAG,EAAc,CAAC;AACnC,MAAM,UAAU,eAAe,CAAC,EAAc,IAAgB,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,GAAG,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAChH,SAAS,MAAM,KAAW,KAAK,MAAM,EAAE,IAAI,IAAI,EAAE,CAAC;IAAC,IAAI,CAAC;QAAC,EAAE,EAAE,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;AAAC,CAAC,CAAC,CAAC;AAE3F,2BAA2B;AAE3B;;;;;;;2CAO2C;AAC3C,SAAS,aAAa,CAAC,KAAiB,EAAE,IAAY,EAAE,GAAG,GAAG,EAAE;IAC9D,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACtB,MAAM,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACjD,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM;YAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;aACxH,IAAI,CAAC,CAAC,QAAQ;YAAE,GAAG,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;IAC5E,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,0FAA0F;AAC1F,SAAS,cAAc;IACrB,OAAO,aAAa,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;AACpD,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,YAAY;IACnB,IAAI,CAAC;QAAC,OAAO,UAAU,EAAE,CAAC,gBAAgB,EAAE,EAAE,IAAI,IAAI,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC;QAAC,OAAO,IAAI,CAAC;IAAC,CAAC;AAClF,CAAC;AAED,4DAA4D;AAC5D,MAAM,UAAU,UAAU,CAAC,MAAmB;IAC5C,OAAO,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC;AACrE,CAAC;AAED,oEAAoE;AACpE,KAAK,UAAU,QAAQ,CAAC,KAAyB,EAAE,IAAY,EAAE,MAAmB,EAAE,MAAM,GAAG,KAAK;IAClG,IAAI,CAAC,KAAK;QAAE,OAAO,EAAE,CAAC;IACtB,IAAI,IAAgB,CAAC;IACrB,IAAI,CAAC;QACH,IAAI,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,IAAI,CAAC,MAAM;YAAE,OAAO,EAAE,CAAC;QACvB;iFACyE;QACzE,IAAI,OAAgB,CAAC;QACrB,IAAI,CAAC;YAAC,OAAO,GAAG,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC;YAAC,MAAM,CAAC,CAAC;QAAC,CAAC;QACvE,IAAI,OAAO;YAAE,MAAM,CAAC,CAAC;QACrB,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAC5E,MAAM,GAAG,GAAqB,EAAE,CAAC;IACjC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,CAAC;QAChC,MAAM,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,QAAQ,IAAI,EAAE,EAAE,IAAI,CAAC,CAAC;QACpF,oEAAoE;QACpE,yEAAyE;QACzE,uEAAuE;QACvE,MAAM,QAAQ,GACZ,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,KAAK,YAAY,CAAC;YAClD,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,KAAK,UAAU,CAAC;YAChD,IAAI,CAAC;QACP,MAAM,SAAS,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QACzD,IAAI,WAA+B,CAAC;QACpC,IAAI,SAAS,EAAE,CAAC;YACd,IAAI,CAAC;gBACH,MAAM,EAAE,GAAG,gBAAgB,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;gBACzD,IAAI,OAAO,EAAE,CAAC,WAAW,KAAK,QAAQ;oBAAE,WAAW,GAAG,EAAE,CAAC,WAAW,CAAC;YACvE,CAAC;YAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;QAC1B,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAoB,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9E,IAAI,MAA0B,CAAC;QAC/B,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;YAC/B,IAAI,CAAC;gBACH,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,WAAW,EAAE,CAAC,CAAyB,CAAC;gBACxF,IAAI,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ;oBAAE,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC;YAClD,CAAC;YAAC,MAAM,CAAC,CAAC,sCAAsC,CAAC,CAAC;QACpD,CAAC;QACD,GAAG,CAAC,IAAI,CAAC;YACP,IAAI;YACJ,WAAW;YACX,YAAY,EAAE,SAAS;YACvB,OAAO;YACP,OAAO,EAAE,cAAc,CAAC,IAAI,CAAC;YAC7B,MAAM;YACN,QAAQ,EAAE,MAAM,KAAK,WAAW;YAChC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC9B,CAAC,CAAC;IACL,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AASD;;kEAEkE;AAClE,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,OAA0B,EAAE;IAC3D,6EAA6E;IAC7E,8EAA8E;IAC9E,4EAA4E;IAC5E,4EAA4E;IAC5E,IAAI,CAAC;QAAC,MAAM,UAAU,EAAE,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC,CAAC,sCAAsC,CAAC,CAAC;IAE5E,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,eAAe,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC;IACzF,MAAM,SAAS,GAAqB,EAAE,CAAC;IACvC,MAAM,aAAa,GAAG,IAAI,GAAG,EAAU,CAAC;IACxC,KAAK,MAAM,IAAI,IAAI,cAAc,EAAE,EAAE,CAAC;QACpC,KAAK,MAAM,CAAC,IAAI,MAAM,QAAQ,CAAC,YAAY,EAAE,EAAE,IAAI,EAAE,WAAW,CAAC,EAAE,CAAC;YAClE,IAAI,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;gBAAE,SAAS,CAAC,uCAAuC;YAChF,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAC1B,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,CAAC;IACH,CAAC;IAED;;;2DAGuD;IACvD,MAAM,MAAM,GAAG,IAAI,GAAG,EAA0B,CAAC;IACjD,KAAK,MAAM,CAAC,IAAI,SAAS;QAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IACjD,KAAK,MAAM,CAAC,IAAI,QAAQ;QAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IAChD,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AAC3E,CAAC;AAED;;;;;+EAK+E;AAC/E,MAAM,CAAC,KAAK,UAAU,mBAAmB;AACvC;;;;;YAKY;AACZ,KAAiC;IAEjC,MAAM,MAAM,GAAG,CAAC,MAAM,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,YAAY,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;IAC5G,MAAM,GAAG,GAAiB,EAAE,CAAC;IAC7B,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACvB,IAAI,IAAI,GAAG,EAAE,CAAC;QACd;;kFAE0E;QAC1E,MAAM,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QACnC,IAAI,CAAC,KAAK;YAAE,SAAS;QACrB,IAAI,CAAC;YAAC,IAAI,GAAG,gBAAgB,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,YAAa,CAAC,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC;YAAC,SAAS;QAAC,CAAC;QACvF,IAAI,CAAC,IAAI;YAAE,SAAS;QACpB;;;oEAG4D;QAC5D,MAAM,KAAK,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACpF,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM;YACvB,CAAC,CAAC,2BAA2B,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,4FAA4F,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW;YAClK,CAAC,CAAC,EAAE,CAAC;QACP,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,IAAI,GAAG,IAAI,EAAE,EAAE,CAAC,CAAC;IACrH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
|
|
1
|
+
{"version":3,"file":"skills.js","sourceRoot":"","sources":["../skills.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE7D,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAKlD,IAAI,YAAY,GAA0B,IAAI,CAAC;AAC/C,MAAM,UAAU,iBAAiB,CAAC,EAAkB,IAAU,YAAY,GAAG,EAAE,CAAC,CAAC,CAAC;AAElF,MAAM,IAAI,GAAG,QAAQ,CAAC;AACtB,MAAM,UAAU,GAAG,2BAA2B,CAAC;AAC/C,MAAM,WAAW,GAAG,4BAA4B,CAAC;AAEjD;;;;;;mEAMmE;AACnE,MAAM,OAAO,GAAG,IAAI,GAAG,CACrB,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC;KACzB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;KAC7C,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CACnC,CAAC;AAkCF,MAAM,CAAC,MAAM,WAAW,GAAG,cAAc,CAAC;AAE1C,MAAM,WAAW,GAA+B;IAC9C,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI;IAC9D,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO;CACzD,CAAC;AAeF,MAAM,YAAY,GAAmB,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;AAC/E,IAAI,QAAQ,GAAyB,GAAG,EAAE,CAAC,YAAY,CAAC;AAExD;uCACuC;AACvC,MAAM,UAAU,iBAAiB,CAAC,EAAiC;IACjE,QAAQ,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,CAAC;AACxC,CAAC;AAED,MAAM,UAAU,cAAc,KAAqB,OAAO,QAAQ,EAAE,CAAC,CAAC,CAAC;AAEvE,oFAAoF;AACpF,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;IACxD,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;IAC9B,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IACvB,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;AACpD,CAAC;AAED,kEAAkE;AAClE,MAAM,UAAU,QAAQ,CAAC,CAAS;IAChC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,gBAAgB,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,OAAO,CAAC;AAC7H,CAAC;AAED,yFAAyF;AACzF,MAAM,UAAU,eAAe,CAAC,KAAe;IAC7C,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACxD,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;QAC3D,MAAM,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;QAClC,OAAO,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACvC,CAAC;IACD,OAAO,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,SAAS,gBAAgB,CAAC,GAAW;IACnC,MAAM,CAAC,GAAG,6BAA6B,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC;IACxD,IAAI,CAAC,CAAC;QAAE,OAAO,EAAE,CAAC;IAClB,sFAAsF;IACtF,MAAM,GAAG,GAA4B,EAAE,CAAC;IACxC,KAAK,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;QACvC,MAAM,EAAE,GAAG,6BAA6B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpD,IAAI,EAAE;YAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAChE,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,GAAW;IAC1C,OAAO,GAAG,CAAC,OAAO,CAAC,iCAAiC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;AACnE,CAAC;AAED,iGAAiG;AACjG,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,IAA8C,EAAE,QAAgB;IAEhE,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,CAAC;IAC7C,IAAI,QAAQ,EAAE,CAAC;QAAC,IAAI,CAAC;YAAC,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YAAC,IAAI,CAAC,EAAE,IAAI;gBAAE,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;IAAC,CAAC;IAC9H,MAAM,KAAK,GAAG,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;IACrE,IAAI,KAAK,EAAE,CAAC;QAAC,MAAM,EAAE,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;QAAC,MAAM,CAAC,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC;QAAC,IAAI,CAAC;YAAE,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IAAC,CAAC;IACjH,OAAO,QAAQ,CAAC,QAAQ,CAAC,CAAC;AAC5B,CAAC;AAED;;;;;;;2BAO2B;AAC3B,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,IAAY;IACtD,MAAM,KAAK,GAAG,CAAC,MAAM,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;IAChE,IAAI,CAAC,KAAK,EAAE,YAAY;QAAE,OAAO,IAAI,CAAC;IACtC,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACvC,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IACxB,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;AAC1D,CAAC;AAED,uBAAuB;AAEvB;+EAC+E;AAC/E,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,KAA+B,EAAE,YAAY,GAAG,OAAO;IAC3F,IAAI,CAAC,YAAY;QAAE,MAAM,IAAI,KAAK,CAAC,4EAA4E,CAAC,CAAC;IACjH,MAAM,MAAM,GAAG,KAAK,YAAY,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC;IAC3E,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,+CAA+C;IACzF,IAAI,CAAC,KAAK,CAAC,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;IAEhE,MAAM,KAAK,GAAG,CAAC,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;IAChC,MAAM,GAAG,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;IACnC,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAChG,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;IACjF,OAAO,iBAAiB,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;AAC5C,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,KAAmD,EACnD,YAAoB,EACpB,MAAyC;IAEzC,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAC5E,MAAM,IAAI,GAAG,MAAM,gBAAgB,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,IAAI,IAAI,EAAE,YAAY,CAAC,CAAC;IACpG,MAAM,eAAe,EAAE,CAAC,MAAM,CAAC,GAAG,IAAI,IAAI,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAuB,CAAC,CAAC,CAAC;IACvF,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACtB,MAAM,eAAe,EAAE,CAAC,KAAK,CAAC,GAAG,IAAI,IAAI,IAAI,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;IACxE,CAAC;IACD,IAAI,MAAM,EAAE,CAAC;QACX,MAAM,GAAG,GAAgB,EAAE,GAAG,MAAM,EAAE,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;QAChE,MAAM,eAAe,EAAE,CAAC,KAAK,CAAC,GAAG,IAAI,IAAI,IAAI,IAAI,WAAW,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;IACvF,CAAC;IACD,MAAM,EAAE,CAAC;IACT,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,IAAY;IAC5C;;;iFAG6E;IAC7E,MAAM,KAAK,GAAG,CAAC,MAAM,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;IAChE,IAAI,KAAK,EAAE,QAAQ,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CAAC,IAAI,IAAI,sFAAsF,CAAC,CAAC;IAClH,CAAC;IACD,+EAA+E;IAC/E,yEAAyE;IACzE,MAAM,eAAe,EAAE,CAAC,MAAM,CAAC,GAAG,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAsB,CAAC,CAAC,CAAC;IAChG,eAAe,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAC7B,MAAM,EAAE,CAAC;AACX,CAAC;AAED;;;;mFAImF;AAEnF,SAAS,KAAK,CAAC,GAAW;IACxB,IAAI,CAAC;QAAC,OAAO,IAAI,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,CAAa,CAAC,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC;QAAC,OAAO,IAAI,GAAG,EAAE,CAAC;IAAC,CAAC;AAChH,CAAC;AACD,SAAS,UAAU,CAAC,GAAW,EAAE,CAAc;IAC7C,IAAI,CAAC;QAAC,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;AACnF,CAAC;AACD,MAAM,UAAU,cAAc,CAC5B,IAAY;AACZ;;;0CAG0C;AAC1C,OAA8B,EAAE;IAEhC,IAAI,KAAK,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IAC/C,OAAO,KAAK,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;AACtF,CAAC;AACD,MAAM,UAAU,eAAe,CAAC,IAAY,EAAE,EAAW;IACvD,MAAM,EAAE,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC;IAC7B,MAAM,GAAG,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC;IAC/B,IAAI,EAAE,EAAE,CAAC;QAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAAC,CAAC;SAAM,CAAC;QAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAAC,CAAC;IACpF,UAAU,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IAC3B,UAAU,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;IAC7B,MAAM,EAAE,CAAC;AACX,CAAC;AAED,MAAM,IAAI,GAAG,IAAI,GAAG,EAAc,CAAC;AACnC,MAAM,UAAU,eAAe,CAAC,EAAc,IAAgB,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,GAAG,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAChH,SAAS,MAAM,KAAW,KAAK,MAAM,EAAE,IAAI,IAAI,EAAE,CAAC;IAAC,IAAI,CAAC;QAAC,EAAE,EAAE,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;AAAC,CAAC,CAAC,CAAC;AAE3F,2BAA2B;AAE3B;;;;;;;2CAO2C;AAC3C,SAAS,aAAa,CAAC,KAAiB,EAAE,IAAY,EAAE,GAAG,GAAG,EAAE;IAC9D,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACtB,MAAM,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACjD,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM;YAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;aACxH,IAAI,CAAC,CAAC,QAAQ;YAAE,GAAG,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;IAC5E,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,0FAA0F;AAC1F,SAAS,cAAc;IACrB,OAAO,aAAa,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;AACpD,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,YAAY;IACnB,IAAI,CAAC;QAAC,OAAO,UAAU,EAAE,CAAC,gBAAgB,EAAE,EAAE,IAAI,IAAI,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC;QAAC,OAAO,IAAI,CAAC;IAAC,CAAC;AAClF,CAAC;AAED,4DAA4D;AAC5D,MAAM,UAAU,UAAU,CAAC,MAAmB;IAC5C,OAAO,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC;AACrE,CAAC;AAED,oEAAoE;AACpE,KAAK,UAAU,QAAQ,CAAC,KAAyB,EAAE,IAAY,EAAE,MAAmB,EAAE,MAAM,GAAG,KAAK;IAClG,IAAI,CAAC,KAAK;QAAE,OAAO,EAAE,CAAC;IACtB,IAAI,IAAgB,CAAC;IACrB,IAAI,CAAC;QACH,IAAI,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,IAAI,CAAC,MAAM;YAAE,OAAO,EAAE,CAAC;QACvB;iFACyE;QACzE,IAAI,OAAgB,CAAC;QACrB,IAAI,CAAC;YAAC,OAAO,GAAG,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC;YAAC,MAAM,CAAC,CAAC;QAAC,CAAC;QACvE,IAAI,OAAO;YAAE,MAAM,CAAC,CAAC;QACrB,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAC5E,MAAM,GAAG,GAAqB,EAAE,CAAC;IACjC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,CAAC;QAChC,MAAM,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,QAAQ,IAAI,EAAE,EAAE,IAAI,CAAC,CAAC;QACpF,oEAAoE;QACpE,yEAAyE;QACzE,uEAAuE;QACvE,MAAM,QAAQ,GACZ,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,KAAK,YAAY,CAAC;YAClD,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,KAAK,UAAU,CAAC;YAChD,IAAI,CAAC;QACP,MAAM,SAAS,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QACzD,IAAI,WAA+B,CAAC;QACpC,IAAI,SAAS,EAAE,CAAC;YACd,IAAI,CAAC;gBACH,MAAM,EAAE,GAAG,gBAAgB,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;gBACzD,IAAI,OAAO,EAAE,CAAC,WAAW,KAAK,QAAQ;oBAAE,WAAW,GAAG,EAAE,CAAC,WAAW,CAAC;YACvE,CAAC;YAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;QAC1B,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAoB,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9E,IAAI,MAA0B,CAAC;QAC/B,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;YAC/B,IAAI,CAAC;gBACH,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,WAAW,EAAE,CAAC,CAAyB,CAAC;gBACxF,IAAI,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ;oBAAE,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC;YAClD,CAAC;YAAC,MAAM,CAAC,CAAC,sCAAsC,CAAC,CAAC;QACpD,CAAC;QACD,GAAG,CAAC,IAAI,CAAC;YACP,IAAI;YACJ,WAAW;YACX,YAAY,EAAE,SAAS;YACvB,OAAO;YACP;;0EAE8D;YAC9D,OAAO,EAAE,cAAc,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,MAAM,KAAK,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;YAC9F,MAAM;YACN,QAAQ,EAAE,MAAM,KAAK,WAAW;YAChC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC9B,CAAC,CAAC;IACL,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AASD;;kEAEkE;AAClE,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,OAA0B,EAAE;IAC3D,6EAA6E;IAC7E,8EAA8E;IAC9E,4EAA4E;IAC5E,4EAA4E;IAC5E,IAAI,CAAC;QAAC,MAAM,UAAU,EAAE,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC,CAAC,sCAAsC,CAAC,CAAC;IAE5E,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,eAAe,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC;IACzF,MAAM,SAAS,GAAqB,EAAE,CAAC;IACvC,MAAM,aAAa,GAAG,IAAI,GAAG,EAAU,CAAC;IACxC,KAAK,MAAM,IAAI,IAAI,cAAc,EAAE,EAAE,CAAC;QACpC,KAAK,MAAM,CAAC,IAAI,MAAM,QAAQ,CAAC,YAAY,EAAE,EAAE,IAAI,EAAE,WAAW,CAAC,EAAE,CAAC;YAClE,IAAI,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;gBAAE,SAAS,CAAC,uCAAuC;YAChF,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAC1B,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,CAAC;IACH,CAAC;IAED;;;2DAGuD;IACvD,MAAM,MAAM,GAAG,IAAI,GAAG,EAA0B,CAAC;IACjD,KAAK,MAAM,CAAC,IAAI,SAAS;QAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IACjD,KAAK,MAAM,CAAC,IAAI,QAAQ;QAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IAChD,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AAC3E,CAAC;AAED;;;;;+EAK+E;AAC/E,MAAM,CAAC,KAAK,UAAU,mBAAmB;AACvC;;;;;YAKY;AACZ,KAAiC;IAEjC,MAAM,MAAM,GAAG,CAAC,MAAM,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,YAAY,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;IAC5G,MAAM,GAAG,GAAiB,EAAE,CAAC;IAC7B,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACvB,IAAI,IAAI,GAAG,EAAE,CAAC;QACd;;kFAE0E;QAC1E,MAAM,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QACnC,IAAI,CAAC,KAAK;YAAE,SAAS;QACrB,IAAI,CAAC;YAAC,IAAI,GAAG,gBAAgB,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,YAAa,CAAC,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC;YAAC,SAAS;QAAC,CAAC;QACvF,IAAI,CAAC,IAAI;YAAE,SAAS;QACpB;;;oEAG4D;QAC5D,MAAM,KAAK,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACpF,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM;YACvB,CAAC,CAAC,2BAA2B,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,4FAA4F,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW;YAClK,CAAC,CAAC,EAAE,CAAC;QACP,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,IAAI,GAAG,IAAI,EAAE,EAAE,CAAC,CAAC;IACrH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
|
package/dist/tools/urlGuard.d.ts
CHANGED
|
@@ -5,12 +5,21 @@ export type OutboundResolver = (host: string) => Promise<string[]>;
|
|
|
5
5
|
/** Install (or clear, with null) the resolver safeFetch uses to check that a
|
|
6
6
|
* name does not resolve to an internal address. */
|
|
7
7
|
export declare function setOutboundResolver(fn: OutboundResolver | null): void;
|
|
8
|
+
/** The guard refused a request: the URL, a redirect hop, or an address a
|
|
9
|
+
* name resolves to is not one a tool may call. A caller tells a refusal from
|
|
10
|
+
* a network failure by this type, never by its message. A name that does not
|
|
11
|
+
* resolve and a redirect loop are plain Errors: nothing was refused. */
|
|
12
|
+
export declare class OutboundRefusedError extends Error {
|
|
13
|
+
constructor(message: string);
|
|
14
|
+
}
|
|
8
15
|
/** Validate a tool-supplied URL. Returns null when allowed, else a human-readable
|
|
9
16
|
* reason it is refused (http(s) only; no internal/loopback/metadata hosts). */
|
|
10
17
|
export declare function outboundUrlError(raw: string): string | null;
|
|
11
18
|
/** fetch() with SSRF protection: the URL and every redirect hop are validated by
|
|
12
19
|
* outboundUrlError, following redirects MANUALLY so a 3xx can't escape to an
|
|
13
|
-
* internal host. Throws
|
|
14
|
-
* cross-origin redirect is opaque (unreadable) and is refused
|
|
20
|
+
* internal host. Throws OutboundRefusedError on a blocked URL/hop/address. In
|
|
21
|
+
* the browser a cross-origin redirect is opaque (unreadable) and is refused
|
|
22
|
+
* rather than followed. A redirect off the original origin never carries the
|
|
23
|
+
* caller's credentials or body on (see nextHopInit). */
|
|
15
24
|
export declare function safeFetch(url: string, init?: RequestInit): Promise<Response>;
|
|
16
25
|
//# sourceMappingURL=urlGuard.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"urlGuard.d.ts","sourceRoot":"","sources":["../../tools/urlGuard.ts"],"names":[],"mappings":"AA6CA;;wCAEwC;AACxC,MAAM,MAAM,gBAAgB,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;AAGnE;mDACmD;AACnD,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,gBAAgB,GAAG,IAAI,GAAG,IAAI,CAErE;
|
|
1
|
+
{"version":3,"file":"urlGuard.d.ts","sourceRoot":"","sources":["../../tools/urlGuard.ts"],"names":[],"mappings":"AA6CA;;wCAEwC;AACxC,MAAM,MAAM,gBAAgB,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;AAGnE;mDACmD;AACnD,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,gBAAgB,GAAG,IAAI,GAAG,IAAI,CAErE;AAID;;;wEAGwE;AACxE,qBAAa,oBAAqB,SAAQ,KAAK;gBACjC,OAAO,EAAE,MAAM;CAI5B;AAcD;+EAC+E;AAC/E,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAU3D;AAyBD;;;;;wDAKwD;AACxD,wBAAsB,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,GAAE,WAAgB,GAAG,OAAO,CAAC,QAAQ,CAAC,CA0BtF"}
|
package/dist/tools/urlGuard.js
CHANGED
|
@@ -59,18 +59,30 @@ export function setOutboundResolver(fn) {
|
|
|
59
59
|
resolver = fn;
|
|
60
60
|
}
|
|
61
61
|
const IP_LITERAL = /^[\d.]+$|:/;
|
|
62
|
-
/**
|
|
63
|
-
|
|
62
|
+
/** The guard refused a request: the URL, a redirect hop, or an address a
|
|
63
|
+
* name resolves to is not one a tool may call. A caller tells a refusal from
|
|
64
|
+
* a network failure by this type, never by its message. A name that does not
|
|
65
|
+
* resolve and a redirect loop are plain Errors: nothing was refused. */
|
|
66
|
+
export class OutboundRefusedError extends Error {
|
|
67
|
+
constructor(message) {
|
|
68
|
+
super(message);
|
|
69
|
+
this.name = 'OutboundRefusedError';
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
/** Check every address a name resolves to. Throws OutboundRefusedError for an
|
|
73
|
+
* internal address, a plain Error for a name that does not resolve. */
|
|
74
|
+
async function assertResolvedHostAllowed(host) {
|
|
64
75
|
if (!resolver)
|
|
65
|
-
return
|
|
76
|
+
return;
|
|
66
77
|
const bare = host.replace(/^\[/, '').replace(/\]$/, '');
|
|
67
78
|
if (IP_LITERAL.test(bare))
|
|
68
|
-
return
|
|
79
|
+
return; // a literal was already judged lexically
|
|
69
80
|
const addrs = await resolver(bare);
|
|
70
81
|
if (addrs.length === 0)
|
|
71
|
-
|
|
82
|
+
throw new Error(`could not resolve "${host}"`);
|
|
72
83
|
const bad = addrs.find((a) => isBlockedHost(a));
|
|
73
|
-
|
|
84
|
+
if (bad)
|
|
85
|
+
throw new OutboundRefusedError(`refusing to call an internal/loopback host: "${host}" resolves to ${bad}`);
|
|
74
86
|
}
|
|
75
87
|
/** Validate a tool-supplied URL. Returns null when allowed, else a human-readable
|
|
76
88
|
* reason it is refused (http(s) only; no internal/loopback/metadata hosts). */
|
|
@@ -89,24 +101,67 @@ export function outboundUrlError(raw) {
|
|
|
89
101
|
return null;
|
|
90
102
|
}
|
|
91
103
|
const MAX_REDIRECTS = 5;
|
|
104
|
+
/** Headers that carry a credential: never sent on to another origin. */
|
|
105
|
+
const CREDENTIAL_HEADERS = ['authorization', 'proxy-authorization', 'cookie', 'x-api-key'];
|
|
106
|
+
/** Headers that describe a request body: dropped with the body. */
|
|
107
|
+
const BODY_HEADERS = ['content-type', 'content-length', 'content-encoding', 'content-language', 'content-location'];
|
|
108
|
+
/** The next hop's request after a redirect, by fetch's own rules plus one of
|
|
109
|
+
* ours: a 303 (and a 301 or 302 for a POST) becomes a GET without a body,
|
|
110
|
+
* and once the chain leaves the original origin the credential headers and
|
|
111
|
+
* the body are dropped for every later hop. */
|
|
112
|
+
function nextHopInit(init, status, leftOrigin) {
|
|
113
|
+
const method = (init.method ?? 'GET').toUpperCase();
|
|
114
|
+
const toGet = (status === 303 && method !== 'GET' && method !== 'HEAD') || ((status === 301 || status === 302) && method === 'POST');
|
|
115
|
+
const dropBody = toGet || leftOrigin;
|
|
116
|
+
const headers = new Headers(init.headers);
|
|
117
|
+
if (leftOrigin)
|
|
118
|
+
for (const h of CREDENTIAL_HEADERS)
|
|
119
|
+
headers.delete(h);
|
|
120
|
+
if (dropBody)
|
|
121
|
+
for (const h of BODY_HEADERS)
|
|
122
|
+
headers.delete(h);
|
|
123
|
+
const next = { ...init, headers, ...(toGet ? { method: 'GET' } : {}) };
|
|
124
|
+
if (dropBody)
|
|
125
|
+
delete next.body;
|
|
126
|
+
return next;
|
|
127
|
+
}
|
|
92
128
|
/** fetch() with SSRF protection: the URL and every redirect hop are validated by
|
|
93
129
|
* outboundUrlError, following redirects MANUALLY so a 3xx can't escape to an
|
|
94
|
-
* internal host. Throws
|
|
95
|
-
* cross-origin redirect is opaque (unreadable) and is refused
|
|
130
|
+
* internal host. Throws OutboundRefusedError on a blocked URL/hop/address. In
|
|
131
|
+
* the browser a cross-origin redirect is opaque (unreadable) and is refused
|
|
132
|
+
* rather than followed. A redirect off the original origin never carries the
|
|
133
|
+
* caller's credentials or body on (see nextHopInit). */
|
|
96
134
|
export async function safeFetch(url, init = {}) {
|
|
97
135
|
let current = url;
|
|
136
|
+
let hopInit = init;
|
|
137
|
+
let leftOrigin = false;
|
|
138
|
+
let origin = null;
|
|
98
139
|
for (let hop = 0; hop <= MAX_REDIRECTS; hop++) {
|
|
99
140
|
const bad = outboundUrlError(current);
|
|
100
141
|
if (bad)
|
|
101
|
-
throw new
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
const res = await fetch(current, { ...init, redirect: 'manual' });
|
|
142
|
+
throw new OutboundRefusedError(bad);
|
|
143
|
+
origin ?? (origin = new URL(current).origin);
|
|
144
|
+
await assertResolvedHostAllowed(new URL(current).hostname);
|
|
145
|
+
const res = await fetch(current, { ...hopInit, redirect: 'manual' });
|
|
106
146
|
if (res.type === 'opaqueredirect')
|
|
107
|
-
throw new
|
|
147
|
+
throw new OutboundRefusedError('refusing to follow an opaque cross-origin redirect');
|
|
108
148
|
if (res.status >= 300 && res.status < 400 && res.headers.has('location')) {
|
|
109
|
-
|
|
149
|
+
const next = new URL(res.headers.get('location'), current).toString();
|
|
150
|
+
try {
|
|
151
|
+
await res.body?.cancel();
|
|
152
|
+
}
|
|
153
|
+
catch { /* nothing left to release */ }
|
|
154
|
+
// outboundUrlError judges an unparseable next hop at the top of the loop.
|
|
155
|
+
let nextOrigin = null;
|
|
156
|
+
try {
|
|
157
|
+
nextOrigin = new URL(next).origin;
|
|
158
|
+
}
|
|
159
|
+
catch {
|
|
160
|
+
nextOrigin = null;
|
|
161
|
+
}
|
|
162
|
+
leftOrigin = leftOrigin || nextOrigin !== origin;
|
|
163
|
+
hopInit = nextHopInit(hopInit, res.status, leftOrigin);
|
|
164
|
+
current = next;
|
|
110
165
|
continue;
|
|
111
166
|
}
|
|
112
167
|
return res;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"urlGuard.js","sourceRoot":"","sources":["../../tools/urlGuard.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"urlGuard.js","sourceRoot":"","sources":["../../tools/urlGuard.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
export declare const RESULTS_DIR = "results";
|
|
2
|
+
export type ResultSource = 'job' | 'deploy' | 'canvas';
|
|
3
|
+
export interface ResultMeta {
|
|
4
|
+
workflow: string;
|
|
5
|
+
slug: string;
|
|
6
|
+
/** ISO 8601 with the local offset. */
|
|
7
|
+
ran: string;
|
|
8
|
+
source: ResultSource;
|
|
9
|
+
/** The edit values the run used (what the form held). */
|
|
10
|
+
inputs: Record<string, unknown>;
|
|
11
|
+
}
|
|
12
|
+
/** One safe folder name: no separators or reserved characters, no leading or
|
|
13
|
+
* trailing dots or spaces (so never "." or ".."), at most 80 characters. */
|
|
14
|
+
export declare function cleanName(name: string, slug: string): string;
|
|
15
|
+
export declare function stamp(d: Date): string;
|
|
16
|
+
export declare function isoWithOffset(d: Date): string;
|
|
17
|
+
export declare function resultPath(workflowName: string, slug: string, ranAt: Date): string;
|
|
18
|
+
export declare function formatResult(meta: ResultMeta, output: string): string;
|
|
19
|
+
export declare function parseResult(text: string): {
|
|
20
|
+
meta: ResultMeta | null;
|
|
21
|
+
output: string;
|
|
22
|
+
};
|
|
23
|
+
//# sourceMappingURL=resultFile.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resultFile.d.ts","sourceRoot":"","sources":["../../../workflows/results/resultFile.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,WAAW,YAAY,CAAC;AACrC,MAAM,MAAM,YAAY,GAAG,KAAK,GAAG,QAAQ,GAAG,QAAQ,CAAC;AACvD,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,sCAAsC;IACtC,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,YAAY,CAAC;IACrB,yDAAyD;IACzD,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjC;AAMD;4EAC4E;AAC5E,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAG5D;AAED,wBAAgB,KAAK,CAAC,CAAC,EAAE,IAAI,GAAG,MAAM,CAErC;AAED,wBAAgB,aAAa,CAAC,CAAC,EAAE,IAAI,GAAG,MAAM,CAK7C;AAED,wBAAgB,UAAU,CAAC,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,GAAG,MAAM,CAElF;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAErE;AAsBD,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG;IAAE,IAAI,EAAE,UAAU,GAAG,IAAI,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAWrF"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
/* The result file: one finished workflow run's output, as markdown with a YAML
|
|
2
|
+
* front matter header that says which workflow, when, from where, and with
|
|
3
|
+
* which inputs (so "Reuse inputs" can put them back). The body is the run's
|
|
4
|
+
* final output, unchanged. parseResult never throws: a hand-made or hand-edited
|
|
5
|
+
* file still opens, as all output and no meta. */
|
|
6
|
+
import { parse, stringify } from 'yaml';
|
|
7
|
+
export const RESULTS_DIR = 'results';
|
|
8
|
+
// Characters no folder name may hold on any backend, plus control characters.
|
|
9
|
+
const BAD = /[/\\:*?"<>|\u0000-\u001f]/g;
|
|
10
|
+
const pad = (n, w = 2) => String(n).padStart(w, '0');
|
|
11
|
+
/** One safe folder name: no separators or reserved characters, no leading or
|
|
12
|
+
* trailing dots or spaces (so never "." or ".."), at most 80 characters. */
|
|
13
|
+
export function cleanName(name, slug) {
|
|
14
|
+
const clean = (s) => s.replace(BAD, '').replace(/\s+/g, ' ').replace(/^[\s.]+|[\s.]+$/g, '').slice(0, 80).replace(/[\s.]+$/g, '');
|
|
15
|
+
return clean(name) || clean(slug) || 'Workflow';
|
|
16
|
+
}
|
|
17
|
+
export function stamp(d) {
|
|
18
|
+
return `${d.getFullYear()}-${pad(d.getMonth() + 1)}-${pad(d.getDate())} ${pad(d.getHours())}${pad(d.getMinutes())}`;
|
|
19
|
+
}
|
|
20
|
+
export function isoWithOffset(d) {
|
|
21
|
+
const off = -d.getTimezoneOffset();
|
|
22
|
+
const sign = off >= 0 ? '+' : '-';
|
|
23
|
+
const a = Math.abs(off);
|
|
24
|
+
return `${d.getFullYear()}-${pad(d.getMonth() + 1)}-${pad(d.getDate())}T${pad(d.getHours())}:${pad(d.getMinutes())}:${pad(d.getSeconds())}${sign}${pad(Math.floor(a / 60))}:${pad(a % 60)}`;
|
|
25
|
+
}
|
|
26
|
+
export function resultPath(workflowName, slug, ranAt) {
|
|
27
|
+
return `${RESULTS_DIR}/${cleanName(workflowName, slug)}/${stamp(ranAt)}.md`;
|
|
28
|
+
}
|
|
29
|
+
export function formatResult(meta, output) {
|
|
30
|
+
return `---\n${stringify(meta).trimEnd()}\n---\n\n${output}\n`;
|
|
31
|
+
}
|
|
32
|
+
const SOURCES = ['job', 'deploy', 'canvas'];
|
|
33
|
+
const isRecord = (v) => typeof v === 'object' && v !== null && !Array.isArray(v);
|
|
34
|
+
function toMeta(raw) {
|
|
35
|
+
if (!isRecord(raw))
|
|
36
|
+
return null;
|
|
37
|
+
const { workflow, slug, source, inputs } = raw;
|
|
38
|
+
const ran = raw.ran instanceof Date ? raw.ran.toISOString() : raw.ran;
|
|
39
|
+
if (typeof workflow !== 'string' || typeof slug !== 'string' || typeof ran !== 'string')
|
|
40
|
+
return null;
|
|
41
|
+
return {
|
|
42
|
+
workflow, slug, ran,
|
|
43
|
+
source: SOURCES.includes(source) ? source : 'job',
|
|
44
|
+
inputs: isRecord(inputs) ? inputs : {},
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
// Front matter: a first line of exactly ---, then YAML up to the next line of
|
|
48
|
+
// exactly ---. YAML block scalars indent their lines, so a --- inside an input
|
|
49
|
+
// value can never close it.
|
|
50
|
+
const FRONT = /^---\r?\n([\s\S]*?)\r?\n---[ \t]*(?:\r?\n|$)/;
|
|
51
|
+
export function parseResult(text) {
|
|
52
|
+
const m = FRONT.exec(text);
|
|
53
|
+
if (!m)
|
|
54
|
+
return { meta: null, output: text.replace(/\s+$/, '') };
|
|
55
|
+
let raw;
|
|
56
|
+
try {
|
|
57
|
+
raw = parse(m[1]);
|
|
58
|
+
}
|
|
59
|
+
catch {
|
|
60
|
+
return { meta: null, output: text.replace(/\s+$/, '') };
|
|
61
|
+
}
|
|
62
|
+
const meta = toMeta(raw);
|
|
63
|
+
// Not result meta (a note that opens with a --- rule, a hand-edited header):
|
|
64
|
+
// the whole file is the output, so nothing the person wrote is hidden.
|
|
65
|
+
if (!meta)
|
|
66
|
+
return { meta: null, output: text.replace(/\s+$/, '') };
|
|
67
|
+
const body = text.slice(m[0].length).replace(/^\r?\n/, '').replace(/\s+$/, '');
|
|
68
|
+
return { meta, output: body };
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=resultFile.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resultFile.js","sourceRoot":"","sources":["../../../workflows/results/resultFile.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import type { FileService } from '@corenel/protocol';
|
|
2
|
+
import { type ResultMeta } from './resultFile';
|
|
3
|
+
export type SaveOutcome = {
|
|
4
|
+
path: string;
|
|
5
|
+
} | {
|
|
6
|
+
error: string;
|
|
7
|
+
};
|
|
8
|
+
export interface ResultEntry {
|
|
9
|
+
path: string;
|
|
10
|
+
meta: ResultMeta | null;
|
|
11
|
+
output: string;
|
|
12
|
+
ranAt: number;
|
|
13
|
+
}
|
|
14
|
+
export declare function isResultPath(path: string): boolean;
|
|
15
|
+
export declare function saveResult(files: FileService | null, meta: ResultMeta, output: string, ranAt?: Date): Promise<SaveOutcome>;
|
|
16
|
+
export type PlaceOutcome = {
|
|
17
|
+
path: string;
|
|
18
|
+
same: boolean;
|
|
19
|
+
} | {
|
|
20
|
+
error: string;
|
|
21
|
+
};
|
|
22
|
+
/** Put an already-formatted result `text` at `path` (results/**.md) or the
|
|
23
|
+
* next free ` (n)` name, never overwriting anything: a name holding exactly
|
|
24
|
+
* `text` already is the same result (an earlier copy) and is reported as
|
|
25
|
+
* `same` with nothing written. Claims names in the SAME in-tab reservation as
|
|
26
|
+
* saveResult, so a save and a placement finishing together never pick one
|
|
27
|
+
* name, and writes with `create`, which refuses an existing file, so a file
|
|
28
|
+
* another tab wrote between the check and the write is not replaced either.
|
|
29
|
+
* Never throws. */
|
|
30
|
+
export declare function placeResultText(files: FileService, path: string, text: string): Promise<PlaceOutcome>;
|
|
31
|
+
export declare function listResults(files: FileService | null, opts?: {
|
|
32
|
+
slug?: string;
|
|
33
|
+
limit?: number;
|
|
34
|
+
}): Promise<ResultEntry[]>;
|
|
35
|
+
export declare function readResult(files: FileService | null, path: string): Promise<ResultEntry | null>;
|
|
36
|
+
export declare function deleteResult(files: FileService, path: string): Promise<void>;
|
|
37
|
+
//# sourceMappingURL=resultStore.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resultStore.d.ts","sourceRoot":"","sources":["../../../workflows/results/resultStore.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAY,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,EAAsD,KAAK,UAAU,EAAE,MAAM,cAAc,CAAC;AAEnG,MAAM,MAAM,WAAW,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAC/D,MAAM,WAAW,WAAW;IAAG,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,UAAU,GAAG,IAAI,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE;AASrG,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAGlD;AAED,wBAAsB,UAAU,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,GAAE,IAAyB,GAAG,OAAO,CAAC,WAAW,CAAC,CAgCpJ;AAKD,MAAM,MAAM,YAAY,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,OAAO,CAAA;CAAE,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAE/E;;;;;;;mBAOmB;AACnB,wBAAsB,eAAe,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAmC3G;AA2BD,wBAAsB,WAAW,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI,EAAE,IAAI,GAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAiBjI;AAED,wBAAsB,UAAU,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAGrG;AAED,wBAAsB,YAAY,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAGlF"}
|