@p0security/cli 0.18.10 → 0.18.11
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/build/dist/common/keys.js +40 -7
- package/build/dist/common/keys.js.map +1 -1
- package/build/dist/drivers/api.d.ts +0 -6
- package/build/dist/drivers/api.js +41 -51
- package/build/dist/drivers/api.js.map +1 -1
- package/build/dist/opentelemetry/instrumentation.js +6 -14
- package/build/dist/opentelemetry/instrumentation.js.map +1 -1
- package/build/tsconfig.tsbuildinfo +1 -1
- package/package.json +6 -4
|
@@ -31,9 +31,6 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
31
31
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
32
32
|
});
|
|
33
33
|
};
|
|
34
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
35
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
36
|
-
};
|
|
37
34
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
38
35
|
exports.createKeyPair = exports.PRIVATE_KEY_PATH = exports.PUBLIC_KEY_PATH = exports.P0_KEY_FOLDER = void 0;
|
|
39
36
|
/** Copyright © 2024-present P0 Security
|
|
@@ -47,8 +44,8 @@ This file is part of @p0security/cli
|
|
|
47
44
|
You should have received a copy of the GNU General Public License along with @p0security/cli. If not, see <https://www.gnu.org/licenses/>.
|
|
48
45
|
**/
|
|
49
46
|
const util_1 = require("../util");
|
|
47
|
+
const crypto = __importStar(require("crypto"));
|
|
50
48
|
const fs = __importStar(require("fs/promises"));
|
|
51
|
-
const node_forge_1 = __importDefault(require("node-forge"));
|
|
52
49
|
const path = __importStar(require("path"));
|
|
53
50
|
exports.P0_KEY_FOLDER = path.join(util_1.P0_PATH, "ssh");
|
|
54
51
|
exports.PUBLIC_KEY_PATH = path.join(exports.P0_KEY_FOLDER, "id_rsa.pub");
|
|
@@ -64,9 +61,14 @@ const createKeyPair = () => __awaiter(void 0, void 0, void 0, function* () {
|
|
|
64
61
|
return { publicKey, privateKey };
|
|
65
62
|
}
|
|
66
63
|
else {
|
|
67
|
-
const
|
|
68
|
-
|
|
69
|
-
|
|
64
|
+
const keyPair = crypto.generateKeyPairSync("rsa", {
|
|
65
|
+
modulusLength: 2048,
|
|
66
|
+
});
|
|
67
|
+
const privateKey = keyPair.privateKey.export({
|
|
68
|
+
type: "pkcs8",
|
|
69
|
+
format: "pem",
|
|
70
|
+
});
|
|
71
|
+
const publicKey = toOpenSshFormat(keyPair.publicKey);
|
|
70
72
|
yield fs.mkdir(path.dirname(exports.PUBLIC_KEY_PATH), { recursive: true });
|
|
71
73
|
yield fs.writeFile(exports.PUBLIC_KEY_PATH, publicKey, { mode: 0o600 });
|
|
72
74
|
yield fs.writeFile(exports.PRIVATE_KEY_PATH, privateKey, { mode: 0o600 });
|
|
@@ -83,4 +85,35 @@ const fileExists = (path) => __awaiter(void 0, void 0, void 0, function* () {
|
|
|
83
85
|
return false;
|
|
84
86
|
}
|
|
85
87
|
});
|
|
88
|
+
/**
|
|
89
|
+
* Convert a crypto.KeyObject RSA public key to OpenSSH format
|
|
90
|
+
*/
|
|
91
|
+
const toOpenSshFormat = (keyObject) => {
|
|
92
|
+
// Export the key in JWK format to get n and e values
|
|
93
|
+
const jwk = keyObject.export({ format: "jwk" });
|
|
94
|
+
// Convert base64url to buffer
|
|
95
|
+
const nBuffer = Buffer.from(jwk.n, "base64url");
|
|
96
|
+
const eBuffer = Buffer.from(jwk.e, "base64url");
|
|
97
|
+
// Create SSH wire format
|
|
98
|
+
const keyType = "ssh-rsa";
|
|
99
|
+
const keyTypeBuffer = Buffer.from(keyType);
|
|
100
|
+
// SSH wire format: [key_type_len][key_type][e_len][e][n_len][n]
|
|
101
|
+
const keyTypeLen = Buffer.alloc(4);
|
|
102
|
+
keyTypeLen.writeUInt32BE(keyTypeBuffer.length, 0);
|
|
103
|
+
const eLen = Buffer.alloc(4);
|
|
104
|
+
eLen.writeUInt32BE(eBuffer.length, 0);
|
|
105
|
+
const nLen = Buffer.alloc(4);
|
|
106
|
+
nLen.writeUInt32BE(nBuffer.length, 0);
|
|
107
|
+
const sshWireFormat = Buffer.concat([
|
|
108
|
+
keyTypeLen,
|
|
109
|
+
keyTypeBuffer,
|
|
110
|
+
eLen,
|
|
111
|
+
eBuffer,
|
|
112
|
+
nLen,
|
|
113
|
+
nBuffer,
|
|
114
|
+
]);
|
|
115
|
+
// Base64 encode and format as OpenSSH key
|
|
116
|
+
const base64Key = sshWireFormat.toString("base64");
|
|
117
|
+
return `${keyType} ${base64Key} p0-generated-key`;
|
|
118
|
+
};
|
|
86
119
|
//# sourceMappingURL=keys.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keys.js","sourceRoot":"","sources":["../../../src/common/keys.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"keys.js","sourceRoot":"","sources":["../../../src/common/keys.ts"],"names":[],"mappings":"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"}
|
|
@@ -36,9 +36,3 @@ export declare const auditSshSessionActivity: (args: {
|
|
|
36
36
|
action: `ssh.session.${"end" | "start"}`;
|
|
37
37
|
debug: boolean | undefined;
|
|
38
38
|
}) => Promise<void>;
|
|
39
|
-
export declare const baseFetch: <T>(authn: Authn, args: {
|
|
40
|
-
url: string;
|
|
41
|
-
method: string;
|
|
42
|
-
body?: string;
|
|
43
|
-
maxTimeoutMs?: number;
|
|
44
|
-
}) => Promise<T>;
|
|
@@ -56,7 +56,7 @@ var __asyncGenerator = (this && this.__asyncGenerator) || function (thisArg, _ar
|
|
|
56
56
|
function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }
|
|
57
57
|
};
|
|
58
58
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
59
|
-
exports.
|
|
59
|
+
exports.auditSshSessionActivity = exports.fetchWithStreaming = exports.submitPublicKey = exports.fetchAdminLsCommand = exports.fetchCommand = exports.fetchStreamingCommand = exports.fetchIntegrationConfig = exports.fetchPermissionRequestDetails = exports.fetchAccountInfo = exports.fetchOrgData = exports.tracesUrl = void 0;
|
|
60
60
|
const version_1 = require("../version");
|
|
61
61
|
const config_1 = require("./config");
|
|
62
62
|
const env_1 = require("./env");
|
|
@@ -71,17 +71,17 @@ const commandUrl = (tenant) => `${tenantUrl(tenant)}/command/`;
|
|
|
71
71
|
const adminLsCommandUrl = (tenant) => `${tenantUrl(tenant)}/command/ls`;
|
|
72
72
|
const tracesUrl = (tenant) => `${tenantUrl(tenant)}/traces`;
|
|
73
73
|
exports.tracesUrl = tracesUrl;
|
|
74
|
-
const fetchOrgData = (orgId) => __awaiter(void 0, void 0, void 0, function* () { return
|
|
74
|
+
const fetchOrgData = (orgId) => __awaiter(void 0, void 0, void 0, function* () { return baseFetch({ url: tenantOrgUrl(orgId), method: "GET" }); });
|
|
75
75
|
exports.fetchOrgData = fetchOrgData;
|
|
76
76
|
const fetchAccountInfo = (authn) => __awaiter(void 0, void 0, void 0, function* () {
|
|
77
|
-
return (
|
|
77
|
+
return authFetch(authn, {
|
|
78
78
|
url: `${tenantUrl(authn.identity.org.slug)}/account`,
|
|
79
79
|
method: "GET",
|
|
80
80
|
});
|
|
81
81
|
});
|
|
82
82
|
exports.fetchAccountInfo = fetchAccountInfo;
|
|
83
83
|
const fetchPermissionRequestDetails = (authn, requestId) => __awaiter(void 0, void 0, void 0, function* () {
|
|
84
|
-
return (
|
|
84
|
+
return authFetch(authn, {
|
|
85
85
|
url: `${tenantUrl(authn.identity.org.slug)}/permission-requests/${requestId}`,
|
|
86
86
|
method: "GET",
|
|
87
87
|
maxTimeoutMs: DEFAULT_PERMISSION_REQUEST_TIMEOUT,
|
|
@@ -89,7 +89,7 @@ const fetchPermissionRequestDetails = (authn, requestId) => __awaiter(void 0, vo
|
|
|
89
89
|
});
|
|
90
90
|
exports.fetchPermissionRequestDetails = fetchPermissionRequestDetails;
|
|
91
91
|
const fetchIntegrationConfig = (authn, integration) => __awaiter(void 0, void 0, void 0, function* () {
|
|
92
|
-
return (
|
|
92
|
+
return authFetch(authn, {
|
|
93
93
|
url: `${tenantUrl(authn.identity.org.slug)}/integrations/${integration}/config`,
|
|
94
94
|
method: "GET",
|
|
95
95
|
});
|
|
@@ -110,7 +110,7 @@ const fetchStreamingCommand = function (authn, args, argv, debug) {
|
|
|
110
110
|
};
|
|
111
111
|
exports.fetchStreamingCommand = fetchStreamingCommand;
|
|
112
112
|
const fetchCommand = (authn, args, argv) => __awaiter(void 0, void 0, void 0, function* () {
|
|
113
|
-
return (
|
|
113
|
+
return authFetch(authn, {
|
|
114
114
|
url: commandUrl(authn.identity.org.slug),
|
|
115
115
|
method: "POST",
|
|
116
116
|
body: JSON.stringify({
|
|
@@ -122,7 +122,7 @@ const fetchCommand = (authn, args, argv) => __awaiter(void 0, void 0, void 0, fu
|
|
|
122
122
|
exports.fetchCommand = fetchCommand;
|
|
123
123
|
/** Special admin 'ls' command that can retrieve results for all users. Requires 'owner' permission. */
|
|
124
124
|
const fetchAdminLsCommand = (authn, args, argv) => __awaiter(void 0, void 0, void 0, function* () {
|
|
125
|
-
return (
|
|
125
|
+
return authFetch(authn, {
|
|
126
126
|
url: adminLsCommandUrl(authn.identity.org.slug),
|
|
127
127
|
method: "POST",
|
|
128
128
|
body: JSON.stringify({
|
|
@@ -133,7 +133,7 @@ const fetchAdminLsCommand = (authn, args, argv) => __awaiter(void 0, void 0, voi
|
|
|
133
133
|
});
|
|
134
134
|
exports.fetchAdminLsCommand = fetchAdminLsCommand;
|
|
135
135
|
const submitPublicKey = (authn, args) => __awaiter(void 0, void 0, void 0, function* () {
|
|
136
|
-
return (
|
|
136
|
+
return authFetch(authn, {
|
|
137
137
|
url: publicKeysUrl(authn.identity.org.slug),
|
|
138
138
|
method: "POST",
|
|
139
139
|
body: JSON.stringify({
|
|
@@ -264,7 +264,7 @@ const auditSshSessionActivity = (args) => __awaiter(void 0, void 0, void 0, func
|
|
|
264
264
|
(0, stdio_1.print2)(`Submitting audit log for request: ${requestId}, action: ${action}, sshSessionId: ${sshSessionId}`);
|
|
265
265
|
}
|
|
266
266
|
try {
|
|
267
|
-
yield (
|
|
267
|
+
yield authFetch(authn, {
|
|
268
268
|
url: sshAuditUrl(authn.identity.org.slug),
|
|
269
269
|
method: "POST",
|
|
270
270
|
body: JSON.stringify({
|
|
@@ -285,52 +285,17 @@ const auditSshSessionActivity = (args) => __awaiter(void 0, void 0, void 0, func
|
|
|
285
285
|
}
|
|
286
286
|
});
|
|
287
287
|
exports.auditSshSessionActivity = auditSshSessionActivity;
|
|
288
|
-
const baseFetch = (
|
|
288
|
+
const baseFetch = (args) => __awaiter(void 0, void 0, void 0, function* () {
|
|
289
289
|
const { version } = version_1.p0VersionInfo;
|
|
290
|
-
const { url, method, body, maxTimeoutMs } = args;
|
|
291
|
-
const
|
|
292
|
-
const fetchOptions = {
|
|
293
|
-
method,
|
|
294
|
-
headers: {
|
|
295
|
-
authorization: `Bearer ${token}`,
|
|
296
|
-
"Content-Type": "application/json",
|
|
297
|
-
"User-Agent": `P0 CLI/${version}`,
|
|
298
|
-
},
|
|
299
|
-
body,
|
|
300
|
-
keepalive: true,
|
|
301
|
-
};
|
|
290
|
+
const { url, method, body, maxTimeoutMs, headers } = args;
|
|
291
|
+
const fetchOptions = Object.assign({ method, headers: Object.assign(Object.assign({}, (headers !== null && headers !== void 0 ? headers : {})), { "Content-Type": "application/json", "User-Agent": `P0 CLI/${version}` }), body, keepalive: true }, (maxTimeoutMs ? { signal: AbortSignal.timeout(maxTimeoutMs) } : {}));
|
|
302
292
|
try {
|
|
303
|
-
const response = yield fetch(url,
|
|
304
|
-
? Object.assign(Object.assign({}, fetchOptions), { signal: AbortSignal.timeout(maxTimeoutMs) }) : fetchOptions);
|
|
293
|
+
const response = yield fetch(url, fetchOptions);
|
|
305
294
|
const text = yield response.text();
|
|
306
|
-
const
|
|
307
|
-
if (
|
|
308
|
-
throw
|
|
295
|
+
const errorMessage = tryParseHtmlError(text);
|
|
296
|
+
if (errorMessage) {
|
|
297
|
+
throw errorMessage;
|
|
309
298
|
}
|
|
310
|
-
return data;
|
|
311
|
-
}
|
|
312
|
-
catch (error) {
|
|
313
|
-
if (error instanceof TypeError && error.message === "fetch failed") {
|
|
314
|
-
throw `Network error: Unable to reach the server at ${url}.`;
|
|
315
|
-
}
|
|
316
|
-
else {
|
|
317
|
-
throw error;
|
|
318
|
-
}
|
|
319
|
-
}
|
|
320
|
-
});
|
|
321
|
-
exports.baseFetch = baseFetch;
|
|
322
|
-
const unauthenticatedApiFetch = (url, method, body) => __awaiter(void 0, void 0, void 0, function* () {
|
|
323
|
-
const { version } = version_1.p0VersionInfo;
|
|
324
|
-
try {
|
|
325
|
-
const fetchConfig = {
|
|
326
|
-
method,
|
|
327
|
-
headers: {
|
|
328
|
-
"Content-Type": "application/json",
|
|
329
|
-
"User-Agent": `P0 CLI/${version}`,
|
|
330
|
-
},
|
|
331
|
-
};
|
|
332
|
-
const response = yield fetch(url, Object.assign(Object.assign({}, fetchConfig), { body }));
|
|
333
|
-
const text = yield response.text();
|
|
334
299
|
const data = JSON.parse(text);
|
|
335
300
|
if ("error" in data) {
|
|
336
301
|
throw data.error;
|
|
@@ -346,4 +311,29 @@ const unauthenticatedApiFetch = (url, method, body) => __awaiter(void 0, void 0,
|
|
|
346
311
|
}
|
|
347
312
|
}
|
|
348
313
|
});
|
|
314
|
+
const authFetch = (authn, args) => __awaiter(void 0, void 0, void 0, function* () {
|
|
315
|
+
const token = yield authn.getToken();
|
|
316
|
+
const headers = {
|
|
317
|
+
authorization: `Bearer ${token}`,
|
|
318
|
+
};
|
|
319
|
+
return baseFetch(Object.assign(Object.assign({}, args), { headers }));
|
|
320
|
+
});
|
|
321
|
+
/** Check if text contains an error code in the html title by looking for 3-digit http codes.
|
|
322
|
+
*
|
|
323
|
+
* Example text:
|
|
324
|
+
* <!doctype html><meta charset="utf-8"><meta name=viewport content="width=device-width, initial-scale=1"><title>429</title>429 Too Many Requests
|
|
325
|
+
*/
|
|
326
|
+
const tryParseHtmlError = (text) => {
|
|
327
|
+
const match = text.match(/<title>(\d{3})<\/title>/);
|
|
328
|
+
if (!match) {
|
|
329
|
+
return undefined;
|
|
330
|
+
}
|
|
331
|
+
const statusCode = match[1];
|
|
332
|
+
const statusText = text
|
|
333
|
+
// Remove the title tag
|
|
334
|
+
.replace(/<title>(\d{3})<\/title>/g, "")
|
|
335
|
+
// Remove meta HTML tags
|
|
336
|
+
.replace(/<[^>]+>/g, "");
|
|
337
|
+
return `${statusText}: (HTTP status ${statusCode})`;
|
|
338
|
+
};
|
|
349
339
|
//# sourceMappingURL=api.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../../src/drivers/api.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAWA,wCAA2C;AAC3C,qCAA2C;AAC3C,+BAAsC;AACtC,mCAAiC;AACjC,gDAAkC;AAGlC,MAAM,kCAAkC,GAAG,KAAK,CAAC,CAAC,YAAY;AAE9D,MAAM,YAAY,GAAG,CAAC,MAAc,EAAE,EAAE,eACtC,OAAA,GAAG,MAAA,MAAA,IAAA,wBAAe,GAAE,0CAAE,MAAM,mCAAI,mBAAa,CAAC,MAAM,SAAS,MAAM,EAAE,CAAA,EAAA,CAAC;AACxE,MAAM,SAAS,GAAG,CAAC,MAAc,EAAE,EAAE,CAAC,GAAG,IAAA,wBAAe,GAAE,CAAC,MAAM,MAAM,MAAM,EAAE,CAAC;AAChF,MAAM,aAAa,GAAG,CAAC,MAAc,EAAE,EAAE,CACvC,GAAG,SAAS,CAAC,MAAM,CAAC,+BAA+B,CAAC;AACtD,MAAM,WAAW,GAAG,CAAC,MAAc,EAAE,EAAE,CACrC,GAAG,SAAS,CAAC,MAAM,CAAC,yBAAyB,CAAC;AAEhD,MAAM,UAAU,GAAG,CAAC,MAAc,EAAE,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC;AACvE,MAAM,iBAAiB,GAAG,CAAC,MAAc,EAAE,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC,aAAa,CAAC;AACzE,MAAM,SAAS,GAAG,CAAC,MAAc,EAAE,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC;AAA9D,QAAA,SAAS,aAAqD;AAEpE,MAAM,YAAY,GAAG,CAAU,KAAa,EAAE,EAAE,kDACrD,OAAA,
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../../src/drivers/api.ts"],"names":[],"mappings":"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"}
|
|
@@ -22,8 +22,10 @@ You should have received a copy of the GNU General Public License along with @p0
|
|
|
22
22
|
**/
|
|
23
23
|
const version_1 = require("../version");
|
|
24
24
|
const buffered_exporter_1 = require("./buffered-exporter");
|
|
25
|
-
const auto_instrumentations_node_1 = require("@opentelemetry/auto-instrumentations-node");
|
|
26
25
|
const exporter_trace_otlp_http_1 = require("@opentelemetry/exporter-trace-otlp-http");
|
|
26
|
+
const instrumentation_dns_1 = require("@opentelemetry/instrumentation-dns");
|
|
27
|
+
const instrumentation_net_1 = require("@opentelemetry/instrumentation-net");
|
|
28
|
+
const instrumentation_undici_1 = require("@opentelemetry/instrumentation-undici");
|
|
27
29
|
const resources_1 = require("@opentelemetry/resources");
|
|
28
30
|
const sdk_node_1 = require("@opentelemetry/sdk-node");
|
|
29
31
|
const semantic_conventions_1 = require("@opentelemetry/semantic-conventions");
|
|
@@ -35,19 +37,9 @@ const sdk = new sdk_node_1.NodeSDK({
|
|
|
35
37
|
}),
|
|
36
38
|
traceExporter: exports.bufferedExporter,
|
|
37
39
|
instrumentations: [
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
enabled: false,
|
|
42
|
-
},
|
|
43
|
-
"@opentelemetry/instrumentation-dns": {
|
|
44
|
-
enabled: false,
|
|
45
|
-
},
|
|
46
|
-
// Spans such as `grpc.google.firestore.v1.Firestore/Listen` are part of long running background tasks
|
|
47
|
-
"@opentelemetry/instrumentation-grpc": {
|
|
48
|
-
ignoreGrpcMethods: ["Listen"],
|
|
49
|
-
},
|
|
50
|
-
}),
|
|
40
|
+
new instrumentation_dns_1.DnsInstrumentation(),
|
|
41
|
+
new instrumentation_net_1.NetInstrumentation(),
|
|
42
|
+
new instrumentation_undici_1.UndiciInstrumentation(),
|
|
51
43
|
],
|
|
52
44
|
});
|
|
53
45
|
const setExporterAfterLogin = (url, token) => __awaiter(void 0, void 0, void 0, function* () {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"instrumentation.js","sourceRoot":"","sources":["../../../src/opentelemetry/instrumentation.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA;;;;;;;;;GASG;AACH,wCAA2C;AAC3C,2DAA2D;AAC3D,
|
|
1
|
+
{"version":3,"file":"instrumentation.js","sourceRoot":"","sources":["../../../src/opentelemetry/instrumentation.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA;;;;;;;;;GASG;AACH,wCAA2C;AAC3C,2DAA2D;AAC3D,sFAA4E;AAC5E,4EAAwE;AACxE,4EAAwE;AACxE,kFAA8E;AAC9E,wDAAkE;AAClE,sDAAkD;AAClD,8EAG6C;AAEhC,QAAA,gBAAgB,GAAG,IAAI,wCAAoB,EAAE,CAAC;AAE3D,MAAM,GAAG,GAAG,IAAI,kBAAO,CAAC;IACtB,QAAQ,EAAE,IAAA,kCAAsB,EAAC;QAC/B,CAAC,wCAAiB,CAAC,EAAE,uBAAa,CAAC,IAAI;QACvC,CAAC,2CAAoB,CAAC,EAAE,uBAAa,CAAC,OAAO;KAC9C,CAAC;IACF,aAAa,EAAE,wBAAgB;IAC/B,gBAAgB,EAAE;QAChB,IAAI,wCAAkB,EAAE;QACxB,IAAI,wCAAkB,EAAE;QACxB,IAAI,8CAAqB,EAAE;KAC5B;CACF,CAAC,CAAC;AAEI,MAAM,qBAAqB,GAAG,CAAO,GAAW,EAAE,KAAa,EAAE,EAAE;IACxE,MAAM,YAAY,GAAG,IAAI,4CAAiB,CAAC;QACzC,GAAG;QACH,OAAO,EAAE;YACP,aAAa,EAAE,UAAU,KAAK,EAAE;SACjC;KACF,CAAC,CAAC;IAEH,wBAAgB,CAAC,oBAAoB,CAAC,YAAY,CAAC,CAAC;AACtD,CAAC,CAAA,CAAC;AATW,QAAA,qBAAqB,yBAShC;AAEK,MAAM,YAAY,GAAG,GAAG,EAAE;IAC/B,GAAG,CAAC,KAAK,EAAE,CAAC;AACd,CAAC,CAAC;AAFW,QAAA,YAAY,gBAEvB;AAEF,MAAM,WAAW,GAAG,GAAG,EAAE;IACvB,KAAK,GAAG,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE;QAC/B,OAAO,CAAC,IAAI,EAAE,CAAC;IACjB,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,+EAA+E;AAC/E,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;AAClC,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;AACnC,OAAO,CAAC,EAAE,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;AACtC,OAAO,CAAC,EAAE,CAAC,mBAAmB,EAAE,WAAW,CAAC,CAAC"}
|