inferock-bench 0.1.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/LICENSE +5 -0
- package/dist/adapters/anthropic.js +481 -0
- package/dist/adapters/anthropic.js.map +1 -0
- package/dist/adapters/canonical-v2.js +287 -0
- package/dist/adapters/canonical-v2.js.map +1 -0
- package/dist/adapters/openai.js +424 -0
- package/dist/adapters/openai.js.map +1 -0
- package/dist/adapters/types.js +4 -0
- package/dist/adapters/types.js.map +1 -0
- package/dist/cli.js +195 -0
- package/dist/cli.js.map +1 -0
- package/dist/config.js +240 -0
- package/dist/config.js.map +1 -0
- package/dist/dashboard.js +624 -0
- package/dist/dashboard.js.map +1 -0
- package/dist/index.js +12 -0
- package/dist/index.js.map +1 -0
- package/dist/init.js +130 -0
- package/dist/init.js.map +1 -0
- package/dist/provider.js +6 -0
- package/dist/provider.js.map +1 -0
- package/dist/proxy.js +338 -0
- package/dist/proxy.js.map +1 -0
- package/dist/receipt.js +59 -0
- package/dist/receipt.js.map +1 -0
- package/dist/record.js +78 -0
- package/dist/record.js.map +1 -0
- package/dist/server.js +48 -0
- package/dist/server.js.map +1 -0
- package/dist/sse.js +48 -0
- package/dist/sse.js.map +1 -0
- package/dist/storage.js +71 -0
- package/dist/storage.js.map +1 -0
- package/dist/summary.js +112 -0
- package/dist/summary.js.map +1 -0
- package/dist/telemetry.js +38 -0
- package/dist/telemetry.js.map +1 -0
- package/package.json +41 -0
package/dist/cli.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/config.js
ADDED
|
@@ -0,0 +1,240 @@
|
|
|
1
|
+
import { randomBytes } from "node:crypto";
|
|
2
|
+
import { chmod, mkdir, readFile, writeFile } from "node:fs/promises";
|
|
3
|
+
import { homedir } from "node:os";
|
|
4
|
+
import { join } from "node:path";
|
|
5
|
+
import { createInterface } from "node:readline/promises";
|
|
6
|
+
import { stdin as input, stdout as output } from "node:process";
|
|
7
|
+
import { isRecord, stringValue } from "./record.js";
|
|
8
|
+
export const DEFAULT_PORT = 4318;
|
|
9
|
+
export const DEFAULT_HOST = "127.0.0.1";
|
|
10
|
+
export const DEFAULT_OPENAI_BASE_URL = "https://api.openai.com/v1";
|
|
11
|
+
export const DEFAULT_ANTHROPIC_BASE_URL = "https://api.anthropic.com/v1";
|
|
12
|
+
export const WATERMARK_NAME = "Inferock Bench";
|
|
13
|
+
const WATERMARK_HOST = ["inferock", "opiusai", "com"].join(".");
|
|
14
|
+
export const WATERMARK_URL = `https://${WATERMARK_HOST}`;
|
|
15
|
+
export function resolveBenchPaths(env = process.env) {
|
|
16
|
+
const homeDir = env.INFEROCK_BENCH_HOME ?? join(homedir(), ".inferock-bench");
|
|
17
|
+
return {
|
|
18
|
+
homeDir,
|
|
19
|
+
configFile: join(homeDir, "config"),
|
|
20
|
+
legacyConfigFile: join(homeDir, "config.json"),
|
|
21
|
+
eventsFile: join(homeDir, "events.jsonl"),
|
|
22
|
+
receiptsDir: join(homeDir, "receipts"),
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
export async function ensureBenchHome(paths) {
|
|
26
|
+
await mkdir(paths.homeDir, { recursive: true });
|
|
27
|
+
}
|
|
28
|
+
export async function readBenchConfig(paths) {
|
|
29
|
+
try {
|
|
30
|
+
const raw = await readFile(paths.configFile, "utf8");
|
|
31
|
+
return parseBenchConfig(JSON.parse(raw));
|
|
32
|
+
}
|
|
33
|
+
catch (error) {
|
|
34
|
+
if (isNodeError(error) && error.code === "ENOENT") {
|
|
35
|
+
return readLegacyBenchConfig(paths);
|
|
36
|
+
}
|
|
37
|
+
throw error;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
export async function writeBenchConfig(paths, config) {
|
|
41
|
+
await ensureBenchHome(paths);
|
|
42
|
+
await writeFile(paths.configFile, `${JSON.stringify(config, null, 2)}\n`, {
|
|
43
|
+
encoding: "utf8",
|
|
44
|
+
mode: 0o600,
|
|
45
|
+
});
|
|
46
|
+
await chmod(paths.configFile, 0o600);
|
|
47
|
+
}
|
|
48
|
+
export function benchKeyFromConfig(config, env = process.env) {
|
|
49
|
+
return env.INFEROCK_BENCH_KEY ?? config.benchKey ?? "";
|
|
50
|
+
}
|
|
51
|
+
export function acceptedBenchKeysFromConfig(config, env = process.env) {
|
|
52
|
+
return uniqueStrings([
|
|
53
|
+
config.benchKey,
|
|
54
|
+
env.INFEROCK_BENCH_KEY,
|
|
55
|
+
]);
|
|
56
|
+
}
|
|
57
|
+
export function generateBenchKey() {
|
|
58
|
+
return `ibl_${randomBytes(12).toString("hex")}`;
|
|
59
|
+
}
|
|
60
|
+
export async function ensureGeneratedBenchKey(input) {
|
|
61
|
+
if (input.config.benchKey)
|
|
62
|
+
return input.config;
|
|
63
|
+
const config = {
|
|
64
|
+
...input.config,
|
|
65
|
+
benchKey: generateBenchKey(),
|
|
66
|
+
};
|
|
67
|
+
await writeBenchConfig(input.paths, config);
|
|
68
|
+
return config;
|
|
69
|
+
}
|
|
70
|
+
export async function applyProviderKeyUpdate(input) {
|
|
71
|
+
const config = { ...input.config };
|
|
72
|
+
if ("openaiApiKey" in input.update) {
|
|
73
|
+
const next = normalizedKeyUpdate(input.update.openaiApiKey);
|
|
74
|
+
if (next)
|
|
75
|
+
config.openaiApiKey = next;
|
|
76
|
+
else
|
|
77
|
+
delete config.openaiApiKey;
|
|
78
|
+
}
|
|
79
|
+
if ("anthropicApiKey" in input.update) {
|
|
80
|
+
const next = normalizedKeyUpdate(input.update.anthropicApiKey);
|
|
81
|
+
if (next)
|
|
82
|
+
config.anthropicApiKey = next;
|
|
83
|
+
else
|
|
84
|
+
delete config.anthropicApiKey;
|
|
85
|
+
}
|
|
86
|
+
await writeBenchConfig(input.paths, config);
|
|
87
|
+
return config;
|
|
88
|
+
}
|
|
89
|
+
export function providerApiKey(provider, config, env = process.env) {
|
|
90
|
+
if (provider === "openai") {
|
|
91
|
+
return env.INFEROCK_BENCH_OPENAI_API_KEY ?? env.OPENAI_API_KEY ?? config.openaiApiKey;
|
|
92
|
+
}
|
|
93
|
+
return env.INFEROCK_BENCH_ANTHROPIC_API_KEY ?? env.ANTHROPIC_API_KEY ?? config.anthropicApiKey;
|
|
94
|
+
}
|
|
95
|
+
export function providerKeyStatus(provider, config, env = process.env) {
|
|
96
|
+
const envKey = provider === "openai"
|
|
97
|
+
? env.INFEROCK_BENCH_OPENAI_API_KEY ?? env.OPENAI_API_KEY
|
|
98
|
+
: env.INFEROCK_BENCH_ANTHROPIC_API_KEY ?? env.ANTHROPIC_API_KEY;
|
|
99
|
+
if (envKey) {
|
|
100
|
+
return {
|
|
101
|
+
configured: true,
|
|
102
|
+
source: "env",
|
|
103
|
+
maskedKey: maskSecret(envKey),
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
const configKey = provider === "openai" ? config.openaiApiKey : config.anthropicApiKey;
|
|
107
|
+
if (configKey) {
|
|
108
|
+
return {
|
|
109
|
+
configured: true,
|
|
110
|
+
source: "config",
|
|
111
|
+
maskedKey: maskSecret(configKey),
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
return {
|
|
115
|
+
configured: false,
|
|
116
|
+
source: null,
|
|
117
|
+
maskedKey: null,
|
|
118
|
+
};
|
|
119
|
+
}
|
|
120
|
+
export function maskSecret(secret) {
|
|
121
|
+
const trimmed = secret.trim();
|
|
122
|
+
if (trimmed.length <= 8)
|
|
123
|
+
return "..." + trimmed.slice(-4);
|
|
124
|
+
const prefix = secretPrefix(trimmed);
|
|
125
|
+
return `${prefix}...${trimmed.slice(-4)}`;
|
|
126
|
+
}
|
|
127
|
+
export function providerBaseUrl(provider, _config, env = process.env) {
|
|
128
|
+
const endpoint = provider === "openai"
|
|
129
|
+
? env.INFEROCK_BENCH_OPENAI_BASE_URL
|
|
130
|
+
: env.INFEROCK_BENCH_ANTHROPIC_BASE_URL;
|
|
131
|
+
if (endpoint)
|
|
132
|
+
return endpoint;
|
|
133
|
+
return provider === "openai" ? DEFAULT_OPENAI_BASE_URL : DEFAULT_ANTHROPIC_BASE_URL;
|
|
134
|
+
}
|
|
135
|
+
export function reliabilityEndpoint(config, env = process.env) {
|
|
136
|
+
return env.INFEROCK_BENCH_INDEX_ENDPOINT ?? config.reliabilityIndex?.endpoint;
|
|
137
|
+
}
|
|
138
|
+
export async function ensureReliabilityIndexAsked(inputConfig) {
|
|
139
|
+
const env = inputConfig.env ?? process.env;
|
|
140
|
+
const log = inputConfig.log ?? console.log;
|
|
141
|
+
if (inputConfig.config.reliabilityIndex?.askedAt)
|
|
142
|
+
return inputConfig.config;
|
|
143
|
+
const askedAt = new Date().toISOString();
|
|
144
|
+
const tty = inputConfig.stdinIsTty ?? Boolean(input.isTTY);
|
|
145
|
+
const outTty = inputConfig.stdoutIsTty ?? Boolean(output.isTTY);
|
|
146
|
+
let enabled = false;
|
|
147
|
+
if (env.INFEROCK_BENCH_RELIABILITY_INDEX === "on") {
|
|
148
|
+
enabled = true;
|
|
149
|
+
}
|
|
150
|
+
else if (tty && outTty) {
|
|
151
|
+
enabled = await askReliabilityOptIn();
|
|
152
|
+
}
|
|
153
|
+
else {
|
|
154
|
+
log("Reliability index opt-in defaulted to off. Run `inferock-bench telemetry enable --reliability-index` to opt in.");
|
|
155
|
+
}
|
|
156
|
+
const config = {
|
|
157
|
+
...inputConfig.config,
|
|
158
|
+
reliabilityIndex: {
|
|
159
|
+
...(inputConfig.config.reliabilityIndex ?? {}),
|
|
160
|
+
askedAt,
|
|
161
|
+
enabled,
|
|
162
|
+
},
|
|
163
|
+
};
|
|
164
|
+
await writeBenchConfig(inputConfig.paths, config);
|
|
165
|
+
return config;
|
|
166
|
+
}
|
|
167
|
+
export async function setReliabilityIndexEnabled(input) {
|
|
168
|
+
const config = {
|
|
169
|
+
...input.config,
|
|
170
|
+
reliabilityIndex: {
|
|
171
|
+
...(input.config.reliabilityIndex ?? {}),
|
|
172
|
+
askedAt: input.config.reliabilityIndex?.askedAt ?? new Date().toISOString(),
|
|
173
|
+
enabled: input.enabled,
|
|
174
|
+
},
|
|
175
|
+
};
|
|
176
|
+
await writeBenchConfig(input.paths, config);
|
|
177
|
+
return config;
|
|
178
|
+
}
|
|
179
|
+
function parseBenchConfig(value) {
|
|
180
|
+
if (!isRecord(value))
|
|
181
|
+
return {};
|
|
182
|
+
const reliability = parseReliabilityIndexConfig(value.reliabilityIndex);
|
|
183
|
+
return {
|
|
184
|
+
...(stringValue(value.benchKey) ? { benchKey: stringValue(value.benchKey) } : {}),
|
|
185
|
+
...(stringValue(value.openaiApiKey) ? { openaiApiKey: stringValue(value.openaiApiKey) } : {}),
|
|
186
|
+
...(stringValue(value.anthropicApiKey) ? { anthropicApiKey: stringValue(value.anthropicApiKey) } : {}),
|
|
187
|
+
...(reliability ? { reliabilityIndex: reliability } : {}),
|
|
188
|
+
};
|
|
189
|
+
}
|
|
190
|
+
async function readLegacyBenchConfig(paths) {
|
|
191
|
+
try {
|
|
192
|
+
const raw = await readFile(paths.legacyConfigFile, "utf8");
|
|
193
|
+
const config = parseBenchConfig(JSON.parse(raw));
|
|
194
|
+
await writeBenchConfig(paths, config);
|
|
195
|
+
return config;
|
|
196
|
+
}
|
|
197
|
+
catch (error) {
|
|
198
|
+
if (isNodeError(error) && error.code === "ENOENT")
|
|
199
|
+
return {};
|
|
200
|
+
throw error;
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
function normalizedKeyUpdate(value) {
|
|
204
|
+
if (typeof value !== "string")
|
|
205
|
+
return undefined;
|
|
206
|
+
const trimmed = value.trim();
|
|
207
|
+
return trimmed.length > 0 ? trimmed : undefined;
|
|
208
|
+
}
|
|
209
|
+
function secretPrefix(secret) {
|
|
210
|
+
const secondDash = secret.indexOf("-", secret.indexOf("-") + 1);
|
|
211
|
+
if (secondDash > 0 && secondDash < 8)
|
|
212
|
+
return secret.slice(0, secondDash + 1);
|
|
213
|
+
return secret.slice(0, Math.min(7, secret.length - 4));
|
|
214
|
+
}
|
|
215
|
+
function uniqueStrings(values) {
|
|
216
|
+
return [...new Set(values.filter((value) => Boolean(value)))];
|
|
217
|
+
}
|
|
218
|
+
function parseReliabilityIndexConfig(value) {
|
|
219
|
+
if (!isRecord(value))
|
|
220
|
+
return undefined;
|
|
221
|
+
return {
|
|
222
|
+
enabled: value.enabled === true,
|
|
223
|
+
...(stringValue(value.askedAt) ? { askedAt: stringValue(value.askedAt) } : {}),
|
|
224
|
+
...(stringValue(value.endpoint) ? { endpoint: stringValue(value.endpoint) } : {}),
|
|
225
|
+
};
|
|
226
|
+
}
|
|
227
|
+
async function askReliabilityOptIn() {
|
|
228
|
+
const rl = createInterface({ input, output });
|
|
229
|
+
try {
|
|
230
|
+
const answer = await rl.question("Join the public reliability index? Aggregates only: no prompts, outputs, keys, traces, or identifiers. Type yes to opt in [default no]: ");
|
|
231
|
+
return answer.trim().toLowerCase() === "yes";
|
|
232
|
+
}
|
|
233
|
+
finally {
|
|
234
|
+
rl.close();
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
function isNodeError(error) {
|
|
238
|
+
return error instanceof Error && "code" in error;
|
|
239
|
+
}
|
|
240
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACrE,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,KAAK,IAAI,KAAK,EAAE,MAAM,IAAI,MAAM,EAAE,MAAM,cAAc,CAAC;AAChE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAGpD,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,CAAC;AACjC,MAAM,CAAC,MAAM,YAAY,GAAG,WAAW,CAAC;AACxC,MAAM,CAAC,MAAM,uBAAuB,GAAG,2BAA2B,CAAC;AACnE,MAAM,CAAC,MAAM,0BAA0B,GAAG,8BAA8B,CAAC;AACzE,MAAM,CAAC,MAAM,cAAc,GAAG,gBAAgB,CAAC;AAC/C,MAAM,cAAc,GAAG,CAAC,UAAU,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAChE,MAAM,CAAC,MAAM,aAAa,GAAG,WAAW,cAAc,EAAE,CAAC;AAkCzD,MAAM,UAAU,iBAAiB,CAAC,MAAyB,OAAO,CAAC,GAAG;IACpE,MAAM,OAAO,GAAG,GAAG,CAAC,mBAAmB,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,iBAAiB,CAAC,CAAC;IAC9E,OAAO;QACL,OAAO;QACP,UAAU,EAAE,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC;QACnC,gBAAgB,EAAE,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC;QAC9C,UAAU,EAAE,IAAI,CAAC,OAAO,EAAE,cAAc,CAAC;QACzC,WAAW,EAAE,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC;KACvC,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,KAAiB;IACrD,MAAM,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;AAClD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,KAAiB;IACrD,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,KAAK,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QACrD,OAAO,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAY,CAAC,CAAC;IACtD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,WAAW,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAClD,OAAO,qBAAqB,CAAC,KAAK,CAAC,CAAC;QACtC,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,KAAiB,EAAE,MAAmB;IAC3E,MAAM,eAAe,CAAC,KAAK,CAAC,CAAC;IAC7B,MAAM,SAAS,CAAC,KAAK,CAAC,UAAU,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE;QACxE,QAAQ,EAAE,MAAM;QAChB,IAAI,EAAE,KAAK;KACZ,CAAC,CAAC;IACH,MAAM,KAAK,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,MAAmB,EACnB,MAAyB,OAAO,CAAC,GAAG;IAEpC,OAAO,GAAG,CAAC,kBAAkB,IAAI,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC;AACzD,CAAC;AAED,MAAM,UAAU,2BAA2B,CACzC,MAAmB,EACnB,MAAyB,OAAO,CAAC,GAAG;IAEpC,OAAO,aAAa,CAAC;QACnB,MAAM,CAAC,QAAQ;QACf,GAAG,CAAC,kBAAkB;KACvB,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,gBAAgB;IAC9B,OAAO,OAAO,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;AAClD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAAC,KAG7C;IACC,IAAI,KAAK,CAAC,MAAM,CAAC,QAAQ;QAAE,OAAO,KAAK,CAAC,MAAM,CAAC;IAC/C,MAAM,MAAM,GAAG;QACb,GAAG,KAAK,CAAC,MAAM;QACf,QAAQ,EAAE,gBAAgB,EAAE;KAC7B,CAAC;IACF,MAAM,gBAAgB,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAC5C,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,KAI5C;IACC,MAAM,MAAM,GAKR,EAAE,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;IAExB,IAAI,cAAc,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;QACnC,MAAM,IAAI,GAAG,mBAAmB,CAAC,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QAC5D,IAAI,IAAI;YAAE,MAAM,CAAC,YAAY,GAAG,IAAI,CAAC;;YAChC,OAAO,MAAM,CAAC,YAAY,CAAC;IAClC,CAAC;IAED,IAAI,iBAAiB,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;QACtC,MAAM,IAAI,GAAG,mBAAmB,CAAC,KAAK,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;QAC/D,IAAI,IAAI;YAAE,MAAM,CAAC,eAAe,GAAG,IAAI,CAAC;;YACnC,OAAO,MAAM,CAAC,eAAe,CAAC;IACrC,CAAC;IAED,MAAM,gBAAgB,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAC5C,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,cAAc,CAC5B,QAAsB,EACtB,MAAmB,EACnB,MAAyB,OAAO,CAAC,GAAG;IAEpC,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC1B,OAAO,GAAG,CAAC,6BAA6B,IAAI,GAAG,CAAC,cAAc,IAAI,MAAM,CAAC,YAAY,CAAC;IACxF,CAAC;IACD,OAAO,GAAG,CAAC,gCAAgC,IAAI,GAAG,CAAC,iBAAiB,IAAI,MAAM,CAAC,eAAe,CAAC;AACjG,CAAC;AAED,MAAM,UAAU,iBAAiB,CAC/B,QAAsB,EACtB,MAAmB,EACnB,MAAyB,OAAO,CAAC,GAAG;IAEpC,MAAM,MAAM,GAAG,QAAQ,KAAK,QAAQ;QAClC,CAAC,CAAC,GAAG,CAAC,6BAA6B,IAAI,GAAG,CAAC,cAAc;QACzD,CAAC,CAAC,GAAG,CAAC,gCAAgC,IAAI,GAAG,CAAC,iBAAiB,CAAC;IAClE,IAAI,MAAM,EAAE,CAAC;QACX,OAAO;YACL,UAAU,EAAE,IAAI;YAChB,MAAM,EAAE,KAAK;YACb,SAAS,EAAE,UAAU,CAAC,MAAM,CAAC;SAC9B,CAAC;IACJ,CAAC;IAED,MAAM,SAAS,GAAG,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC;IACvF,IAAI,SAAS,EAAE,CAAC;QACd,OAAO;YACL,UAAU,EAAE,IAAI;YAChB,MAAM,EAAE,QAAQ;YAChB,SAAS,EAAE,UAAU,CAAC,SAAS,CAAC;SACjC,CAAC;IACJ,CAAC;IAED,OAAO;QACL,UAAU,EAAE,KAAK;QACjB,MAAM,EAAE,IAAI;QACZ,SAAS,EAAE,IAAI;KAChB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,MAAc;IACvC,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;IAC9B,IAAI,OAAO,CAAC,MAAM,IAAI,CAAC;QAAE,OAAO,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAE1D,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;IACrC,OAAO,GAAG,MAAM,MAAM,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAC5C,CAAC;AAED,MAAM,UAAU,eAAe,CAC7B,QAAsB,EACtB,OAAoB,EACpB,MAAyB,OAAO,CAAC,GAAG;IAEpC,MAAM,QAAQ,GAAG,QAAQ,KAAK,QAAQ;QACpC,CAAC,CAAC,GAAG,CAAC,8BAA8B;QACpC,CAAC,CAAC,GAAG,CAAC,iCAAiC,CAAC;IAC1C,IAAI,QAAQ;QAAE,OAAO,QAAQ,CAAC;IAE9B,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,0BAA0B,CAAC;AACtF,CAAC;AAED,MAAM,UAAU,mBAAmB,CACjC,MAAmB,EACnB,MAAyB,OAAO,CAAC,GAAG;IAEpC,OAAO,GAAG,CAAC,6BAA6B,IAAI,MAAM,CAAC,gBAAgB,EAAE,QAAQ,CAAC;AAChF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAAC,WAOjD;IACC,MAAM,GAAG,GAAG,WAAW,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC;IAC3C,MAAM,GAAG,GAAG,WAAW,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC;IAC3C,IAAI,WAAW,CAAC,MAAM,CAAC,gBAAgB,EAAE,OAAO;QAAE,OAAO,WAAW,CAAC,MAAM,CAAC;IAE5E,MAAM,OAAO,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACzC,MAAM,GAAG,GAAG,WAAW,CAAC,UAAU,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC3D,MAAM,MAAM,GAAG,WAAW,CAAC,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAChE,IAAI,OAAO,GAAG,KAAK,CAAC;IAEpB,IAAI,GAAG,CAAC,gCAAgC,KAAK,IAAI,EAAE,CAAC;QAClD,OAAO,GAAG,IAAI,CAAC;IACjB,CAAC;SAAM,IAAI,GAAG,IAAI,MAAM,EAAE,CAAC;QACzB,OAAO,GAAG,MAAM,mBAAmB,EAAE,CAAC;IACxC,CAAC;SAAM,CAAC;QACN,GAAG,CAAC,iHAAiH,CAAC,CAAC;IACzH,CAAC;IAED,MAAM,MAAM,GAAG;QACb,GAAG,WAAW,CAAC,MAAM;QACrB,gBAAgB,EAAE;YAChB,GAAG,CAAC,WAAW,CAAC,MAAM,CAAC,gBAAgB,IAAI,EAAE,CAAC;YAC9C,OAAO;YACP,OAAO;SACR;KACF,CAAC;IACF,MAAM,gBAAgB,CAAC,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAClD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAAC,KAIhD;IACC,MAAM,MAAM,GAAG;QACb,GAAG,KAAK,CAAC,MAAM;QACf,gBAAgB,EAAE;YAChB,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,gBAAgB,IAAI,EAAE,CAAC;YACxC,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,gBAAgB,EAAE,OAAO,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YAC3E,OAAO,EAAE,KAAK,CAAC,OAAO;SACvB;KACF,CAAC;IACF,MAAM,gBAAgB,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAC5C,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAc;IACtC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAChC,MAAM,WAAW,GAAG,2BAA2B,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;IACxE,OAAO;QACL,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,WAAW,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACjF,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,WAAW,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7F,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,WAAW,CAAC,KAAK,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACtG,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC1D,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,qBAAqB,CAAC,KAAiB;IACpD,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,KAAK,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;QAC3D,MAAM,MAAM,GAAG,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAY,CAAC,CAAC;QAC5D,MAAM,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QACtC,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,WAAW,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ;YAAE,OAAO,EAAE,CAAC;QAC7D,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAgC;IAC3D,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAC;IAChD,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAC7B,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;AAClD,CAAC;AAED,SAAS,YAAY,CAAC,MAAc;IAClC,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;IAChE,IAAI,UAAU,GAAG,CAAC,IAAI,UAAU,GAAG,CAAC;QAAE,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,GAAG,CAAC,CAAC,CAAC;IAC7E,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;AACzD,CAAC;AAED,SAAS,aAAa,CAAC,MAAuC;IAC5D,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAmB,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AACjF,CAAC;AAED,SAAS,2BAA2B,CAAC,KAAc;IACjD,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IACvC,OAAO;QACL,OAAO,EAAE,KAAK,CAAC,OAAO,KAAK,IAAI;QAC/B,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9E,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,WAAW,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAClF,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,mBAAmB;IAChC,MAAM,EAAE,GAAG,eAAe,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;IAC9C,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,QAAQ,CAC9B,0IAA0I,CAC3I,CAAC;QACF,OAAO,MAAM,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,KAAK,KAAK,CAAC;IAC/C,CAAC;YAAS,CAAC;QACT,EAAE,CAAC,KAAK,EAAE,CAAC;IACb,CAAC;AACH,CAAC;AAED,SAAS,WAAW,CAAC,KAAc;IACjC,OAAO,KAAK,YAAY,KAAK,IAAI,MAAM,IAAI,KAAK,CAAC;AACnD,CAAC"}
|