llm-relay 0.15.2 → 0.15.3

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 (48) hide show
  1. package/README.md +2 -2
  2. package/dist/backend.js +320 -19
  3. package/dist/backend.js.map +1 -1
  4. package/dist/circuit-breaker.d.ts +58 -32
  5. package/dist/circuit-breaker.js +176 -42
  6. package/dist/circuit-breaker.js.map +1 -1
  7. package/dist/cli.d.ts +5 -0
  8. package/dist/cli.js +39 -6
  9. package/dist/cli.js.map +1 -1
  10. package/dist/config.d.ts +2 -0
  11. package/dist/config.js +3 -2
  12. package/dist/config.js.map +1 -1
  13. package/dist/control-authorization.d.ts +45 -0
  14. package/dist/control-authorization.js +208 -0
  15. package/dist/control-authorization.js.map +1 -0
  16. package/dist/dispatch.d.ts +11 -1
  17. package/dist/dispatch.js +16 -4
  18. package/dist/dispatch.js.map +1 -1
  19. package/dist/kernel/contracts.d.ts +253 -0
  20. package/dist/kernel/contracts.js +9 -0
  21. package/dist/kernel/contracts.js.map +1 -0
  22. package/dist/kernel/index.d.ts +3 -0
  23. package/dist/kernel/index.js +4 -0
  24. package/dist/kernel/index.js.map +1 -0
  25. package/dist/kernel/request-lifecycle.d.ts +54 -0
  26. package/dist/kernel/request-lifecycle.js +178 -0
  27. package/dist/kernel/request-lifecycle.js.map +1 -0
  28. package/dist/kernel/tier-snapshot.d.ts +48 -0
  29. package/dist/kernel/tier-snapshot.js +126 -0
  30. package/dist/kernel/tier-snapshot.js.map +1 -0
  31. package/dist/offload.js +108 -36
  32. package/dist/offload.js.map +1 -1
  33. package/dist/repair.js +8 -1
  34. package/dist/repair.js.map +1 -1
  35. package/dist/request-log.d.ts +6 -0
  36. package/dist/request-log.js +29 -0
  37. package/dist/request-log.js.map +1 -0
  38. package/dist/routes/admin.d.ts +2 -0
  39. package/dist/routes/admin.js +3 -3
  40. package/dist/routes/admin.js.map +1 -1
  41. package/dist/server.d.ts +9 -26
  42. package/dist/server.js +398 -117
  43. package/dist/server.js.map +1 -1
  44. package/dist/validator.d.ts +4 -4
  45. package/dist/validator.js +15 -3
  46. package/dist/validator.js.map +1 -1
  47. package/package.json +1 -1
  48. package/skills/llm-relay/SKILL.md +24 -13
package/README.md CHANGED
@@ -88,8 +88,8 @@ llm-relay
88
88
  the prompt.
89
89
 
90
90
  ### 6. Programmatic Telemetry & Quota Access for Claude
91
- - **Read-only HTTP endpoints**: `GET /telemetry` (live JSON metrics), `GET /registry` (full provider/routing/model catalog with quality scores), `GET /ping` (trigger health probe pass & mode summary), `GET /health` (diagnostic status), `GET /candidates` (the un-blended offload decision table).
92
- - **Mutating HTTP endpoints**: `GET|POST /offload` (read/set per-client offload rules), `GET|POST /dispatch` (the dispatch ladder). **Loopback is not authorization** any page you visit can POST cross-origin to a loopback listener without a preflight, and these two write your `config.json` and steer lane order. They therefore reject a present-but-non-loopback `Origin` with 403, require `content-type: application/json` on a mutating request, and require a loopback `Host` (closing DNS rebinding). An **absent** `Origin` is allowed on purpose that is what a CLI sends, and it is what keeps targeted offload changes working against a running proxy with no restart.
91
+ - **Tokenless status endpoints**: `GET /models`, `GET /telemetry`, `GET /offload`, and `GET /dispatch` are side-effect-free status reads.
92
+ - **Capability-protected control endpoints**: `POST /offload`, `POST /dispatch`, `GET /ping`, `GET /registry`, `GET /health`, and `GET /candidates`. The CLI automatically carries the per-install 256-bit capability stored in `~/.llm-relay/control-token`; it is never forwarded to providers. **Loopback is not authorization** every request also requires a `Host` exactly matching the bound listener authority, a present `Origin` must match its exact scheme/host/effective port, and `Origin: null` is rejected. Mutating requests additionally require `content-type: application/json`.
93
93
  - **CLI Commands**: `llm-relay telemetry` outputs live telemetry metrics; `llm-relay models` lists live model catalogs with SWE-bench & quality scores; `llm-relay ping` performs live health & latency probes.
94
94
  - **Response Headers**: Proxy responses include `x-llm-relay-quota-percent`, `x-llm-relay-stability-score`, and `x-llm-relay-target`.
95
95
 
package/dist/backend.js CHANGED
@@ -51,6 +51,185 @@ export function parseRetryAfterMs(value, now = Date.now()) {
51
51
  const delta = at - now;
52
52
  return delta > 0 ? delta : null;
53
53
  }
