okit-cli 2.1.0 → 2.1.2

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.
Files changed (78) hide show
  1. package/README.md +103 -139
  2. package/dist/commands/auth.d.ts +4 -0
  3. package/dist/commands/auth.d.ts.map +1 -0
  4. package/dist/commands/auth.js +134 -0
  5. package/dist/commands/auth.js.map +1 -0
  6. package/dist/commands/check.d.ts +2 -0
  7. package/dist/commands/check.d.ts.map +1 -1
  8. package/dist/commands/check.js +122 -29
  9. package/dist/commands/check.js.map +1 -1
  10. package/dist/commands/menu.d.ts.map +1 -1
  11. package/dist/commands/menu.js +5 -0
  12. package/dist/commands/menu.js.map +1 -1
  13. package/dist/commands/profile.d.ts +18 -0
  14. package/dist/commands/profile.d.ts.map +1 -0
  15. package/dist/commands/profile.js +409 -0
  16. package/dist/commands/profile.js.map +1 -0
  17. package/dist/commands/relay.d.ts +14 -0
  18. package/dist/commands/relay.d.ts.map +1 -0
  19. package/dist/commands/relay.js +263 -0
  20. package/dist/commands/relay.js.map +1 -0
  21. package/dist/commands/repo.js +0 -16
  22. package/dist/commands/repo.js.map +1 -1
  23. package/dist/commands/uninstall.d.ts.map +1 -1
  24. package/dist/commands/uninstall.js +21 -72
  25. package/dist/commands/uninstall.js.map +1 -1
  26. package/dist/commands/upgrade.d.ts +1 -3
  27. package/dist/commands/upgrade.d.ts.map +1 -1
  28. package/dist/commands/upgrade.js +45 -110
  29. package/dist/commands/upgrade.js.map +1 -1
  30. package/dist/commands/vault.d.ts +14 -0
  31. package/dist/commands/vault.d.ts.map +1 -0
  32. package/dist/commands/vault.js +255 -0
  33. package/dist/commands/vault.js.map +1 -0
  34. package/dist/config/i18n.d.ts +71 -0
  35. package/dist/config/i18n.d.ts.map +1 -1
  36. package/dist/config/i18n.js +150 -0
  37. package/dist/config/i18n.js.map +1 -1
  38. package/dist/config/registry.d.ts +14 -6
  39. package/dist/config/registry.d.ts.map +1 -1
  40. package/dist/config/registry.js +638 -68
  41. package/dist/config/registry.js.map +1 -1
  42. package/dist/config/user.d.ts +4 -0
  43. package/dist/config/user.d.ts.map +1 -1
  44. package/dist/config/user.js +1 -0
  45. package/dist/config/user.js.map +1 -1
  46. package/dist/executor/deps/BrewDependencyProvider.d.ts.map +1 -1
  47. package/dist/executor/deps/BrewDependencyProvider.js +4 -2
  48. package/dist/executor/deps/BrewDependencyProvider.js.map +1 -1
  49. package/dist/executor/deps/NpmDependencyProvider.d.ts.map +1 -1
  50. package/dist/executor/deps/NpmDependencyProvider.js +4 -2
  51. package/dist/executor/deps/NpmDependencyProvider.js.map +1 -1
  52. package/dist/executor/deps/PipxDependencyProvider.d.ts.map +1 -1
  53. package/dist/executor/deps/PipxDependencyProvider.js +4 -2
  54. package/dist/executor/deps/PipxDependencyProvider.js.map +1 -1
  55. package/dist/executor/deps/UvToolDependencyProvider.d.ts.map +1 -1
  56. package/dist/executor/deps/UvToolDependencyProvider.js +4 -2
  57. package/dist/executor/deps/UvToolDependencyProvider.js.map +1 -1
  58. package/dist/executor/plan/registryDeps.d.ts.map +1 -1
  59. package/dist/executor/plan/registryDeps.js +13 -5
  60. package/dist/executor/plan/registryDeps.js.map +1 -1
  61. package/dist/executor/runner.d.ts.map +1 -1
  62. package/dist/executor/runner.js +11 -9
  63. package/dist/executor/runner.js.map +1 -1
  64. package/dist/main.js +194 -4
  65. package/dist/main.js.map +1 -1
  66. package/dist/relay/client.d.ts +29 -0
  67. package/dist/relay/client.d.ts.map +1 -0
  68. package/dist/relay/client.js +209 -0
  69. package/dist/relay/client.js.map +1 -0
  70. package/dist/utils/semver.d.ts +12 -0
  71. package/dist/utils/semver.d.ts.map +1 -0
  72. package/dist/utils/semver.js +71 -0
  73. package/dist/utils/semver.js.map +1 -0
  74. package/dist/vault/store.d.ts +51 -0
  75. package/dist/vault/store.d.ts.map +1 -0
  76. package/dist/vault/store.js +260 -0
  77. package/dist/vault/store.js.map +1 -0
  78. package/package.json +11 -4
