@xioflow/kernel 0.2.0 → 0.4.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/README.md +116 -15
- package/dist/capability/check.d.ts +32 -0
- package/dist/capability/check.d.ts.map +1 -0
- package/dist/capability/check.js +136 -0
- package/dist/capability/check.js.map +1 -0
- package/dist/capability/index.d.ts +3 -0
- package/dist/capability/index.d.ts.map +1 -0
- package/dist/capability/index.js +3 -0
- package/dist/capability/index.js.map +1 -0
- package/dist/capability/path-utils.d.ts +11 -0
- package/dist/capability/path-utils.d.ts.map +1 -0
- package/dist/capability/path-utils.js +46 -0
- package/dist/capability/path-utils.js.map +1 -0
- package/dist/confinement/bubblewrap.d.ts +8 -0
- package/dist/confinement/bubblewrap.d.ts.map +1 -0
- package/dist/confinement/bubblewrap.js +45 -0
- package/dist/confinement/bubblewrap.js.map +1 -0
- package/dist/confinement/detector.d.ts +4 -0
- package/dist/confinement/detector.d.ts.map +1 -0
- package/dist/confinement/detector.js +35 -0
- package/dist/confinement/detector.js.map +1 -0
- package/dist/confinement/index.d.ts +5 -0
- package/dist/confinement/index.d.ts.map +1 -0
- package/dist/confinement/index.js +5 -0
- package/dist/confinement/index.js.map +1 -0
- package/dist/confinement/sandbox-exec.d.ts +8 -0
- package/dist/confinement/sandbox-exec.d.ts.map +1 -0
- package/dist/confinement/sandbox-exec.js +30 -0
- package/dist/confinement/sandbox-exec.js.map +1 -0
- package/dist/confinement/srt.d.ts +8 -0
- package/dist/confinement/srt.d.ts.map +1 -0
- package/dist/confinement/srt.js +41 -0
- package/dist/confinement/srt.js.map +1 -0
- package/dist/domain.d.ts +46 -2
- package/dist/domain.d.ts.map +1 -1
- package/dist/domain.js +209 -18
- package/dist/domain.js.map +1 -1
- package/dist/driver/node-driver.d.ts.map +1 -1
- package/dist/driver/node-driver.js +46 -36
- package/dist/driver/node-driver.js.map +1 -1
- package/dist/driver/types.d.ts +13 -0
- package/dist/driver/types.d.ts.map +1 -1
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/quick-run.d.ts +27 -0
- package/dist/quick-run.d.ts.map +1 -0
- package/dist/quick-run.js +75 -0
- package/dist/quick-run.js.map +1 -0
- package/dist/recovery/engine.d.ts +7 -0
- package/dist/recovery/engine.d.ts.map +1 -1
- package/dist/recovery/engine.js +174 -4
- package/dist/recovery/engine.js.map +1 -1
- package/dist/snapshot/git-shadow.d.ts +49 -0
- package/dist/snapshot/git-shadow.d.ts.map +1 -0
- package/dist/snapshot/git-shadow.js +359 -0
- package/dist/snapshot/git-shadow.js.map +1 -0
- package/dist/store/schema.d.ts +1 -1
- package/dist/store/schema.d.ts.map +1 -1
- package/dist/store/schema.js +31 -0
- package/dist/store/schema.js.map +1 -1
- package/dist/store/sqlite.d.ts +17 -1
- package/dist/store/sqlite.d.ts.map +1 -1
- package/dist/store/sqlite.js +193 -58
- package/dist/store/sqlite.js.map +1 -1
- package/dist/supervisor/drainer.d.ts +17 -0
- package/dist/supervisor/drainer.d.ts.map +1 -0
- package/dist/supervisor/drainer.js +200 -0
- package/dist/supervisor/drainer.js.map +1 -0
- package/dist/supervisor/service.d.ts +24 -0
- package/dist/supervisor/service.d.ts.map +1 -0
- package/dist/supervisor/service.js +588 -0
- package/dist/supervisor/service.js.map +1 -0
- package/dist/supervisor/supervisor.d.ts +62 -4
- package/dist/supervisor/supervisor.d.ts.map +1 -1
- package/dist/supervisor/supervisor.js +1037 -562
- package/dist/supervisor/supervisor.js.map +1 -1
- package/dist/testing/contract-suite.d.ts.map +1 -1
- package/dist/testing/contract-suite.js +748 -2
- package/dist/testing/contract-suite.js.map +1 -1
- package/dist/types.d.ts +175 -2
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +39 -1
- package/dist/types.js.map +1 -1
- package/package.json +1 -1
package/dist/recovery/engine.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { GitShadowSnapshotDriver } from '../snapshot/git-shadow.js';
|
|
1
2
|
export class RecoveryEngine {
|
|
2
3
|
domain;
|
|
3
4
|
driver;
|
|
@@ -13,7 +14,101 @@ export class RecoveryEngine {
|
|
|
13
14
|
const store = this.domain.getStore();
|
|
14
15
|
const unfinishedOps = store.getUnfinishedOperations(this.domain.domainId);
|
|
15
16
|
const report = { recoveredOperations: [] };
|
|
17
|
+
const releaseOpAndServiceResources = (op) => {
|
|
18
|
+
this.domain.internalReleaseResources(op.id, op.requiredResources);
|
|
19
|
+
if (op.kind === 'service' || op.id.includes('#')) {
|
|
20
|
+
const serviceId = op.id.split('#')[0];
|
|
21
|
+
this.domain.internalReleaseResources(`service:${serviceId}`, op.requiredResources);
|
|
22
|
+
}
|
|
23
|
+
};
|
|
24
|
+
const recordServiceStoppedIfNeeded = (op, action) => {
|
|
25
|
+
if (op.kind === 'service' || op.id.includes('#')) {
|
|
26
|
+
const serviceId = op.id.split('#')[0];
|
|
27
|
+
store.recordEventAndTransitionState({
|
|
28
|
+
domainId: this.domain.domainId,
|
|
29
|
+
runId: op.runId,
|
|
30
|
+
operationId: op.id,
|
|
31
|
+
type: 'SERVICE_STOPPED',
|
|
32
|
+
payload: {
|
|
33
|
+
serviceId,
|
|
34
|
+
runId: op.runId,
|
|
35
|
+
instanceOpId: op.id,
|
|
36
|
+
reason: 'recovered_after_crash',
|
|
37
|
+
action,
|
|
38
|
+
},
|
|
39
|
+
timestamp: new Date().toISOString(),
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
};
|
|
16
43
|
for (const op of unfinishedOps) {
|
|
44
|
+
if (op.kind === 'rollback') {
|
|
45
|
+
const snapshotId = op.outputRef || op.name.replace(/^rollback:/, '');
|
|
46
|
+
const snapshot = store.getSnapshot(snapshotId);
|
|
47
|
+
const snapshotDriver = this.domain.getSnapshotDriver?.() || new GitShadowSnapshotDriver();
|
|
48
|
+
const roots = op.mutationRoots || snapshot?.roots || [];
|
|
49
|
+
let isMatch = false;
|
|
50
|
+
if (snapshot && roots.length > 0) {
|
|
51
|
+
try {
|
|
52
|
+
const currentFp = await snapshotDriver.fingerprint(roots, { against: snapshot });
|
|
53
|
+
isMatch = currentFp === snapshot.treeFingerprint;
|
|
54
|
+
}
|
|
55
|
+
catch {
|
|
56
|
+
isMatch = false;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
if (isMatch) {
|
|
60
|
+
const restoredResult = {
|
|
61
|
+
kind: 'rollback',
|
|
62
|
+
status: 'restored',
|
|
63
|
+
snapshotId,
|
|
64
|
+
coverage: 'declared_roots',
|
|
65
|
+
outOfScopeEffects: 'possible',
|
|
66
|
+
durationMs: 0,
|
|
67
|
+
completedAt: new Date().toISOString(),
|
|
68
|
+
};
|
|
69
|
+
store.recordOperationResult(op.id, restoredResult, true);
|
|
70
|
+
releaseOpAndServiceResources(op);
|
|
71
|
+
report.recoveredOperations.push({
|
|
72
|
+
opId: op.id,
|
|
73
|
+
action: 'cleaned_unspawned',
|
|
74
|
+
resourcesReleased: true,
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
else {
|
|
78
|
+
const indetResult = {
|
|
79
|
+
kind: 'indeterminate',
|
|
80
|
+
status: 'indeterminate',
|
|
81
|
+
reason: 'Rollback interrupted by crash and tree fingerprint does not match target snapshot',
|
|
82
|
+
recoveryGuidance: 'Workspace tree may be dirty or partially restored. Inspect files and retry rollback.',
|
|
83
|
+
durationMs: 0,
|
|
84
|
+
completedAt: new Date().toISOString(),
|
|
85
|
+
};
|
|
86
|
+
store.recordOperationResult(op.id, indetResult, false);
|
|
87
|
+
report.recoveredOperations.push({
|
|
88
|
+
opId: op.id,
|
|
89
|
+
action: 'isolated_indeterminate',
|
|
90
|
+
resourcesReleased: false,
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
continue;
|
|
94
|
+
}
|
|
95
|
+
if (op.kind === 'snapshot') {
|
|
96
|
+
const failResult = {
|
|
97
|
+
kind: 'snapshot',
|
|
98
|
+
status: 'failed',
|
|
99
|
+
errorMessage: 'Snapshot interrupted by crash before completion',
|
|
100
|
+
durationMs: 0,
|
|
101
|
+
completedAt: new Date().toISOString(),
|
|
102
|
+
};
|
|
103
|
+
store.recordOperationResult(op.id, failResult, true);
|
|
104
|
+
releaseOpAndServiceResources(op);
|
|
105
|
+
report.recoveredOperations.push({
|
|
106
|
+
opId: op.id,
|
|
107
|
+
action: 'cleaned_unspawned',
|
|
108
|
+
resourcesReleased: true,
|
|
109
|
+
});
|
|
110
|
+
continue;
|
|
111
|
+
}
|
|
17
112
|
if (op.status === 'intent_registered' && !op.processIdentity) {
|
|
18
113
|
// 场景 1:意图登记后崩溃,驱动未启动(无进程身份)
|
|
19
114
|
// 安全清理资源,推进至失败终态
|
|
@@ -30,7 +125,8 @@ export class RecoveryEngine {
|
|
|
30
125
|
completedAt: new Date().toISOString(),
|
|
31
126
|
};
|
|
32
127
|
store.recordOperationResult(op.id, failResult, true);
|
|
33
|
-
|
|
128
|
+
releaseOpAndServiceResources(op);
|
|
129
|
+
recordServiceStoppedIfNeeded(op, 'cleaned_unspawned');
|
|
34
130
|
report.recoveredOperations.push({
|
|
35
131
|
opId: op.id,
|
|
36
132
|
action: 'cleaned_unspawned',
|
|
@@ -63,7 +159,8 @@ export class RecoveryEngine {
|
|
|
63
159
|
completedAt: new Date().toISOString(),
|
|
64
160
|
};
|
|
65
161
|
store.recordOperationResult(op.id, cancelResult, true);
|
|
66
|
-
|
|
162
|
+
releaseOpAndServiceResources(op);
|
|
163
|
+
recordServiceStoppedIfNeeded(op, 'stopped_alive_process');
|
|
67
164
|
report.recoveredOperations.push({
|
|
68
165
|
opId: op.id,
|
|
69
166
|
action: 'stopped_alive_process',
|
|
@@ -81,6 +178,7 @@ export class RecoveryEngine {
|
|
|
81
178
|
completedAt: new Date().toISOString(),
|
|
82
179
|
};
|
|
83
180
|
store.recordOperationResult(op.id, indetResult, false);
|
|
181
|
+
recordServiceStoppedIfNeeded(op, 'isolated_indeterminate');
|
|
84
182
|
report.recoveredOperations.push({
|
|
85
183
|
opId: op.id,
|
|
86
184
|
action: 'isolated_indeterminate',
|
|
@@ -122,7 +220,8 @@ export class RecoveryEngine {
|
|
|
122
220
|
if (this.driver.getGroupEvidence) {
|
|
123
221
|
const members = await this.driver.getGroupEvidence(pgid);
|
|
124
222
|
if (members.length > 0) {
|
|
125
|
-
|
|
223
|
+
// 下界优先用 OS 登记的 leader 创建时间;旧记录没有 osStartTime 时才退回宿主 spawnTime
|
|
224
|
+
const opSpawnMs = Date.parse(op.processIdentity.osStartTime ?? op.processIdentity.spawnTime);
|
|
126
225
|
if (!isNaN(opSpawnMs)) {
|
|
127
226
|
let hasEarlierProcess = false;
|
|
128
227
|
for (const m of members) {
|
|
@@ -189,7 +288,8 @@ export class RecoveryEngine {
|
|
|
189
288
|
completedAt: new Date().toISOString(),
|
|
190
289
|
};
|
|
191
290
|
store.recordOperationResult(op.id, deadResult, true);
|
|
192
|
-
|
|
291
|
+
releaseOpAndServiceResources(op);
|
|
292
|
+
recordServiceStoppedIfNeeded(op, 'marked_dead');
|
|
193
293
|
report.recoveredOperations.push({
|
|
194
294
|
opId: op.id,
|
|
195
295
|
action: 'marked_dead',
|
|
@@ -207,6 +307,7 @@ export class RecoveryEngine {
|
|
|
207
307
|
completedAt: new Date().toISOString(),
|
|
208
308
|
};
|
|
209
309
|
store.recordOperationResult(op.id, indetResult, false);
|
|
310
|
+
recordServiceStoppedIfNeeded(op, 'isolated_indeterminate');
|
|
210
311
|
report.recoveredOperations.push({
|
|
211
312
|
opId: op.id,
|
|
212
313
|
action: 'isolated_indeterminate',
|
|
@@ -233,6 +334,75 @@ export class RecoveryEngine {
|
|
|
233
334
|
}
|
|
234
335
|
}
|
|
235
336
|
}
|
|
337
|
+
// 6. [Service 维度聚合] (ARCHITECTURE §3.8 / Step 5)
|
|
338
|
+
const serviceMap = new Map();
|
|
339
|
+
for (const rec of report.recoveredOperations) {
|
|
340
|
+
const op = unfinishedOps.find((o) => o.id === rec.opId);
|
|
341
|
+
const isService = op?.kind === 'service' || rec.opId.includes('#');
|
|
342
|
+
if (isService) {
|
|
343
|
+
const serviceId = rec.opId.split('#')[0];
|
|
344
|
+
let entry = serviceMap.get(serviceId);
|
|
345
|
+
if (!entry) {
|
|
346
|
+
entry = {
|
|
347
|
+
instanceOpIds: [],
|
|
348
|
+
actions: new Set(),
|
|
349
|
+
resourcesReleased: true,
|
|
350
|
+
};
|
|
351
|
+
serviceMap.set(serviceId, entry);
|
|
352
|
+
}
|
|
353
|
+
entry.instanceOpIds.push(rec.opId);
|
|
354
|
+
entry.actions.add(rec.action);
|
|
355
|
+
if (!rec.resourcesReleased) {
|
|
356
|
+
entry.resourcesReleased = false;
|
|
357
|
+
}
|
|
358
|
+
}
|
|
359
|
+
}
|
|
360
|
+
// 检查并释放处于重启 backoff 间隙遗留的 service 租约(无活跃 op)
|
|
361
|
+
const persistedLeases = store.getPersistedResourceLeases(this.domain.domainId);
|
|
362
|
+
for (const lease of persistedLeases) {
|
|
363
|
+
if (lease.operationId.startsWith('service:')) {
|
|
364
|
+
const serviceId = lease.operationId.slice('service:'.length);
|
|
365
|
+
this.domain.internalReleaseResources(lease.operationId, [lease.resourceId]);
|
|
366
|
+
if (!serviceMap.has(serviceId)) {
|
|
367
|
+
serviceMap.set(serviceId, {
|
|
368
|
+
instanceOpIds: [],
|
|
369
|
+
actions: new Set(['stopped_alive_process']),
|
|
370
|
+
resourcesReleased: true,
|
|
371
|
+
});
|
|
372
|
+
store.recordEventAndTransitionState({
|
|
373
|
+
domainId: this.domain.domainId,
|
|
374
|
+
type: 'SERVICE_STOPPED',
|
|
375
|
+
payload: {
|
|
376
|
+
serviceId,
|
|
377
|
+
reason: 'recovered_after_crash',
|
|
378
|
+
action: 'cleared_backoff_lease',
|
|
379
|
+
},
|
|
380
|
+
timestamp: new Date().toISOString(),
|
|
381
|
+
});
|
|
382
|
+
}
|
|
383
|
+
}
|
|
384
|
+
}
|
|
385
|
+
report.recoveredServices = Array.from(serviceMap.entries()).map(([serviceId, entry]) => {
|
|
386
|
+
let action;
|
|
387
|
+
if (entry.actions.has('isolated_indeterminate')) {
|
|
388
|
+
action = 'isolated_indeterminate';
|
|
389
|
+
}
|
|
390
|
+
else if (entry.actions.has('stopped_alive_process')) {
|
|
391
|
+
action = 'stopped_alive_process';
|
|
392
|
+
}
|
|
393
|
+
else if (entry.actions.has('marked_dead')) {
|
|
394
|
+
action = 'marked_dead';
|
|
395
|
+
}
|
|
396
|
+
else {
|
|
397
|
+
action = 'cleaned_unspawned';
|
|
398
|
+
}
|
|
399
|
+
return {
|
|
400
|
+
serviceId,
|
|
401
|
+
instanceOpIds: entry.instanceOpIds,
|
|
402
|
+
action,
|
|
403
|
+
resourcesReleased: entry.resourcesReleased,
|
|
404
|
+
};
|
|
405
|
+
});
|
|
236
406
|
return report;
|
|
237
407
|
}
|
|
238
408
|
/** 进程组是否仍存在(僵尸也算存在;具体是否"能工作"由驱动的 terminateGroup 判定)。 */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine.js","sourceRoot":"","sources":["../../src/recovery/engine.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"engine.js","sourceRoot":"","sources":["../../src/recovery/engine.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { SnapshotDriver, SnapshotRef } from '../types.js';
|
|
2
|
+
export interface GitShadowDriverOptions {
|
|
3
|
+
execGitTimeoutMs?: number;
|
|
4
|
+
}
|
|
5
|
+
export declare class GitShadowSnapshotDriver implements SnapshotDriver {
|
|
6
|
+
readonly name = "git-shadow";
|
|
7
|
+
readonly coverage = "worktree_non_ignored";
|
|
8
|
+
private readonly timeoutMs;
|
|
9
|
+
private readonly snapshotRepos;
|
|
10
|
+
private readonly worktreeRepos;
|
|
11
|
+
constructor(options?: GitShadowDriverOptions);
|
|
12
|
+
private git;
|
|
13
|
+
assertGitRepo(cwd: string): Promise<{
|
|
14
|
+
repoRoot: string;
|
|
15
|
+
commonDir: string;
|
|
16
|
+
}>;
|
|
17
|
+
capture(roots: string[], options?: {
|
|
18
|
+
id?: string;
|
|
19
|
+
domainId?: string;
|
|
20
|
+
opId?: string;
|
|
21
|
+
includeIgnored?: boolean;
|
|
22
|
+
maxTreeSizeBytes?: number;
|
|
23
|
+
}): Promise<SnapshotRef>;
|
|
24
|
+
fingerprint(roots: string[], options?: {
|
|
25
|
+
against?: SnapshotRef;
|
|
26
|
+
}): Promise<string>;
|
|
27
|
+
restore(snapshot: SnapshotRef, _options?: {
|
|
28
|
+
force?: boolean;
|
|
29
|
+
}): Promise<{
|
|
30
|
+
unrestoredPaths: string[];
|
|
31
|
+
}>;
|
|
32
|
+
prune(snapshotIds: string[], options?: {
|
|
33
|
+
repoRoot?: string;
|
|
34
|
+
}): Promise<void>;
|
|
35
|
+
/**
|
|
36
|
+
* 从 linked worktree 自身反查所属仓库的 git common dir(不依赖进程内存映射,宿主重启后仍可用)
|
|
37
|
+
*/
|
|
38
|
+
private resolveWorktreeCommonDir;
|
|
39
|
+
materialize(snapshotId: string, newRoot: string, options?: {
|
|
40
|
+
repoRoot?: string;
|
|
41
|
+
}): Promise<{
|
|
42
|
+
worktreePath: string;
|
|
43
|
+
}>;
|
|
44
|
+
dematerialize(newRoot: string, options?: {
|
|
45
|
+
force?: boolean;
|
|
46
|
+
repoRoot?: string;
|
|
47
|
+
}): Promise<void>;
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=git-shadow.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"git-shadow.d.ts","sourceRoot":"","sources":["../../src/snapshot/git-shadow.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,cAAc,EACd,WAAW,EAEZ,MAAM,aAAa,CAAC;AAIrB,MAAM,WAAW,sBAAsB;IACrC,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAUD,qBAAa,uBAAwB,YAAW,cAAc;IAC5D,SAAgB,IAAI,gBAAgB;IACpC,SAAgB,QAAQ,0BAA0B;IAClD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAkC;IAChE,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAkC;IAEhE,YAAY,OAAO,CAAC,EAAE,sBAAsB,EAE3C;YAEa,GAAG;IAmBJ,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC,CAcxF;IAEY,OAAO,CAClB,KAAK,EAAE,MAAM,EAAE,EACf,OAAO,CAAC,EAAE;QACR,EAAE,CAAC,EAAE,MAAM,CAAC;QACZ,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,cAAc,CAAC,EAAE,OAAO,CAAC;QACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;KAC3B,GACA,OAAO,CAAC,WAAW,CAAC,CA+GtB;IAEY,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,WAAW,CAAA;KAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CA6C9F;IAEY,OAAO,CAClB,QAAQ,EAAE,WAAW,EACrB,QAAQ,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,GAC7B,OAAO,CAAC;QAAE,eAAe,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAyGxC;IAEY,KAAK,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAqBxF;IAED;;OAEG;YACW,wBAAwB;IAMzB,WAAW,CACtB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,GAC9B,OAAO,CAAC;QAAE,YAAY,EAAE,MAAM,CAAA;KAAE,CAAC,CAYnC;IAEY,aAAa,CACxB,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,GAC/C,OAAO,CAAC,IAAI,CAAC,CA2Bf;CACF"}
|