54
+ const STREAM_PREFLIGHT_LIMIT = 64 * 1024;
55
+ function isRecord(value) {
56
+ return typeof value === "object" && value !== null && !Array.isArray(value);
57
+ }
58
+ /**
59
+ * Validate only the protocol structure the response mappers rely on. Optional identifiers,
60
+ * model names and usage remain optional because several compatible providers legitimately omit
61
+ * them; the required response discriminator must not be optional, or `{}` becomes a successful
62
+ * empty assistant message.
63
+ */
64
+ function invalidEnvelopeReason(value, protocol, streamed) {
65
+ if (!isRecord(value))
66
+ return "expected a JSON object";
67
+ // An error delivered inside a 2xx SSE stream is still a real protocol envelope. Leave it to
68
+ // the stream adapter to forward rather than reclassifying it as malformed transport data.
69
+ if (streamed && isRecord(value.error))
70
+ return null;
71
+ if (protocol === "openai-chat") {
72
+ if (!Array.isArray(value.choices))
73
+ return "missing choices array";
74
+ if (streamed && value.choices.length === 0) {
75
+ return isRecord(value.usage) ? null : "empty choices without usage";
76
+ }
77
+ if (value.choices.length === 0)
78
+ return "empty choices array";
79
+ for (const rawChoice of value.choices) {
80
+ if (!isRecord(rawChoice))
81
+ return "choice is not an object";
82
+ const message = streamed ? rawChoice.delta : rawChoice.message;
83
+ if (!isRecord(message))
84
+ return streamed ? "choice is missing delta" : "choice is missing message";
85
+ if (!streamed && message.tool_calls !== undefined && message.tool_calls !== null) {
86
+ if (!Array.isArray(message.tool_calls))
87
+ return "message tool_calls is not an array";
88
+ for (const rawCall of message.tool_calls) {
89
+ if (!isRecord(rawCall) || !isRecord(rawCall.function))
90
+ return "invalid tool call";
91
+ if (typeof rawCall.function.name !== "string" || typeof rawCall.function.arguments !== "string") {
92
+ return "invalid tool function";
93
+ }
94
+ }
95
+ }
96
+ if (!streamed) {
97
+ const hasContent = message.content === null || typeof message.content === "string";
98
+ const hasToolCalls = Array.isArray(message.tool_calls) && message.tool_calls.length > 0;
99
+ if (!hasContent && !hasToolCalls)
100
+ return "message has neither content nor tool calls";
101
+ }
102
+ }
103
+ return null;
104
+ }
105
+ if (!streamed) {
106
+ if (!Array.isArray(value.content))
107
+ return "missing content array";
108
+ for (const rawBlock of value.content) {
109
+ if (!isRecord(rawBlock) || typeof rawBlock.type !== "string")
110
+ return "invalid content block";
111
+ if (rawBlock.type === "text" && typeof rawBlock.text !== "string")
112
+ return "text block is missing text";
113
+ if (rawBlock.type === "tool_use" && typeof rawBlock.name !== "string")
114
+ return "tool_use block is missing name";
115
+ }
116
+ return null;
117
+ }
118
+ switch (value.type) {
119
+ case "ping":
120
+ case "message_stop":
121
+ case "content_block_stop":
122
+ return null;
123
+ case "message_start":
124
+ return isRecord(value.message) ? null : "message_start is missing message";
125
+ case "content_block_start":
126
+ return isRecord(value.content_block) ? null : "content_block_start is missing content_block";
127
+ case "content_block_delta":
128
+ case "message_delta":
129
+ return isRecord(value.delta) ? null : `${String(value.type)} is missing delta`;
130
+ case "error":
131
+ return isRecord(value.error) ? null : "error event is missing error";
132
+ default:
133
+ return "missing or unknown Anthropic event type";
134
+ }
135
+ }
136
+ /** Inspect the first data event before handing a provider stream to llm-bridge. */
137
+ async function preflightResponseStream(body, protocol) {
138
+ const reader = body.getReader();
139
+ const chunks = [];
140
+ const decoder = new TextDecoder();
141
+ let buffered = "";
142
+ let byteLength = 0;
143
+ const replay = () => {
144
+ let prefixIndex = 0;
145
+ return { ok: true, body: new ReadableStream({
146
+ async pull(controller) {
147
+ if (prefixIndex < chunks.length) {
148
+ controller.enqueue(chunks[prefixIndex++]);
149
+ return;
150
+ }
151
+ try {
152
+ const more = await reader.read();
153
+ if (more.done)
154
+ controller.close();
155
+ else
156
+ controller.enqueue(more.value);
157
+ }
158
+ catch (error) {
159
+ controller.error(error);
160
+ }
161
+ },
162
+ async cancel(reasonToCancel) {
163
+ await reader.cancel(reasonToCancel).catch(() => { });
164
+ },
165
+ }) };
166
+ };
167
+ const fail = async (reason) => {
168
+ await reader.cancel().catch(() => { });
169
+ return { ok: false, reason };
170
+ };
171
+ const inspectEvent = (event) => {
172
+ const data = event
173
+ .split(/\r?\n/)
174
+ .filter((line) => line.startsWith("data:"))
175
+ .map((line) => line.slice(5).trimStart())
176
+ .join("\n")
177
+ .trim();
178
+ if (!data)
179
+ return undefined;
180
+ if (data === "[DONE]")
181
+ return "stream ended before a response event";
182
+ let parsed;
183
+ try {
184
+ parsed = JSON.parse(data);
185
+ }
186
+ catch {
187
+ return "data event is not valid JSON";
188
+ }
189
+ return invalidEnvelopeReason(parsed, protocol, true);
190
+ };
191
+ while (byteLength <= STREAM_PREFLIGHT_LIMIT) {
192
+ const next = await reader.read().catch(() => null);
193
+ if (next === null)
194
+ return fail("stream failed during preflight");
195
+ if (next.done) {
196
+ buffered += decoder.decode();
197
+ let finalReason = buffered.trim() ? inspectEvent(buffered) : undefined;
198
+ // A few compatible providers ignore `stream: true` and return one valid buffered
199
+ // completion. Preserve the old adapter behaviour for that genuine envelope.
200
+ if (finalReason === undefined && buffered.trim()) {
201
+ try {
202
+ finalReason = invalidEnvelopeReason(JSON.parse(buffered), protocol, false);
203
+ }
204
+ catch {
205
+ // The SSE-specific reason below remains more useful.
206
+ }
207
+ }
208
+ if (finalReason === null)
209
+ return replay();
210
+ return fail(finalReason ?? "stream ended before a response event");
211
+ }
212
+ chunks.push(next.value);
213
+ byteLength += next.value.byteLength;
214
+ if (byteLength > STREAM_PREFLIGHT_LIMIT)
215
+ return fail("no response event within preflight limit");
216
+ buffered += decoder.decode(next.value, { stream: true });
217
+ let boundary;
218
+ const separator = /\r?\n\r?\n/g;
219
+ while ((boundary = separator.exec(buffered)) !== null) {
220
+ const event = buffered.slice(0, boundary.index);
221
+ buffered = buffered.slice(boundary.index + boundary[0].length);
222
+ separator.lastIndex = 0;
223
+ const reason = inspectEvent(event);
224
+ if (reason === undefined)
225
+ continue;
226
+ if (reason !== null)
227
+ return fail(reason);
228
+ return replay();
229
+ }
230
+ }
231
+ return fail("no response event within preflight limit");
232
+ }
54
233
  /**
55
234
  * Fetch the resolved provider target and return an ANTHROPIC-shaped `Response`,
56
235
  * regardless of the backend's native wire format. For kind="anthropic" this is a
@@ -64,7 +243,43 @@ export async function fetchBackend(target, args, fetchFn = fetch) {
64
243
  const init = { method: args.method, headers: args.anthropicHeaders, signal: args.signal };
65
244
  if (args.reqBuf.length)
66
245
  init.body = args.reqBuf;
67
- return fetchFn(target.base + args.path, init);
246
+ const res = await fetchFn(target.base + args.path, init);
247
+ // Preserve passthrough bytes, but do not preserve a successful status for a malformed
248
+ // Messages envelope. Inspecting a clone leaves the original buffered body byte-exact.
249
+ const messagesPath = args.path.split("?", 1)[0] === "/v1/messages";
250
+ if (!res.ok || !messagesPath)
251
+ return res;
252
+ const streamed = args.wantsStream || (res.headers.get("content-type") ?? "").includes("text/event-stream");
253
+ if (streamed) {
254
+ if (!res.body) {
255
+ return anthropicError(502, "llm-relay: invalid Anthropic upstream envelope: empty stream", "upstream", {
256
+ ...retryAfterHeader(res.headers),
257
+ }, "invalid_upstream_envelope");
258
+ }
259
+ const preflight = await preflightResponseStream(res.body, "anthropic-messages");
260
+ if (!preflight.ok) {
261
+ return anthropicError(502, `llm-relay: invalid Anthropic upstream envelope: ${preflight.reason}`, "upstream", {
262
+ ...retryAfterHeader(res.headers),
263
+ }, "invalid_upstream_envelope");
264
+ }
265
+ return new Response(preflight.body, { status: res.status, headers: res.headers });
266
+ }
267
+ let body;
268
+ try {
269
+ body = await res.clone().json();
270
+ }
271
+ catch {
272
+ return anthropicError(502, "llm-relay: invalid Anthropic upstream envelope: body is not valid JSON", "upstream", {
273
+ ...retryAfterHeader(res.headers),
274
+ }, "invalid_upstream_envelope");
275
+ }
276
+ const invalidReason = invalidEnvelopeReason(body, "anthropic-messages", false);
277
+ if (invalidReason) {
278
+ return anthropicError(502, `llm-relay: invalid Anthropic upstream envelope: ${invalidReason}`, "upstream", {
279
+ ...retryAfterHeader(res.headers),
280
+ }, "invalid_upstream_envelope");
281
+ }
282
+ return res;
68
283
  }
69
284
  // kind === "openai"
70
285
  // llm-bridge stringifies any block type it doesn't know, which would put a document's
@@ -124,18 +339,49 @@ export async function fetchBackend(target, args, fetchFn = fetch) {
124
339
  ...retryAfterHeader(res.headers),
125
340
  });
126
341
  }
127
- if (args.wantsStream && res.body) {
128
- const anthStream = handleUniversalStreamRequest(res.body, "openai", "anthropic");
129
- return new Response(anthStream, { status: res.status, headers: { "content-type": "text/event-stream" } });
342
+ if (args.wantsStream) {
343
+ if (!res.body) {
344
+ return anthropicError(502, "llm-relay: invalid OpenAI upstream envelope: empty stream", "upstream", {
345
+ ...retryAfterHeader(res.headers),
346
+ }, "invalid_upstream_envelope");
347
+ }
348
+ const preflight = await preflightResponseStream(res.body, "openai-chat");
349
+ if (!preflight.ok) {
350
+ return anthropicError(502, `llm-relay: invalid OpenAI upstream envelope: ${preflight.reason}`, "upstream", {
351
+ ...retryAfterHeader(res.headers),
352
+ }, "invalid_upstream_envelope");
353
+ }
354
+ try {
355
+ const anthStream = handleUniversalStreamRequest(preflight.body, "openai", "anthropic");
356
+ return new Response(anthStream, { status: res.status, headers: { "content-type": "text/event-stream" } });
357
+ }
358
+ catch (e) {
359
+ return anthropicError(502, `llm-relay: response translation failed: ${e.message}`, "local", {}, "relay_mapper_defect");
360
+ }
361
+ }
362
+ let upstreamJson;
363
+ try {
364
+ upstreamJson = await res.json();
365
+ }
366
+ catch {
367
+ return anthropicError(502, "llm-relay: invalid OpenAI upstream envelope: body is not valid JSON", "upstream", {
368
+ ...retryAfterHeader(res.headers),
369
+ }, "invalid_upstream_envelope");
370
+ }
371
+ const invalidReason = invalidEnvelopeReason(upstreamJson, "openai-chat", false);
372
+ if (invalidReason) {
373
+ return anthropicError(502, `llm-relay: invalid OpenAI upstream envelope: ${invalidReason}`, "upstream", {
374
+ ...retryAfterHeader(res.headers),
375
+ }, "invalid_upstream_envelope");
130
376
  }
131
377
  let anthropicJson;
132
378
  try {
133
- anthropicJson = openAiResponseToAnthropic((await res.json()), target.model ?? "");
379
+ anthropicJson = openAiResponseToAnthropic(upstreamJson, target.model ?? "");
134
380
  }
135
381
  catch (e) {
136
- // The provider answered 200; this 502 is ours. Marked local so it is not mistaken
137
- // for the provider being down it is our mapper being wrong about a healthy one.
138
- return anthropicError(502, `response translation failed: ${e.message}`, "local");
382
+ // The provider returned a valid source envelope, so a failure after this point belongs to
383
+ // the relay mapper rather than the provider or its failure budget.
384
+ return anthropicError(502, `llm-relay: response translation failed: ${e.message}`, "local", {}, "relay_mapper_defect");
139
385
  }
140
386
  return new Response(JSON.stringify(anthropicJson), { status: 200, headers: { "content-type": "application/json" } });
141
387
  }
@@ -177,16 +423,16 @@ function retryAfterHeader(hh) {
177
423
  const v = hh.get("retry-after");
178
424
  return v ? { "retry-after": v } : {};
179
425
  }
180
- function anthropicError(status, message, origin, extra = {}) {
181
- return new Response(JSON.stringify({ type: "error", error: { type: "api_error", message } }), {
426
+ function anthropicError(status, message, origin, extra = {}, type = "api_error") {
427
+ return new Response(JSON.stringify({ type: "error", error: { type, message } }), {
182
428
  status,
183
429
  headers: { "content-type": "application/json", [ERROR_ORIGIN_HEADER]: origin, ...extra },
184
430
  });
185
431
  }
186
- function openaiError(status, message, origin) {
187
- return new Response(JSON.stringify({ error: { message, type: "invalid_request_error" } }), {
432
+ function openaiError(status, message, origin, type = "invalid_request_error", extra = {}) {
433
+ return new Response(JSON.stringify({ error: { message, type } }), {
188
434
  status,
189
- headers: { "content-type": "application/json", [ERROR_ORIGIN_HEADER]: origin },
435
+ headers: { "content-type": "application/json", [ERROR_ORIGIN_HEADER]: origin, ...extra },
190
436
  });
191
437
  }
192
438
  /**
@@ -396,12 +642,37 @@ export async function fetchOpenAiFront(target, args, fetchFn = fetch) {
396
642
  // same wire format. It keeps provider-specific OpenAI fields byte-for-byte intact.
397
643
  if (target.kind === "openai" && protocol === "chat") {
398
644
  const body = { ...base, model: target.model, stream: args.wantsStream };
399
- return fetchFn(target.base + "/chat/completions", {
645
+ const res = await fetchFn(target.base + "/chat/completions", {
400
646
  method: "POST",
401
647
  headers: buildTargetHeaders(target),
402
648
  body: JSON.stringify(body),
403
649
  signal: args.signal,
404
650
  });
651
+ if (!res.ok)
652
+ return res;
653
+ const streamed = args.wantsStream || (res.headers.get("content-type") ?? "").includes("text/event-stream");
654
+ if (streamed) {
655
+ if (!res.body) {
656
+ return openaiError(502, "llm-relay: invalid OpenAI upstream envelope: empty stream", "upstream", "invalid_upstream_envelope", retryAfterHeader(res.headers));
657
+ }
658
+ const preflight = await preflightResponseStream(res.body, "openai-chat");
659
+ if (!preflight.ok) {
660
+ return openaiError(502, `llm-relay: invalid OpenAI upstream envelope: ${preflight.reason}`, "upstream", "invalid_upstream_envelope", retryAfterHeader(res.headers));
661
+ }
662
+ return new Response(preflight.body, { status: res.status, headers: res.headers });
663
+ }
664
+ let responseBody;
665
+ try {
666
+ responseBody = await res.clone().json();
667
+ }
668
+ catch {
669
+ return openaiError(502, "llm-relay: invalid OpenAI upstream envelope: body is not valid JSON", "upstream", "invalid_upstream_envelope", retryAfterHeader(res.headers));
670
+ }
671
+ const invalidReason = invalidEnvelopeReason(responseBody, "openai-chat", false);
672
+ if (invalidReason) {
673
+ return openaiError(502, `llm-relay: invalid OpenAI upstream envelope: ${invalidReason}`, "upstream", "invalid_upstream_envelope", retryAfterHeader(res.headers));
674
+ }
675
+ return res;
405
676
  }
406
677
  let anthropicBody;
407
678
  try {
@@ -435,20 +706,50 @@ export async function fetchOpenAiFront(target, args, fetchFn = fetch) {
435
706
  return new Response(anthropicErrorToOpenAi(raw, backendRes.status), { status: backendRes.status, headers });
436
707
  }
437
708
  const streamed = args.wantsStream || (backendRes.headers.get("content-type") ?? "").includes("text/event-stream");
438
- if (streamed && backendRes.body) {
709
+ if (streamed) {
710
+ if (!backendRes.body) {
711
+ const generated = target.kind !== "anthropic";
712
+ return openaiError(502, generated ? "llm-relay: response mapper produced an empty stream" : "llm-relay: invalid Anthropic upstream envelope: empty stream", generated ? "local" : "upstream", generated ? "relay_mapper_defect" : "invalid_upstream_envelope", retryAfterHeader(backendRes.headers));
713
+ }
714
+ const preflight = await preflightResponseStream(backendRes.body, "anthropic-messages");
715
+ if (!preflight.ok) {
716
+ const generated = target.kind !== "anthropic";
717
+ return openaiError(502, generated
718
+ ? `llm-relay: response mapper produced an invalid Anthropic envelope: ${preflight.reason}`
719
+ : `llm-relay: invalid Anthropic upstream envelope: ${preflight.reason}`, generated ? "local" : "upstream", generated ? "relay_mapper_defect" : "invalid_upstream_envelope", retryAfterHeader(backendRes.headers));
720
+ }
439
721
  const targetProtocol = protocol === "responses" ? "openai-responses" : "openai";
440
- const output = handleUniversalStreamRequest(backendRes.body, "anthropic", targetProtocol);
441
- return new Response(output, { status: backendRes.status, headers: { "content-type": "text/event-stream" } });
722
+ try {
723
+ const output = handleUniversalStreamRequest(preflight.body, "anthropic", targetProtocol);
724
+ return new Response(output, { status: backendRes.status, headers: { "content-type": "text/event-stream" } });
725
+ }
726
+ catch (e) {
727
+ return openaiError(502, `llm-relay: response translation failed: ${e.message}`, "local", "relay_mapper_defect");
728
+ }
729
+ }
730
+ let body;
731
+ try {
732
+ body = await backendRes.json();
733
+ }
734
+ catch {
735
+ const generated = target.kind !== "anthropic";
736
+ return openaiError(502, generated ? "llm-relay: response mapper produced non-JSON output" : "llm-relay: invalid Anthropic upstream envelope: body is not valid JSON", generated ? "local" : "upstream", generated ? "relay_mapper_defect" : "invalid_upstream_envelope", retryAfterHeader(backendRes.headers));
737
+ }
738
+ const invalidReason = invalidEnvelopeReason(body, "anthropic-messages", false);
739
+ if (invalidReason) {
740
+ const generated = target.kind !== "anthropic";
741
+ return openaiError(502, generated
742
+ ? `llm-relay: response mapper produced an invalid Anthropic envelope: ${invalidReason}`
743
+ : `llm-relay: invalid Anthropic upstream envelope: ${invalidReason}`, generated ? "local" : "upstream", generated ? "relay_mapper_defect" : "invalid_upstream_envelope", retryAfterHeader(backendRes.headers));
442
744
  }
443
745
  try {
444
- const body = (await backendRes.json());
445
746
  return new Response(JSON.stringify(anthropicMessageToOpenAi(body, protocol, target.model ?? String(base.model ?? ""))), {
446
747
  status: backendRes.status,
447
748
  headers: { "content-type": "application/json" },
448
749
  });
449
750
  }
450
751
  catch (e) {
451
- return openaiError(502, `llm-relay: response translation failed: ${e.message}`, "local");
752
+ return openaiError(502, `llm-relay: response translation failed: ${e.message}`, "local", "relay_mapper_defect");
452
753
  }
453
754
  }
454
755
  //# sourceMappingURL=backend.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"backend.js","sourceRoot":"","sources":["../src/backend.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,4BAA4B,EAAE,MAAM,YAAY,CAAC;AACrF,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAEhE,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAEnE;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,0BAA0B,CAAC;AAK9D,kEAAkE;AAClE,MAAM,UAAU,WAAW,CAAC,GAAa;IACvC,MAAM,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;IAC/C,OAAO,CAAC,KAAK,UAAU,IAAI,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACtD,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,uBAAuB,CAAC;AAExD;;;;;;;;GAQG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAAgC,EAAE,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE;IAClF,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC3C,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IACzB,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAElC,kFAAkF;IAClF,IAAI,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QAC9B,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;QAC1C,OAAO,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IACpD,CAAC;IAED,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC3B,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;QAAE,OAAO,IAAI,CAAC;IAClC,MAAM,KAAK,GAAG,EAAE,GAAG,GAAG,CAAC;IACvB,OAAO,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;AAClC,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,MAAsB,EACtB,IAQC,EACD,UAAwB,KAAK;IAE7B,IAAI,MAAM,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;QAChC,MAAM,IAAI,GAAgB,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,gBAAgB,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;QACvG,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM;YAAE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC;QAChD,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAChD,CAAC;IAED,oBAAoB;IACpB,sFAAsF;IACtF,sFAAsF;IACtF,IAAI,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;IAC3B,IAAI,CAAC;QACH,OAAO,GAAG,MAAM,kBAAkB,CAAC,OAAO,CAAC,CAAC;IAC9C,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,sFAAsF;QACtF,sFAAsF;QACtF,IAAI,CAAC,YAAY,aAAa;YAAE,OAAO,cAAc,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC,OAAO,EAAE,EAAE,OAAO,CAAC,CAAC;QAC/F,OAAO,cAAc,CAAC,GAAG,EAAE,+BAAgC,CAAW,CAAC,OAAO,EAAE,EAAE,OAAO,CAAC,CAAC;IAC7F,CAAC;IAED,IAAI,UAAmC,CAAC;IACxC,IAAI,CAAC;QACH,UAAU,GAAG,yBAAyB,CAAC,WAAW,EAAE,QAAQ,EAAE,CAAC,OAAO,IAAI,EAAE,CAAU,CAA4B,CAAC;IACrH,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,cAAc,CAAC,GAAG,EAAE,+BAAgC,CAAW,CAAC,OAAO,EAAE,EAAE,OAAO,CAAC,CAAC;IAC7F,CAAC;IACD,UAAU,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;IAChC,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC;IACrC,sFAAsF;IACtF,qFAAqF;IACrF,mFAAmF;IACnF,IAAI,IAAI,CAAC,WAAW;QAAE,UAAU,CAAC,cAAc,GAAG,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;IAE1E,MAAM,IAAI,GAAG,CAAC,IAA6B,EAAE,EAAE,CAC7C,OAAO,CAAC,MAAM,CAAC,IAAI,GAAG,mBAAmB,EAAE;QACzC,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,kBAAkB,CAAC,MAAM,CAAC;QACnC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;QAC1B,MAAM,EAAE,IAAI,CAAC,MAAM;KACpB,CAAC,CAAC;IAEL,IAAI,GAAG,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,CAAC;IAEjC,oFAAoF;IACpF,6EAA6E;IAC7E,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,UAAU,CAAC,cAAc,IAAI,CAAC,GAAG,CAAC,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,CAAC,EAAE,CAAC;QACvF,MAAM,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QACzC,MAAM,EAAE,cAAc,EAAE,KAAK,EAAE,GAAG,YAAY,EAAE,GAAG,UAAU,CAAC;QAC9D,GAAG,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,CAAC;IACjC,CAAC;IAED,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;QAC9B,6EAA6E;QAC7E,sEAAsE;QACtE,2DAA2D;QAC3D,MAAM,IAAI,GACR,GAAG,CAAC,MAAM,KAAK,GAAG;YAChB,CAAC,CAAC,aAAa,MAAM,CAAC,KAAK,gCAAgC,MAAM,CAAC,QAAQ,yDAAyD;YACnI,CAAC,CAAC,EAAE,CAAC;QACT,2FAA2F;QAC3F,2FAA2F;QAC3F,6FAA6F;QAC7F,oFAAoF;QACpF,OAAO,cAAc,CAAC,GAAG,CAAC,MAAM,EAAE,uBAAuB,GAAG,CAAC,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,UAAU,EAAE;YAC/G,GAAG,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC;SACjC,CAAC,CAAC;IACL,CAAC;IAED,IAAI,IAAI,CAAC,WAAW,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;QACjC,MAAM,UAAU,GAAG,4BAA4B,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;QACjF,OAAO,IAAI,QAAQ,CAAC,UAAU,EAAE,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,cAAc,EAAE,mBAAmB,EAAE,EAAE,CAAC,CAAC;IAC5G,CAAC;IAED,IAAI,aAAqB,CAAC;IAC1B,IAAI,CAAC;QACH,aAAa,GAAG,yBAAyB,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAA4B,EAAE,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;IAC/G,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,kFAAkF;QAClF,kFAAkF;QAClF,OAAO,cAAc,CAAC,GAAG,EAAE,gCAAiC,CAAW,CAAC,OAAO,EAAE,EAAE,OAAO,CAAC,CAAC;IAC9F,CAAC;IACD,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,EAAE,CAAC,CAAC;AACvH,CAAC;AAED,4EAA4E;AAC5E,MAAM,UAAU,yBAAyB,CAAC,CAA0B,EAAE,KAAa;IACjF,MAAM,MAAM,GAAI,CAAC,CAAC,OAAsD,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACpF,MAAM,GAAG,GAAI,MAAM,CAAC,OAA+C,IAAI,EAAE,CAAC;IAC1E,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,IAAI,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;IACjH,MAAM,SAAS,GAAI,GAAG,CAAC,UAAyD,IAAI,EAAE,CAAC;IACvF,KAAK,MAAM,EAAE,IAAI,SAAS,EAAE,CAAC;QAC3B,MAAM,EAAE,GAAI,EAAE,CAAC,QAAgD,IAAI,EAAE,CAAC;QACtE,IAAI,KAAc,CAAC;QACnB,IAAI,CAAC;YAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAE,EAAE,CAAC,SAAoB,IAAI,IAAI,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC;YAAC,KAAK,GAAG,EAAE,CAAC,SAAS,IAAI,EAAE,CAAC;QAAC,CAAC;QACnG,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAG,EAAE,CAAC,EAAa,IAAI,IAAI,EAAE,IAAI,EAAG,EAAE,CAAC,IAAe,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;IAC5G,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,CAAC,aAAmC,CAAC;IAC1D,MAAM,UAAU,GACd,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,IAAI,UAAU,CAAC;IACjI,MAAM,KAAK,GAAI,CAAC,CAAC,KAA4C,IAAI,EAAE,CAAC;IACpE,OAAO;QACL,EAAE,EAAG,CAAC,CAAC,EAAa,IAAI,gBAAgB;QACxC,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,WAAW;QACjB,KAAK,EAAE,KAAK,IAAI,CAAE,CAAC,CAAC,KAAgB,IAAI,EAAE,CAAC;QAC3C,OAAO;QACP,WAAW,EAAE,UAAU;QACvB,aAAa,EAAE,IAAI;QACnB,KAAK,EAAE,EAAE,YAAY,EAAE,KAAK,CAAC,aAAa,IAAI,CAAC,EAAE,aAAa,EAAE,KAAK,CAAC,iBAAiB,IAAI,CAAC,EAAE;KAC/F,CAAC;AACJ,CAAC;AAED,6FAA6F;AAC7F,SAAS,gBAAgB,CAAC,EAAW;IACnC,MAAM,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IAChC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;AACvC,CAAC;AAED,SAAS,cAAc,CACrB,MAAc,EACd,OAAe,EACf,MAAmB,EACnB,QAAgC,EAAE;IAElC,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE,CAAC,EAAE;QAC5F,MAAM;QACN,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,mBAAmB,CAAC,EAAE,MAAM,EAAE,GAAG,KAAK,EAAE;KACzF,CAAC,CAAC;AACL,CAAC;AAED,SAAS,WAAW,CAAC,MAAc,EAAE,OAAe,EAAE,MAAmB;IACvE,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,uBAAuB,EAAE,EAAE,CAAC,EAAE;QACzF,MAAM;QACN,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,mBAAmB,CAAC,EAAE,MAAM,EAAE;KAC/E,CAAC,CAAC;AACL,CAAC;AAID;;;;;;GAMG;AACH,MAAM,UAAU,wBAAwB,CACtC,IAA6B,EAC7B,QAA6B,EAC7B,aAAa,GAAG,EAAE;IAElB,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;IAChE,MAAM,SAAS,GAAa,EAAE,CAAC;IAC/B,MAAM,SAAS,GAAmC,EAAE,CAAC;IAErD,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;QAC1B,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI;YAAE,SAAS;QACtD,MAAM,KAAK,GAAG,GAA8B,CAAC;QAC7C,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC5D,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC7B,CAAC;aAAM,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YACrC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC;YAChC,SAAS,CAAC,IAAI,CAAC;gBACb,EAAE,EAAE,OAAO,KAAK,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,SAAS,CAAC,MAAM,EAAE;gBAC7E,IAAI,EAAE,UAAU;gBAChB,QAAQ,EAAE;oBACR,IAAI,EAAE,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;oBACtD,SAAS,EAAE,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;iBACrE;aACF,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAChC,MAAM,KAAK,GAAG,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC;IACxF,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACtC,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;QACxB,MAAM,OAAO,GAA4B;YACvC,IAAI,EAAE,WAAW;YACjB,OAAO,EAAE,IAAI,IAAI,IAAI;SACtB,CAAC;QACF,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC;QACzD,MAAM,GAAG,GAA4B;YACnC,EAAE,EAAE,OAAO,IAAI,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,gBAAgB;YAC5D,MAAM,EAAE,iBAAiB;YACzB,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;YACtC,KAAK;YACL,OAAO,EAAE,CAAC;oBACR,KAAK,EAAE,CAAC;oBACR,OAAO;oBACP,aAAa,EAAE,kBAAkB,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;iBAC1E,CAAC;SACH,CAAC;QACF,IAAI,KAAK;YAAE,GAAG,CAAC,KAAK,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;QAC9C,OAAO,GAAG,CAAC;IACb,CAAC;IAED,MAAM,MAAM,GAAmC,EAAE,CAAC;IAClD,IAAI,IAAI,EAAE,CAAC;QACT,MAAM,CAAC,IAAI,CAAC;YACV,IAAI,EAAE,SAAS;YACf,EAAE,EAAE,OAAO,OAAO,IAAI,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE;YAC5D,MAAM,EAAE,WAAW;YACnB,IAAI,EAAE,WAAW;YACjB,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC;SAC1D,CAAC,CAAC;IACL,CAAC;IACD,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;QAC7B,MAAM,EAAE,GAAG,IAAI,CAAC,QAAmC,CAAC;QACpD,MAAM,CAAC,IAAI,CAAC;YACV,IAAI,EAAE,eAAe;YACrB,EAAE,EAAE,MAAM,IAAI,CAAC,EAAE,EAAE;YACnB,OAAO,EAAE,IAAI,CAAC,EAAE;YAChB,IAAI,EAAE,EAAE,CAAC,IAAI;YACb,SAAS,EAAE,EAAE,CAAC,SAAS;YACvB,MAAM,EAAE,WAAW;SACpB,CAAC,CAAC;IACL,CAAC;IACD,MAAM,GAAG,GAA4B;QACnC,EAAE,EAAE,OAAO,IAAI,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY;QACxD,MAAM,EAAE,UAAU;QAClB,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;QACzC,MAAM,EAAE,WAAW;QACnB,KAAK;QACL,MAAM;QACN,WAAW,EAAE,IAAI;KAClB,CAAC;IACF,IAAI,KAAK;QAAE,GAAG,CAAC,KAAK,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;IAC9C,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,WAAW,CAAC,GAAY;IAC/B,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IACzD,MAAM,KAAK,GAAG,GAA8B,CAAC;IAC7C,+FAA+F;IAC/F,wFAAwF;IACxF,IAAI,OAAO,KAAK,CAAC,YAAY,KAAK,QAAQ,IAAI,OAAO,KAAK,CAAC,aAAa,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IACnG,OAAO;QACL,GAAG,CAAC,OAAO,KAAK,CAAC,YAAY,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,KAAK,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACxF,GAAG,CAAC,OAAO,KAAK,CAAC,aAAa,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,KAAK,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC/F,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CAAC,KAA6D;IACpF,IAAI,OAAO,KAAK,CAAC,aAAa,KAAK,QAAQ,IAAI,OAAO,KAAK,CAAC,iBAAiB,KAAK,QAAQ,EAAE,CAAC;QAC3F,OAAO,EAAE,GAAG,KAAK,EAAE,YAAY,EAAE,KAAK,CAAC,aAAa,GAAG,KAAK,CAAC,iBAAiB,EAAE,CAAC;IACnF,CAAC;IACD,OAAO,EAAE,GAAG,KAAK,EAAE,CAAC;AACtB,CAAC;AAED,SAAS,kBAAkB,CAAC,UAAmB,EAAE,YAAqB;IACpE,IAAI,YAAY,IAAI,UAAU,KAAK,UAAU;QAAE,OAAO,YAAY,CAAC;IACnE,IAAI,UAAU,KAAK,YAAY;QAAE,OAAO,QAAQ,CAAC;IACjD,IAAI,UAAU,KAAK,gBAAgB;QAAE,OAAO,gBAAgB,CAAC;IAC7D,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,kFAAkF;AAClF,SAAS,sBAAsB,CAAC,IAAY,EAAE,MAAc;IAC1D,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAY,CAAC;QAC3C,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YAClD,MAAM,GAAG,GAAG,MAAiC,CAAC;YAC9C,MAAM,MAAM,GAAG,OAAO,GAAG,CAAC,KAAK,KAAK,QAAQ,IAAI,GAAG,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,KAAgC,CAAC,CAAC,CAAC,IAAI,CAAC;YACjH,IAAI,MAAM,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;gBACjD,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE;wBAC7B,OAAO,EAAE,MAAM,CAAC,OAAO;wBACvB,IAAI,EAAE,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,gBAAgB;wBACtE,GAAG,CAAC,MAAM,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;qBAC5D,EAAE,CAAC,CAAC;YACP,CAAC;QACH,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,iFAAiF;IACnF,CAAC;IACD,OAAO,wBAAwB,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,CAAC;AACxD,CAAC;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,wBAAwB,CAAC,IAAY,EAAE,MAAc;IACnE,IAAI,MAAe,CAAC;IACpB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,0BAA0B,MAAM,qBAAqB,CAAC;QACpG,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;IACtF,CAAC;IAED,MAAM,QAAQ,GAAG,CAAC,CAAU,EAA2C,EAAE,CACvE,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI,IAAI,OAAQ,CAAyB,CAAC,KAAK,KAAK,QAAQ,IAAK,CAAyB,CAAC,KAAK,KAAK,IAAI,CAAC;IAE3I,IAAI,QAAQ,CAAC,MAAM,CAAC;QAAE,OAAO,IAAI,CAAC,CAAC,6BAA6B;IAEhE,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAC1B,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACtC,IAAI,OAAO;YAAE,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IAC9C,CAAC;IAED,OAAO,IAAI,CAAC,SAAS,CAAC;QACpB,KAAK,EAAE;YACL,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,0BAA0B,MAAM,qBAAqB;YAC5F,IAAI,EAAE,gBAAgB;YACtB,IAAI,EAAE,MAAM;SACb;KACF,CAAC,CAAC;AACL,CAAC;AAED,SAAS,kBAAkB,CAAC,MAAsB;IAChD,MAAM,GAAG,GAAG,cAAc,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;IACzE,OAAO;QACL,cAAc,EAAE,kBAAkB;QAClC,GAAG,gBAAgB,CAAC,GAAG,EAAE,MAAM,CAAC,UAAU,CAAC;KAC5C,CAAC;AACJ,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,MAAsB,EACtB,IAMC,EACD,UAAwB,KAAK;IAE7B,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,MAAM,CAAC;IACzC,MAAM,IAAI,GAAG,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAA4B,CAAC;IAC7D,0FAA0F;IAC1F,mFAAmF;IACnF,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;QACpD,MAAM,IAAI,GAAG,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC;QACxE,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,GAAG,mBAAmB,EAAE;YAChD,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,kBAAkB,CAAC,MAAM,CAAC;YACnC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;YAC1B,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB,CAAC,CAAC;IACL,CAAC;IAED,IAAI,aAAsC,CAAC;IAC3C,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,QAAQ,KAAK,WAAW,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,QAAQ,CAAC;QACxE,aAAa,GAAG,yBAAyB,CAAC,MAAM,EAAE,WAAW,EAAE,IAAa,CAA4B,CAAC;QACzG,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS;YAAE,aAAa,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QACnE,aAAa,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC;IAC1C,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,WAAW,CAAC,GAAG,EAAE,0CAA2C,CAAW,CAAC,OAAO,EAAE,EAAE,OAAO,CAAC,CAAC;IACrG,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC,CAAC;IAClE,MAAM,UAAU,GAAG,MAAM,YAAY,CAAC,MAAM,EAAE;QAC5C,IAAI,EAAE,cAAc;QACpB,MAAM,EAAE,MAAM;QACd,MAAM;QACN,OAAO,EAAE,aAAa;QACtB,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,IAAI,EAAE;QAC7C,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,MAAM,EAAE,IAAI,CAAC,MAAM;KACpB,EAAE,OAAO,CAAC,CAAC;IAEZ,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC;QACnB,MAAM,GAAG,GAAG,MAAM,UAAU,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;QACpD,MAAM,MAAM,GAAG,WAAW,CAAC,UAAU,CAAC,IAAI,UAAU,CAAC;QACrD,MAAM,OAAO,GAA2B;YACtC,cAAc,EAAE,kBAAkB;YAClC,CAAC,mBAAmB,CAAC,EAAE,MAAM;YAC7B,GAAG,gBAAgB,CAAC,UAAU,CAAC,OAAO,CAAC;SACxC,CAAC;QACF,OAAO,IAAI,QAAQ,CAAC,sBAAsB,CAAC,GAAG,EAAE,UAAU,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;IAC9G,CAAC;IAED,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC;IAClH,IAAI,QAAQ,IAAI,UAAU,CAAC,IAAI,EAAE,CAAC;QAChC,MAAM,cAAc,GAAG,QAAQ,KAAK,WAAW,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,QAAQ,CAAC;QAChF,MAAM,MAAM,GAAG,4BAA4B,CAAC,UAAU,CAAC,IAAI,EAAE,WAAW,EAAE,cAAc,CAAC,CAAC;QAC1F,OAAO,IAAI,QAAQ,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,cAAc,EAAE,mBAAmB,EAAE,EAAE,CAAC,CAAC;IAC/G,CAAC;IAED,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,CAAC,MAAM,UAAU,CAAC,IAAI,EAAE,CAA4B,CAAC;QAClE,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,wBAAwB,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE;YACtH,MAAM,EAAE,UAAU,CAAC,MAAM;YACzB,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;SAChD,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,WAAW,CAAC,GAAG,EAAE,2CAA4C,CAAW,CAAC,OAAO,EAAE,EAAE,OAAO,CAAC,CAAC;IACtG,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"backend.js","sourceRoot":"","sources":["../src/backend.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,4BAA4B,EAAE,MAAM,YAAY,CAAC;AACrF,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAEhE,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAEnE;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,0BAA0B,CAAC;AAK9D,kEAAkE;AAClE,MAAM,UAAU,WAAW,CAAC,GAAa;IACvC,MAAM,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;IAC/C,OAAO,CAAC,KAAK,UAAU,IAAI,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACtD,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,uBAAuB,CAAC;AAExD;;;;;;;;GAQG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAAgC,EAAE,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE;IAClF,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC3C,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IACzB,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAElC,kFAAkF;IAClF,IAAI,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QAC9B,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;QAC1C,OAAO,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IACpD,CAAC;IAED,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC3B,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;QAAE,OAAO,IAAI,CAAC;IAClC,MAAM,KAAK,GAAG,EAAE,GAAG,GAAG,CAAC;IACvB,OAAO,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;AAClC,CAAC;AAID,MAAM,sBAAsB,GAAG,EAAE,GAAG,IAAI,CAAC;AAEzC,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC;AAED;;;;;GAKG;AACH,SAAS,qBAAqB,CAAC,KAAc,EAAE,QAA0B,EAAE,QAAiB;IAC1F,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,wBAAwB,CAAC;IAEtD,4FAA4F;IAC5F,0FAA0F;IAC1F,IAAI,QAAQ,IAAI,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAEnD,IAAI,QAAQ,KAAK,aAAa,EAAE,CAAC;QAC/B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC;YAAE,OAAO,uBAAuB,CAAC;QAClE,IAAI,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3C,OAAO,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,6BAA6B,CAAC;QACtE,CAAC;QACD,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,qBAAqB,CAAC;QAC7D,KAAK,MAAM,SAAS,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;YACtC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;gBAAE,OAAO,yBAAyB,CAAC;YAC3D,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC;YAC/D,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;gBAAE,OAAO,QAAQ,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,2BAA2B,CAAC;YAClG,IAAI,CAAC,QAAQ,IAAI,OAAO,CAAC,UAAU,KAAK,SAAS,IAAI,OAAO,CAAC,UAAU,KAAK,IAAI,EAAE,CAAC;gBACjF,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC;oBAAE,OAAO,oCAAoC,CAAC;gBACpF,KAAK,MAAM,OAAO,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;oBACzC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC;wBAAE,OAAO,mBAAmB,CAAC;oBAClF,IAAI,OAAO,OAAO,CAAC,QAAQ,CAAC,IAAI,KAAK,QAAQ,IAAI,OAAO,OAAO,CAAC,QAAQ,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;wBAChG,OAAO,uBAAuB,CAAC;oBACjC,CAAC;gBACH,CAAC;YACH,CAAC;YACD,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,KAAK,IAAI,IAAI,OAAO,OAAO,CAAC,OAAO,KAAK,QAAQ,CAAC;gBACnF,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,OAAO,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC;gBACxF,IAAI,CAAC,UAAU,IAAI,CAAC,YAAY;oBAAE,OAAO,4CAA4C,CAAC;YACxF,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC;YAAE,OAAO,uBAAuB,CAAC;QAClE,KAAK,MAAM,QAAQ,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;YACrC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,OAAO,QAAQ,CAAC,IAAI,KAAK,QAAQ;gBAAE,OAAO,uBAAuB,CAAC;YAC7F,IAAI,QAAQ,CAAC,IAAI,KAAK,MAAM,IAAI,OAAO,QAAQ,CAAC,IAAI,KAAK,QAAQ;gBAAE,OAAO,4BAA4B,CAAC;YACvG,IAAI,QAAQ,CAAC,IAAI,KAAK,UAAU,IAAI,OAAO,QAAQ,CAAC,IAAI,KAAK,QAAQ;gBAAE,OAAO,gCAAgC,CAAC;QACjH,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;QACnB,KAAK,MAAM,CAAC;QACZ,KAAK,cAAc,CAAC;QACpB,KAAK,oBAAoB;YACvB,OAAO,IAAI,CAAC;QACd,KAAK,eAAe;YAClB,OAAO,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,kCAAkC,CAAC;QAC7E,KAAK,qBAAqB;YACxB,OAAO,QAAQ,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,8CAA8C,CAAC;QAC/F,KAAK,qBAAqB,CAAC;QAC3B,KAAK,eAAe;YAClB,OAAO,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC;QACjF,KAAK,OAAO;YACV,OAAO,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,8BAA8B,CAAC;QACvE;YACE,OAAO,yCAAyC,CAAC;IACrD,CAAC;AACH,CAAC;AAMD,mFAAmF;AACnF,KAAK,UAAU,uBAAuB,CACpC,IAAgC,EAChC,QAA0B;IAE1B,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;IAChC,MAAM,MAAM,GAAiB,EAAE,CAAC;IAChC,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;IAClC,IAAI,QAAQ,GAAG,EAAE,CAAC;IAClB,IAAI,UAAU,GAAG,CAAC,CAAC;IAEnB,MAAM,MAAM,GAAG,GAAoB,EAAE;QACnC,IAAI,WAAW,GAAG,CAAC,CAAC;QACpB,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,cAAc,CAAa;gBACtD,KAAK,CAAC,IAAI,CAAC,UAAU;oBACnB,IAAI,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;wBAChC,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,CAAE,CAAC,CAAC;wBAC3C,OAAO;oBACT,CAAC;oBACD,IAAI,CAAC;wBACH,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;wBACjC,IAAI,IAAI,CAAC,IAAI;4BAAE,UAAU,CAAC,KAAK,EAAE,CAAC;;4BAC7B,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBACtC,CAAC;oBAAC,OAAO,KAAK,EAAE,CAAC;wBACf,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;oBAC1B,CAAC;gBACH,CAAC;gBACD,KAAK,CAAC,MAAM,CAAC,cAAc;oBACzB,MAAM,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;gBACtD,CAAC;aACF,CAAC,EAAE,CAAC;IACP,CAAC,CAAC;IAEF,MAAM,IAAI,GAAG,KAAK,EAAE,MAAc,EAA4B,EAAE;QAC9D,MAAM,MAAM,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QACtC,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IAC/B,CAAC,CAAC;IAEF,MAAM,YAAY,GAAG,CAAC,KAAa,EAA6B,EAAE;QAChE,MAAM,IAAI,GAAG,KAAK;aACf,KAAK,CAAC,OAAO,CAAC;aACd,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;aAC1C,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;aACxC,IAAI,CAAC,IAAI,CAAC;aACV,IAAI,EAAE,CAAC;QACV,IAAI,CAAC,IAAI;YAAE,OAAO,SAAS,CAAC;QAC5B,IAAI,IAAI,KAAK,QAAQ;YAAE,OAAO,sCAAsC,CAAC;QACrE,IAAI,MAAe,CAAC;QACpB,IAAI,CAAC;YACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC5B,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,8BAA8B,CAAC;QACxC,CAAC;QACD,OAAO,qBAAqB,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;IACvD,CAAC,CAAC;IAEF,OAAO,UAAU,IAAI,sBAAsB,EAAE,CAAC;QAC5C,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;QACnD,IAAI,IAAI,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC,gCAAgC,CAAC,CAAC;QACjE,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,QAAQ,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YAC7B,IAAI,WAAW,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YACvE,iFAAiF;YACjF,4EAA4E;YAC5E,IAAI,WAAW,KAAK,SAAS,IAAI,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC;gBACjD,IAAI,CAAC;oBACH,WAAW,GAAG,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;gBAC7E,CAAC;gBAAC,MAAM,CAAC;oBACP,qDAAqD;gBACvD,CAAC;YACH,CAAC;YACD,IAAI,WAAW,KAAK,IAAI;gBAAE,OAAO,MAAM,EAAE,CAAC;YAC1C,OAAO,IAAI,CAAC,WAAW,IAAI,sCAAsC,CAAC,CAAC;QACrE,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACxB,UAAU,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;QACpC,IAAI,UAAU,GAAG,sBAAsB;YAAE,OAAO,IAAI,CAAC,0CAA0C,CAAC,CAAC;QACjG,QAAQ,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;QAEzD,IAAI,QAAgC,CAAC;QACrC,MAAM,SAAS,GAAG,aAAa,CAAC;QAChC,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YACtD,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;YAChD,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YAC/D,SAAS,CAAC,SAAS,GAAG,CAAC,CAAC;YACxB,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;YACnC,IAAI,MAAM,KAAK,SAAS;gBAAE,SAAS;YACnC,IAAI,MAAM,KAAK,IAAI;gBAAE,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC;YAEzC,OAAO,MAAM,EAAE,CAAC;QAClB,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC,0CAA0C,CAAC,CAAC;AAC1D,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,MAAsB,EACtB,IAQC,EACD,UAAwB,KAAK;IAE7B,IAAI,MAAM,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;QAChC,MAAM,IAAI,GAAgB,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,gBAAgB,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;QACvG,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM;YAAE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC;QAChD,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACzD,sFAAsF;QACtF,sFAAsF;QACtF,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,cAAc,CAAC;QACnE,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,YAAY;YAAE,OAAO,GAAG,CAAC;QACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC;QAC3G,IAAI,QAAQ,EAAE,CAAC;YACb,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;gBACd,OAAO,cAAc,CAAC,GAAG,EAAE,8DAA8D,EAAE,UAAU,EAAE;oBACrG,GAAG,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC;iBACjC,EAAE,2BAA2B,CAAC,CAAC;YAClC,CAAC;YACD,MAAM,SAAS,GAAG,MAAM,uBAAuB,CAAC,GAAG,CAAC,IAAI,EAAE,oBAAoB,CAAC,CAAC;YAChF,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC;gBAClB,OAAO,cAAc,CAAC,GAAG,EAAE,mDAAmD,SAAS,CAAC,MAAM,EAAE,EAAE,UAAU,EAAE;oBAC5G,GAAG,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC;iBACjC,EAAE,2BAA2B,CAAC,CAAC;YAClC,CAAC;YACD,OAAO,IAAI,QAAQ,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QACpF,CAAC;QAED,IAAI,IAAa,CAAC;QAClB,IAAI,CAAC;YACH,IAAI,GAAG,MAAM,GAAG,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,CAAC;QAClC,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,cAAc,CAAC,GAAG,EAAE,wEAAwE,EAAE,UAAU,EAAE;gBAC/G,GAAG,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC;aACjC,EAAE,2BAA2B,CAAC,CAAC;QAClC,CAAC;QACD,MAAM,aAAa,GAAG,qBAAqB,CAAC,IAAI,EAAE,oBAAoB,EAAE,KAAK,CAAC,CAAC;QAC/E,IAAI,aAAa,EAAE,CAAC;YAClB,OAAO,cAAc,CAAC,GAAG,EAAE,mDAAmD,aAAa,EAAE,EAAE,UAAU,EAAE;gBACzG,GAAG,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC;aACjC,EAAE,2BAA2B,CAAC,CAAC;QAClC,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAED,oBAAoB;IACpB,sFAAsF;IACtF,sFAAsF;IACtF,IAAI,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;IAC3B,IAAI,CAAC;QACH,OAAO,GAAG,MAAM,kBAAkB,CAAC,OAAO,CAAC,CAAC;IAC9C,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,sFAAsF;QACtF,sFAAsF;QACtF,IAAI,CAAC,YAAY,aAAa;YAAE,OAAO,cAAc,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC,OAAO,EAAE,EAAE,OAAO,CAAC,CAAC;QAC/F,OAAO,cAAc,CAAC,GAAG,EAAE,+BAAgC,CAAW,CAAC,OAAO,EAAE,EAAE,OAAO,CAAC,CAAC;IAC7F,CAAC;IAED,IAAI,UAAmC,CAAC;IACxC,IAAI,CAAC;QACH,UAAU,GAAG,yBAAyB,CAAC,WAAW,EAAE,QAAQ,EAAE,CAAC,OAAO,IAAI,EAAE,CAAU,CAA4B,CAAC;IACrH,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,cAAc,CAAC,GAAG,EAAE,+BAAgC,CAAW,CAAC,OAAO,EAAE,EAAE,OAAO,CAAC,CAAC;IAC7F,CAAC;IACD,UAAU,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;IAChC,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC;IACrC,sFAAsF;IACtF,qFAAqF;IACrF,mFAAmF;IACnF,IAAI,IAAI,CAAC,WAAW;QAAE,UAAU,CAAC,cAAc,GAAG,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;IAE1E,MAAM,IAAI,GAAG,CAAC,IAA6B,EAAE,EAAE,CAC7C,OAAO,CAAC,MAAM,CAAC,IAAI,GAAG,mBAAmB,EAAE;QACzC,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,kBAAkB,CAAC,MAAM,CAAC;QACnC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;QAC1B,MAAM,EAAE,IAAI,CAAC,MAAM;KACpB,CAAC,CAAC;IAEL,IAAI,GAAG,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,CAAC;IAEjC,oFAAoF;IACpF,6EAA6E;IAC7E,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,UAAU,CAAC,cAAc,IAAI,CAAC,GAAG,CAAC,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,CAAC,EAAE,CAAC;QACvF,MAAM,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QACzC,MAAM,EAAE,cAAc,EAAE,KAAK,EAAE,GAAG,YAAY,EAAE,GAAG,UAAU,CAAC;QAC9D,GAAG,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,CAAC;IACjC,CAAC;IAED,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;QAC9B,6EAA6E;QAC7E,sEAAsE;QACtE,2DAA2D;QAC3D,MAAM,IAAI,GACR,GAAG,CAAC,MAAM,KAAK,GAAG;YAChB,CAAC,CAAC,aAAa,MAAM,CAAC,KAAK,gCAAgC,MAAM,CAAC,QAAQ,yDAAyD;YACnI,CAAC,CAAC,EAAE,CAAC;QACT,2FAA2F;QAC3F,2FAA2F;QAC3F,6FAA6F;QAC7F,oFAAoF;QACpF,OAAO,cAAc,CAAC,GAAG,CAAC,MAAM,EAAE,uBAAuB,GAAG,CAAC,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,UAAU,EAAE;YAC/G,GAAG,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC;SACjC,CAAC,CAAC;IACL,CAAC;IAED,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;QACrB,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;YACd,OAAO,cAAc,CAAC,GAAG,EAAE,2DAA2D,EAAE,UAAU,EAAE;gBAClG,GAAG,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC;aACjC,EAAE,2BAA2B,CAAC,CAAC;QAClC,CAAC;QACD,MAAM,SAAS,GAAG,MAAM,uBAAuB,CAAC,GAAG,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;QACzE,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC;YAClB,OAAO,cAAc,CAAC,GAAG,EAAE,gDAAgD,SAAS,CAAC,MAAM,EAAE,EAAE,UAAU,EAAE;gBACzG,GAAG,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC;aACjC,EAAE,2BAA2B,CAAC,CAAC;QAClC,CAAC;QACD,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,4BAA4B,CAAC,SAAS,CAAC,IAAI,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;YACvF,OAAO,IAAI,QAAQ,CAAC,UAAU,EAAE,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,cAAc,EAAE,mBAAmB,EAAE,EAAE,CAAC,CAAC;QAC5G,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,cAAc,CAAC,GAAG,EAAE,2CAA4C,CAAW,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,qBAAqB,CAAC,CAAC;QACpI,CAAC;IACH,CAAC;IAED,IAAI,YAAqB,CAAC;IAC1B,IAAI,CAAC;QACH,YAAY,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;IAClC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,cAAc,CAAC,GAAG,EAAE,qEAAqE,EAAE,UAAU,EAAE;YAC5G,GAAG,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC;SACjC,EAAE,2BAA2B,CAAC,CAAC;IAClC,CAAC;IACD,MAAM,aAAa,GAAG,qBAAqB,CAAC,YAAY,EAAE,aAAa,EAAE,KAAK,CAAC,CAAC;IAChF,IAAI,aAAa,EAAE,CAAC;QAClB,OAAO,cAAc,CAAC,GAAG,EAAE,gDAAgD,aAAa,EAAE,EAAE,UAAU,EAAE;YACtG,GAAG,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC;SACjC,EAAE,2BAA2B,CAAC,CAAC;IAClC,CAAC;IAED,IAAI,aAAqB,CAAC;IAC1B,IAAI,CAAC;QACH,aAAa,GAAG,yBAAyB,CAAC,YAAuC,EAAE,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;IACzG,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,0FAA0F;QAC1F,mEAAmE;QACnE,OAAO,cAAc,CAAC,GAAG,EAAE,2CAA4C,CAAW,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,qBAAqB,CAAC,CAAC;IACpI,CAAC;IACD,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,EAAE,CAAC,CAAC;AACvH,CAAC;AAED,4EAA4E;AAC5E,MAAM,UAAU,yBAAyB,CAAC,CAA0B,EAAE,KAAa;IACjF,MAAM,MAAM,GAAI,CAAC,CAAC,OAAsD,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACpF,MAAM,GAAG,GAAI,MAAM,CAAC,OAA+C,IAAI,EAAE,CAAC;IAC1E,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,IAAI,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;IACjH,MAAM,SAAS,GAAI,GAAG,CAAC,UAAyD,IAAI,EAAE,CAAC;IACvF,KAAK,MAAM,EAAE,IAAI,SAAS,EAAE,CAAC;QAC3B,MAAM,EAAE,GAAI,EAAE,CAAC,QAAgD,IAAI,EAAE,CAAC;QACtE,IAAI,KAAc,CAAC;QACnB,IAAI,CAAC;YAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAE,EAAE,CAAC,SAAoB,IAAI,IAAI,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC;YAAC,KAAK,GAAG,EAAE,CAAC,SAAS,IAAI,EAAE,CAAC;QAAC,CAAC;QACnG,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAG,EAAE,CAAC,EAAa,IAAI,IAAI,EAAE,IAAI,EAAG,EAAE,CAAC,IAAe,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;IAC5G,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,CAAC,aAAmC,CAAC;IAC1D,MAAM,UAAU,GACd,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,IAAI,UAAU,CAAC;IACjI,MAAM,KAAK,GAAI,CAAC,CAAC,KAA4C,IAAI,EAAE,CAAC;IACpE,OAAO;QACL,EAAE,EAAG,CAAC,CAAC,EAAa,IAAI,gBAAgB;QACxC,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,WAAW;QACjB,KAAK,EAAE,KAAK,IAAI,CAAE,CAAC,CAAC,KAAgB,IAAI,EAAE,CAAC;QAC3C,OAAO;QACP,WAAW,EAAE,UAAU;QACvB,aAAa,EAAE,IAAI;QACnB,KAAK,EAAE,EAAE,YAAY,EAAE,KAAK,CAAC,aAAa,IAAI,CAAC,EAAE,aAAa,EAAE,KAAK,CAAC,iBAAiB,IAAI,CAAC,EAAE;KAC/F,CAAC;AACJ,CAAC;AAED,6FAA6F;AAC7F,SAAS,gBAAgB,CAAC,EAAW;IACnC,MAAM,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IAChC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;AACvC,CAAC;AAED,SAAS,cAAc,CACrB,MAAc,EACd,OAAe,EACf,MAAmB,EACnB,QAAgC,EAAE,EAClC,IAAI,GAAG,WAAW;IAElB,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC,EAAE;QAC/E,MAAM;QACN,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,mBAAmB,CAAC,EAAE,MAAM,EAAE,GAAG,KAAK,EAAE;KACzF,CAAC,CAAC;AACL,CAAC;AAED,SAAS,WAAW,CAClB,MAAc,EACd,OAAe,EACf,MAAmB,EACnB,IAAI,GAAG,uBAAuB,EAC9B,QAAgC,EAAE;IAElC,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC,EAAE;QAChE,MAAM;QACN,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,mBAAmB,CAAC,EAAE,MAAM,EAAE,GAAG,KAAK,EAAE;KACzF,CAAC,CAAC;AACL,CAAC;AAID;;;;;;GAMG;AACH,MAAM,UAAU,wBAAwB,CACtC,IAA6B,EAC7B,QAA6B,EAC7B,aAAa,GAAG,EAAE;IAElB,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;IAChE,MAAM,SAAS,GAAa,EAAE,CAAC;IAC/B,MAAM,SAAS,GAAmC,EAAE,CAAC;IAErD,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;QAC1B,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI;YAAE,SAAS;QACtD,MAAM,KAAK,GAAG,GAA8B,CAAC;QAC7C,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC5D,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC7B,CAAC;aAAM,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YACrC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC;YAChC,SAAS,CAAC,IAAI,CAAC;gBACb,EAAE,EAAE,OAAO,KAAK,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,SAAS,CAAC,MAAM,EAAE;gBAC7E,IAAI,EAAE,UAAU;gBAChB,QAAQ,EAAE;oBACR,IAAI,EAAE,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;oBACtD,SAAS,EAAE,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;iBACrE;aACF,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAChC,MAAM,KAAK,GAAG,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC;IACxF,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACtC,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;QACxB,MAAM,OAAO,GAA4B;YACvC,IAAI,EAAE,WAAW;YACjB,OAAO,EAAE,IAAI,IAAI,IAAI;SACtB,CAAC;QACF,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC;QACzD,MAAM,GAAG,GAA4B;YACnC,EAAE,EAAE,OAAO,IAAI,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,gBAAgB;YAC5D,MAAM,EAAE,iBAAiB;YACzB,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;YACtC,KAAK;YACL,OAAO,EAAE,CAAC;oBACR,KAAK,EAAE,CAAC;oBACR,OAAO;oBACP,aAAa,EAAE,kBAAkB,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;iBAC1E,CAAC;SACH,CAAC;QACF,IAAI,KAAK;YAAE,GAAG,CAAC,KAAK,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;QAC9C,OAAO,GAAG,CAAC;IACb,CAAC;IAED,MAAM,MAAM,GAAmC,EAAE,CAAC;IAClD,IAAI,IAAI,EAAE,CAAC;QACT,MAAM,CAAC,IAAI,CAAC;YACV,IAAI,EAAE,SAAS;YACf,EAAE,EAAE,OAAO,OAAO,IAAI,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE;YAC5D,MAAM,EAAE,WAAW;YACnB,IAAI,EAAE,WAAW;YACjB,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC;SAC1D,CAAC,CAAC;IACL,CAAC;IACD,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;QAC7B,MAAM,EAAE,GAAG,IAAI,CAAC,QAAmC,CAAC;QACpD,MAAM,CAAC,IAAI,CAAC;YACV,IAAI,EAAE,eAAe;YACrB,EAAE,EAAE,MAAM,IAAI,CAAC,EAAE,EAAE;YACnB,OAAO,EAAE,IAAI,CAAC,EAAE;YAChB,IAAI,EAAE,EAAE,CAAC,IAAI;YACb,SAAS,EAAE,EAAE,CAAC,SAAS;YACvB,MAAM,EAAE,WAAW;SACpB,CAAC,CAAC;IACL,CAAC;IACD,MAAM,GAAG,GAA4B;QACnC,EAAE,EAAE,OAAO,IAAI,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY;QACxD,MAAM,EAAE,UAAU;QAClB,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;QACzC,MAAM,EAAE,WAAW;QACnB,KAAK;QACL,MAAM;QACN,WAAW,EAAE,IAAI;KAClB,CAAC;IACF,IAAI,KAAK;QAAE,GAAG,CAAC,KAAK,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;IAC9C,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,WAAW,CAAC,GAAY;IAC/B,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IACzD,MAAM,KAAK,GAAG,GAA8B,CAAC;IAC7C,+FAA+F;IAC/F,wFAAwF;IACxF,IAAI,OAAO,KAAK,CAAC,YAAY,KAAK,QAAQ,IAAI,OAAO,KAAK,CAAC,aAAa,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IACnG,OAAO;QACL,GAAG,CAAC,OAAO,KAAK,CAAC,YAAY,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,KAAK,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACxF,GAAG,CAAC,OAAO,KAAK,CAAC,aAAa,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,KAAK,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC/F,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CAAC,KAA6D;IACpF,IAAI,OAAO,KAAK,CAAC,aAAa,KAAK,QAAQ,IAAI,OAAO,KAAK,CAAC,iBAAiB,KAAK,QAAQ,EAAE,CAAC;QAC3F,OAAO,EAAE,GAAG,KAAK,EAAE,YAAY,EAAE,KAAK,CAAC,aAAa,GAAG,KAAK,CAAC,iBAAiB,EAAE,CAAC;IACnF,CAAC;IACD,OAAO,EAAE,GAAG,KAAK,EAAE,CAAC;AACtB,CAAC;AAED,SAAS,kBAAkB,CAAC,UAAmB,EAAE,YAAqB;IACpE,IAAI,YAAY,IAAI,UAAU,KAAK,UAAU;QAAE,OAAO,YAAY,CAAC;IACnE,IAAI,UAAU,KAAK,YAAY;QAAE,OAAO,QAAQ,CAAC;IACjD,IAAI,UAAU,KAAK,gBAAgB;QAAE,OAAO,gBAAgB,CAAC;IAC7D,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,kFAAkF;AAClF,SAAS,sBAAsB,CAAC,IAAY,EAAE,MAAc;IAC1D,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAY,CAAC;QAC3C,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YAClD,MAAM,GAAG,GAAG,MAAiC,CAAC;YAC9C,MAAM,MAAM,GAAG,OAAO,GAAG,CAAC,KAAK,KAAK,QAAQ,IAAI,GAAG,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,KAAgC,CAAC,CAAC,CAAC,IAAI,CAAC;YACjH,IAAI,MAAM,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;gBACjD,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE;wBAC7B,OAAO,EAAE,MAAM,CAAC,OAAO;wBACvB,IAAI,EAAE,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,gBAAgB;wBACtE,GAAG,CAAC,MAAM,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;qBAC5D,EAAE,CAAC,CAAC;YACP,CAAC;QACH,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,iFAAiF;IACnF,CAAC;IACD,OAAO,wBAAwB,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,CAAC;AACxD,CAAC;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,wBAAwB,CAAC,IAAY,EAAE,MAAc;IACnE,IAAI,MAAe,CAAC;IACpB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,0BAA0B,MAAM,qBAAqB,CAAC;QACpG,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;IACtF,CAAC;IAED,MAAM,QAAQ,GAAG,CAAC,CAAU,EAA2C,EAAE,CACvE,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI,IAAI,OAAQ,CAAyB,CAAC,KAAK,KAAK,QAAQ,IAAK,CAAyB,CAAC,KAAK,KAAK,IAAI,CAAC;IAE3I,IAAI,QAAQ,CAAC,MAAM,CAAC;QAAE,OAAO,IAAI,CAAC,CAAC,6BAA6B;IAEhE,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAC1B,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACtC,IAAI,OAAO;YAAE,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IAC9C,CAAC;IAED,OAAO,IAAI,CAAC,SAAS,CAAC;QACpB,KAAK,EAAE;YACL,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,0BAA0B,MAAM,qBAAqB;YAC5F,IAAI,EAAE,gBAAgB;YACtB,IAAI,EAAE,MAAM;SACb;KACF,CAAC,CAAC;AACL,CAAC;AAED,SAAS,kBAAkB,CAAC,MAAsB;IAChD,MAAM,GAAG,GAAG,cAAc,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;IACzE,OAAO;QACL,cAAc,EAAE,kBAAkB;QAClC,GAAG,gBAAgB,CAAC,GAAG,EAAE,MAAM,CAAC,UAAU,CAAC;KAC5C,CAAC;AACJ,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,MAAsB,EACtB,IAMC,EACD,UAAwB,KAAK;IAE7B,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,MAAM,CAAC;IACzC,MAAM,IAAI,GAAG,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAA4B,CAAC;IAC7D,0FAA0F;IAC1F,mFAAmF;IACnF,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;QACpD,MAAM,IAAI,GAAG,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC;QACxE,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,IAAI,GAAG,mBAAmB,EAAE;YAC3D,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,kBAAkB,CAAC,MAAM,CAAC;YACnC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;YAC1B,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,EAAE;YAAE,OAAO,GAAG,CAAC;QACxB,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC;QAC3G,IAAI,QAAQ,EAAE,CAAC;YACb,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;gBACd,OAAO,WAAW,CAAC,GAAG,EAAE,2DAA2D,EAAE,UAAU,EAAE,2BAA2B,EAAE,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;YAC/J,CAAC;YACD,MAAM,SAAS,GAAG,MAAM,uBAAuB,CAAC,GAAG,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;YACzE,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC;gBAClB,OAAO,WAAW,CAAC,GAAG,EAAE,gDAAgD,SAAS,CAAC,MAAM,EAAE,EAAE,UAAU,EAAE,2BAA2B,EAAE,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;YACtK,CAAC;YACD,OAAO,IAAI,QAAQ,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QACpF,CAAC;QAED,IAAI,YAAqB,CAAC;QAC1B,IAAI,CAAC;YACH,YAAY,GAAG,MAAM,GAAG,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,CAAC;QAC1C,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,WAAW,CAAC,GAAG,EAAE,qEAAqE,EAAE,UAAU,EAAE,2BAA2B,EAAE,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;QACzK,CAAC;QACD,MAAM,aAAa,GAAG,qBAAqB,CAAC,YAAY,EAAE,aAAa,EAAE,KAAK,CAAC,CAAC;QAChF,IAAI,aAAa,EAAE,CAAC;YAClB,OAAO,WAAW,CAAC,GAAG,EAAE,gDAAgD,aAAa,EAAE,EAAE,UAAU,EAAE,2BAA2B,EAAE,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;QACnK,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAED,IAAI,aAAsC,CAAC;IAC3C,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,QAAQ,KAAK,WAAW,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,QAAQ,CAAC;QACxE,aAAa,GAAG,yBAAyB,CAAC,MAAM,EAAE,WAAW,EAAE,IAAa,CAA4B,CAAC;QACzG,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS;YAAE,aAAa,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QACnE,aAAa,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC;IAC1C,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,WAAW,CAAC,GAAG,EAAE,0CAA2C,CAAW,CAAC,OAAO,EAAE,EAAE,OAAO,CAAC,CAAC;IACrG,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC,CAAC;IAClE,MAAM,UAAU,GAAG,MAAM,YAAY,CAAC,MAAM,EAAE;QAC5C,IAAI,EAAE,cAAc;QACpB,MAAM,EAAE,MAAM;QACd,MAAM;QACN,OAAO,EAAE,aAAa;QACtB,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,IAAI,EAAE;QAC7C,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,MAAM,EAAE,IAAI,CAAC,MAAM;KACpB,EAAE,OAAO,CAAC,CAAC;IAEZ,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC;QACnB,MAAM,GAAG,GAAG,MAAM,UAAU,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;QACpD,MAAM,MAAM,GAAG,WAAW,CAAC,UAAU,CAAC,IAAI,UAAU,CAAC;QACrD,MAAM,OAAO,GAA2B;YACtC,cAAc,EAAE,kBAAkB;YAClC,CAAC,mBAAmB,CAAC,EAAE,MAAM;YAC7B,GAAG,gBAAgB,CAAC,UAAU,CAAC,OAAO,CAAC;SACxC,CAAC;QACF,OAAO,IAAI,QAAQ,CAAC,sBAAsB,CAAC,GAAG,EAAE,UAAU,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;IAC9G,CAAC;IAED,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC;IAClH,IAAI,QAAQ,EAAE,CAAC;QACb,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;YACrB,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,KAAK,WAAW,CAAC;YAC9C,OAAO,WAAW,CAChB,GAAG,EACH,SAAS,CAAC,CAAC,CAAC,qDAAqD,CAAC,CAAC,CAAC,8DAA8D,EAClI,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,EAChC,SAAS,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,2BAA2B,EAC/D,gBAAgB,CAAC,UAAU,CAAC,OAAO,CAAC,CACrC,CAAC;QACJ,CAAC;QACD,MAAM,SAAS,GAAG,MAAM,uBAAuB,CAAC,UAAU,CAAC,IAAI,EAAE,oBAAoB,CAAC,CAAC;QACvF,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC;YAClB,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,KAAK,WAAW,CAAC;YAC9C,OAAO,WAAW,CAChB,GAAG,EACH,SAAS;gBACP,CAAC,CAAC,sEAAsE,SAAS,CAAC,MAAM,EAAE;gBAC1F,CAAC,CAAC,mDAAmD,SAAS,CAAC,MAAM,EAAE,EACzE,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,EAChC,SAAS,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,2BAA2B,EAC/D,gBAAgB,CAAC,UAAU,CAAC,OAAO,CAAC,CACrC,CAAC;QACJ,CAAC;QACD,MAAM,cAAc,GAAG,QAAQ,KAAK,WAAW,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,QAAQ,CAAC;QAChF,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,4BAA4B,CAAC,SAAS,CAAC,IAAI,EAAE,WAAW,EAAE,cAAc,CAAC,CAAC;YACzF,OAAO,IAAI,QAAQ,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,cAAc,EAAE,mBAAmB,EAAE,EAAE,CAAC,CAAC;QAC/G,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,WAAW,CAAC,GAAG,EAAE,2CAA4C,CAAW,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,qBAAqB,CAAC,CAAC;QAC7H,CAAC;IACH,CAAC;IAED,IAAI,IAAa,CAAC;IAClB,IAAI,CAAC;QACH,IAAI,GAAG,MAAM,UAAU,CAAC,IAAI,EAAE,CAAC;IACjC,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,KAAK,WAAW,CAAC;QAC9C,OAAO,WAAW,CAChB,GAAG,EACH,SAAS,CAAC,CAAC,CAAC,qDAAqD,CAAC,CAAC,CAAC,wEAAwE,EAC5I,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,EAChC,SAAS,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,2BAA2B,EAC/D,gBAAgB,CAAC,UAAU,CAAC,OAAO,CAAC,CACrC,CAAC;IACJ,CAAC;IACD,MAAM,aAAa,GAAG,qBAAqB,CAAC,IAAI,EAAE,oBAAoB,EAAE,KAAK,CAAC,CAAC;IAC/E,IAAI,aAAa,EAAE,CAAC;QAClB,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,KAAK,WAAW,CAAC;QAC9C,OAAO,WAAW,CAChB,GAAG,EACH,SAAS;YACP,CAAC,CAAC,sEAAsE,aAAa,EAAE;YACvF,CAAC,CAAC,mDAAmD,aAAa,EAAE,EACtE,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,EAChC,SAAS,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,2BAA2B,EAC/D,gBAAgB,CAAC,UAAU,CAAC,OAAO,CAAC,CACrC,CAAC;IACJ,CAAC;IAED,IAAI,CAAC;QACH,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,wBAAwB,CAAC,IAA+B,EAAE,QAAQ,EAAE,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE;YACjJ,MAAM,EAAE,UAAU,CAAC,MAAM;YACzB,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;SAChD,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,WAAW,CAAC,GAAG,EAAE,2CAA4C,CAAW,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,qBAAqB,CAAC,CAAC;IAC7H,CAAC;AACH,CAAC"}