@@ -0,0 +1,409 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.listProfiles = listProfiles;
40
+ exports.getProfile = getProfile;
41
+ exports.saveProfile = saveProfile;
42
+ exports.deleteProfile = deleteProfile;
43
+ exports.createProfile = createProfile;
44
+ exports.applyProfile = applyProfile;
45
+ exports.showProfiles = showProfiles;
46
+ exports.showProfileDetail = showProfileDetail;
47
+ exports.removeProfile = removeProfile;
48
+ exports.exportProfile = exportProfile;
49
+ exports.importProfile = importProfile;
50
+ exports.showProfileMenu = showProfileMenu;
51
+ const prompts_1 = __importDefault(require("prompts"));
52
+ const kleur_1 = __importDefault(require("kleur"));
53
+ const fs_extra_1 = __importDefault(require("fs-extra"));
54
+ const path_1 = __importDefault(require("path"));
55
+ const registry_1 = require("../config/registry");
56
+ const runner_1 = require("../executor/runner");
57
+ const i18n_1 = require("../config/i18n");
58
+ const PROFILES_DIR = path_1.default.join(registry_1.OKIT_DIR, "profiles");
59
+ async function ensureProfilesDir() {
60
+ await fs_extra_1.default.ensureDir(PROFILES_DIR);
61
+ }
62
+ function profilePath(name) {
63
+ return path_1.default.join(PROFILES_DIR, `${name}.json`);
64
+ }
65
+ async function listProfiles() {
66
+ await ensureProfilesDir();
67
+ const files = await fs_extra_1.default.readdir(PROFILES_DIR);
68
+ const profiles = [];
69
+ for (const file of files) {
70
+ if (!file.endsWith(".json"))
71
+ continue;
72
+ try {
73
+ const content = await fs_extra_1.default.readFile(path_1.default.join(PROFILES_DIR, file), "utf-8");
74
+ profiles.push(JSON.parse(content));
75
+ }
76
+ catch {
77
+ // skip invalid files
78
+ }
79
+ }
80
+ return profiles;
81
+ }
82
+ async function getProfile(name) {
83
+ const fp = profilePath(name);
84
+ if (!(await fs_extra_1.default.pathExists(fp)))
85
+ return null;
86
+ try {
87
+ const content = await fs_extra_1.default.readFile(fp, "utf-8");
88
+ return JSON.parse(content);
89
+ }
90
+ catch {
91
+ return null;
92
+ }
93
+ }
94
+ async function saveProfile(profile) {
95
+ await ensureProfilesDir();
96
+ await fs_extra_1.default.writeFile(profilePath(profile.name), JSON.stringify(profile, null, 2));
97
+ }
98
+ async function deleteProfile(name) {
99
+ const fp = profilePath(name);
100
+ if (!(await fs_extra_1.default.pathExists(fp)))
101
+ return false;
102
+ await fs_extra_1.default.remove(fp);
103
+ return true;
104
+ }
105
+ // okit profile create - interactive
106
+ async function createProfile() {
107
+ const registry = await (0, registry_1.loadRegistry)();
108
+ const availableTools = registry.steps
109
+ .filter((s) => (0, registry_1.resolveCmd)(s.install) !== undefined)
110
+ .map((s) => s.name);
111
+ const nameRes = await (0, prompts_1.default)({
112
+ type: "text",
113
+ name: "name",
114
+ message: (0, i18n_1.t)("profileName"),
115
+ validate: (v) => (v.trim().length > 0 ? true : (0, i18n_1.t)("profileNameRequired")),
116
+ });
117
+ if (!nameRes.name)
118
+ return;
119
+ const existing = await getProfile(nameRes.name);
120
+ if (existing) {
121
+ const overwrite = await (0, prompts_1.default)({
122
+ type: "confirm",
123
+ name: "yes",
124
+ message: (0, i18n_1.t)("profileExists"),
125
+ initial: false,
126
+ });
127
+ if (!overwrite.yes)
128
+ return;
129
+ }
130
+ const descRes = await (0, prompts_1.default)({
131
+ type: "text",
132
+ name: "desc",
133
+ message: (0, i18n_1.t)("profileDesc"),
134
+ });
135
+ const toolRes = await (0, prompts_1.default)({
136
+ type: "autocompleteMultiselect",
137
+ name: "tools",
138
+ message: (0, i18n_1.t)("profileSelectTools"),
139
+ choices: availableTools.map((name) => ({ title: name, value: name })),
140
+ suggest: (input, choices) => Promise.resolve(choices.filter((c) => c.title.toLowerCase().includes(input.toLowerCase()))),
141
+ });
142
+ if (!toolRes.tools || toolRes.tools.length === 0) {
143
+ console.log(kleur_1.default.yellow((0, i18n_1.t)("profileNoTools")));
144
+ return;
145
+ }
146
+ const profile = {
147
+ name: nameRes.name.trim(),
148
+ description: descRes.desc?.trim() || undefined,
149
+ tools: toolRes.tools,
150
+ };
151
+ await saveProfile(profile);
152
+ console.log(kleur_1.default.green(`\n${(0, i18n_1.t)("profileCreated")} ${profile.name} (${profile.tools.length} ${(0, i18n_1.t)("profileToolCount")})`));
153
+ }
154
+ // okit profile apply <name> - install all tools in profile
155
+ async function applyProfile(name) {
156
+ const profiles = await listProfiles();
157
+ if (profiles.length === 0) {
158
+ console.log(kleur_1.default.yellow((0, i18n_1.t)("profileEmpty")));
159
+ return;
160
+ }
161
+ let targetName = name;
162
+ if (!targetName) {
163
+ const res = await (0, prompts_1.default)({
164
+ type: "select",
165
+ name: "profile",
166
+ message: (0, i18n_1.t)("profileSelectApply"),
167
+ choices: profiles.map((p) => ({
168
+ title: `${p.name}${p.description ? kleur_1.default.gray(` - ${p.description}`) : ""} (${p.tools.length})`,
169
+ value: p.name,
170
+ })),
171
+ });
172
+ if (!res.profile)
173
+ return;
174
+ targetName = res.profile;
175
+ }
176
+ const profile = await getProfile(targetName);
177
+ if (!profile) {
178
+ console.log(kleur_1.default.red(`${(0, i18n_1.t)("profileNotFound")} ${targetName}`));
179
+ return;
180
+ }
181
+ const registry = await (0, registry_1.loadRegistry)();
182
+ const steps = registry.steps.filter((s) => profile.tools.includes(s.name));
183
+ const missing = profile.tools.filter((name) => !registry.steps.find((s) => s.name === name));
184
+ console.log(kleur_1.default.cyan(`\n${(0, i18n_1.t)("profileApplying")} ${profile.name}`));
185
+ if (profile.description) {
186
+ console.log(kleur_1.default.gray(` ${profile.description}`));
187
+ }
188
+ console.log(kleur_1.default.gray(` ${(0, i18n_1.t)("profileToolCount")}: ${steps.length}`));
189
+ if (missing.length > 0) {
190
+ console.log(kleur_1.default.yellow(` ${(0, i18n_1.t)("profileMissingTools")}: ${missing.join(", ")}`));
191
+ }
192
+ console.log();
193
+ // Show tools list
194
+ for (const step of steps) {
195
+ console.log(kleur_1.default.gray(` - ${step.name}`));
196
+ }
197
+ const confirm = await (0, prompts_1.default)({
198
+ type: "confirm",
199
+ name: "yes",
200
+ message: (0, i18n_1.t)("profileConfirmApply"),
201
+ initial: true,
202
+ });
203
+ if (!confirm.yes)
204
+ return;
205
+ console.log();
206
+ const results = await (0, runner_1.executeSteps)(steps, "install", registry);
207
+ const succeeded = results.filter((r) => r.success && r.action !== "skip").length;
208
+ const failed = results.filter((r) => !r.success && r.action !== "skip").length;
209
+ const skipped = results.filter((r) => r.action === "skip").length;
210
+ console.log(kleur_1.default.cyan(`\n${(0, i18n_1.t)("profileApplyResult")}`));
211
+ console.log(kleur_1.default.green(` ${(0, i18n_1.t)("success")}: ${succeeded}`));
212
+ if (failed > 0)
213
+ console.log(kleur_1.default.red(` ${(0, i18n_1.t)("failed")}: ${failed}`));
214
+ if (skipped > 0)
215
+ console.log(kleur_1.default.gray(` ${(0, i18n_1.t)("skipped")}: ${skipped}`));
216
+ }
217
+ // okit profile list
218
+ async function showProfiles() {
219
+ const profiles = await listProfiles();
220
+ if (profiles.length === 0) {
221
+ console.log(kleur_1.default.yellow((0, i18n_1.t)("profileEmpty")));
222
+ return;
223
+ }
224
+ console.log(kleur_1.default.cyan(`\n${(0, i18n_1.t)("profileListTitle")}\n`));
225
+ for (const p of profiles) {
226
+ console.log(` ${kleur_1.default.bold(p.name)}${p.description ? kleur_1.default.gray(` - ${p.description}`) : ""}`);
227
+ console.log(kleur_1.default.gray(` ${p.tools.join(", ")}`));
228
+ console.log();
229
+ }
230
+ }
231
+ // okit profile show <name>
232
+ async function showProfileDetail(name) {
233
+ const profile = await getProfile(name);
234
+ if (!profile) {
235
+ console.log(kleur_1.default.red(`${(0, i18n_1.t)("profileNotFound")} ${name}`));
236
+ return;
237
+ }
238
+ const registry = await (0, registry_1.loadRegistry)();
239
+ console.log(kleur_1.default.cyan(`\n ${kleur_1.default.bold(profile.name)}`));
240
+ if (profile.description) {
241
+ console.log(kleur_1.default.gray(` ${profile.description}`));
242
+ }
243
+ console.log();
244
+ for (const toolName of profile.tools) {
245
+ const step = registry.steps.find((s) => s.name === toolName);
246
+ if (!step) {
247
+ console.log(` ${kleur_1.default.red("?")} ${toolName} ${kleur_1.default.gray("(not in registry)")}`);
248
+ continue;
249
+ }
250
+ // Quick check if installed
251
+ const checkCmd = (0, registry_1.resolveCmd)(step.check);
252
+ if (checkCmd) {
253
+ try {
254
+ const { execSync } = await Promise.resolve().then(() => __importStar(require("child_process")));
255
+ execSync(checkCmd, { stdio: "ignore" });
256
+ console.log(` ${kleur_1.default.green("\u2713")} ${toolName}`);
257
+ }
258
+ catch {
259
+ console.log(` ${kleur_1.default.red("\u2717")} ${toolName} ${kleur_1.default.gray("(" + (0, i18n_1.t)("checkNotInstalled") + ")")}`);
260
+ }
261
+ }
262
+ else {
263
+ console.log(` ${kleur_1.default.gray("-")} ${toolName}`);
264
+ }
265
+ }
266
+ console.log();
267
+ }
268
+ // okit profile delete
269
+ async function removeProfile(name) {
270
+ if (!name) {
271
+ const profiles = await listProfiles();
272
+ if (profiles.length === 0) {
273
+ console.log(kleur_1.default.yellow((0, i18n_1.t)("profileEmpty")));
274
+ return;
275
+ }
276
+ const res = await (0, prompts_1.default)({
277
+ type: "select",
278
+ name: "profile",
279
+ message: (0, i18n_1.t)("profileSelectDelete"),
280
+ choices: profiles.map((p) => ({ title: p.name, value: p.name })),
281
+ });
282
+ if (!res.profile)
283
+ return;
284
+ name = res.profile;
285
+ }
286
+ const confirm = await (0, prompts_1.default)({
287
+ type: "confirm",
288
+ name: "yes",
289
+ message: `${(0, i18n_1.t)("profileConfirmDelete")} ${name}?`,
290
+ initial: false,
291
+ });
292
+ if (!confirm.yes)
293
+ return;
294
+ if (await deleteProfile(name)) {
295
+ console.log(kleur_1.default.green(`${(0, i18n_1.t)("profileDeleted")} ${name}`));
296
+ }
297
+ else {
298
+ console.log(kleur_1.default.red(`${(0, i18n_1.t)("profileNotFound")} ${name}`));
299
+ }
300
+ }
301
+ // okit profile export <name>
302
+ async function exportProfile(name, outputPath) {
303
+ if (!name) {
304
+ const profiles = await listProfiles();
305
+ if (profiles.length === 0) {
306
+ console.log(kleur_1.default.yellow((0, i18n_1.t)("profileEmpty")));
307
+ return;
308
+ }
309
+ const res = await (0, prompts_1.default)({
310
+ type: "select",
311
+ name: "profile",
312
+ message: (0, i18n_1.t)("profileSelectExport"),
313
+ choices: profiles.map((p) => ({ title: p.name, value: p.name })),
314
+ });
315
+ if (!res.profile)
316
+ return;
317
+ name = res.profile;
318
+ }
319
+ const profile = await getProfile(name);
320
+ if (!profile) {
321
+ console.log(kleur_1.default.red(`${(0, i18n_1.t)("profileNotFound")} ${name}`));
322
+ return;
323
+ }
324
+ const dest = outputPath || `okit-profile-${profile.name}.json`;
325
+ await fs_extra_1.default.writeFile(dest, JSON.stringify(profile, null, 2));
326
+ console.log(kleur_1.default.green(`${(0, i18n_1.t)("profileExported")} ${dest}`));
327
+ }
328
+ // okit profile import <file>
329
+ async function importProfile(filePath) {
330
+ if (!(await fs_extra_1.default.pathExists(filePath))) {
331
+ console.log(kleur_1.default.red(`${(0, i18n_1.t)("profileFileNotFound")} ${filePath}`));
332
+ return;
333
+ }
334
+ try {
335
+ const content = await fs_extra_1.default.readFile(filePath, "utf-8");
336
+ const profile = JSON.parse(content);
337
+ if (!profile.name || !Array.isArray(profile.tools)) {
338
+ console.log(kleur_1.default.red((0, i18n_1.t)("profileInvalidFormat")));
339
+ return;
340
+ }
341
+ const existing = await getProfile(profile.name);
342
+ if (existing) {
343
+ const overwrite = await (0, prompts_1.default)({
344
+ type: "confirm",
345
+ name: "yes",
346
+ message: `${(0, i18n_1.t)("profileExists")} (${profile.name})`,
347
+ initial: false,
348
+ });
349
+ if (!overwrite.yes)
350
+ return;
351
+ }
352
+ await saveProfile(profile);
353
+ console.log(kleur_1.default.green(`${(0, i18n_1.t)("profileImported")} ${profile.name} (${profile.tools.length} ${(0, i18n_1.t)("profileToolCount")})`));
354
+ }
355
+ catch {
356
+ console.log(kleur_1.default.red((0, i18n_1.t)("profileInvalidFormat")));
357
+ }
358
+ }
359
+ // Interactive profile menu
360
+ async function showProfileMenu() {
361
+ while (true) {
362
+ const profiles = await listProfiles();
363
+ const res = await (0, prompts_1.default)({
364
+ type: "select",
365
+ name: "action",
366
+ message: (0, i18n_1.t)("profileMenu"),
367
+ choices: [
368
+ { title: (0, i18n_1.t)("profileActionCreate"), value: "create" },
369
+ { title: `${(0, i18n_1.t)("profileActionApply")}${profiles.length > 0 ? ` (${profiles.length})` : ""}`, value: "apply" },
370
+ { title: (0, i18n_1.t)("profileActionList"), value: "list" },
371
+ { title: (0, i18n_1.t)("profileActionDelete"), value: "delete" },
372
+ { title: (0, i18n_1.t)("profileActionExport"), value: "export" },
373
+ { title: (0, i18n_1.t)("profileActionImport"), value: "import" },
374
+ { title: (0, i18n_1.t)("back"), value: "back" },
375
+ ],
376
+ });
377
+ switch (res.action) {
378
+ case "create":
379
+ await createProfile();
380
+ break;
381
+ case "apply":
382
+ await applyProfile();
383
+ break;
384
+ case "list":
385
+ await showProfiles();
386
+ break;
387
+ case "delete":
388
+ await removeProfile();
389
+ break;
390
+ case "export":
391
+ await exportProfile();
392
+ break;
393
+ case "import": {
394
+ const fileRes = await (0, prompts_1.default)({
395
+ type: "text",
396
+ name: "path",
397
+ message: (0, i18n_1.t)("profileImportPath"),
398
+ });
399
+ if (fileRes.path)
400
+ await importProfile(fileRes.path);
401
+ break;
402
+ }
403
+ case "back":
404
+ default:
405
+ return;
406
+ }
407
+ }
408
+ }
409
+ //# sourceMappingURL=profile.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"profile.js","sourceRoot":"","sources":["../../src/commands/profile.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ export declare function relayConfig(options: {
2
+ url?: string;
3
+ token?: string;
4
+ }): Promise<void>;
5
+ export declare function relayConnect(options: {
6
+ tunnel: string;
7
+ agent: string;
8
+ target?: string;
9
+ }): Promise<void>;
10
+ export declare function relayStatus(tunnel: string): Promise<void>;
11
+ export declare function relayCreate(tunnel?: string): Promise<void>;
12
+ export declare function relayAgents(): Promise<void>;
13
+ export declare function relayToken(agentName?: string): Promise<void>;
14
+ //# sourceMappingURL=relay.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"relay.d.ts","sourceRoot":"","sources":["../../src/commands/relay.ts"],"names":[],"mappings":"AAqBA,wBAAsB,WAAW,CAAC,OAAO,EAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAwC1F;AAGD,wBAAsB,YAAY,CAAC,OAAO,EAAE;IAC1C,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,GAAG,OAAO,CAAC,IAAI,CAAC,CA8BhB;AAGD,wBAAsB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAiB/D;AAGD,wBAAsB,WAAW,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA+BhE;AAGD,wBAAsB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CA8BjD;AAGD,wBAAsB,UAAU,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAmClE"}