@kodrunhq/claudefy 1.3.3 → 1.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 +135 -111
- package/dist/claude-json-sync/claude-json-sync.d.ts +12 -0
- package/dist/claude-json-sync/claude-json-sync.js +129 -0
- package/dist/claude-json-sync/claude-json-sync.js.map +1 -0
- package/dist/commands/doctor.js +9 -5
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/init.js +64 -60
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/join.js +62 -55
- package/dist/commands/join.js.map +1 -1
- package/dist/commands/override.js +32 -28
- package/dist/commands/override.js.map +1 -1
- package/dist/commands/pull.d.ts +1 -0
- package/dist/commands/pull.js +234 -186
- package/dist/commands/pull.js.map +1 -1
- package/dist/commands/push.d.ts +1 -0
- package/dist/commands/push.js +149 -80
- package/dist/commands/push.js.map +1 -1
- package/dist/commands/restore.js +31 -27
- package/dist/commands/restore.js.map +1 -1
- package/dist/config/config-manager.js +1 -0
- package/dist/config/config-manager.js.map +1 -1
- package/dist/config/defaults.d.ts +7 -1
- package/dist/config/defaults.js +20 -0
- package/dist/config/defaults.js.map +1 -1
- package/dist/config/types.d.ts +16 -0
- package/dist/lockfile/lockfile.d.ts +8 -0
- package/dist/lockfile/lockfile.js +101 -0
- package/dist/lockfile/lockfile.js.map +1 -0
- package/dist/merger/merger.js +19 -4
- package/dist/merger/merger.js.map +1 -1
- package/dist/path-mapper/path-mapper.js +1 -1
- package/dist/path-mapper/path-mapper.js.map +1 -1
- package/dist/secret-scanner/scanner.d.ts +7 -0
- package/dist/secret-scanner/scanner.js +17 -3
- package/dist/secret-scanner/scanner.js.map +1 -1
- package/dist/sync-filter/sync-filter.js +5 -0
- package/dist/sync-filter/sync-filter.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import { writeFileSync, readFileSync, unlinkSync, existsSync, mkdirSync } from "node:fs";
|
|
2
|
+
import { join } from "node:path";
|
|
3
|
+
import { output } from "../output.js";
|
|
4
|
+
const MAX_LOCK_AGE_MS = 10 * 60 * 1000; // 10 minutes
|
|
5
|
+
function isPidAlive(pid) {
|
|
6
|
+
try {
|
|
7
|
+
process.kill(pid, 0);
|
|
8
|
+
return true;
|
|
9
|
+
}
|
|
10
|
+
catch {
|
|
11
|
+
return false;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
// Sync I/O is intentional here — atomic lock acquisition with the `wx` flag
|
|
15
|
+
// requires synchronous file operations to prevent TOCTOU races between
|
|
16
|
+
// checking existence and creating the file.
|
|
17
|
+
//
|
|
18
|
+
// Re-entrancy contract: when a process already holds the lock (same PID),
|
|
19
|
+
// tryAcquire returns a re-entrant Lockfile whose release() is a no-op.
|
|
20
|
+
// This supports init→push and join→pull call chains in the same process.
|
|
21
|
+
// Callers must NOT spawn subprocesses that also acquire the lock — only
|
|
22
|
+
// same-PID in-process calls are re-entrant.
|
|
23
|
+
export class Lockfile {
|
|
24
|
+
lockPath;
|
|
25
|
+
reentrant;
|
|
26
|
+
constructor(lockPath, reentrant = false) {
|
|
27
|
+
this.lockPath = lockPath;
|
|
28
|
+
this.reentrant = reentrant;
|
|
29
|
+
}
|
|
30
|
+
static tryAcquire(command, quiet, claudefyDir) {
|
|
31
|
+
const lockPath = join(claudefyDir, ".lock");
|
|
32
|
+
if (existsSync(lockPath)) {
|
|
33
|
+
try {
|
|
34
|
+
const raw = readFileSync(lockPath, "utf-8");
|
|
35
|
+
const info = JSON.parse(raw);
|
|
36
|
+
const age = Date.now() - new Date(info.startedAt).getTime();
|
|
37
|
+
if (isPidAlive(info.pid) && age < MAX_LOCK_AGE_MS) {
|
|
38
|
+
if (info.pid === process.pid) {
|
|
39
|
+
// Re-entrant: same process already holds the lock
|
|
40
|
+
return new Lockfile(lockPath, true);
|
|
41
|
+
}
|
|
42
|
+
if (!quiet) {
|
|
43
|
+
output.info(`Another claudefy operation is in progress (PID ${info.pid}, ${info.command}). Skipping.\n` +
|
|
44
|
+
` If this is wrong, delete ${lockPath} and retry.`);
|
|
45
|
+
}
|
|
46
|
+
return null;
|
|
47
|
+
}
|
|
48
|
+
unlinkSync(lockPath);
|
|
49
|
+
}
|
|
50
|
+
catch {
|
|
51
|
+
try {
|
|
52
|
+
unlinkSync(lockPath);
|
|
53
|
+
}
|
|
54
|
+
catch {
|
|
55
|
+
// Already gone
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
const lockInfo = {
|
|
60
|
+
pid: process.pid,
|
|
61
|
+
command,
|
|
62
|
+
startedAt: new Date().toISOString(),
|
|
63
|
+
};
|
|
64
|
+
try {
|
|
65
|
+
mkdirSync(claudefyDir, { recursive: true });
|
|
66
|
+
writeFileSync(lockPath, JSON.stringify(lockInfo), { flag: "wx" });
|
|
67
|
+
}
|
|
68
|
+
catch (err) {
|
|
69
|
+
if (err.code === "EEXIST") {
|
|
70
|
+
if (!quiet) {
|
|
71
|
+
output.info("Another claudefy operation just started. Skipping.");
|
|
72
|
+
}
|
|
73
|
+
return null;
|
|
74
|
+
}
|
|
75
|
+
throw err;
|
|
76
|
+
}
|
|
77
|
+
return new Lockfile(lockPath);
|
|
78
|
+
}
|
|
79
|
+
release() {
|
|
80
|
+
if (this.reentrant)
|
|
81
|
+
return;
|
|
82
|
+
try {
|
|
83
|
+
unlinkSync(this.lockPath);
|
|
84
|
+
}
|
|
85
|
+
catch {
|
|
86
|
+
// Already removed
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
export async function withLock(command, quiet, claudefyDir, fn) {
|
|
91
|
+
const lock = Lockfile.tryAcquire(command, quiet, claudefyDir);
|
|
92
|
+
if (!lock)
|
|
93
|
+
return;
|
|
94
|
+
try {
|
|
95
|
+
await fn();
|
|
96
|
+
}
|
|
97
|
+
finally {
|
|
98
|
+
lock.release();
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
//# sourceMappingURL=lockfile.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lockfile.js","sourceRoot":"","sources":["../../src/lockfile/lockfile.ts"],"names":[],"mappings":"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"}
|
package/dist/merger/merger.js
CHANGED
|
@@ -3,11 +3,26 @@ export class Merger {
|
|
|
3
3
|
deepMergeJson(local, remote) {
|
|
4
4
|
return deepmerge(local, remote, {
|
|
5
5
|
arrayMerge: (target, source) => {
|
|
6
|
+
// Primitive arrays: strict-equality union
|
|
7
|
+
if (source.length > 0 && typeof source[0] !== "object") {
|
|
8
|
+
const seen = new Set(source);
|
|
9
|
+
const localOnly = target.filter((item) => !seen.has(item));
|
|
10
|
+
return [...source, ...localOnly];
|
|
11
|
+
}
|
|
12
|
+
// Empty source: preserve target
|
|
13
|
+
if (source.length === 0) {
|
|
14
|
+
return [...target];
|
|
15
|
+
}
|
|
16
|
+
// Object arrays: try key-based dedup
|
|
6
17
|
const key = this.findArrayKey(source);
|
|
7
|
-
if (
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
18
|
+
if (key) {
|
|
19
|
+
const remoteKeys = new Set(source.map((item) => item[key]));
|
|
20
|
+
const localOnly = target.filter((item) => !remoteKeys.has(item[key]));
|
|
21
|
+
return [...source, ...localOnly];
|
|
22
|
+
}
|
|
23
|
+
// Object arrays without identifiable key: JSON-based dedup
|
|
24
|
+
const sourceJson = new Set(source.map((item) => JSON.stringify(item)));
|
|
25
|
+
const localOnly = target.filter((item) => !sourceJson.has(JSON.stringify(item)));
|
|
11
26
|
return [...source, ...localOnly];
|
|
12
27
|
},
|
|
13
28
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"merger.js","sourceRoot":"","sources":["../../src/merger/merger.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,WAAW,CAAC;AAElC,MAAM,OAAO,MAAM;IACjB,aAAa,CACX,KAA8B,EAC9B,MAA+B;QAE/B,OAAO,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE;YAC9B,UAAU,EAAE,CAAC,MAAiB,EAAE,MAAiB,EAAE,EAAE;gBACnD,MAAM,
|
|
1
|
+
{"version":3,"file":"merger.js","sourceRoot":"","sources":["../../src/merger/merger.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,WAAW,CAAC;AAElC,MAAM,OAAO,MAAM;IACjB,aAAa,CACX,KAA8B,EAC9B,MAA+B;QAE/B,OAAO,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE;YAC9B,UAAU,EAAE,CAAC,MAAiB,EAAE,MAAiB,EAAE,EAAE;gBACnD,0CAA0C;gBAC1C,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,MAAM,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE,CAAC;oBACvD,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC;oBAC7B,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;oBAC3D,OAAO,CAAC,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC,CAAC;gBACnC,CAAC;gBAED,gCAAgC;gBAChC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACxB,OAAO,CAAC,GAAG,MAAM,CAAC,CAAC;gBACrB,CAAC;gBAED,qCAAqC;gBACrC,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;gBACtC,IAAI,GAAG,EAAE,CAAC;oBACR,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAE,IAAgC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;oBACzF,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAC7B,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,GAAG,CAAE,IAAgC,CAAC,GAAG,CAAC,CAAC,CAClE,CAAC;oBACF,OAAO,CAAC,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC,CAAC;gBACnC,CAAC;gBAED,2DAA2D;gBAC3D,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBACvE,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBACjF,OAAO,CAAC,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC,CAAC;YACnC,CAAC;SACF,CAAC,CAAC;IACL,CAAC;IAEO,YAAY,CAAC,GAAc;QACjC,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,GAAG,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC;QACnF,KAAK,MAAM,SAAS,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC;YAC9C,IACE,GAAG,CAAC,KAAK,CACP,CAAC,IAAI,EAAE,EAAE,CACP,IAAI,KAAK,IAAI;gBACb,OAAO,IAAI,KAAK,QAAQ;gBACxB,OAAQ,IAAgC,CAAC,SAAS,CAAC,KAAK,QAAQ,CACnE,EACD,CAAC;gBACD,OAAO,SAAS,CAAC;YACnB,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;CACF"}
|
|
@@ -86,7 +86,7 @@ export class PathMapper {
|
|
|
86
86
|
pathToDirName(localPath) {
|
|
87
87
|
// Claude Code encodes paths by replacing / with -
|
|
88
88
|
// e.g. /home/user/project -> -home-user-project
|
|
89
|
-
return localPath.replace(
|
|
89
|
+
return localPath.replace(/[\\/]/g, "-");
|
|
90
90
|
}
|
|
91
91
|
normalizePathField(value) {
|
|
92
92
|
for (const [alias, info] of Object.entries(this.links)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"path-mapper.js","sourceRoot":"","sources":["../../src/path-mapper/path-mapper.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"path-mapper.js","sourceRoot":"","sources":["../../src/path-mapper/path-mapper.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,14 @@ export interface SecretFinding {
|
|
|
4
4
|
pattern: string;
|
|
5
5
|
snippet: string;
|
|
6
6
|
}
|
|
7
|
+
export interface CustomPattern {
|
|
8
|
+
name: string;
|
|
9
|
+
regex: string;
|
|
10
|
+
flags?: string;
|
|
11
|
+
}
|
|
7
12
|
export declare class SecretScanner {
|
|
13
|
+
private readonly patterns;
|
|
14
|
+
constructor(customPatterns?: CustomPattern[]);
|
|
8
15
|
scanFile(filePath: string): Promise<SecretFinding[]>;
|
|
9
16
|
scanFiles(filePaths: string[]): Promise<SecretFinding[]>;
|
|
10
17
|
}
|
|
@@ -16,10 +16,24 @@ const SECRET_PATTERNS = [
|
|
|
16
16
|
{ name: "Stripe Live Key", regex: /sk_live_[0-9a-zA-Z]{24,}/ },
|
|
17
17
|
{ name: "Stripe Test Key", regex: /sk_test_[0-9a-zA-Z]{24,}/ },
|
|
18
18
|
{ name: "Azure Connection String", regex: /AccountKey=[A-Za-z0-9+/=]{44,}/ },
|
|
19
|
-
{ name: "Twilio API Key", regex:
|
|
20
|
-
{ name: "Datadog API Key", regex:
|
|
19
|
+
{ name: "Twilio API Key", regex: /\bSK[0-9a-fA-F]{32}\b/ },
|
|
20
|
+
{ name: "Datadog API Key", regex: /\b(?:ddapi|ddog|dd)_[0-9a-zA-Z]{32,}\b/ },
|
|
21
21
|
];
|
|
22
22
|
export class SecretScanner {
|
|
23
|
+
patterns;
|
|
24
|
+
constructor(customPatterns = []) {
|
|
25
|
+
const custom = customPatterns.map((p) => {
|
|
26
|
+
try {
|
|
27
|
+
return { name: p.name, regex: new RegExp(p.regex, p.flags) };
|
|
28
|
+
}
|
|
29
|
+
catch (e) {
|
|
30
|
+
throw new Error(`Invalid regex in custom pattern "${p.name}": ${e.message}`, {
|
|
31
|
+
cause: e,
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
});
|
|
35
|
+
this.patterns = [...SECRET_PATTERNS, ...custom];
|
|
36
|
+
}
|
|
23
37
|
async scanFile(filePath) {
|
|
24
38
|
// Skip encrypted files — they're binary blobs, not plaintext secrets
|
|
25
39
|
if (filePath.endsWith(".age"))
|
|
@@ -32,7 +46,7 @@ export class SecretScanner {
|
|
|
32
46
|
const findings = [];
|
|
33
47
|
const lines = content.split("\n");
|
|
34
48
|
for (let i = 0; i < lines.length; i++) {
|
|
35
|
-
for (const pattern of
|
|
49
|
+
for (const pattern of this.patterns) {
|
|
36
50
|
const match = pattern.regex.exec(lines[i]);
|
|
37
51
|
if (match) {
|
|
38
52
|
// Redact matched secret, showing only prefix and suffix
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scanner.js","sourceRoot":"","sources":["../../src/secret-scanner/scanner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"scanner.js","sourceRoot":"","sources":["../../src/secret-scanner/scanner.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
import { readdir, lstat } from "node:fs/promises";
|
|
2
2
|
import { join } from "node:path";
|
|
3
|
+
// Items that are always denied regardless of user configuration.
|
|
4
|
+
// These contain sensitive credentials and must never be synced.
|
|
5
|
+
const HARDCODED_DENYLIST = [".credentials.json", "settings.local.json"];
|
|
3
6
|
export class SyncFilter {
|
|
4
7
|
config;
|
|
5
8
|
constructor(config) {
|
|
@@ -27,6 +30,8 @@ export class SyncFilter {
|
|
|
27
30
|
};
|
|
28
31
|
}
|
|
29
32
|
getTier(name) {
|
|
33
|
+
if (HARDCODED_DENYLIST.includes(name))
|
|
34
|
+
return "deny";
|
|
30
35
|
if (this.config.allowlist.includes(name))
|
|
31
36
|
return "allow";
|
|
32
37
|
if (this.config.denylist.includes(name))
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync-filter.js","sourceRoot":"","sources":["../../src/sync-filter/sync-filter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAIjC,MAAM,OAAO,UAAU;IACb,MAAM,CAAmB;IAEjC,YAAY,MAAwB;QAClC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,SAAiB;QAC9B,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,SAAS,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QAClE,MAAM,KAAK,GAAqB,EAAE,CAAC;QAEnC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACtC,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YAC7C,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,QAAQ,CAAC,CAAC;YAEpC,KAAK,CAAC,IAAI,CAAC;gBACT,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,IAAI;gBACJ,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE;gBAChC,SAAS,EAAE,KAAK,CAAC,IAAI;aACtB,CAAC,CAAC;QACL,CAAC;QAED,OAAO;YACL,KAAK;YACL,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC;YAClD,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC;YAChD,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC;SACnD,CAAC;IACJ,CAAC;IAED,OAAO,CAAC,IAAY;QAClB,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC;YAAE,OAAO,OAAO,CAAC;QACzD,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC;YAAE,OAAO,MAAM,CAAC;QACvD,OAAO,SAAS,CAAC;IACnB,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"sync-filter.js","sourceRoot":"","sources":["../../src/sync-filter/sync-filter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAIjC,iEAAiE;AACjE,gEAAgE;AAChE,MAAM,kBAAkB,GAAG,CAAC,mBAAmB,EAAE,qBAAqB,CAAC,CAAC;AAExE,MAAM,OAAO,UAAU;IACb,MAAM,CAAmB;IAEjC,YAAY,MAAwB;QAClC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,SAAiB;QAC9B,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,SAAS,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QAClE,MAAM,KAAK,GAAqB,EAAE,CAAC;QAEnC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACtC,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YAC7C,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,QAAQ,CAAC,CAAC;YAEpC,KAAK,CAAC,IAAI,CAAC;gBACT,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,IAAI;gBACJ,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE;gBAChC,SAAS,EAAE,KAAK,CAAC,IAAI;aACtB,CAAC,CAAC;QACL,CAAC;QAED,OAAO;YACL,KAAK;YACL,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC;YAClD,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC;YAChD,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC;SACnD,CAAC;IACJ,CAAC;IAED,OAAO,CAAC,IAAY;QAClB,IAAI,kBAAkB,CAAC,QAAQ,CAAC,IAAI,CAAC;YAAE,OAAO,MAAM,CAAC;QACrD,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC;YAAE,OAAO,OAAO,CAAC;QACzD,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC;YAAE,OAAO,MAAM,CAAC;QACvD,OAAO,SAAS,CAAC;IACnB,CAAC;CACF"}
|