pepr 0.1.19 → 0.1.21
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 +1 -1
- package/dist/pepr-cli.js +115 -250
- package/dist/pepr-core.js +898 -0
- package/dist/types-672dd6e4.js +163 -0
- package/package.json +5 -4
- package/src/lib/k8s/tls.ts +59 -38
- package/src/lib/k8s/webhook.ts +2 -3
- package/tsconfig.json +3 -0
- package/dist/pepr-cli.js.map +0 -1
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
// SPDX-FileCopyrightText: 2023-Present The Pepr Authors
|
|
6
|
+
/**
|
|
7
|
+
* Enumeration representing different logging levels.
|
|
8
|
+
*/
|
|
9
|
+
var LogLevel;
|
|
10
|
+
(function (LogLevel) {
|
|
11
|
+
LogLevel[LogLevel["debug"] = 0] = "debug";
|
|
12
|
+
LogLevel[LogLevel["info"] = 1] = "info";
|
|
13
|
+
LogLevel[LogLevel["warn"] = 2] = "warn";
|
|
14
|
+
LogLevel[LogLevel["error"] = 3] = "error";
|
|
15
|
+
})(LogLevel || (LogLevel = {}));
|
|
16
|
+
var ConsoleColors;
|
|
17
|
+
(function (ConsoleColors) {
|
|
18
|
+
ConsoleColors["Reset"] = "\u001B[0m";
|
|
19
|
+
ConsoleColors["Bright"] = "\u001B[1m";
|
|
20
|
+
ConsoleColors["Dim"] = "\u001B[2m";
|
|
21
|
+
ConsoleColors["Underscore"] = "\u001B[4m";
|
|
22
|
+
ConsoleColors["Blink"] = "\u001B[5m";
|
|
23
|
+
ConsoleColors["Reverse"] = "\u001B[7m";
|
|
24
|
+
ConsoleColors["Hidden"] = "\u001B[8m";
|
|
25
|
+
ConsoleColors["FgBlack"] = "\u001B[30m";
|
|
26
|
+
ConsoleColors["FgRed"] = "\u001B[31m";
|
|
27
|
+
ConsoleColors["FgGreen"] = "\u001B[32m";
|
|
28
|
+
ConsoleColors["FgYellow"] = "\u001B[33m";
|
|
29
|
+
ConsoleColors["FgBlue"] = "\u001B[34m";
|
|
30
|
+
ConsoleColors["FgMagenta"] = "\u001B[35m";
|
|
31
|
+
ConsoleColors["FgCyan"] = "\u001B[36m";
|
|
32
|
+
ConsoleColors["FgWhite"] = "\u001B[37m";
|
|
33
|
+
ConsoleColors["BgBlack"] = "\u001B[40m";
|
|
34
|
+
ConsoleColors["BgRed"] = "\u001B[41m";
|
|
35
|
+
ConsoleColors["BgGreen"] = "\u001B[42m";
|
|
36
|
+
ConsoleColors["BgYellow"] = "\u001B[43m";
|
|
37
|
+
ConsoleColors["BgBlue"] = "\u001B[44m";
|
|
38
|
+
ConsoleColors["BgMagenta"] = "\u001B[45m";
|
|
39
|
+
ConsoleColors["BgCyan"] = "\u001B[46m";
|
|
40
|
+
ConsoleColors["BgWhite"] = "\u001B[47m";
|
|
41
|
+
})(ConsoleColors || (ConsoleColors = {}));
|
|
42
|
+
/**
|
|
43
|
+
* Simple logger class that logs messages at different log levels.
|
|
44
|
+
*/
|
|
45
|
+
class Logger {
|
|
46
|
+
/**
|
|
47
|
+
* Create a new logger instance.
|
|
48
|
+
* @param logLevel - The minimum log level to log messages for.
|
|
49
|
+
*/
|
|
50
|
+
constructor(logLevel) {
|
|
51
|
+
this._logLevel = logLevel;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Change the log level of the logger.
|
|
55
|
+
* @param logLevel - The log level to log the message at.
|
|
56
|
+
*/
|
|
57
|
+
SetLogLevel(logLevel) {
|
|
58
|
+
this._logLevel = LogLevel[logLevel];
|
|
59
|
+
this.debug(`Log level set to ${logLevel}`);
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Log a debug message.
|
|
63
|
+
* @param message - The message to log.
|
|
64
|
+
*/
|
|
65
|
+
debug(message, prefix) {
|
|
66
|
+
this.log(LogLevel.debug, message, prefix);
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Log an info message.
|
|
70
|
+
* @param message - The message to log.
|
|
71
|
+
*/
|
|
72
|
+
info(message, prefix) {
|
|
73
|
+
this.log(LogLevel.info, message, prefix);
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Log a warning message.
|
|
77
|
+
* @param message - The message to log.
|
|
78
|
+
*/
|
|
79
|
+
warn(message, prefix) {
|
|
80
|
+
this.log(LogLevel.warn, message, prefix);
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Log an error message.
|
|
84
|
+
* @param message - The message to log.
|
|
85
|
+
*/
|
|
86
|
+
error(message, prefix) {
|
|
87
|
+
this.log(LogLevel.error, message, prefix);
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Log a message at the specified log level.
|
|
91
|
+
* @param logLevel - The log level of the message.
|
|
92
|
+
* @param message - The message to log.
|
|
93
|
+
*/
|
|
94
|
+
log(logLevel, message, callerPrefix = "") {
|
|
95
|
+
const color = {
|
|
96
|
+
[LogLevel.debug]: ConsoleColors.FgBlack,
|
|
97
|
+
[LogLevel.info]: ConsoleColors.FgCyan,
|
|
98
|
+
[LogLevel.warn]: ConsoleColors.FgYellow,
|
|
99
|
+
[LogLevel.error]: ConsoleColors.FgRed,
|
|
100
|
+
};
|
|
101
|
+
if (logLevel >= this._logLevel) {
|
|
102
|
+
// Prefix the message with the colored log level.
|
|
103
|
+
let prefix = "[" + LogLevel[logLevel] + "]\t" + callerPrefix;
|
|
104
|
+
prefix = this.colorize(prefix, color[logLevel]);
|
|
105
|
+
// If the message is not a string, use the debug method to log the object.
|
|
106
|
+
if (typeof message !== "string") {
|
|
107
|
+
console.log(prefix);
|
|
108
|
+
console.debug("%o", message);
|
|
109
|
+
}
|
|
110
|
+
else {
|
|
111
|
+
console.log(prefix + "\t" + message);
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
colorize(text, color) {
|
|
116
|
+
return color + text + ConsoleColors.Reset;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
var Log = new Logger(LogLevel.info);
|
|
120
|
+
|
|
121
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
122
|
+
// SPDX-FileCopyrightText: 2023-Present The Pepr Authors
|
|
123
|
+
exports.Operation = void 0;
|
|
124
|
+
(function (Operation) {
|
|
125
|
+
Operation["CREATE"] = "CREATE";
|
|
126
|
+
Operation["UPDATE"] = "UPDATE";
|
|
127
|
+
Operation["DELETE"] = "DELETE";
|
|
128
|
+
Operation["CONNECT"] = "CONNECT";
|
|
129
|
+
})(exports.Operation || (exports.Operation = {}));
|
|
130
|
+
|
|
131
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
132
|
+
// SPDX-FileCopyrightText: 2023-Present The Pepr Authors
|
|
133
|
+
/**
|
|
134
|
+
* The behavior of this module when an error occurs.
|
|
135
|
+
*/
|
|
136
|
+
exports.ErrorBehavior = void 0;
|
|
137
|
+
(function (ErrorBehavior) {
|
|
138
|
+
ErrorBehavior["ignore"] = "ignore";
|
|
139
|
+
ErrorBehavior["audit"] = "audit";
|
|
140
|
+
ErrorBehavior["reject"] = "reject";
|
|
141
|
+
})(exports.ErrorBehavior || (exports.ErrorBehavior = {}));
|
|
142
|
+
/**
|
|
143
|
+
* The phase of the Kubernetes admission webhook that the capability is registered for.
|
|
144
|
+
*
|
|
145
|
+
* Currently only `mutate` is supported.
|
|
146
|
+
*/
|
|
147
|
+
exports.HookPhase = void 0;
|
|
148
|
+
(function (HookPhase) {
|
|
149
|
+
HookPhase["mutate"] = "mutate";
|
|
150
|
+
HookPhase["valdiate"] = "validate";
|
|
151
|
+
})(exports.HookPhase || (exports.HookPhase = {}));
|
|
152
|
+
/**
|
|
153
|
+
* The type of Kubernetes mutating webhook event ethat the capability action is registered for.
|
|
154
|
+
*/
|
|
155
|
+
exports.Event = void 0;
|
|
156
|
+
(function (Event) {
|
|
157
|
+
Event["Create"] = "create";
|
|
158
|
+
Event["Update"] = "update";
|
|
159
|
+
Event["Delete"] = "delete";
|
|
160
|
+
Event["CreateOrUpdate"] = "createOrUpdate";
|
|
161
|
+
})(exports.Event || (exports.Event = {}));
|
|
162
|
+
|
|
163
|
+
exports.Log = Log;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "pepr",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.21",
|
|
4
4
|
"description": "Kubernetes application engine",
|
|
5
5
|
"author": "Defense Unicorns",
|
|
6
6
|
"homepage": "https://github.com/defenseunicorns/pepr",
|
|
@@ -22,15 +22,14 @@
|
|
|
22
22
|
}
|
|
23
23
|
},
|
|
24
24
|
"scripts": {
|
|
25
|
-
"webhook": "node dist/default.js",
|
|
26
25
|
"build": "rollup -c",
|
|
27
|
-
"start": "rollup -c -w --watch.onEnd 'sleep 1 && node dist/pepr-test.js'",
|
|
28
26
|
"test": "ava",
|
|
29
27
|
"lint": "npx eslint src",
|
|
30
28
|
"lint:fix": "npm run lint -- --fix",
|
|
31
29
|
"prettier": "npx prettier src --check",
|
|
32
30
|
"prettier:fix": "npm run prettier -- --write",
|
|
33
|
-
"prepublishOnly": "rm -fr dist/* && npm run lint:fix && npm run prettier:fix && npm run test && npm run build"
|
|
31
|
+
"prepublishOnly": "rm -fr dist/* && npm run lint:fix && npm run prettier:fix && npm run test && npm run build",
|
|
32
|
+
"e2e-dev": "npm run build && docker buildx build --tag pepr:dev . && k3d image import pepr:dev && node dist/pepr-cli.js deploy -f -i pepr:dev"
|
|
34
33
|
},
|
|
35
34
|
"dependencies": {
|
|
36
35
|
"@kubernetes/client-node": "^0.18.1",
|
|
@@ -38,6 +37,7 @@
|
|
|
38
37
|
"@rollup/plugin-node-resolve": "^15.0.1",
|
|
39
38
|
"@rollup/plugin-typescript": "^11.0.0",
|
|
40
39
|
"@types/ramda": "^0.28.23",
|
|
40
|
+
"body-parser": "^1.20.2",
|
|
41
41
|
"chokidar": "^3.5.3",
|
|
42
42
|
"commander": "^10.0.0",
|
|
43
43
|
"express": "^4.18.2",
|
|
@@ -52,6 +52,7 @@
|
|
|
52
52
|
"uuid": "^9.0.0"
|
|
53
53
|
},
|
|
54
54
|
"devDependencies": {
|
|
55
|
+
"@types/express": "^4.17.17",
|
|
55
56
|
"@types/node-forge": "^1.3.2",
|
|
56
57
|
"@types/prompts": "^2.4.4",
|
|
57
58
|
"@types/uuid": "^9.0.1",
|
package/src/lib/k8s/tls.ts
CHANGED
|
@@ -1,57 +1,78 @@
|
|
|
1
|
-
// SPDX-License-Identifier: Apache-2.0
|
|
2
|
-
// SPDX-FileCopyrightText: 2023-Present The Pepr Authors
|
|
3
|
-
|
|
4
|
-
// @todo: quick and dirty temp tls chain for testing, to be replaced at runtime
|
|
5
|
-
// Don't freak out, this is a self-signed cert for testing purposes only.
|
|
6
1
|
import forge from "node-forge";
|
|
7
2
|
|
|
3
|
+
const caName = "Pepr Ephemeral CA";
|
|
4
|
+
|
|
8
5
|
export interface TLSOut {
|
|
9
6
|
ca: string;
|
|
10
7
|
crt: string;
|
|
11
8
|
key: string;
|
|
12
9
|
}
|
|
13
10
|
|
|
11
|
+
/**
|
|
12
|
+
* Generates a self-signed CA and server certificate with Subject Alternative Names (SANs) for the K8s webhook.
|
|
13
|
+
*
|
|
14
|
+
* @param {string} name - The name to use for the server certificate's Common Name and SAN DNS entry.
|
|
15
|
+
* @returns {TLSOut} - An object containing the Base64-encoded CA, server certificate, and server private key.
|
|
16
|
+
*/
|
|
14
17
|
export function genTLS(name: string): TLSOut {
|
|
15
|
-
// Generate a new CA key pair
|
|
18
|
+
// Generate a new CA key pair and create a self-signed CA certificate
|
|
16
19
|
const caKeys = forge.pki.rsa.generateKeyPair(2048);
|
|
17
|
-
const caCert =
|
|
18
|
-
|
|
19
|
-
caCert.
|
|
20
|
-
caCert.validity.notBefore = new Date();
|
|
21
|
-
caCert.validity.notAfter = new Date();
|
|
22
|
-
caCert.validity.notAfter.setFullYear(caCert.validity.notBefore.getFullYear() + 1);
|
|
23
|
-
const caAttrs = [
|
|
20
|
+
const caCert = genCert(caKeys, caName, [{ name: "commonName", value: caName }]);
|
|
21
|
+
|
|
22
|
+
caCert.setExtensions([
|
|
24
23
|
{
|
|
25
|
-
name: "
|
|
26
|
-
|
|
24
|
+
name: "basicConstraints",
|
|
25
|
+
cA: true,
|
|
27
26
|
},
|
|
28
|
-
];
|
|
29
|
-
caCert.setSubject(caAttrs);
|
|
30
|
-
caCert.setIssuer(caAttrs);
|
|
31
|
-
caCert.sign(caKeys.privateKey, forge.md.sha256.create());
|
|
32
|
-
|
|
33
|
-
// Generate a new key pair
|
|
34
|
-
const keys = forge.pki.rsa.generateKeyPair(2048);
|
|
35
|
-
const cert = forge.pki.createCertificate();
|
|
36
|
-
cert.publicKey = keys.publicKey;
|
|
37
|
-
cert.serialNumber = "01";
|
|
38
|
-
cert.validity.notBefore = new Date();
|
|
39
|
-
cert.validity.notAfter = new Date();
|
|
40
|
-
cert.validity.notAfter.setFullYear(cert.validity.notBefore.getFullYear() + 1);
|
|
41
|
-
const attrs = [
|
|
42
27
|
{
|
|
43
|
-
name: "
|
|
44
|
-
|
|
28
|
+
name: "keyUsage",
|
|
29
|
+
keyCertSign: true,
|
|
30
|
+
digitalSignature: true,
|
|
31
|
+
nonRepudiation: true,
|
|
32
|
+
keyEncipherment: true,
|
|
33
|
+
dataEncipherment: true,
|
|
45
34
|
},
|
|
46
|
-
];
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
35
|
+
]);
|
|
36
|
+
|
|
37
|
+
// Generate a new server key pair and create a server certificate signed by the CA
|
|
38
|
+
const serverKeys = forge.pki.rsa.generateKeyPair(2048);
|
|
39
|
+
const serverCert = genCert(serverKeys, `${name}.pepr-system.svc`, caCert.subject.attributes);
|
|
40
|
+
|
|
41
|
+
// Sign both certificates with the CA private key
|
|
42
|
+
caCert.sign(caKeys.privateKey, forge.md.sha256.create());
|
|
43
|
+
serverCert.sign(caKeys.privateKey, forge.md.sha256.create());
|
|
50
44
|
|
|
51
|
-
// Convert the keys and certificates to PEM format
|
|
45
|
+
// Convert the keys and certificates to PEM format and Base64-encode them
|
|
52
46
|
const ca = Buffer.from(forge.pki.certificateToPem(caCert)).toString("base64");
|
|
53
|
-
const key = Buffer.from(forge.pki.privateKeyToPem(
|
|
54
|
-
const crt = Buffer.from(forge.pki.certificateToPem(
|
|
47
|
+
const key = Buffer.from(forge.pki.privateKeyToPem(serverKeys.privateKey)).toString("base64");
|
|
48
|
+
const crt = Buffer.from(forge.pki.certificateToPem(serverCert)).toString("base64");
|
|
55
49
|
|
|
56
50
|
return { ca, key, crt };
|
|
57
51
|
}
|
|
52
|
+
|
|
53
|
+
function genCert(key: forge.pki.rsa.KeyPair, name: string, issuer: forge.pki.CertificateField[]) {
|
|
54
|
+
const crt = forge.pki.createCertificate();
|
|
55
|
+
crt.publicKey = key.publicKey;
|
|
56
|
+
crt.serialNumber = "01";
|
|
57
|
+
crt.validity.notBefore = new Date();
|
|
58
|
+
crt.validity.notAfter = new Date();
|
|
59
|
+
crt.validity.notAfter.setFullYear(crt.validity.notBefore.getFullYear() + 1);
|
|
60
|
+
|
|
61
|
+
// Add SANs to the server certificate
|
|
62
|
+
crt.setExtensions([
|
|
63
|
+
{
|
|
64
|
+
name: "subjectAltName",
|
|
65
|
+
altNames: [
|
|
66
|
+
{
|
|
67
|
+
type: 2, // DNS
|
|
68
|
+
value: name,
|
|
69
|
+
},
|
|
70
|
+
],
|
|
71
|
+
},
|
|
72
|
+
]);
|
|
73
|
+
|
|
74
|
+
// Set the server certificate's issuer to the CA
|
|
75
|
+
crt.setIssuer(issuer);
|
|
76
|
+
|
|
77
|
+
return crt;
|
|
78
|
+
}
|
package/src/lib/k8s/webhook.ts
CHANGED
|
@@ -31,10 +31,9 @@ const peprIgnore: V1LabelSelectorRequirement = {
|
|
|
31
31
|
|
|
32
32
|
export class Webhook {
|
|
33
33
|
private name: string;
|
|
34
|
-
private image: string;
|
|
35
34
|
private tls: TLSOut;
|
|
36
35
|
|
|
37
|
-
|
|
36
|
+
public image: string;
|
|
38
37
|
|
|
39
38
|
constructor(private readonly config: ModuleConfig) {
|
|
40
39
|
this.name = `pepr-${config.uuid}`;
|
|
@@ -168,7 +167,7 @@ export class Webhook {
|
|
|
168
167
|
apiGroups: ["*"],
|
|
169
168
|
apiVersions: ["*"],
|
|
170
169
|
operations: ["CREATE", "UPDATE", "DELETE"],
|
|
171
|
-
resources: ["
|
|
170
|
+
resources: ["*/*"],
|
|
172
171
|
},
|
|
173
172
|
],
|
|
174
173
|
// @todo: track side effects state
|
package/tsconfig.json
CHANGED
package/dist/pepr-cli.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pepr-cli.js","sources":["../src/cli/banner.ts","../src/lib/logger.ts","../src/lib/k8s/types.ts","../src/lib/types.ts","../src/lib/k8s/tls.ts","../src/lib/k8s/webhook.ts","../src/cli/build.ts","../src/cli/capability.ts","../src/cli/deploy.ts","../src/cli/init/utils.ts","../src/cli/init/templates.ts","../src/cli/init/walkthrough.ts","../src/cli/init/index.ts","../src/cli/root.ts","../src/cli/test.ts","../src/cli/index.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["gzipSync","dumpYaml","logger","KubeConfig","CoreV1Api","RbacAuthorizationV1Api","AppsV1Api","AdmissionregistrationV1Api","path","fs","resolve","rollup","prompt","uuid","uuidv5","uuidv4","inspect","execSync","Command","promisify","execCallback","watch"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AACA;AAEO,MAAM,MAAM,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SAgEb;;ACnET;AACA;AAEA;;AAEG;AACH,IAAY,QAKX,CAAA;AALD,CAAA,UAAY,QAAQ,EAAA;AAClB,IAAA,QAAA,CAAA,QAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAS,CAAA;AACT,IAAA,QAAA,CAAA,QAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAQ,CAAA;AACR,IAAA,QAAA,CAAA,QAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAQ,CAAA;AACR,IAAA,QAAA,CAAA,QAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAS,CAAA;AACX,CAAC,EALW,QAAQ,KAAR,QAAQ,GAKnB,EAAA,CAAA,CAAA,CAAA;AAED,IAAK,aA0BJ,CAAA;AA1BD,CAAA,UAAK,aAAa,EAAA;AAChB,IAAA,aAAA,CAAA,OAAA,CAAA,GAAA,WAAiB,CAAA;AACjB,IAAA,aAAA,CAAA,QAAA,CAAA,GAAA,WAAkB,CAAA;AAClB,IAAA,aAAA,CAAA,KAAA,CAAA,GAAA,WAAe,CAAA;AACf,IAAA,aAAA,CAAA,YAAA,CAAA,GAAA,WAAsB,CAAA;AACtB,IAAA,aAAA,CAAA,OAAA,CAAA,GAAA,WAAiB,CAAA;AACjB,IAAA,aAAA,CAAA,SAAA,CAAA,GAAA,WAAmB,CAAA;AACnB,IAAA,aAAA,CAAA,QAAA,CAAA,GAAA,WAAkB,CAAA;AAElB,IAAA,aAAA,CAAA,SAAA,CAAA,GAAA,YAAoB,CAAA;AACpB,IAAA,aAAA,CAAA,OAAA,CAAA,GAAA,YAAkB,CAAA;AAClB,IAAA,aAAA,CAAA,SAAA,CAAA,GAAA,YAAoB,CAAA;AACpB,IAAA,aAAA,CAAA,UAAA,CAAA,GAAA,YAAqB,CAAA;AACrB,IAAA,aAAA,CAAA,QAAA,CAAA,GAAA,YAAmB,CAAA;AACnB,IAAA,aAAA,CAAA,WAAA,CAAA,GAAA,YAAsB,CAAA;AACtB,IAAA,aAAA,CAAA,QAAA,CAAA,GAAA,YAAmB,CAAA;AACnB,IAAA,aAAA,CAAA,SAAA,CAAA,GAAA,YAAoB,CAAA;AAEpB,IAAA,aAAA,CAAA,SAAA,CAAA,GAAA,YAAoB,CAAA;AACpB,IAAA,aAAA,CAAA,OAAA,CAAA,GAAA,YAAkB,CAAA;AAClB,IAAA,aAAA,CAAA,SAAA,CAAA,GAAA,YAAoB,CAAA;AACpB,IAAA,aAAA,CAAA,UAAA,CAAA,GAAA,YAAqB,CAAA;AACrB,IAAA,aAAA,CAAA,QAAA,CAAA,GAAA,YAAmB,CAAA;AACnB,IAAA,aAAA,CAAA,WAAA,CAAA,GAAA,YAAsB,CAAA;AACtB,IAAA,aAAA,CAAA,QAAA,CAAA,GAAA,YAAmB,CAAA;AACnB,IAAA,aAAA,CAAA,SAAA,CAAA,GAAA,YAAoB,CAAA;AACtB,CAAC,EA1BI,aAAa,KAAb,aAAa,GA0BjB,EAAA,CAAA,CAAA,CAAA;AAED;;AAEG;MACU,MAAM,CAAA;AAGjB;;;AAGG;AACH,IAAA,WAAA,CAAY,QAAkB,EAAA;AAC5B,QAAA,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;KAC3B;AAED;;;AAGG;AACI,IAAA,WAAW,CAAC,QAAgB,EAAA;AACjC,QAAA,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;AACpC,QAAA,IAAI,CAAC,KAAK,CAAC,oBAAoB,QAAQ,CAAA,CAAE,CAAC,CAAC;KAC5C;AAED;;;AAGG;IACI,KAAK,CAAI,OAAU,EAAE,MAAe,EAAA;QACzC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;KAC3C;AAED;;;AAGG;IACI,IAAI,CAAI,OAAU,EAAE,MAAe,EAAA;QACxC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;KAC1C;AAED;;;AAGG;IACI,IAAI,CAAI,OAAU,EAAE,MAAe,EAAA;QACxC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;KAC1C;AAED;;;AAGG;IACI,KAAK,CAAI,OAAU,EAAE,MAAe,EAAA;QACzC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;KAC3C;AAED;;;;AAIG;AACK,IAAA,GAAG,CAAI,QAAkB,EAAE,OAAU,EAAE,YAAY,GAAG,EAAE,EAAA;AAC9D,QAAA,MAAM,KAAK,GAAG;AACZ,YAAA,CAAC,QAAQ,CAAC,KAAK,GAAG,aAAa,CAAC,OAAO;AACvC,YAAA,CAAC,QAAQ,CAAC,IAAI,GAAG,aAAa,CAAC,MAAM;AACrC,YAAA,CAAC,QAAQ,CAAC,IAAI,GAAG,aAAa,CAAC,QAAQ;AACvC,YAAA,CAAC,QAAQ,CAAC,KAAK,GAAG,aAAa,CAAC,KAAK;SACtC,CAAC;AAEF,QAAA,IAAI,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE;;AAE9B,YAAA,IAAI,MAAM,GAAG,GAAG,GAAG,QAAQ,CAAC,QAAQ,CAAC,GAAG,KAAK,GAAG,YAAY,CAAC;AAE7D,YAAA,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;;AAGhD,YAAA,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;AAC/B,gBAAA,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AACpB,gBAAA,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AAC9B,aAAA;AAAM,iBAAA;gBACL,OAAO,CAAC,GAAG,CAAC,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,CAAC;AACtC,aAAA;AACF,SAAA;KACF;IAEO,QAAQ,CAAC,IAAY,EAAE,KAAoB,EAAA;AACjD,QAAA,OAAO,KAAK,GAAG,IAAI,GAAG,aAAa,CAAC,KAAK,CAAC;KAC3C;AACF,CAAA;AAED,UAAe,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;;AClIxC;AACA;AAIA,IAAY,SAKX,CAAA;AALD,CAAA,UAAY,SAAS,EAAA;AACnB,IAAA,SAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,SAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,SAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,SAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACrB,CAAC,EALW,SAAS,KAAT,SAAS,GAKpB,EAAA,CAAA,CAAA;;ACVD;AACA;AAKA;;AAEG;AACH,IAAY,aAIX,CAAA;AAJD,CAAA,UAAY,aAAa,EAAA;AACvB,IAAA,aAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,aAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,aAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACnB,CAAC,EAJW,aAAa,KAAb,aAAa,GAIxB,EAAA,CAAA,CAAA,CAAA;AAED;;;;AAIG;AACH,IAAY,SAGX,CAAA;AAHD,CAAA,UAAY,SAAS,EAAA;AACnB,IAAA,SAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,SAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACvB,CAAC,EAHW,SAAS,KAAT,SAAS,GAGpB,EAAA,CAAA,CAAA,CAAA;AASD;;AAEG;AAEH,IAAY,KAKX,CAAA;AALD,CAAA,UAAY,KAAK,EAAA;AACf,IAAA,KAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,KAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,KAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,KAAA,CAAA,gBAAA,CAAA,GAAA,gBAAiC,CAAA;AACnC,CAAC,EALW,KAAK,KAAL,KAAK,GAKhB,EAAA,CAAA,CAAA;;ACzCD;AAaM,SAAU,MAAM,CAAC,IAAY,EAAA;;AAEjC,IAAA,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;IACnD,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,iBAAiB,EAAE,CAAC;AAC7C,IAAA,MAAM,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;AACpC,IAAA,MAAM,CAAC,YAAY,GAAG,IAAI,CAAC;IAC3B,MAAM,CAAC,QAAQ,CAAC,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC;IACvC,MAAM,CAAC,QAAQ,CAAC,QAAQ,GAAG,IAAI,IAAI,EAAE,CAAC;AACtC,IAAA,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,CAAC;AAClF,IAAA,MAAM,OAAO,GAAG;AACd,QAAA;AACE,YAAA,IAAI,EAAE,YAAY;AAClB,YAAA,KAAK,EAAE,mBAAmB;AAC3B,SAAA;KACF,CAAC;AACF,IAAA,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;AAC3B,IAAA,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;AAC1B,IAAA,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;;AAGzD,IAAA,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;IACjD,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,iBAAiB,EAAE,CAAC;AAC3C,IAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;AAChC,IAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;IACzB,IAAI,CAAC,QAAQ,CAAC,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC;IACrC,IAAI,CAAC,QAAQ,CAAC,QAAQ,GAAG,IAAI,IAAI,EAAE,CAAC;AACpC,IAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,CAAC;AAC9E,IAAA,MAAM,KAAK,GAAG;AACZ,QAAA;AACE,YAAA,IAAI,EAAE,YAAY;YAClB,KAAK,EAAE,CAAG,EAAA,IAAI,CAAkB,gBAAA,CAAA;AACjC,SAAA;KACF,CAAC;AACF,IAAA,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IACvB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;AAC1C,IAAA,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;;IAGvD,MAAM,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC9E,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACvF,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;AAE7E,IAAA,OAAO,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;AAC1B;;ACxDA;AAyBA,MAAM,UAAU,GAA+B;AAC7C,IAAA,GAAG,EAAE,UAAU;AACf,IAAA,QAAQ,EAAE,OAAO;IACjB,MAAM,EAAE,CAAC,QAAQ,CAAC;CACnB,CAAC;MAEW,OAAO,CAAA;AAOlB,IAAA,WAAA,CAA6B,MAAoB,EAAA;QAApB,IAAM,CAAA,MAAA,GAAN,MAAM,CAAc;QAFzC,IAAE,CAAA,EAAA,GAAG,aAAa,CAAC;QAGzB,IAAI,CAAC,IAAI,GAAG,CAAA,KAAA,EAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;QAElC,IAAI,CAAC,KAAK,GAAG,CAAA,wCAAA,EAA2C,MAAM,CAAC,OAAO,EAAE,CAAC;;QAGzE,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAC9B;;IAGD,SAAS,GAAA;QACP,OAAO;AACL,YAAA,UAAU,EAAE,IAAI;AAChB,YAAA,IAAI,EAAE,WAAW;AACjB,YAAA,QAAQ,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE;SAClC,CAAC;KACH;AAED;;;;;AAKG;IACH,WAAW,GAAA;QACT,OAAO;AACL,YAAA,UAAU,EAAE,8BAA8B;AAC1C,YAAA,IAAI,EAAE,aAAa;AACnB,YAAA,QAAQ,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE;AAC7B,YAAA,KAAK,EAAE;AACL,gBAAA;;oBAEE,SAAS,EAAE,CAAC,GAAG,CAAC;oBAChB,SAAS,EAAE,CAAC,GAAG,CAAC;AAChB,oBAAA,KAAK,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC;AACvE,iBAAA;AACF,aAAA;SACF,CAAC;KACH;IAED,kBAAkB,GAAA;AAChB,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACvB,OAAO;AACL,YAAA,UAAU,EAAE,8BAA8B;AAC1C,YAAA,IAAI,EAAE,oBAAoB;YAC1B,QAAQ,EAAE,EAAE,IAAI,EAAE;AAClB,YAAA,OAAO,EAAE;AACP,gBAAA,QAAQ,EAAE,2BAA2B;AACrC,gBAAA,IAAI,EAAE,aAAa;gBACnB,IAAI;AACL,aAAA;AACD,YAAA,QAAQ,EAAE;AACR,gBAAA;AACE,oBAAA,IAAI,EAAE,gBAAgB;oBACtB,IAAI;AACJ,oBAAA,SAAS,EAAE,aAAa;AACzB,iBAAA;AACF,aAAA;SACF,CAAC;KACH;IAED,cAAc,GAAA;QACZ,OAAO;AACL,YAAA,UAAU,EAAE,IAAI;AAChB,YAAA,IAAI,EAAE,gBAAgB;AACtB,YAAA,QAAQ,EAAE;gBACR,IAAI,EAAE,IAAI,CAAC,IAAI;AACf,gBAAA,SAAS,EAAE,aAAa;AACzB,aAAA;SACF,CAAC;KACH;IAED,SAAS,GAAA;QACP,OAAO;AACL,YAAA,UAAU,EAAE,IAAI;AAChB,YAAA,IAAI,EAAE,QAAQ;AACd,YAAA,QAAQ,EAAE;AACR,gBAAA,IAAI,EAAE,CAAA,EAAG,IAAI,CAAC,IAAI,CAAM,IAAA,CAAA;AACxB,gBAAA,SAAS,EAAE,aAAa;AACzB,aAAA;AACD,YAAA,IAAI,EAAE,mBAAmB;AACzB,YAAA,IAAI,EAAE;AACJ,gBAAA,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG;AACvB,gBAAA,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG;AACxB,aAAA;SACF,CAAC;KACH;IAED,eAAe,GAAA;AACb,QAAA,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;AACtB,QAAA,MAAM,MAAM,GAAG,CAAC,UAAU,CAAC,CAAC;;QAG5B,IAAI,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;YAClD,MAAM,CAAC,IAAI,CAAC;AACV,gBAAA,GAAG,EAAE,6BAA6B;AAClC,gBAAA,QAAQ,EAAE,OAAO;AACjB,gBAAA,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,UAAU;AAC5C,aAAA,CAAC,CAAC;AACJ,SAAA;QAED,OAAO;AACL,YAAA,UAAU,EAAE,iCAAiC;AAC7C,YAAA,IAAI,EAAE,8BAA8B;YACpC,QAAQ,EAAE,EAAE,IAAI,EAAE;AAClB,YAAA,QAAQ,EAAE;AACR,gBAAA;oBACE,IAAI,EAAE,CAAG,EAAA,IAAI,CAAW,SAAA,CAAA;AACxB,oBAAA,uBAAuB,EAAE,CAAC,IAAI,EAAE,SAAS,CAAC;AAC1C,oBAAA,YAAY,EAAE;AACZ,wBAAA,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE;AACrB,wBAAA,OAAO,EAAE;4BACP,IAAI,EAAE,IAAI,CAAC,IAAI;AACf,4BAAA,SAAS,EAAE,aAAa;AACxB,4BAAA,IAAI,EAAE,SAAS;AAChB,yBAAA;AACF,qBAAA;AACD,oBAAA,aAAa,EAAE,QAAQ;AACvB,oBAAA,WAAW,EAAE,YAAY;AACzB,oBAAA,cAAc,EAAE,EAAE;AAClB,oBAAA,iBAAiB,EAAE;AACjB,wBAAA,gBAAgB,EAAE,MAAM;AACzB,qBAAA;AACD,oBAAA,cAAc,EAAE;AACd,wBAAA,gBAAgB,EAAE,MAAM;AACzB,qBAAA;;AAED,oBAAA,KAAK,EAAE;AACL,wBAAA;4BACE,SAAS,EAAE,CAAC,GAAG,CAAC;4BAChB,WAAW,EAAE,CAAC,GAAG,CAAC;AAClB,4BAAA,UAAU,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC;4BAC1C,SAAS,EAAE,CAAC,GAAG,CAAC;AACjB,yBAAA;AACF,qBAAA;;AAED,oBAAA,WAAW,EAAE,MAAM;AACpB,iBAAA;AACF,aAAA;SACF,CAAC;KACH;IAED,UAAU,GAAA;QACR,OAAO;AACL,YAAA,UAAU,EAAE,SAAS;AACrB,YAAA,IAAI,EAAE,YAAY;AAClB,YAAA,QAAQ,EAAE;gBACR,IAAI,EAAE,IAAI,CAAC,IAAI;AACf,gBAAA,SAAS,EAAE,aAAa;AACxB,gBAAA,MAAM,EAAE;oBACN,GAAG,EAAE,IAAI,CAAC,IAAI;AACf,iBAAA;AACF,aAAA;AACD,YAAA,IAAI,EAAE;AACJ,gBAAA,QAAQ,EAAE,CAAC;AACX,gBAAA,QAAQ,EAAE;AACR,oBAAA,WAAW,EAAE;wBACX,GAAG,EAAE,IAAI,CAAC,IAAI;AACf,qBAAA;AACF,iBAAA;AACD,gBAAA,QAAQ,EAAE;AACR,oBAAA,QAAQ,EAAE;AACR,wBAAA,MAAM,EAAE;4BACN,GAAG,EAAE,IAAI,CAAC,IAAI;AACf,yBAAA;AACF,qBAAA;AACD,oBAAA,IAAI,EAAE;AACJ,wBAAA,iBAAiB,EAAE,sBAAsB;wBACzC,kBAAkB,EAAE,IAAI,CAAC,IAAI;AAC7B,wBAAA,UAAU,EAAE;AACV,4BAAA;AACE,gCAAA,IAAI,EAAE,QAAQ;gCACd,KAAK,EAAE,IAAI,CAAC,KAAK;AACjB,gCAAA,eAAe,EAAE,cAAc;AAC/B,gCAAA,aAAa,EAAE;AACb,oCAAA,OAAO,EAAE;AACP,wCAAA,IAAI,EAAE,UAAU;AAChB,wCAAA,IAAI,EAAE,IAAI;AACV,wCAAA,MAAM,EAAE,OAAO;AAChB,qCAAA;AACF,iCAAA;AACD,gCAAA,KAAK,EAAE;AACL,oCAAA;AACE,wCAAA,aAAa,EAAE,IAAI;AACpB,qCAAA;AACF,iCAAA;AACD,gCAAA,SAAS,EAAE;AACT,oCAAA,QAAQ,EAAE;AACR,wCAAA,MAAM,EAAE,MAAM;AACd,wCAAA,GAAG,EAAE,MAAM;AACZ,qCAAA;AACD,oCAAA,MAAM,EAAE;AACN,wCAAA,MAAM,EAAE,OAAO;AACf,wCAAA,GAAG,EAAE,MAAM;AACZ,qCAAA;AACF,iCAAA;AACD,gCAAA,YAAY,EAAE;AACZ,oCAAA;AACE,wCAAA,IAAI,EAAE,WAAW;AACjB,wCAAA,SAAS,EAAE,YAAY;AACvB,wCAAA,QAAQ,EAAE,IAAI;AACf,qCAAA;AACF,iCAAA;AACF,6BAAA;AACF,yBAAA;AACD,wBAAA,OAAO,EAAE;AACP,4BAAA;AACE,gCAAA,IAAI,EAAE,WAAW;AACjB,gCAAA,MAAM,EAAE;AACN,oCAAA,UAAU,EAAE,CAAA,EAAG,IAAI,CAAC,IAAI,CAAM,IAAA,CAAA;AAC/B,iCAAA;AACF,6BAAA;AACF,yBAAA;AACF,qBAAA;AACF,iBAAA;AACF,aAAA;SACF,CAAC;KACH;IAED,OAAO,GAAA;QACL,OAAO;AACL,YAAA,UAAU,EAAE,IAAI;AAChB,YAAA,IAAI,EAAE,SAAS;AACf,YAAA,QAAQ,EAAE;gBACR,IAAI,EAAE,IAAI,CAAC,IAAI;AACf,gBAAA,SAAS,EAAE,aAAa;AACzB,aAAA;AACD,YAAA,IAAI,EAAE;AACJ,gBAAA,QAAQ,EAAE;oBACR,GAAG,EAAE,IAAI,CAAC,IAAI;AACf,iBAAA;AACD,gBAAA,KAAK,EAAE;AACL,oBAAA;AACE,wBAAA,IAAI,EAAE,GAAG;AACT,wBAAA,UAAU,EAAE,IAAI;AACjB,qBAAA;AACF,iBAAA;AACF,aAAA;SACF,CAAC;KACH;AAED,IAAA,YAAY,CAAC,IAAY,EAAA;;AAEvB,QAAA,MAAM,UAAU,GAAGA,aAAQ,CAAC,IAAI,CAAC,CAAC;QAClC,OAAO;AACL,YAAA,UAAU,EAAE,IAAI;AAChB,YAAA,IAAI,EAAE,QAAQ;AACd,YAAA,QAAQ,EAAE;AACR,gBAAA,IAAI,EAAE,CAAA,EAAG,IAAI,CAAC,IAAI,CAAS,OAAA,CAAA;AAC3B,gBAAA,SAAS,EAAE,aAAa;AACzB,aAAA;AACD,YAAA,IAAI,EAAE,QAAQ;AACd,YAAA,IAAI,EAAE;AACJ,gBAAA,MAAM,EAAE,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC;AACtC,aAAA;SACF,CAAC;KACH;AAED,IAAA,QAAQ,CAAC,IAAY,EAAA;AACnB,QAAA,MAAM,OAAO,GAAG;AACd,YAAA,IAAI,EAAE,mBAAmB;AACzB,YAAA,QAAQ,EAAE;gBACR,IAAI,EAAE,IAAI,CAAC,IAAI;AACf,gBAAA,WAAW,EAAE,CAAgB,aAAA,EAAA,IAAI,CAAC,MAAM,CAAC,WAAW,CAAE,CAAA;AACtD,gBAAA,GAAG,EAAE,yCAAyC;AAC9C,gBAAA,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO;AAC7B,aAAA;AACD,YAAA,UAAU,EAAE;AACV,gBAAA;AACE,oBAAA,IAAI,EAAE,QAAQ;AACd,oBAAA,QAAQ,EAAE,IAAI;AACd,oBAAA,SAAS,EAAE;AACT,wBAAA;AACE,4BAAA,IAAI,EAAE,QAAQ;AACd,4BAAA,SAAS,EAAE,aAAa;4BACxB,KAAK,EAAE,CAAC,IAAI,CAAC;AACd,yBAAA;AACF,qBAAA;AACD,oBAAA,MAAM,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC;AACrB,iBAAA;AACF,aAAA;SACF,CAAC;QAEF,OAAOC,mBAAQ,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;KAC5C;AAED,IAAA,OAAO,CAAC,IAAY,EAAA;AAClB,QAAA,MAAM,SAAS,GAAG;YAChB,IAAI,CAAC,SAAS,EAAE;YAChB,IAAI,CAAC,WAAW,EAAE;YAClB,IAAI,CAAC,kBAAkB,EAAE;YACzB,IAAI,CAAC,cAAc,EAAE;YACrB,IAAI,CAAC,SAAS,EAAE;YAChB,IAAI,CAAC,eAAe,EAAE;YACtB,IAAI,CAAC,UAAU,EAAE;YACjB,IAAI,CAAC,OAAO,EAAE;AACd,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;SACxB,CAAC;;QAGF,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC,IAAIA,mBAAQ,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;KACxE;IAED,MAAM,MAAM,CAAC,IAAY,EAAA;AACvB,QAAAC,GAAM,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC;QAErD,MAAM,SAAS,GAAG,aAAa,CAAC;;AAGhC,QAAA,MAAM,UAAU,GAAG,IAAIC,qBAAU,EAAE,CAAC;QACpC,UAAU,CAAC,eAAe,EAAE,CAAC;QAE7B,MAAM,SAAS,GAAG,UAAU,CAAC,aAAa,CAACC,oBAAS,CAAC,CAAC;QACtD,MAAM,OAAO,GAAG,UAAU,CAAC,aAAa,CAACC,iCAAsB,CAAC,CAAC;QACjE,MAAM,OAAO,GAAG,UAAU,CAAC,aAAa,CAACC,oBAAS,CAAC,CAAC;QACpD,MAAM,YAAY,GAAG,UAAU,CAAC,aAAa,CAACC,qCAA0B,CAAC,CAAC;AAE1E,QAAA,MAAM,EAAE,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAC5B,IAAI;AACF,YAAAL,GAAM,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;AACtC,YAAA,MAAM,SAAS,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;AAC1C,SAAA;AAAC,QAAA,OAAO,CAAC,EAAE;AACV,YAAAA,GAAM,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AACrB,YAAAA,GAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;AAClC,YAAA,MAAM,SAAS,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;AACrC,SAAA;AAED,QAAA,MAAM,EAAE,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QAClC,IAAI;AACF,YAAAA,GAAM,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;AACzC,YAAA,MAAM,YAAY,CAAC,kCAAkC,CAAC,EAAE,CAAC,CAAC;AAC3D,SAAA;AAAC,QAAA,OAAO,CAAC,EAAE;AACV,YAAAA,GAAM,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AACrB,YAAAA,GAAM,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAC;YACzD,MAAM,YAAY,CAAC,kCAAkC,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACxE,YAAA,MAAM,YAAY,CAAC,kCAAkC,CAAC,EAAE,CAAC,CAAC;AAC3D,SAAA;AAED,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;QACtC,IAAI;AACF,YAAAA,GAAM,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;AAC7C,YAAA,MAAM,OAAO,CAAC,wBAAwB,CAAC,GAAG,CAAC,CAAC;AAC7C,SAAA;AAAC,QAAA,OAAO,CAAC,EAAE;AACV,YAAAA,GAAM,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AACrB,YAAAA,GAAM,CAAC,IAAI,CAAC,+CAA+C,CAAC,CAAC;YAC7D,MAAM,OAAO,CAAC,wBAAwB,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC1D,YAAA,MAAM,OAAO,CAAC,wBAAwB,CAAC,GAAG,CAAC,CAAC;AAC7C,SAAA;AAED,QAAA,MAAM,EAAE,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QAC9B,IAAI;AACF,YAAAA,GAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;AACrC,YAAA,MAAM,OAAO,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC;AACrC,SAAA;AAAC,QAAA,OAAO,CAAC,EAAE;AACV,YAAAA,GAAM,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AACrB,YAAAA,GAAM,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;YAC1D,IAAI;gBACF,MAAM,OAAO,CAAC,iBAAiB,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAClD,gBAAA,MAAM,OAAO,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC;AACrC,aAAA;AAAC,YAAA,OAAO,CAAC,EAAE;AACV,gBAAAA,GAAM,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AACtB,aAAA;AACF,SAAA;AAED,QAAA,MAAM,EAAE,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QACjC,IAAI;AACF,YAAAA,GAAM,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;YACxC,MAAM,SAAS,CAAC,8BAA8B,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;AAC/D,SAAA;AAAC,QAAA,OAAO,CAAC,EAAE;AACV,YAAAA,GAAM,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AACrB,YAAAA,GAAM,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAC;AACxD,YAAA,MAAM,SAAS,CAAC,8BAA8B,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;YAC5E,MAAM,SAAS,CAAC,8BAA8B,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;AAC/D,SAAA;QAED,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QACpC,IAAI;AACF,YAAAA,GAAM,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;YACtC,MAAM,SAAS,CAAC,sBAAsB,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;AACxD,SAAA;AAAC,QAAA,OAAO,CAAC,EAAE;AACV,YAAAA,GAAM,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AACrB,YAAAA,GAAM,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC;AACtD,YAAA,MAAM,SAAS,CAAC,sBAAsB,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;YACrE,MAAM,SAAS,CAAC,sBAAsB,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;AACxD,SAAA;AAED,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAC3B,IAAI;AACF,YAAAA,GAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;YAChC,MAAM,SAAS,CAAC,uBAAuB,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;AACzD,SAAA;AAAC,QAAA,OAAO,CAAC,EAAE;AACV,YAAAA,GAAM,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AACrB,YAAAA,GAAM,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;AAChD,YAAA,MAAM,SAAS,CAAC,uBAAuB,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;YACtE,MAAM,SAAS,CAAC,uBAAuB,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;AACzD,SAAA;AAED,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAC7B,IAAI;AACF,YAAAA,GAAM,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;YACnC,MAAM,SAAS,CAAC,sBAAsB,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;AACxD,SAAA;AAAC,QAAA,OAAO,CAAC,EAAE;AACV,YAAAA,GAAM,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AACrB,YAAAA,GAAM,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC;AACnD,YAAA,MAAM,SAAS,CAAC,sBAAsB,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;YACrE,MAAM,SAAS,CAAC,sBAAsB,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;AACxD,SAAA;AAED,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAC9B,IAAI;AACF,YAAAA,GAAM,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;YACnC,MAAM,OAAO,CAAC,0BAA0B,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;AAC1D,SAAA;AAAC,QAAA,OAAO,CAAC,EAAE;AACV,YAAAA,GAAM,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AACrB,YAAAA,GAAM,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC;AACnD,YAAA,MAAM,OAAO,CAAC,0BAA0B,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;YACvE,MAAM,OAAO,CAAC,0BAA0B,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;AAC1D,SAAA;KACF;AACF;;ACzcD;AAac,cAAA,EAAW,OAAgB,EAAA;IACvC,OAAO;SACJ,OAAO,CAAC,OAAO,CAAC;SAChB,WAAW,CAAC,oCAAoC,CAAC;AACjD,SAAA,MAAM,CAAC,uBAAuB,EAAE,uBAAuB,EAAE,GAAG,CAAC;AAC7D,SAAA,MAAM,CAAC,OAAM,IAAI,KAAG;;AAEnB,QAAA,MAAM,EAAE,GAAG,QAAEM,MAAI,EAAE,IAAI,EAAE,GAAG,MAAM,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;;AAGxD,QAAA,MAAM,IAAI,GAAG,MAAMC,WAAE,CAAC,QAAQ,CAACD,MAAI,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;;AAG5D,QAAA,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC;YAC1B,GAAG,GAAG,CAAC,IAAI;YACX,WAAW,EAAE,GAAG,CAAC,WAAW;AAC7B,SAAA,CAAC,CAAC;AACH,QAAA,MAAM,QAAQ,GAAG,CAAe,YAAA,EAAA,IAAI,OAAO,CAAC;QAC5C,MAAM,QAAQ,GAAGE,YAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QAC3C,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAEnC,MAAM,QAAQ,GAAGA,YAAO,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;QAC9C,MAAM,IAAI,GAAG,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAExC,MAAMD,WAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QACnC,MAAMA,WAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;AAEnC,QAAA,GAAG,CAAC,KAAK,CAAC,mCAAmCD,MAAI,CAAA,CAAE,CAAC,CAAC;AACrD,QAAA,GAAG,CAAC,IAAI,CAAC,wCAAwC,QAAQ,CAAA,CAAE,CAAC,CAAC;AAC/D,KAAC,CAAC,CAAC;AACP,CAAC;AAED,MAAM,YAAY,GAAmB;IACnC,iCAAiC;IACjC,WAAW;IACX,SAAS;IACT,iBAAiB;IACjB,MAAM;IACN,OAAO;CACR,CAAC;AAEK,eAAe,WAAW,CAAC,SAAiB,EAAA;IACjD,IAAI;;QAEF,MAAM,OAAO,GAAGE,YAAO,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;QACnD,MAAM,KAAK,GAAGA,YAAO,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;;AAG5C,QAAA,MAAM,UAAU,GAAG,MAAMD,WAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;QACrE,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;AACnC,QAAA,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC;AAC1B,QAAA,MAAM,IAAI,GAAG,CAAQ,KAAA,EAAA,IAAI,KAAK,CAAC;;QAG/B,IAAI,CAAC,IAAI,EAAE;AACT,YAAA,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;AAC5D,SAAA;AAED,QAAA,MAAM,OAAO,GAAsB;AACjC,YAAA,WAAW,CAAC;AACV,gBAAA,cAAc,EAAE,IAAI;aACrB,CAAC;AACF,YAAA,IAAI,EAAE;AACN,YAAA,UAAU,CAAC;AACT,gBAAA,QAAQ,EAAE,iBAAiB;AAC3B,gBAAA,WAAW,EAAE,KAAK;AAClB,gBAAA,cAAc,EAAE,IAAI;AACpB,gBAAA,SAAS,EAAE,KAAK;AAChB,gBAAA,OAAO,EAAE,CAAC,SAAS,EAAE,2BAA2B,CAAC;aAClD,CAAC;SACH,CAAC;;AAGF,QAAA,MAAM,MAAM,GAAG,MAAME,aAAM,CAAC;YAC1B,OAAO;AACP,YAAA,QAAQ,EAAE,YAAY;AACtB,YAAA,SAAS,EAAE,IAAI;YACf,KAAK;AACN,SAAA,CAAC,CAAC;;QAGH,MAAM,MAAM,CAAC,KAAK,CAAC;AACjB,YAAA,GAAG,EAAE,MAAM;AACX,YAAA,MAAM,EAAE,KAAK;AACb,YAAA,cAAc,EAAE,IAAI;AACrB,SAAA,CAAC,CAAC;QAEH,OAAO;AACL,YAAA,IAAI,EAAED,YAAO,CAAC,MAAM,EAAE,IAAI,CAAC;YAC3B,GAAG;YACH,IAAI;SACL,CAAC;AACH,KAAA;AAAC,IAAA,OAAO,CAAC,EAAE;;AAEV,QAAA,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACb,QAAA,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;AACrB,QAAA,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACjB,KAAA;AACH;;AC/GA;AACA;AAIc,mBAAA,EAAW,OAAgB,EAAA;IACvC,OAAO;SACJ,OAAO,CAAC,KAAK,CAAC;SACd,WAAW,CAAC,8BAA8B,CAAC;AAC3C,SAAA,MAAM,CAAC,uBAAuB,EAAE,uBAAuB,EAAE,GAAG,CAAC;SAC7D,MAAM,CAAC,MAAK;;AAEX,QAAA,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AACrB,KAAC,CAAC,CAAC;AACP;;ACdA;AAUc,eAAA,EAAW,OAAgB,EAAA;IACvC,OAAO;SACJ,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,sBAAsB,CAAC;AACnC,SAAA,MAAM,CAAC,uBAAuB,EAAE,uBAAuB,EAAE,GAAG,CAAC;AAC7D,SAAA,MAAM,CAAC,OAAM,IAAI,KAAG;;AAEnB,QAAA,MAAM,OAAO,GAAG,MAAME,aAAM,CAAC;AAC3B,YAAA,IAAI,EAAE,SAAS;AACf,YAAA,IAAI,EAAE,SAAS;AACf,YAAA,OAAO,EAAE,qDAAqD;AAC/D,SAAA,CAAC,CAAC;;AAGH,QAAA,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;AACpB,YAAA,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACjB,SAAA;;AAGD,QAAA,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,MAAM,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;;AAGlD,QAAA,MAAM,IAAI,GAAG,MAAMH,WAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;;AAG5D,QAAA,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC;YAC1B,GAAG,GAAG,CAAC,IAAI;YACX,WAAW,EAAE,GAAG,CAAC,WAAW;AAC7B,SAAA,CAAC,CAAC;QAEH,IAAI;AACF,YAAA,MAAM,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AAC3B,YAAAP,GAAM,CAAC,IAAI,CAAC,CAAA,4BAAA,CAA8B,CAAC,CAAC;AAC7C,SAAA;AAAC,QAAA,OAAO,CAAC,EAAE;AACV,YAAAA,GAAM,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAA,CAAE,CAAC,CAAC;AAC7C,YAAA,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACjB,SAAA;AACH,KAAC,CAAC,CAAC;AACP;;AChDA;AAKA;;;;;AAKG;AACG,SAAU,YAAY,CAAC,IAAY,EAAA;;AAEvC,IAAA,IAAI,SAAS,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC;;IAGjE,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;;IAG9C,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAE3C,IAAA,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;AAIG;AACI,eAAe,SAAS,CAAC,GAAW,EAAA;IACzC,IAAI;AACF,QAAA,MAAMO,WAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACrB,KAAA;AAAC,IAAA,OAAO,GAAG,EAAE;;AAEZ,QAAA,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE;AACzB,YAAA,MAAM,IAAI,KAAK,CAAC,aAAa,GAAG,CAAA,eAAA,CAAiB,CAAC,CAAC;AACpD,SAAA;AAAM,aAAA;AACL,YAAA,MAAM,GAAG,CAAC;AACX,SAAA;AACF,KAAA;AACH,CAAC;AAED;;;;;AAKG;AACa,SAAA,KAAK,CAAC,IAAY,EAAE,IAAa,EAAA;;AAE/C,IAAA,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;QAC5B,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AACtC,KAAA;IACD,OAAOA,WAAE,CAAC,SAAS,CAAC,IAAI,EAAE,IAAc,CAAC,CAAC;AAC5C;;ACtDA;SASgB,SAAS,GAAA;IACvB,OAAO;AACL,QAAA,IAAI,EAAE,SAAS;AACf,QAAA,IAAI,EAAE,CAAA;;;;;;;;;;;;;;;;;;;;;;;;AAwBT,CAAA;KACE,CAAC;AACJ,CAAC;AAEK,SAAU,UAAU,CAAC,IAAiB,EAAA;;IAE1C,MAAMI,MAAI,GAAGC,OAAM,CAAC,IAAI,CAAC,IAAI,EAAEC,OAAM,EAAE,CAAC,CAAC;;IAEzC,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAErC,IAAA,MAAM,IAAI,GAAG;QACX,IAAI;AACJ,QAAA,OAAO,EAAE,OAAO;QAChB,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,QAAQ,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,UAAU,CAAC;AACrE,QAAA,IAAI,EAAE;AACJ,YAAA,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACtB,OAAO;kBACPF,MAAI;YACJ,OAAO,EAAE,IAAI,CAAC,aAAa;AAC3B,YAAA,YAAY,EAAE;AACZ,gBAAA,UAAU,EAAE,EAAE;AACd,gBAAA,MAAM,EAAE,EAAE;AACX,aAAA;AACF,SAAA;AACD,QAAA,OAAO,EAAE;AACP,YAAA,KAAK,EAAE,YAAY;AACnB,YAAA,KAAK,EAAE,WAAW;AACnB,SAAA;AACD,QAAA,YAAY,EAAE;YACZ,IAAI,EAAE,CAAI,CAAA,EAAA,OAAO,CAAE,CAAA;AACpB,SAAA;KACF,CAAC;IAEF,OAAO;QACL,IAAI;AACJ,QAAA,IAAI,EAAE,cAAc;QACpB,KAAK,EAAEG,YAAO,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,CAAC;KACrC,CAAC;AACJ,CAAC;AAEM,MAAM,QAAQ,GAAG;AACtB,IAAA,IAAI,EAAE,eAAe;AACrB,IAAA,IAAI,EAAE;AACJ,QAAA,eAAe,EAAE;AACf,YAAA,eAAe,EAAE,IAAI;YACrB,GAAG,EAAE,CAAC,QAAQ,CAAC;AACf,YAAA,gBAAgB,EAAE,MAAM;AACxB,YAAA,iBAAiB,EAAE,IAAI;AACvB,YAAA,OAAO,EAAE,GAAG;AACZ,YAAA,MAAM,EAAE,KAAK;AACb,YAAA,MAAM,EAAE,QAAQ;AACjB,SAAA;AACD,QAAA,OAAO,EAAE,CAAC,SAAS,EAAE,2BAA2B,CAAC;AAClD,KAAA;CACF,CAAC;AAEK,MAAM,SAAS,GAAG;AACvB,IAAA,IAAI,EAAE,YAAY;AAClB,IAAA,IAAI,EAAE,CAAA;;;AAGP,CAAA;CACA,CAAC;AAEK,MAAM,UAAU,GAAG;AACxB,IAAA,IAAI,EAAE,aAAa;AACnB,IAAA,IAAI,EAAE;AACJ,QAAA,WAAW,EAAE,OAAO;AACpB,QAAA,eAAe,EAAE,KAAK;AACtB,QAAA,cAAc,EAAE,IAAI;AACpB,QAAA,0BAA0B,EAAE,MAAM;AAClC,QAAA,YAAY,EAAE,KAAK;AACnB,QAAA,UAAU,EAAE,EAAE;AACd,QAAA,UAAU,EAAE,WAAW;AACvB,QAAA,aAAa,EAAE,KAAK;AACpB,QAAA,IAAI,EAAE,IAAI;AACV,QAAA,QAAQ,EAAE,CAAC;AACX,QAAA,OAAO,EAAE,KAAK;AACf,KAAA;CACF,CAAC;AAEK,MAAM,MAAM,GAAG;AACpB,IAAA,IAAI,EAAE,WAAW;AACjB,IAAA,IAAI,EAAE,CAAA;;;;;;;;;;;;;;;;;;;;;AAqBP,CAAA;CACA,CAAC;AAEK,MAAM,qBAAqB,GAAG;AACnC,IAAA,IAAI,EAAE,eAAe;AACrB,IAAA,IAAI,EAAE,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmEP,CAAA;CACA,CAAC;AAEK,MAAM,iBAAiB,GAAG;AAC/B,IAAA,IAAI,EAAE,oBAAoB;AAC1B,IAAA,IAAI,EAAE,CAAA;;;;;;;;;;;;;;;;;;;;;AAqBL,EAAA,CAAA;CACF;;AChPD;SAYgB,WAAW,GAAA;AACzB,IAAA,MAAM,OAAO,GAAiB;AAC5B,QAAA,IAAI,EAAE,MAAM;AACZ,QAAA,IAAI,EAAE,MAAM;AACZ,QAAA,OAAO,EACL,6FAA6F;AAC/F,QAAA,QAAQ,EAAE,OAAM,GAAG,KAAG;YACpB,IAAI;AACF,gBAAA,MAAM,IAAI,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;AAC/B,gBAAA,MAAMP,WAAE,CAAC,MAAM,CAAC,IAAI,EAAEA,WAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AAEzC,gBAAA,OAAO,2CAA2C,CAAC;AACpD,aAAA;AAAC,YAAA,OAAO,CAAC,EAAE;AACV,gBAAA,OAAO,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,6CAA6C,CAAC;AACxE,aAAA;SACF;KACF,CAAC;AAEF,IAAA,MAAM,cAAc,GAAiB;AACnC,QAAA,IAAI,EAAE,MAAM;AACZ,QAAA,IAAI,EAAE,aAAa;AACnB,QAAA,OAAO,EAAE,8DAA8D;KACxE,CAAC;AAEF,IAAA,MAAM,gBAAgB,GAAiB;AACrC,QAAA,IAAI,EAAE,QAAQ;AACd,QAAA,IAAI,EAAE,eAAe;QACrB,QAAQ,EAAE,GAAG,IAAI,aAAa,CAAC,GAAG,CAAC;AACnC,QAAA,OAAO,EACL,0EAA0E;AAC5E,QAAA,OAAO,EAAE;AACP,YAAA;AACE,gBAAA,KAAK,EAAE,QAAQ;gBACf,KAAK,EAAE,aAAa,CAAC,MAAM;AAC3B,gBAAA,WAAW,EACT,iFAAiF;AACnF,gBAAA,QAAQ,EAAE,IAAI;AACf,aAAA;AACD,YAAA;AACE,gBAAA,KAAK,EAAE,oBAAoB;gBAC3B,KAAK,EAAE,aAAa,CAAC,KAAK;AAC1B,gBAAA,WAAW,EACT,0HAA0H;AAC7H,aAAA;AACD,YAAA;AACE,gBAAA,KAAK,EAAE,sBAAsB;gBAC7B,KAAK,EAAE,aAAa,CAAC,MAAM;AAC3B,gBAAA,WAAW,EACT,mEAAmE;AACtE,aAAA;AACF,SAAA;KACF,CAAC;AAEF,IAAA,OAAO,MAAM,CAAC;QACZ,OAAO;QACP,cAAc;QACd,gBAAgB;AACjB,KAAA,CAAyB,CAAC;AAC7B,CAAC;AAEM,eAAe,OAAO,CAC3B,OAAe,EACf,WAA4C,EAC5C,UAAkB,EAAA;IAElB,OAAO,CAAC,GAAG,CAAC,CAAA;;;aAGD,OAAO,CAAA;AACH,eAAA,EAAA,SAAS,CAAC,IAAI,CAAA;AACd,eAAA,EAAA,UAAU,CAAC,IAAI,CAAA;;;AAGf,eAAA,EAAA,WAAW,CAAC,IAAI,CAAA;EAC/B,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,UAAU,CAAC,CAAA;iBAC7B,UAAU,CAAA;AACV,eAAA,EAAA,MAAM,CAAC,IAAI,CAAA;AACX,eAAA,EAAA,QAAQ,CAAC,IAAI,CAAA;AACvB,MAAA,CAAA,CAAC,CAAC;AAEP,IAAA,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC;AAC3B,QAAA,IAAI,EAAE,SAAS;AACf,QAAA,IAAI,EAAE,SAAS;AACf,QAAA,OAAO,EAAE,6BAA6B;AACvC,KAAA,CAAC,CAAC;IAEH,OAAO,OAAO,CAAC,OAAO,CAAC;AACzB;;ACnGA;AAoBc,aAAA,EAAW,OAAgB,EAAA;IACvC,OAAO;SACJ,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,8BAA8B,CAAC;SAC3C,MAAM,CAAC,YAAW;AACjB,QAAA,MAAM,QAAQ,GAAG,MAAM,WAAW,EAAE,CAAC;QACrC,MAAM,OAAO,GAAG,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC5C,QAAA,MAAM,WAAW,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;AACzC,QAAA,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;AAE3B,QAAA,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;AAEnE,QAAA,IAAI,SAAS,EAAE;AACb,YAAA,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;YAE3C,IAAI;AACF,gBAAA,MAAM,SAAS,CAAC,OAAO,CAAC,CAAC;gBACzB,MAAM,SAAS,CAACC,YAAO,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC;gBAC7C,MAAM,SAAS,CAACA,YAAO,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC;AAElD,gBAAA,MAAM,KAAK,CAACA,YAAO,CAAC,OAAO,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;AAC9D,gBAAA,MAAM,KAAK,CAACA,YAAO,CAAC,OAAO,EAAE,UAAU,CAAC,IAAI,CAAC,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC;AAChE,gBAAA,MAAM,KAAK,CAACA,YAAO,CAAC,OAAO,EAAE,WAAW,CAAC,IAAI,CAAC,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC;AAClE,gBAAA,MAAM,KAAK,CAACA,YAAO,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;AACxD,gBAAA,MAAM,KAAK,CAACA,YAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC5D,gBAAA,MAAM,KAAK,CAACA,YAAO,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;AACxD,gBAAA,MAAM,KAAK,CACTA,YAAO,CAAC,OAAO,EAAE,SAAS,EAAE,iBAAiB,CAAC,IAAI,CAAC,EACnD,iBAAiB,CAAC,IAAI,CACvB,CAAC;AACF,gBAAA,MAAM,KAAK,CACTA,YAAO,CAAC,OAAO,EAAE,cAAc,EAAE,qBAAqB,CAAC,IAAI,CAAC,EAC5D,qBAAqB,CAAC,IAAI,CAC3B,CAAC;;AAGF,gBAAA,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBACvBO,sBAAQ,CAAC,aAAa,EAAE;AACtB,oBAAA,KAAK,EAAE,SAAS;AACjB,iBAAA,CAAC,CAAC;AAEH,gBAAA,OAAO,CAAC,GAAG,CAAC,8BAA8B,OAAO,CAAA,CAAE,CAAC,CAAC;AACrD,gBAAA,OAAO,CAAC,GAAG,CACT,2CAA2C,OAAO,CAAA,gBAAA,CAAkB,CACrE,CAAC;AACH,aAAA;AAAC,YAAA,OAAO,CAAC,EAAE;AACV,gBAAA,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACb,gBAAA,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;AACrB,gBAAA,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACjB,aAAA;AACF,SAAA;AACH,KAAC,CAAC,CAAC;AACP;;ACxEA;AAMM,MAAO,OAAQ,SAAQC,iBAAO,CAAA;AAClC,IAAA,aAAa,CAAC,IAAY,EAAA;AACxB,QAAA,MAAM,GAAG,GAAG,IAAIA,iBAAO,CAAC,IAAI,CAAC,CAAC;QAE9B,GAAG,CAAC,MAAM,CACR,yBAAyB,EACzB,qCAAqC,EACrC,MAAM,CACP,CAAC;AAEF,QAAA,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,IAAG;YAC1B,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,CAAC;AACvC,SAAC,CAAC,CAAC;AAEH,QAAA,OAAO,GAAG,CAAC;KACZ;AACF;;ACtBD;AAWA,MAAM,IAAI,GAAGC,cAAS,CAACC,kBAAY,CAAC,CAAC;AAEvB,aAAA,EAAW,OAAgB,EAAA;IACvC,OAAO;SACJ,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,4BAA4B,CAAC;AACzC,SAAA,MAAM,CAAC,uBAAuB,EAAE,uBAAuB,EAAE,GAAG,CAAC;AAC7D,SAAA,MAAM,CAAC,aAAa,EAAE,uCAAuC,CAAC;AAC9D,SAAA,MAAM,CAAC,OAAM,IAAI,KAAG;AACnB,QAAA,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;AAExB,QAAA,MAAM,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAE7B,IAAI,IAAI,CAAC,KAAK,EAAE;AACd,YAAA,MAAM,WAAW,GAAGV,YAAO,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;AACpD,YAAA,MAAM,OAAO,GAAGW,cAAK,CAAC,WAAW,CAAC,CAAC;AAEnC,YAAA,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,MAAK;AACvB,gBAAA,GAAG,CAAC,IAAI,CAAC,2BAA2B,WAAW,CAAA,CAAE,CAAC,CAAC;gBACnD,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,EAAE,IAAI,KAAI;oBACtC,GAAG,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,cAAc,CAAC,CAAC;AAC3C,oBAAA,MAAM,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/B,iBAAC,CAAC,CAAC;AACL,aAAC,CAAC,CAAC;AACJ,SAAA;AACH,KAAC,CAAC,CAAC;AACP,CAAC;AAED,eAAe,YAAY,CAAC,GAAW,EAAA;IACrC,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,WAAW,CAAC,GAAG,CAAC,CAAC;AACxC,IAAA,GAAG,CAAC,IAAI,CAAC,gCAAgC,IAAI,CAAA,CAAE,CAAC,CAAC;IAEjD,IAAI;AACF,QAAA,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,CAAA,KAAA,EAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;AACtD,QAAA,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AACpB,QAAA,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AACrB,KAAA;AAAC,IAAA,OAAO,CAAC,EAAE;AACV,QAAA,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACb,QAAA,GAAG,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAA,CAAE,CAAC,CAAC;AACxC,QAAA,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACjB,KAAA;AACH;;ACpDA;AAYA,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,OAAO,CAAC,OAAO,CAAC;AAChB,KAAA,WAAW,CAAC,CAAA,yBAAA,EAA4B,OAAO,CAAA,CAAA,CAAG,CAAC;KACnD,MAAM,CAAC,MAAK;AACX,IAAA,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;AAC3B,QAAA,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACpB,OAAO,CAAC,IAAI,EAAE,CAAC;AAChB,KAAA;AACH,CAAC,CAAC,CAAC;AAEL,IAAI,CAAC,OAAO,CAAC,CAAC;AACd,KAAK,CAAC,OAAO,CAAC,CAAC;AACf,UAAU,CAAC,OAAO,CAAC,CAAC;AACpB,IAAI,CAAC,OAAO,CAAC,CAAC;AACd,MAAM,CAAC,OAAO,CAAC,CAAC;AAEhB,OAAO,CAAC,KAAK,EAAE;;"}
|