@mcpmesh/sdk 0.9.12 → 1.0.0-beta.1
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/dist/__tests__/llm-agent-media.test.d.ts +8 -0
- package/dist/__tests__/llm-agent-media.test.d.ts.map +1 -0
- package/dist/__tests__/llm-agent-media.test.js +167 -0
- package/dist/__tests__/llm-agent-media.test.js.map +1 -0
- package/dist/__tests__/media-helpers.test.d.ts +7 -0
- package/dist/__tests__/media-helpers.test.d.ts.map +1 -0
- package/dist/__tests__/media-helpers.test.js +60 -0
- package/dist/__tests__/media-helpers.test.js.map +1 -0
- package/dist/__tests__/media-param.test.d.ts +7 -0
- package/dist/__tests__/media-param.test.d.ts.map +1 -0
- package/dist/__tests__/media-param.test.js +104 -0
- package/dist/__tests__/media-param.test.js.map +1 -0
- package/dist/__tests__/media-resolver.test.d.ts +8 -0
- package/dist/__tests__/media-resolver.test.d.ts.map +1 -0
- package/dist/__tests__/media-resolver.test.js +298 -0
- package/dist/__tests__/media-resolver.test.js.map +1 -0
- package/dist/__tests__/media-result.test.d.ts +5 -0
- package/dist/__tests__/media-result.test.d.ts.map +1 -0
- package/dist/__tests__/media-result.test.js +180 -0
- package/dist/__tests__/media-result.test.js.map +1 -0
- package/dist/__tests__/media-store.test.d.ts +7 -0
- package/dist/__tests__/media-store.test.d.ts.map +1 -0
- package/dist/__tests__/media-store.test.js +102 -0
- package/dist/__tests__/media-store.test.js.map +1 -0
- package/dist/__tests__/proxy-resource-link.test.d.ts +8 -0
- package/dist/__tests__/proxy-resource-link.test.d.ts.map +1 -0
- package/dist/__tests__/proxy-resource-link.test.js +175 -0
- package/dist/__tests__/proxy-resource-link.test.js.map +1 -0
- package/dist/agent.d.ts +1 -0
- package/dist/agent.d.ts.map +1 -1
- package/dist/agent.js +76 -10
- package/dist/agent.js.map +1 -1
- package/dist/api-runtime.d.ts.map +1 -1
- package/dist/api-runtime.js +7 -1
- package/dist/api-runtime.js.map +1 -1
- package/dist/config.d.ts +17 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +19 -0
- package/dist/config.js.map +1 -1
- package/dist/debug.d.ts +1 -1
- package/dist/debug.d.ts.map +1 -1
- package/dist/express.d.ts.map +1 -1
- package/dist/express.js +33 -18
- package/dist/express.js.map +1 -1
- package/dist/index.d.ts +5 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -1
- package/dist/index.js.map +1 -1
- package/dist/llm-agent.d.ts.map +1 -1
- package/dist/llm-agent.js +44 -6
- package/dist/llm-agent.js.map +1 -1
- package/dist/llm-provider.d.ts +25 -7
- package/dist/llm-provider.d.ts.map +1 -1
- package/dist/llm-provider.js +104 -17
- package/dist/llm-provider.js.map +1 -1
- package/dist/media/index.d.ts +104 -0
- package/dist/media/index.d.ts.map +1 -0
- package/dist/media/index.js +135 -0
- package/dist/media/index.js.map +1 -0
- package/dist/media/media-store.d.ts +75 -0
- package/dist/media/media-store.d.ts.map +1 -0
- package/dist/media/media-store.js +217 -0
- package/dist/media/media-store.js.map +1 -0
- package/dist/media/resolver.d.ts +67 -0
- package/dist/media/resolver.d.ts.map +1 -0
- package/dist/media/resolver.js +311 -0
- package/dist/media/resolver.js.map +1 -0
- package/dist/media-param.d.ts +17 -0
- package/dist/media-param.d.ts.map +1 -0
- package/dist/media-param.js +32 -0
- package/dist/media-param.js.map +1 -0
- package/dist/provider-handlers/provider-handler.d.ts.map +1 -1
- package/dist/provider-handlers/provider-handler.js +5 -4
- package/dist/provider-handlers/provider-handler.js.map +1 -1
- package/dist/proxy.d.ts +22 -1
- package/dist/proxy.d.ts.map +1 -1
- package/dist/proxy.js +65 -20
- package/dist/proxy.js.map +1 -1
- package/dist/tls-config.d.ts +31 -0
- package/dist/tls-config.d.ts.map +1 -0
- package/dist/tls-config.js +102 -0
- package/dist/tls-config.js.map +1 -0
- package/dist/types.d.ts +63 -2
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +33 -1
- package/dist/types.js.map +1 -1
- package/package.json +3 -3
package/dist/llm-provider.js
CHANGED
|
@@ -26,6 +26,7 @@ import { createDebug } from "./debug.js";
|
|
|
26
26
|
import { ProviderHandlerRegistry, makeSchemaStrict } from "./provider-handlers/index.js";
|
|
27
27
|
import { generateTraceId, generateSpanId, publishTraceSpan, matchesPropagateHeader } from "./tracing.js";
|
|
28
28
|
import { runWithTraceContext, runWithPropagatedHeaders, callMcpTool } from "./proxy.js";
|
|
29
|
+
import { resolveResourceLinks, resolveResourceLinksForToolMessage, hasResourceLink, TOOL_IMAGE_UNSUPPORTED_VENDORS } from "./media/index.js";
|
|
29
30
|
const debug = createDebug("llm-provider");
|
|
30
31
|
// ============================================================================
|
|
31
32
|
// Vendor Extraction
|
|
@@ -189,7 +190,12 @@ const MeshLlmRequestSchema = z.object({
|
|
|
189
190
|
request: z.object({
|
|
190
191
|
messages: z.array(z.object({
|
|
191
192
|
role: z.enum(["system", "user", "assistant", "tool"]),
|
|
192
|
-
content: z.
|
|
193
|
+
content: z.union([
|
|
194
|
+
z.string(),
|
|
195
|
+
z.array(z.object({
|
|
196
|
+
type: z.string(),
|
|
197
|
+
}).passthrough()),
|
|
198
|
+
]).nullable(),
|
|
193
199
|
tool_calls: z
|
|
194
200
|
.array(z.object({
|
|
195
201
|
id: z.string(),
|
|
@@ -369,7 +375,7 @@ export function llmProvider(config) {
|
|
|
369
375
|
// JSON schema, field descriptions, example format) when tools + structured output
|
|
370
376
|
// are both present. Without this, LLMs return wrong data.
|
|
371
377
|
const formattedMessages = request.messages.map(msg => {
|
|
372
|
-
if (msg.role === "system" && msg.content) {
|
|
378
|
+
if (msg.role === "system" && typeof msg.content === "string" && msg.content) {
|
|
373
379
|
const formattedContent = handler.formatSystemPrompt(msg.content, request.tools ?? null, // ToolSchema[] format (OpenAI function calling)
|
|
374
380
|
outputSchemaObj, promptOutputMode);
|
|
375
381
|
debug(`Formatted system prompt (${promptOutputMode} mode): ${formattedContent.substring(0, 200)}...`);
|
|
@@ -436,6 +442,17 @@ export function llmProvider(config) {
|
|
|
436
442
|
debug(`Provider executing tool '${toolName}' at ${toolEndpoint}`);
|
|
437
443
|
try {
|
|
438
444
|
const result = await callMcpTool(toolEndpoint, toolName, toolArgs, 30000, 1, "tool");
|
|
445
|
+
// Resolve resource_links to provider-native media content
|
|
446
|
+
if (hasResourceLink(result)) {
|
|
447
|
+
debug(`Tool '${toolName}' result contains resource_link, resolving for ${vendor}`);
|
|
448
|
+
const resolved = await resolveResourceLinksForToolMessage(result, vendor);
|
|
449
|
+
// Return resolved content as structured result for AI SDK
|
|
450
|
+
return resolved.length === 1 ? resolved[0] : resolved;
|
|
451
|
+
}
|
|
452
|
+
if (typeof result === "object") {
|
|
453
|
+
debug(`Tool '${toolName}' result: [multi_content]`);
|
|
454
|
+
return result;
|
|
455
|
+
}
|
|
439
456
|
debug(`Tool '${toolName}' result: ${result.substring(0, 200)}`);
|
|
440
457
|
try {
|
|
441
458
|
return JSON.parse(result);
|
|
@@ -625,18 +642,29 @@ export function llmProvider(config) {
|
|
|
625
642
|
role: "assistant",
|
|
626
643
|
content: assistantContentParts,
|
|
627
644
|
});
|
|
645
|
+
// Collect images that cannot go in tool messages (OpenAI/Gemini).
|
|
646
|
+
// After ALL tool results, we inject ONE user message with all images.
|
|
647
|
+
// This keeps the message sequence valid:
|
|
648
|
+
// assistant(tool_calls) -> tool -> tool -> ... -> user(images)
|
|
649
|
+
const accumulatedImageParts = [];
|
|
628
650
|
// Execute each tool call and add results as tool messages
|
|
629
651
|
for (const tc of result.toolCalls) {
|
|
630
652
|
const toolName = tc.toolName;
|
|
631
653
|
const toolEndpoint = toolEndpoints[toolName];
|
|
632
654
|
let toolResultStr;
|
|
655
|
+
// Track raw result for resource_link resolution
|
|
656
|
+
let rawToolResult = null;
|
|
633
657
|
if (toolEndpoint) {
|
|
634
658
|
try {
|
|
635
659
|
const toolArgs = (tc.input ?? {});
|
|
636
660
|
debug(`Provider executing tool '${toolName}' at ${toolEndpoint}`);
|
|
637
|
-
|
|
661
|
+
const rawResult = await callMcpTool(toolEndpoint, toolName, toolArgs, 30000, // 30s timeout
|
|
638
662
|
1, // 1 attempt
|
|
639
663
|
"tool");
|
|
664
|
+
rawToolResult = rawResult;
|
|
665
|
+
toolResultStr = typeof rawResult === "object"
|
|
666
|
+
? JSON.stringify(rawResult)
|
|
667
|
+
: rawResult;
|
|
640
668
|
debug(`Tool '${toolName}' result: ${toolResultStr.substring(0, 200)}`);
|
|
641
669
|
}
|
|
642
670
|
catch (err) {
|
|
@@ -648,24 +676,83 @@ export function llmProvider(config) {
|
|
|
648
676
|
else {
|
|
649
677
|
toolResultStr = JSON.stringify({ error: `No endpoint for tool ${toolName}` });
|
|
650
678
|
}
|
|
651
|
-
//
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
679
|
+
// Resolve resource_links to provider-native multimodal content.
|
|
680
|
+
// Claude supports images in tool messages directly.
|
|
681
|
+
// OpenAI/Gemini: text-only in tool message, images accumulated for user message.
|
|
682
|
+
if (hasResourceLink(rawToolResult)) {
|
|
683
|
+
debug(`Tool '${toolName}' result contains resource_link, resolving for ${vendor}`);
|
|
684
|
+
const allParts = await resolveResourceLinks(rawToolResult, vendor);
|
|
685
|
+
// Build tool result message with text-only content for OpenAI/Gemini,
|
|
686
|
+
// or full multimodal content for Claude.
|
|
687
|
+
const imageTypes = new Set(["image", "image_url"]);
|
|
688
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
689
|
+
let toolResultOutput;
|
|
690
|
+
if (TOOL_IMAGE_UNSUPPORTED_VENDORS.has(vendor)) {
|
|
691
|
+
// OpenAI/Gemini: text-only in tool message, images accumulated separately
|
|
692
|
+
const textParts = allParts.filter(p => !imageTypes.has(p.type));
|
|
693
|
+
toolResultOutput = { type: "text", value: textParts.map(p => p.text || "[image]").join("\n") };
|
|
694
|
+
}
|
|
695
|
+
else {
|
|
696
|
+
// Claude/Anthropic: preserve full multimodal content in tool message
|
|
697
|
+
toolResultOutput = { type: "json", value: allParts };
|
|
698
|
+
}
|
|
699
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
700
|
+
const toolResultContent = [{
|
|
663
701
|
type: "tool-result",
|
|
664
702
|
toolCallId: tc.toolCallId,
|
|
665
703
|
toolName,
|
|
666
|
-
output:
|
|
667
|
-
}]
|
|
704
|
+
output: toolResultOutput,
|
|
705
|
+
}];
|
|
706
|
+
currentMessages.push({
|
|
707
|
+
role: "tool",
|
|
708
|
+
content: toolResultContent,
|
|
709
|
+
});
|
|
710
|
+
// Accumulate images for a single user message after ALL tool results.
|
|
711
|
+
// For vendors that don't support images in tool messages, extract image
|
|
712
|
+
// parts from the already-resolved content (no second fetch needed).
|
|
713
|
+
if (TOOL_IMAGE_UNSUPPORTED_VENDORS.has(vendor)) {
|
|
714
|
+
const imageParts = allParts.filter(p => imageTypes.has(p.type));
|
|
715
|
+
accumulatedImageParts.push(...imageParts);
|
|
716
|
+
debug(`Tool '${toolName}' resolved multimodal (vendor=${vendor}, images_accumulated=${imageParts.length})`);
|
|
717
|
+
}
|
|
718
|
+
else {
|
|
719
|
+
debug(`Tool '${toolName}' resolved multimodal (vendor=${vendor}, inline in tool message)`);
|
|
720
|
+
}
|
|
721
|
+
}
|
|
722
|
+
else {
|
|
723
|
+
// No resource_links — standard tool result
|
|
724
|
+
let toolOutput;
|
|
725
|
+
try {
|
|
726
|
+
toolOutput = { type: "json", value: JSON.parse(toolResultStr) };
|
|
727
|
+
}
|
|
728
|
+
catch {
|
|
729
|
+
toolOutput = { type: "text", value: toolResultStr };
|
|
730
|
+
}
|
|
731
|
+
// Add tool result message in Vercel AI SDK format
|
|
732
|
+
currentMessages.push({
|
|
733
|
+
role: "tool",
|
|
734
|
+
content: [{
|
|
735
|
+
type: "tool-result",
|
|
736
|
+
toolCallId: tc.toolCallId,
|
|
737
|
+
toolName,
|
|
738
|
+
output: toolOutput,
|
|
739
|
+
}],
|
|
740
|
+
});
|
|
741
|
+
}
|
|
742
|
+
}
|
|
743
|
+
// After ALL tool results: inject accumulated images as one user message.
|
|
744
|
+
// Sequence: assistant(tool_calls) -> tool -> tool -> ... -> user(images)
|
|
745
|
+
// This is valid because it comes after all tool results and before the
|
|
746
|
+
// next LLM call.
|
|
747
|
+
if (accumulatedImageParts.length > 0) {
|
|
748
|
+
currentMessages.push({
|
|
749
|
+
role: "user",
|
|
750
|
+
content: [
|
|
751
|
+
{ type: "text", text: "Here are the images from the tool results above:" },
|
|
752
|
+
...accumulatedImageParts,
|
|
753
|
+
],
|
|
668
754
|
});
|
|
755
|
+
debug(`Injected user message with ${accumulatedImageParts.length} accumulated images (vendor=${vendor})`);
|
|
669
756
|
}
|
|
670
757
|
}
|
|
671
758
|
else {
|
package/dist/llm-provider.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"llm-provider.js","sourceRoot":"","sources":["../src/llm-provider.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"llm-provider.js","sourceRoot":"","sources":["../src/llm-provider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAOzC,OAAO,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AACzF,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAEzG,OAAO,EAAE,mBAAmB,EAAE,wBAAwB,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACxF,OAAO,EAAE,oBAAoB,EAAE,kCAAkC,EAAE,eAAe,EAAE,8BAA8B,EAAwB,MAAM,kBAAkB,CAAC;AAEnK,MAAM,KAAK,GAAG,WAAW,CAAC,cAAc,CAAC,CAAC;AAE1C,+EAA+E;AAC/E,oBAAoB;AACpB,+EAA+E;AAE/E;;GAEG;AACH,MAAM,gBAAgB,GAA2B;IAC/C,SAAS,EAAE,mBAAmB;IAC9B,MAAM,EAAE,gBAAgB;IACxB,MAAM,EAAE,gBAAgB;IACxB,MAAM,EAAE,gBAAgB,EAAE,0CAA0C;IACpE,2CAA2C;CAC5C,CAAC;AAEF;;;;GAIG;AACH,MAAM,cAAc,GAA2B;IAC7C,MAAM,EAAE,QAAQ,EAAE,gDAAgD;CACnE,CAAC;AAEF;;;;;;;;GAQG;AACH,SAAS,gBAAgB,CAAC,MAAc;IACtC,IAAI,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC/C,qDAAqD;QACrD,iCAAiC;QACjC,0DAA0D;QAC1D,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC;QAC3D,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;QAE9C,IAAI,CAAC,SAAS,IAAI,UAAU,EAAE,CAAC;YAC7B,OAAO,CAAC,GAAG,CAAC,4BAA4B,GAAG,UAAU,CAAC;YACtD,KAAK,CAAC,sDAAsD,CAAC,CAAC;QAChE,CAAC;aAAM,IAAI,SAAS,IAAI,CAAC,UAAU,EAAE,CAAC;YACpC,OAAO,CAAC,GAAG,CAAC,cAAc,GAAG,SAAS,CAAC;YACvC,KAAK,CAAC,sDAAsD,CAAC,CAAC;QAChE,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,sBAAsB,CAAC,KAAa;IAClD,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,IAAI,CAAC;IACd,CAAC;IAED,4DAA4D;IAC5D,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACxB,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC;QACxD,OAAO,MAAM,IAAI,IAAI,CAAC;IACxB,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAa;IAC5C,4DAA4D;IAC5D,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACxB,OAAO,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC7C,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,+EAA+E;AAC/E,4BAA4B;AAC5B,+EAA+E;AAE/E;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,MAAc;IAEd,8DAA8D;IAC9D,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAEzB,MAAM,YAAY,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAC9C,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,KAAK,CAAC,mBAAmB,MAAM,EAAE,CAAC,CAAC;QACnC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,CAAC;QACH,wCAAwC;QACxC,MAAM,cAAc,GAAG,CAAC,MAAM,MAAM,CAAC,YAAY,CAAC,CAGjD,CAAC;QAEF,4EAA4E;QAC5E,MAAM,UAAU,GAAG,cAAc,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC;QAEpD,kFAAkF;QAClF,MAAM,WAAW,GAAG,cAAc,CAAC,UAAU,CAEhC,CAAC;QACd,IAAI,OAAO,WAAW,KAAK,UAAU,EAAE,CAAC;YACtC,KAAK,CAAC,YAAY,MAAM,0DAA0D,UAAU,IAAI,CAAC,CAAC;YAClG,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,WAAW,CAAC;IACrB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,KAAK,CAAC,2BAA2B,MAAM,KAAK,GAAG,EAAE,CAAC,CAAC;QACnD,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAQD;;;;;;GAMG;AACH,SAAS,uBAAuB,CAAC,QAAsB;IACrD,+EAA+E;IAC/E,iCAAiC;IACjC,OAAO,QAA0C,CAAC;AACpD,CAAC;AAaD;;GAEG;AACH,SAAS,gBAAgB,CAAC,SAA2B;IACnD,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QAC5B,EAAE,EAAE,EAAE,CAAC,UAAU;QACjB,IAAI,EAAE,UAAmB;QACzB,QAAQ,EAAE;YACR,IAAI,EAAE,EAAE,CAAC,QAAQ;YACjB,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,EAAG,4BAA4B;SACzE;KACF,CAAC,CAAC,CAAC;AACN,CAAC;AAED,+EAA+E;AAC/E,8BAA8B;AAC9B,+EAA+E;AAE/E;;GAEG;AACH,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IACpC,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC;QAChB,QAAQ,EAAE,CAAC,CAAC,KAAK,CACf,CAAC,CAAC,MAAM,CAAC;YACP,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;YACrD,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC;gBACf,CAAC,CAAC,MAAM,EAAE;gBACV,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;oBACf,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;iBACjB,CAAC,CAAC,WAAW,EAAE,CAAC;aAClB,CAAC,CAAC,QAAQ,EAAE;YACb,UAAU,EAAE,CAAC;iBACV,KAAK,CACJ,CAAC,CAAC,MAAM,CAAC;gBACP,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;gBACd,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC;gBAC3B,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC;oBACjB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;oBAChB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;iBACtB,CAAC;aACH,CAAC,CACH;iBACA,QAAQ,EAAE;YACb,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YACnC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;SAC5B,CAAC,CACH;QACD,KAAK,EAAE,CAAC;aACL,KAAK,CACJ,CAAC,CAAC,MAAM,CAAC;YACP,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC;YAC3B,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC;gBACjB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;gBAChB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;gBAClC,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE;gBAC5C,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;aACtC,CAAC,CAAC,WAAW,EAAE;SACjB,CAAC,CACH;aACA,OAAO,EAAE;QACZ,YAAY,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE;QAC7C,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE;QACxC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE;QAChC,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE;KACnC,CAAC;CACH,CAAC,CAAC;AAIH;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAM,UAAU,WAAW,CAAC,MAAyB;IAanD,MAAM,EACJ,KAAK,EACL,UAAU,GAAG,KAAK,EAClB,IAAI,GAAG,EAAE,EACT,OAAO,GAAG,OAAO,EACjB,eAAe,EAAE,SAAS,EAC1B,WAAW,EACX,IAAI,EACJ,IAAI,GAAG,cAAc,EACrB,WAAW,GAAG,sBAAsB,KAAK,EAAE,GAC5C,GAAG,MAAM,CAAC;IAEX,4BAA4B;IAC5B,MAAM,MAAM,GAAG,sBAAsB,CAAC,KAAK,CAAC,IAAI,SAAS,CAAC;IAE1D,KAAK,CAAC,gCAAgC,KAAK,YAAY,MAAM,gBAAgB,UAAU,EAAE,CAAC,CAAC;IAE3F,4BAA4B;IAC5B,IAAI,cAAc,GAA0C,IAAI,CAAC;IACjE,IAAI,qBAAqB,GAAG,KAAK,CAAC;IAElC;;OAEG;IACH,MAAM,OAAO,GAAG,KAAK,EAAE,IAAyB,EAAmB,EAAE;QACnE,uEAAuE;QACvE,IAAI,eAAe,GAAkB,IAAI,CAAC;QAC1C,IAAI,kBAAkB,GAAkB,IAAI,CAAC;QAE7C,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YACrC,MAAM,OAAO,GAAG,IAA+B,CAAC;YAChD,IAAI,OAAO,OAAO,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;gBAC1C,eAAe,GAAG,OAAO,CAAC,SAAS,CAAC;YACtC,CAAC;YACD,IAAI,OAAO,OAAO,CAAC,YAAY,KAAK,QAAQ,EAAE,CAAC;gBAC7C,kBAAkB,GAAG,OAAO,CAAC,YAAY,CAAC;YAC5C,CAAC;QACH,CAAC;QAED,8DAA8D;QAC9D,IAAI,iBAAiB,GAA2B,EAAE,CAAC;QACnD,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YACrC,MAAM,OAAO,GAAG,IAA+B,CAAC;YAChD,IAAI,OAAO,CAAC,aAAa,IAAI,OAAO,OAAO,CAAC,aAAa,KAAK,QAAQ,EAAE,CAAC;gBACvE,MAAM,WAAW,GAAG,OAAO,CAAC,aAAwC,CAAC;gBACrE,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;oBACvD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,sBAAsB,CAAC,GAAG,CAAC,EAAE,CAAC;wBAC7D,iBAAiB,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,GAAG,KAAK,CAAC;oBAC/C,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,uBAAuB;QACvB,MAAM,OAAO,GAAG,eAAe,IAAI,eAAe,EAAE,CAAC;QACrD,MAAM,MAAM,GAAG,cAAc,EAAE,CAAC;QAChC,MAAM,YAAY,GAAG,kBAAkB,IAAI,IAAI,CAAC;QAChD,MAAM,YAAY,GAAiB,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC;QAErE,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;QACzC,IAAI,YAAY,GAAG,IAAI,CAAC;QACxB,IAAI,UAAU,GAAkB,IAAI,CAAC;QAErC,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,KAAK,IAAI,EAAE;gBAC1B,IAAI,CAAC;oBACT,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;oBACzB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;oBAE7B,KAAK,CAAC,qCAAqC,OAAO,CAAC,QAAQ,CAAC,MAAM,WAAW,OAAO,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC,EAAE,CAAC,CAAC;oBAC3G,KAAK,CAAC,+BAA+B,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;oBAEhG,0DAA0D;oBAC1D,IAAI,cAAc,GAAG,KAAK,CAAC;oBAC3B,MAAM,WAAW,GAAG,EAAE,GAAG,CAAC,OAAO,CAAC,YAAY,IAAI,EAAE,CAAC,EAAE,CAAC;oBAExD,IAAI,WAAW,CAAC,KAAK,IAAI,OAAO,WAAW,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;wBAC/D,MAAM,aAAa,GAAG,WAAW,CAAC,KAAK,CAAC;wBACxC,OAAO,WAAW,CAAC,KAAK,CAAC,CAAC,8BAA8B;wBAExD,gCAAgC;wBAChC,MAAM,cAAc,GAAG,sBAAsB,CAAC,aAAa,CAAC,CAAC;wBAE7D,IAAI,cAAc,IAAI,cAAc,KAAK,MAAM,EAAE,CAAC;4BAChD,kEAAkE;4BAClE,KAAK,CACH,mBAAmB,aAAa,8BAA8B;gCAC5D,sBAAsB,cAAc,wBAAwB,MAAM,MAAM;gCACxE,oCAAoC,KAAK,GAAG,CAC/C,CAAC;wBACJ,CAAC;6BAAM,CAAC;4BACN,uDAAuD;4BACvD,cAAc,GAAG,aAAa,CAAC;4BAC/B,KAAK,CAAC,yBAAyB,cAAc,2BAA2B,CAAC,CAAC;wBAC5E,CAAC;oBACH,CAAC;oBAED,+EAA+E;oBAC/E,MAAM,YAAY,GAAG,WAAW,CAAC,aAAoD,CAAC;oBACtF,MAAM,cAAc,GAAG,WAAW,CAAC,gBAAsC,CAAC;oBAC1E,OAAO,WAAW,CAAC,aAAa,CAAC;oBACjC,OAAO,WAAW,CAAC,gBAAgB,CAAC;oBAEpC,8FAA8F;oBAC9F,MAAM,eAAe,GAAG,YAAY,CAAC,CAAC,CAAC;wBACrC,MAAM,EAAE,YAAY;wBACpB,IAAI,EAAE,cAAc,IAAI,UAAU;qBACnC,CAAC,CAAC,CAAC,IAAI,CAAC;oBAET,IAAI,eAAe,EAAE,CAAC;wBACpB,KAAK,CAAC,iDAAiD,eAAe,CAAC,IAAI,EAAE,CAAC,CAAC;oBACjF,CAAC;oBAED,MAAM,kBAAkB,GAAG,gBAAgB,CAAC,cAAc,CAAC,CAAC;oBAE5D,8BAA8B;oBAC9B,IAAI,CAAC,qBAAqB,EAAE,CAAC;wBAC3B,qBAAqB,GAAG,IAAI,CAAC;wBAC7B,cAAc,GAAG,MAAM,YAAY,CAAC,MAAM,CAAC,CAAC;oBAC9C,CAAC;oBAED,IAAI,CAAC,cAAc,EAAE,CAAC;wBACpB,MAAM,IAAI,KAAK,CACb,+BAA+B,MAAM,mBAAmB;4BACtD,wBAAwB,gBAAgB,CAAC,MAAM,CAAC,IAAI,WAAW,MAAM,EAAE,EAAE,CAC5E,CAAC;oBACJ,CAAC;oBAED,4BAA4B;oBAC5B,MAAM,OAAO,GAAG,cAAc,CAAC,kBAAkB,CAAC,CAAC;oBAEnD,gDAAgD;oBAChD,MAAM,OAAO,GAAG,uBAAuB,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;oBAC3D,KAAK,CAAC,2BAA2B,OAAO,CAAC,WAAW,CAAC,IAAI,gBAAgB,MAAM,EAAE,CAAC,CAAC;oBAEnF,uFAAuF;oBACvF,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;oBAC3D,MAAM,UAAU,GAAG,OAAO,CAAC,mBAAmB,CAAC,eAAe,CAAC,CAAC;oBAEhE,4FAA4F;oBAC5F,uFAAuF;oBACvF,2FAA2F;oBAC3F,gFAAgF;oBAChF,oFAAoF;oBACpF,kEAAkE;oBAClE,MAAM,gBAAgB,GAAG,CAAC,QAAQ,IAAI,eAAe,IAAI,UAAU,KAAK,QAAQ,CAAC;wBAC/E,CAAC,CAAC,MAAe;wBACjB,CAAC,CAAC,UAAU,CAAC;oBACf,IAAI,gBAAgB,KAAK,UAAU,EAAE,CAAC;wBACpC,KAAK,CAAC,8FAA8F,CAAC,CAAC;oBACxG,CAAC;oBACD,KAAK,CAAC,gBAAgB,UAAU,kBAAkB,gBAAgB,EAAE,CAAC,CAAC;oBAEtE,yFAAyF;oBACzF,oFAAoF;oBACpF,kFAAkF;oBAClF,0DAA0D;oBAC1D,MAAM,iBAAiB,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;wBACnD,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,IAAI,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;4BAC5E,MAAM,gBAAgB,GAAG,OAAO,CAAC,kBAAkB,CACjD,GAAG,CAAC,OAAO,EACX,OAAO,CAAC,KAAK,IAAI,IAAI,EAAG,gDAAgD;4BACxE,eAAe,EACf,gBAAgB,CACjB,CAAC;4BACF,KAAK,CAAC,4BAA4B,gBAAgB,WAAW,gBAAgB,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;4BACtG,OAAO,EAAE,GAAG,GAAG,EAAE,OAAO,EAAE,gBAAgB,EAAE,CAAC;wBAC/C,CAAC;wBACD,OAAO,GAAG,CAAC;oBACb,CAAC,CAAC,CAAC;oBAEH,sCAAsC;oBACtC,8DAA8D;oBAC9D,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,CAAQ,CAAC;oBAC3C,MAAM,YAAY,GAAG,QAAQ,CAAC,YAgC5B,CAAC;oBAEH,gEAAgE;oBAChE,wEAAwE;oBACxE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,QAGpC,CAAC;oBAEF,wEAAwE;oBACxE,2EAA2E;oBAC3E,2EAA2E;oBAC3E,MAAM,aAAa,GAA2B,EAAE,CAAC;oBACjD,IAAI,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBAC9C,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;4BACjC,MAAM,OAAO,GAAG,IAAI,CAAC,QAAmC,CAAC;4BACzD,MAAM,QAAQ,GAAG,OAAO,CAAC,cAAc,CAAC;4BACxC,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;gCACjC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC;gCAC7C,OAAO,OAAO,CAAC,cAAc,CAAC;4BAChC,CAAC;wBACH,CAAC;oBACH,CAAC;oBACD,MAAM,gBAAgB,GAAG,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;oBAC/D,+EAA+E;oBAC/E,4EAA4E;oBAC5E,4EAA4E;oBAC5E,gFAAgF;oBAChF,MAAM,WAAW,GAAG,gBAAgB,IAAI,CAAC,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,QAAQ,CAAC,CAAC;oBACrF,IAAI,gBAAgB,EAAE,CAAC;wBACrB,KAAK,CAAC,0BAA0B,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,wBAAwB,WAAW,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;oBAC3I,CAAC;oBAED,8DAA8D;oBAC9D,IAAI,WAA4C,CAAC;oBACjD,IAAI,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBAC9C,WAAW,GAAG,EAAE,CAAC;wBACjB,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;4BACjC,gCAAgC;4BAChC,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC;4BAEjF,4CAA4C;4BAC5C,oDAAoD;4BACpD,iEAAiE;4BACjE,6DAA6D;4BAC7D,MAAM,EAAE,OAAO,EAAE,GAAG,iBAAiB,EAAE,GAAG,SAAoC,CAAC;4BAC/E,MAAM,WAAW,GAAG;gCAClB,IAAI,EAAE,QAAQ,EAAE,gCAAgC;gCAChD,GAAG,iBAAiB;6BACrB,CAAC;4BAEF,KAAK,CAAC,SAAS,IAAI,CAAC,QAAQ,CAAC,IAAI,kBAAkB,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;4BAE3F,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;4BAEpC,IAAI,WAAW,EAAE,CAAC;gCAChB,gFAAgF;gCAChF,MAAM,YAAY,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;gCAC7C,WAAW,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC;oCAC7B,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,WAAW,IAAI,EAAE;oCAC5C,WAAW,EAAE,UAAU,CAAC,WAAW,CAAC;oCACpC,OAAO,EAAE,KAAK,EAAE,IAAa,EAAE,EAAE;wCAC/B,MAAM,QAAQ,GAAG,CAAC,IAAI,IAAI,EAAE,CAA4B,CAAC;wCACzD,KAAK,CAAC,4BAA4B,QAAQ,QAAQ,YAAY,EAAE,CAAC,CAAC;wCAClE,IAAI,CAAC;4CACH,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,YAAY,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;4CACrF,0DAA0D;4CAC1D,IAAI,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC;gDAC5B,KAAK,CAAC,SAAS,QAAQ,kDAAkD,MAAM,EAAE,CAAC,CAAC;gDACnF,MAAM,QAAQ,GAAG,MAAM,kCAAkC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;gDAC1E,0DAA0D;gDAC1D,OAAO,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;4CACxD,CAAC;4CACD,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;gDAC/B,KAAK,CAAC,SAAS,QAAQ,2BAA2B,CAAC,CAAC;gDACpD,OAAO,MAAM,CAAC;4CAChB,CAAC;4CACD,KAAK,CAAC,SAAS,QAAQ,aAAa,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;4CAChE,IAAI,CAAC;gDAAC,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;4CAAC,CAAC;4CAAC,MAAM,CAAC;gDAAC,OAAO,MAAM,CAAC;4CAAC,CAAC;wCAC7D,CAAC;wCAAC,OAAO,GAAG,EAAE,CAAC;4CACb,MAAM,QAAQ,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;4CAClE,KAAK,CAAC,SAAS,QAAQ,uBAAuB,QAAQ,EAAE,CAAC,CAAC;4CAC1D,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;wCAC7B,CAAC;oCACH,CAAC;iCACF,CAAC,CAAC;gCACH,KAAK,CAAC,SAAS,QAAQ,yDAAyD,CAAC,CAAC;4BACpF,CAAC;iCAAM,CAAC;gCACN,+EAA+E;gCAC/E,WAAW,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC;oCAC7B,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,WAAW,IAAI,EAAE;oCAC5C,WAAW,EAAE,UAAU,CAAC,WAAW,CAAC;iCACrC,CAAC,CAAC;gCACH,KAAK,CAAC,SAAS,QAAQ,gDAAgD,CAAC,CAAC;4BAC3E,CAAC;wBACH,CAAC;oBACH,CAAC;oBAED,0EAA0E;oBAC1E,oEAAoE;oBACpE,sFAAsF;oBACtF,MAAM,eAAe,GAAG,OAAO,CAAC,cAAc,CAC5C,iBAAiC,EACjC,IAAI,EAAE,6CAA6C;oBACnD,eAAe,EAAE,4DAA4D;oBAC7E;wBACE,UAAU,EAAG,sCAAsC;wBACnD,WAAW,EAAE,WAAW,IAAI,WAAW,CAAC,WAAiC;wBACzE,eAAe,EAAE,SAAS,IAAI,WAAW,CAAC,UAAgC;wBAC1E,IAAI,EAAE,IAAI,IAAI,WAAW,CAAC,KAA2B;qBACtD,CACF,CAAC;oBAEF,uFAAuF;oBACvF,MAAM,iBAAiB,GAAG,uBAAuB,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;oBAE5E,KAAK,CAAC,uBAAuB,IAAI,CAAC,SAAS,CAAC,iBAAiB,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;oBAE3E,8DAA8D;oBAC9D,MAAM,cAAc,GAShB;wBACF,KAAK,EAAE,OAAO;wBACd,QAAQ,EAAE,iBAAiB;qBAC5B,CAAC;oBAEF,uBAAuB;oBACvB,IAAI,WAAW,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBACvD,cAAc,CAAC,KAAK,GAAG,WAAW,CAAC;wBACnC,IAAI,WAAW,EAAE,CAAC;4BAChB,2DAA2D;4BAC3D,iEAAiE;4BACjE,cAAc,CAAC,QAAQ,GAAG,EAAE,CAAC;4BAC7B,KAAK,CAAC,mFAAmF,CAAC,CAAC;wBAC7F,CAAC;wBACD,+DAA+D;wBAC/D,+DAA+D;wBAC/D,qEAAqE;oBACvE,CAAC;oBAED,8BAA8B;oBAC9B,IAAI,SAAS,EAAE,CAAC;wBACd,cAAc,CAAC,eAAe,GAAG,SAAS,CAAC;oBAC7C,CAAC;oBACD,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;wBAC9B,cAAc,CAAC,WAAW,GAAG,WAAW,CAAC;oBAC3C,CAAC;oBACD,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;wBACvB,cAAc,CAAC,IAAI,GAAG,IAAI,CAAC;oBAC7B,CAAC;oBAED,iDAAiD;oBACjD,IAAI,WAAW,CAAC,UAAU,EAAE,CAAC;wBAC3B,cAAc,CAAC,eAAe,GAAG,WAAW,CAAC,UAAoB,CAAC;oBACpE,CAAC;oBACD,IAAI,WAAW,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;wBAC1C,cAAc,CAAC,WAAW,GAAG,WAAW,CAAC,WAAqB,CAAC;oBACjE,CAAC;oBACD,IAAI,WAAW,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;wBACpC,cAAc,CAAC,IAAI,GAAG,WAAW,CAAC,KAAe,CAAC;oBACpD,CAAC;oBAED,yFAAyF;oBACzF,6FAA6F;oBAC7F,+FAA+F;oBAC/F,4EAA4E;oBAC5E,gFAAgF;oBAChF,MAAM,kBAAkB,GAAG,CAAC,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,QAAQ,CAAC,IAAI,QAAQ,CAAC;oBACpF,IAAI,eAAe,CAAC,cAAc,IAAI,CAAC,kBAAkB,EAAE,CAAC;wBAC1D,cAAc,CAAC,eAAe,GAAG;4BAC/B,CAAC,MAAM,CAAC,EAAE;gCACR,eAAe,EAAE,eAAe,CAAC,cAAc;6BAChD;yBACF,CAAC;wBACF,KAAK,CAAC,0DAA0D,MAAM,EAAE,CAAC,CAAC;oBAC5E,CAAC;yBAAM,IAAI,kBAAkB,EAAE,CAAC;wBAC9B,KAAK,CAAC,2EAA2E,CAAC,CAAC;oBACrF,CAAC;oBAED,KAAK,CAAC,gCAAgC,kBAAkB,EAAE,CAAC,CAAC;oBAE5D,sFAAsF;oBACtF,qFAAqF;oBACrF,iFAAiF;oBACjF,0DAA0D;oBAC1D,mFAAmF;oBACnF,mFAAmF;oBACnF,oFAAoF;oBACpF,qEAAqE;oBACrE,MAAM,mBAAmB,GAAG,UAAU,KAAK,QAAQ,IAAI,YAAY,IAAI,CAAC,WAAW,CAAC;oBACpF,KAAK,CAAC,gBAAgB,UAAU,0BAA0B,mBAAmB,EAAE,CAAC,CAAC;oBAEjF,IAAI,QAAqC,CAAC;oBAC1C,IAAI,SAAS,GAAW,CAAC,CAAC;oBAC1B,IAAI,WAAwE,CAAC;oBAE7E,IAAI,mBAAmB,EAAE,CAAC;wBACxB,2CAA2C;wBAC3C,KAAK,CAAC,+CAA+C,cAAc,EAAE,CAAC,CAAC;wBAEvE,MAAM,cAAc,GAAG,QAAQ,CAAC,cAgB9B,CAAC;wBAEH,kEAAkE;wBAClE,MAAM,EAAE,UAAU,EAAE,GAAG,QAAwE,CAAC;wBAEhG,yDAAyD;wBACzD,6DAA6D;wBAC7D,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,WAAW,EAAE,GAAG,YAAuC,CAAC;wBAEnF,6DAA6D;wBAC7D,0EAA0E;wBAC1E,kFAAkF;wBAClF,MAAM,YAAY,GAAG,gBAAgB,CAAC,WAAsC,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC;wBAExG,MAAM,YAAY,GAAG,MAAM,cAAc,CAAC;4BACxC,KAAK,EAAE,OAAO;4BACd,QAAQ,EAAE,iBAAiB;4BAC3B,MAAM,EAAE,UAAU,CAAC,YAAY,CAAC;4BAChC,UAAU,EAAE,cAAc;4BAC1B,eAAe,EAAE,cAAc,CAAC,eAAe;4BAC/C,WAAW,EAAE,cAAc,CAAC,WAAW;4BACvC,IAAI,EAAE,cAAc,CAAC,IAAI;yBAC1B,CAAC,CAAC;wBAEH,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;wBACnC,KAAK,CACH,oCAAoC;4BAClC,gBAAgB,YAAY,CAAC,YAAY,IAAI;4BAC7C,WAAW,SAAS,IAAI,CAC3B,CAAC;wBAEF,+DAA+D;wBAC/D,QAAQ,GAAG;4BACT,IAAI,EAAE,WAAW;4BACjB,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,MAAM,CAAC;yBAC7C,CAAC;wBACF,WAAW,GAAG,YAAY,CAAC,KAAK,CAAC;oBACnC,CAAC;yBAAM,IAAI,gBAAgB,IAAI,CAAC,WAAW,EAAE,CAAC;wBAC5C,2DAA2D;wBAC3D,qEAAqE;wBACrE,kEAAkE;wBAClE,0CAA0C;wBAC1C,IAAI,SAAS,GAAG,CAAC,CAAC;wBAClB,MAAM,aAAa,GAAG,EAAE,CAAC;wBACzB,8DAA8D;wBAC9D,IAAI,eAAe,GAAU,CAAC,GAAG,iBAAiB,CAAC,CAAC;wBAEpD,OAAO,SAAS,GAAG,aAAa,EAAE,CAAC;4BACjC,SAAS,EAAE,CAAC;4BAEZ,2EAA2E;4BAC3E,MAAM,WAAW,GAAG;gCAClB,GAAG,cAAc;gCACjB,QAAQ,EAAE,eAAe;6BAC1B,CAAC;4BACF,oDAAoD;4BAEpD,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,WAAW,CAAC,CAAC;4BAE/C,qCAAqC;4BACrC,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;gCACjB,IAAI,CAAC,WAAW,EAAE,CAAC;oCACjB,WAAW,GAAG,EAAE,WAAW,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,CAAC;gCACpD,CAAC;gCACD,WAAW,CAAC,WAAW,GAAG,CAAC,WAAW,CAAC,WAAW,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,IAAI,CAAC,CAAC,CAAC;gCAC3F,WAAW,CAAC,YAAY,GAAG,CAAC,WAAW,CAAC,YAAY,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,IAAI,CAAC,CAAC,CAAC;4BAChG,CAAC;4BAED,IAAI,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gCACpD,KAAK,CAAC,sBAAsB,MAAM,CAAC,SAAS,CAAC,MAAM,0BAA0B,SAAS,IAAI,aAAa,GAAG,CAAC,CAAC;gCAE5G,6EAA6E;gCAC7E,8DAA8D;gCAC9D,MAAM,qBAAqB,GAAU,EAAE,CAAC;gCACxC,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;oCAChB,qBAAqB,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;gCAClE,CAAC;gCACD,KAAK,MAAM,EAAE,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;oCAClC,qBAAqB,CAAC,IAAI,CAAC;wCACzB,IAAI,EAAE,WAAW;wCACjB,UAAU,EAAE,EAAE,CAAC,UAAU;wCACzB,QAAQ,EAAE,EAAE,CAAC,QAAQ;wCACrB,KAAK,EAAE,EAAE,CAAC,KAAK;qCAChB,CAAC,CAAC;gCACL,CAAC;gCACD,eAAe,CAAC,IAAI,CAAC;oCACnB,IAAI,EAAE,WAAW;oCACjB,OAAO,EAAE,qBAAqB;iCAC/B,CAAC,CAAC;gCAEH,kEAAkE;gCAClE,sEAAsE;gCACtE,yCAAyC;gCACzC,+DAA+D;gCAC/D,MAAM,qBAAqB,GAAsB,EAAE,CAAC;gCAEpD,0DAA0D;gCAC1D,KAAK,MAAM,EAAE,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;oCAClC,MAAM,QAAQ,GAAG,EAAE,CAAC,QAAQ,CAAC;oCAC7B,MAAM,YAAY,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;oCAC7C,IAAI,aAAqB,CAAC;oCAC1B,gDAAgD;oCAChD,IAAI,aAAa,GAAY,IAAI,CAAC;oCAElC,IAAI,YAAY,EAAE,CAAC;wCACjB,IAAI,CAAC;4CACH,MAAM,QAAQ,GAAG,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,CAA4B,CAAC;4CAC7D,KAAK,CAAC,4BAA4B,QAAQ,QAAQ,YAAY,EAAE,CAAC,CAAC;4CAClE,MAAM,SAAS,GAAG,MAAM,WAAW,CACjC,YAAY,EACZ,QAAQ,EACR,QAAQ,EACR,KAAK,EAAE,cAAc;4CACrB,CAAC,EAAM,YAAY;4CACnB,MAAM,CACP,CAAC;4CACF,aAAa,GAAG,SAAS,CAAC;4CAC1B,aAAa,GAAG,OAAO,SAAS,KAAK,QAAQ;gDAC3C,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC;gDAC3B,CAAC,CAAC,SAAS,CAAC;4CACd,KAAK,CAAC,SAAS,QAAQ,aAAa,aAAa,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;wCACzE,CAAC;wCAAC,OAAO,GAAG,EAAE,CAAC;4CACb,MAAM,QAAQ,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;4CAClE,KAAK,CAAC,SAAS,QAAQ,uBAAuB,QAAQ,EAAE,CAAC,CAAC;4CAC1D,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;wCACtD,CAAC;oCACH,CAAC;yCAAM,CAAC;wCACN,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,wBAAwB,QAAQ,EAAE,EAAE,CAAC,CAAC;oCAChF,CAAC;oCAED,gEAAgE;oCAChE,oDAAoD;oCACpD,iFAAiF;oCACjF,IAAI,eAAe,CAAC,aAAa,CAAC,EAAE,CAAC;wCACnC,KAAK,CAAC,SAAS,QAAQ,kDAAkD,MAAM,EAAE,CAAC,CAAC;wCACnF,MAAM,QAAQ,GAAG,MAAM,oBAAoB,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;wCAEnE,sEAAsE;wCACtE,yCAAyC;wCACzC,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC;wCACnD,8DAA8D;wCAC9D,IAAI,gBAAqB,CAAC;wCAC1B,IAAI,8BAA8B,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;4CAC/C,0EAA0E;4CAC1E,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;4CAChE,gBAAgB,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAE,CAAC,CAAC,IAAe,IAAI,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;wCAC7G,CAAC;6CAAM,CAAC;4CACN,qEAAqE;4CACrE,gBAAgB,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;wCACvD,CAAC;wCACD,8DAA8D;wCAC9D,MAAM,iBAAiB,GAAU,CAAC;gDAChC,IAAI,EAAE,aAAa;gDACnB,UAAU,EAAE,EAAE,CAAC,UAAU;gDACzB,QAAQ;gDACR,MAAM,EAAE,gBAAgB;6CACzB,CAAC,CAAC;wCACH,eAAe,CAAC,IAAI,CAAC;4CACnB,IAAI,EAAE,MAAM;4CACZ,OAAO,EAAE,iBAAiB;yCAC3B,CAAC,CAAC;wCAEH,sEAAsE;wCACtE,wEAAwE;wCACxE,oEAAoE;wCACpE,IAAI,8BAA8B,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;4CAC/C,MAAM,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;4CAChE,qBAAqB,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC;4CAC1C,KAAK,CAAC,SAAS,QAAQ,iCAAiC,MAAM,wBAAwB,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC;wCAC9G,CAAC;6CAAM,CAAC;4CACN,KAAK,CAAC,SAAS,QAAQ,iCAAiC,MAAM,2BAA2B,CAAC,CAAC;wCAC7F,CAAC;oCACH,CAAC;yCAAM,CAAC;wCACN,2CAA2C;wCAC3C,IAAI,UAA4C,CAAC;wCACjD,IAAI,CAAC;4CACH,UAAU,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE,CAAC;wCAClE,CAAC;wCAAC,MAAM,CAAC;4CACP,UAAU,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC;wCACtD,CAAC;wCAED,kDAAkD;wCAClD,eAAe,CAAC,IAAI,CAAC;4CACnB,IAAI,EAAE,MAAM;4CACZ,OAAO,EAAE,CAAC;oDACR,IAAI,EAAE,aAAa;oDACnB,UAAU,EAAE,EAAE,CAAC,UAAU;oDACzB,QAAQ;oDACR,MAAM,EAAE,UAAU;iDACnB,CAAC;yCACH,CAAC,CAAC;oCACL,CAAC;gCACH,CAAC;gCAED,yEAAyE;gCACzE,yEAAyE;gCACzE,uEAAuE;gCACvE,iBAAiB;gCACjB,IAAI,qBAAqB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oCACrC,eAAe,CAAC,IAAI,CAAC;wCACnB,IAAI,EAAE,MAAM;wCACZ,OAAO,EAAE;4CACP,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,kDAAkD,EAAE;4CAC1E,GAAG,qBAAqB;yCACzB;qCACF,CAAC,CAAC;oCACH,KAAK,CAAC,8BAA8B,qBAAqB,CAAC,MAAM,+BAA+B,MAAM,GAAG,CAAC,CAAC;gCAC5G,CAAC;4BACH,CAAC;iCAAM,CAAC;gCACN,iCAAiC;gCACjC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;gCACnC,KAAK,CAAC,sCAAsC,SAAS,wBAAwB,SAAS,IAAI,CAAC,CAAC;gCAE5F,QAAQ,GAAG;oCACT,IAAI,EAAE,WAAW;oCACjB,OAAO,EAAE,MAAM,CAAC,IAAI,IAAI,EAAE;iCAC3B,CAAC;gCACF,MAAM;4BACR,CAAC;wBACH,CAAC;wBAED,+DAA+D;wBAC/D,IAAI,SAAS,IAAI,aAAa,IAAI,CAAC,QAAQ,EAAE,CAAC;4BAC5C,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;4BACnC,KAAK,CAAC,6CAA6C,aAAa,cAAc,SAAS,IAAI,CAAC,CAAC;4BAC7F,QAAQ,GAAG;gCACT,IAAI,EAAE,WAAW;gCACjB,OAAO,EAAE,sCAAsC;6BAChD,CAAC;wBACJ,CAAC;oBACH,CAAC;yBAAM,CAAC;wBACN,4BAA4B;wBAC5B,kFAAkF;wBAClF,6DAA6D;wBAC7D,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,cAAc,CAAC,CAAC;wBAElD,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;wBACnC,KAAK,CACH,yBAAyB;4BACvB,gBAAgB,MAAM,CAAC,YAAY,IAAI;4BACvC,aAAa,MAAM,CAAC,SAAS,EAAE,MAAM,IAAI,CAAC,IAAI;4BAC9C,WAAW,SAAS,IAAI,CAC3B,CAAC;wBAEF,iBAAiB;wBACjB,QAAQ,GAAG;4BACT,IAAI,EAAE,WAAW;4BACjB,OAAO,EAAE,MAAM,CAAC,IAAI,IAAI,EAAE;yBAC3B,CAAC;wBAEF,0DAA0D;wBAC1D,sEAAsE;wBACtE,sEAAsE;wBACtE,IAAI,CAAC,gBAAgB,IAAI,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;4BACzE,QAAQ,CAAC,UAAU,GAAG,gBAAgB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;wBAC3D,CAAC;wBACD,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC;oBAC7B,CAAC;oBAED,yDAAyD;oBACzD,MAAM,aAAa,GAAG,QAAS,CAAC;oBAEhC,kEAAkE;oBAClE,IAAI,WAAW,EAAE,CAAC;wBAChB,aAAa,CAAC,WAAW,GAAG;4BAC1B,aAAa,EAAE,WAAW,CAAC,WAAW,IAAI,CAAC;4BAC3C,iBAAiB,EAAE,WAAW,CAAC,YAAY,IAAI,CAAC;4BAChD,KAAK,EAAE,cAAc;yBACtB,CAAC;oBACJ,CAAC;oBAED,KAAK,CACH,iCAAiC;wBAC/B,UAAU,cAAc,cAAc,OAAO,CAAC,QAAQ,CAAC,MAAM,IAAI;wBACjE,cAAc,mBAAmB,gBAAgB,aAAa,CAAC,UAAU,EAAE,MAAM,IAAI,CAAC,GAAG,CAC5F,CAAC;oBAEF,mCAAmC;oBACnC,2EAA2E;oBAC3E,qEAAqE;oBACrE,8EAA8E;oBAC9E,OAAO,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;gBACjC,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,OAAO,CAAC,KAAK,CAAC,+BAA+B,EAAE,GAAG,CAAC,CAAC;oBACpD,IAAI,GAAG,YAAY,KAAK,EAAE,CAAC;wBACzB,OAAO,CAAC,KAAK,CAAC,uBAAuB,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;oBACpD,CAAC;oBACD,MAAM,GAAG,CAAC;gBACZ,CAAC;YACH,CAAC,CAAC;YAEF,MAAM,cAAc,GAAG,KAAK,IAAI,EAAE;gBAChC,IAAI,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC9C,OAAO,MAAM,wBAAwB,CAAC,iBAAiB,EAAE,QAAQ,CAAC,CAAC;gBACrE,CAAC;gBACD,OAAO,MAAM,QAAQ,EAAE,CAAC;YAC1B,CAAC,CAAC;YAEF,OAAO,MAAM,mBAAmB,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC;QACjE,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,YAAY,GAAG,KAAK,CAAC;YACrB,UAAU,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC9D,MAAM,GAAG,CAAC;QACZ,CAAC;gBAAS,CAAC;YACT,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;YACvC,MAAM,eAAe,GAAG,CAAC,YAAY,GAAG,cAAc,CAAC,GAAG,IAAI,CAAC;YAE/D,gBAAgB,CAAC;gBACf,OAAO;gBACP,MAAM;gBACN,UAAU,EAAE,YAAY;gBACxB,YAAY,EAAE,IAAI;gBAClB,SAAS,EAAE,cAAc;gBACzB,OAAO,EAAE,YAAY;gBACrB,UAAU,EAAE,eAAe;gBAC3B,OAAO,EAAE,YAAY;gBACrB,KAAK,EAAE,UAAU;gBACjB,UAAU,EAAE,QAAQ;gBACpB,SAAS,EAAE,CAAC;gBACZ,WAAW,EAAE,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAc,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;gBAC9E,YAAY,EAAE,EAAE;gBAChB,oBAAoB,EAAE,CAAC;gBACvB,aAAa,EAAE,EAAE;aAClB,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QACrB,CAAC;IACH,CAAC,CAAC;IAEF,4BAA4B;IAC5B,MAAM,OAAO,GAAG;QACd,IAAI;QACJ,WAAW;QACX,4EAA4E;QAC5E,wDAAwD;QACxD,UAAU,EAAE,oBAAoB,CAAC,WAAW,EAAE;QAC9C,OAAO;QACP,wCAAwC;QACxC,SAAS,EAAE;YACT,UAAU;YACV,IAAI;YACJ,OAAO;YACP,MAAM;SACP;KACF,CAAC;IAEF,KAAK,CACH,yBAAyB,IAAI,IAAI;QAC/B,UAAU,KAAK,gBAAgB,UAAU,UAAU,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,MAAM,GAAG,CAC/F,CAAC;IAEF,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAC/B,IAAa;IAEb,OAAO,CACL,OAAO,IAAI,KAAK,QAAQ;QACxB,IAAI,KAAK,IAAI;QACb,WAAW,IAAI,IAAI;QACnB,OAAQ,IAAgC,CAAC,SAAS,KAAK,QAAQ,CAChE,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,IAAoC;IAMrE,OAAO,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC;AAChC,CAAC"}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Media module — public API for multimodal content storage and helpers.
|
|
3
|
+
*/
|
|
4
|
+
export { type MediaStore, LocalMediaStore, S3MediaStore, getMediaStore, guessMimeType, _resetMediaStore, } from "./media-store.js";
|
|
5
|
+
export { formatForOpenai, resolveResourceLinks, resolveResourceLinksForToolMessage, resolveMediaAsUserMessage, hasResourceLink, TOOL_IMAGE_UNSUPPORTED_VENDORS, type ResolvedContent, } from "./resolver.js";
|
|
6
|
+
import { type ResolvedContent } from "./resolver.js";
|
|
7
|
+
import type { ResourceLink } from "fastmcp";
|
|
8
|
+
/**
|
|
9
|
+
* Upload binary data to the configured media store.
|
|
10
|
+
*
|
|
11
|
+
* @returns URI pointing to the stored blob (e.g. `file://...` or `s3://...`).
|
|
12
|
+
*/
|
|
13
|
+
export declare function uploadMedia(data: Buffer, filename: string, mimeType: string): Promise<string>;
|
|
14
|
+
/**
|
|
15
|
+
* Build an MCP `resource_link` content item.
|
|
16
|
+
*
|
|
17
|
+
* This is the standard way for tools to return references to binary media
|
|
18
|
+
* (images, audio, PDFs, etc.) rather than embedding them inline.
|
|
19
|
+
*
|
|
20
|
+
* Returns a proper MCP ResourceLink that FastMCP sends as a `resource_link`
|
|
21
|
+
* content type in the MCP protocol response (not serialized as JSON text).
|
|
22
|
+
*/
|
|
23
|
+
export declare function mediaResult(uri: string, name: string, mimeType: string, description?: string, size?: number): ResourceLink;
|
|
24
|
+
/**
|
|
25
|
+
* Convenience class: upload bytes and return a ResourceLink in one step.
|
|
26
|
+
*
|
|
27
|
+
* Usage:
|
|
28
|
+
* const link = await new MediaResult(pngBytes, "chart.png", "image/png").toResourceLink();
|
|
29
|
+
* // or use the standalone function:
|
|
30
|
+
* const link = await createMediaResult(pngBytes, "chart.png", "image/png");
|
|
31
|
+
*/
|
|
32
|
+
export declare class MediaResult {
|
|
33
|
+
readonly data: Buffer;
|
|
34
|
+
readonly filename: string;
|
|
35
|
+
readonly mimeType: string;
|
|
36
|
+
readonly name?: string | undefined;
|
|
37
|
+
readonly description?: string | undefined;
|
|
38
|
+
constructor(data: Buffer, filename: string, mimeType: string, name?: string | undefined, description?: string | undefined);
|
|
39
|
+
toResourceLink(): Promise<ResourceLink>;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Upload bytes and return a ResourceLink in one step.
|
|
43
|
+
*/
|
|
44
|
+
export declare function createMediaResult(data: Buffer, filename: string, mimeType: string, name?: string, description?: string): Promise<ResourceLink>;
|
|
45
|
+
/**
|
|
46
|
+
* Result of saving an upload to MediaStore.
|
|
47
|
+
*/
|
|
48
|
+
export interface MediaUploadResult {
|
|
49
|
+
uri: string;
|
|
50
|
+
name: string;
|
|
51
|
+
mimeType: string;
|
|
52
|
+
size: number;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Save a file upload (e.g., from multer) to MediaStore and return the URI.
|
|
56
|
+
*
|
|
57
|
+
* Accepts objects with buffer/originalname/mimetype properties (multer format)
|
|
58
|
+
* or any object with data/name/mimeType properties.
|
|
59
|
+
*/
|
|
60
|
+
export declare function saveUpload(file: {
|
|
61
|
+
buffer: Buffer;
|
|
62
|
+
originalname: string;
|
|
63
|
+
mimetype: string;
|
|
64
|
+
} | {
|
|
65
|
+
data: Buffer;
|
|
66
|
+
name: string;
|
|
67
|
+
mimeType: string;
|
|
68
|
+
}, options?: {
|
|
69
|
+
filename?: string;
|
|
70
|
+
mimeType?: string;
|
|
71
|
+
}): Promise<string>;
|
|
72
|
+
/**
|
|
73
|
+
* Save a file upload and return full metadata.
|
|
74
|
+
*/
|
|
75
|
+
export declare function saveUploadResult(file: {
|
|
76
|
+
buffer: Buffer;
|
|
77
|
+
originalname: string;
|
|
78
|
+
mimetype: string;
|
|
79
|
+
} | {
|
|
80
|
+
data: Buffer;
|
|
81
|
+
name: string;
|
|
82
|
+
mimeType: string;
|
|
83
|
+
}, options?: {
|
|
84
|
+
filename?: string;
|
|
85
|
+
mimeType?: string;
|
|
86
|
+
}): Promise<MediaUploadResult>;
|
|
87
|
+
/**
|
|
88
|
+
* Resolve an array of media inputs to OpenAI-compatible image_url content parts.
|
|
89
|
+
*
|
|
90
|
+
* Each item is either:
|
|
91
|
+
* - A URI string (resolved via MediaStore.fetch())
|
|
92
|
+
* - An inline `{ data: Buffer; mimeType: string }` object
|
|
93
|
+
*
|
|
94
|
+
* Returns an array of ResolvedContent parts in OpenAI image_url format,
|
|
95
|
+
* which Vercel AI SDK converts to each vendor's native format.
|
|
96
|
+
*
|
|
97
|
+
* @param media - Array of URI strings or inline media objects
|
|
98
|
+
* @returns Array of OpenAI-compatible image_url content parts
|
|
99
|
+
*/
|
|
100
|
+
export declare function resolveMediaInputs(media: Array<string | {
|
|
101
|
+
data: Buffer;
|
|
102
|
+
mimeType: string;
|
|
103
|
+
}>): Promise<ResolvedContent[]>;
|
|
104
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/media/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Media module — public API for multimodal content storage and helpers.
|
|
3
|
+
*/
|
|
4
|
+
export { LocalMediaStore, S3MediaStore, getMediaStore, guessMimeType, _resetMediaStore, } from "./media-store.js";
|
|
5
|
+
export { formatForOpenai, resolveResourceLinks, resolveResourceLinksForToolMessage, resolveMediaAsUserMessage, hasResourceLink, TOOL_IMAGE_UNSUPPORTED_VENDORS, } from "./resolver.js";
|
|
6
|
+
import { getMediaStore } from "./media-store.js";
|
|
7
|
+
import { formatForOpenai } from "./resolver.js";
|
|
8
|
+
/**
|
|
9
|
+
* Upload binary data to the configured media store.
|
|
10
|
+
*
|
|
11
|
+
* @returns URI pointing to the stored blob (e.g. `file://...` or `s3://...`).
|
|
12
|
+
*/
|
|
13
|
+
export async function uploadMedia(data, filename, mimeType) {
|
|
14
|
+
const store = getMediaStore();
|
|
15
|
+
return store.upload(data, filename, mimeType);
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Build an MCP `resource_link` content item.
|
|
19
|
+
*
|
|
20
|
+
* This is the standard way for tools to return references to binary media
|
|
21
|
+
* (images, audio, PDFs, etc.) rather than embedding them inline.
|
|
22
|
+
*
|
|
23
|
+
* Returns a proper MCP ResourceLink that FastMCP sends as a `resource_link`
|
|
24
|
+
* content type in the MCP protocol response (not serialized as JSON text).
|
|
25
|
+
*/
|
|
26
|
+
export function mediaResult(uri, name, mimeType, description, size) {
|
|
27
|
+
const result = { type: "resource_link", uri, name, mimeType };
|
|
28
|
+
if (description !== undefined)
|
|
29
|
+
result.description = description;
|
|
30
|
+
if (size !== undefined)
|
|
31
|
+
result._meta = { size };
|
|
32
|
+
return result;
|
|
33
|
+
}
|
|
34
|
+
// ---------------------------------------------------------------------------
|
|
35
|
+
// MediaResult class — upload + ResourceLink in one step
|
|
36
|
+
// ---------------------------------------------------------------------------
|
|
37
|
+
/**
|
|
38
|
+
* Convenience class: upload bytes and return a ResourceLink in one step.
|
|
39
|
+
*
|
|
40
|
+
* Usage:
|
|
41
|
+
* const link = await new MediaResult(pngBytes, "chart.png", "image/png").toResourceLink();
|
|
42
|
+
* // or use the standalone function:
|
|
43
|
+
* const link = await createMediaResult(pngBytes, "chart.png", "image/png");
|
|
44
|
+
*/
|
|
45
|
+
export class MediaResult {
|
|
46
|
+
data;
|
|
47
|
+
filename;
|
|
48
|
+
mimeType;
|
|
49
|
+
name;
|
|
50
|
+
description;
|
|
51
|
+
constructor(data, filename, mimeType, name, description) {
|
|
52
|
+
this.data = data;
|
|
53
|
+
this.filename = filename;
|
|
54
|
+
this.mimeType = mimeType;
|
|
55
|
+
this.name = name;
|
|
56
|
+
this.description = description;
|
|
57
|
+
}
|
|
58
|
+
async toResourceLink() {
|
|
59
|
+
const uri = await uploadMedia(this.data, this.filename, this.mimeType);
|
|
60
|
+
return mediaResult(uri, this.name ?? this.filename, this.mimeType, this.description, this.data.length);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Upload bytes and return a ResourceLink in one step.
|
|
65
|
+
*/
|
|
66
|
+
export async function createMediaResult(data, filename, mimeType, name, description) {
|
|
67
|
+
return new MediaResult(data, filename, mimeType, name, description).toResourceLink();
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Save a file upload (e.g., from multer) to MediaStore and return the URI.
|
|
71
|
+
*
|
|
72
|
+
* Accepts objects with buffer/originalname/mimetype properties (multer format)
|
|
73
|
+
* or any object with data/name/mimeType properties.
|
|
74
|
+
*/
|
|
75
|
+
export async function saveUpload(file, options) {
|
|
76
|
+
const data = 'buffer' in file ? file.buffer : file.data;
|
|
77
|
+
const filename = options?.filename ?? ('originalname' in file ? file.originalname : file.name);
|
|
78
|
+
const mime = options?.mimeType ?? ('mimetype' in file ? file.mimetype : file.mimeType);
|
|
79
|
+
const store = getMediaStore();
|
|
80
|
+
return store.upload(data, filename, mime);
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Save a file upload and return full metadata.
|
|
84
|
+
*/
|
|
85
|
+
export async function saveUploadResult(file, options) {
|
|
86
|
+
const data = 'buffer' in file ? file.buffer : file.data;
|
|
87
|
+
const filename = options?.filename ?? ('originalname' in file ? file.originalname : file.name);
|
|
88
|
+
const mime = options?.mimeType ?? ('mimetype' in file ? file.mimetype : file.mimeType);
|
|
89
|
+
const store = getMediaStore();
|
|
90
|
+
const uri = await store.upload(data, filename, mime);
|
|
91
|
+
return { uri, name: filename, mimeType: mime, size: data.length };
|
|
92
|
+
}
|
|
93
|
+
// ---------------------------------------------------------------------------
|
|
94
|
+
// resolveMediaInputs — resolve media URIs/buffers to OpenAI-compatible parts
|
|
95
|
+
// ---------------------------------------------------------------------------
|
|
96
|
+
/**
|
|
97
|
+
* Resolve an array of media inputs to OpenAI-compatible image_url content parts.
|
|
98
|
+
*
|
|
99
|
+
* Each item is either:
|
|
100
|
+
* - A URI string (resolved via MediaStore.fetch())
|
|
101
|
+
* - An inline `{ data: Buffer; mimeType: string }` object
|
|
102
|
+
*
|
|
103
|
+
* Returns an array of ResolvedContent parts in OpenAI image_url format,
|
|
104
|
+
* which Vercel AI SDK converts to each vendor's native format.
|
|
105
|
+
*
|
|
106
|
+
* @param media - Array of URI strings or inline media objects
|
|
107
|
+
* @returns Array of OpenAI-compatible image_url content parts
|
|
108
|
+
*/
|
|
109
|
+
export async function resolveMediaInputs(media) {
|
|
110
|
+
const store = getMediaStore();
|
|
111
|
+
const parts = [];
|
|
112
|
+
for (const item of media) {
|
|
113
|
+
try {
|
|
114
|
+
let data;
|
|
115
|
+
let mimeType;
|
|
116
|
+
if (typeof item === "string") {
|
|
117
|
+
const result = await store.fetch(item);
|
|
118
|
+
data = result.data;
|
|
119
|
+
mimeType = result.mimeType;
|
|
120
|
+
}
|
|
121
|
+
else {
|
|
122
|
+
data = item.data;
|
|
123
|
+
mimeType = item.mimeType;
|
|
124
|
+
}
|
|
125
|
+
const b64 = data.toString("base64");
|
|
126
|
+
parts.push(formatForOpenai(b64, mimeType));
|
|
127
|
+
}
|
|
128
|
+
catch (err) {
|
|
129
|
+
const label = typeof item === "string" ? item : "(inline media)";
|
|
130
|
+
console.error(`[media] Failed to resolve ${label}, skipping:`, err);
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
return parts;
|
|
134
|
+
}
|
|
135
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/media/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MediaStore abstraction for multimodal content storage.
|
|
3
|
+
*
|
|
4
|
+
* Provides pluggable storage backends (local filesystem, S3) for
|
|
5
|
+
* binary media referenced by resource_link content items.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Storage backend for media blobs.
|
|
9
|
+
*/
|
|
10
|
+
export interface MediaStore {
|
|
11
|
+
/** Upload data and return a URI for later retrieval. */
|
|
12
|
+
upload(data: Buffer, filename: string, mimeType: string): Promise<string>;
|
|
13
|
+
/** Fetch previously stored data by URI. */
|
|
14
|
+
fetch(uri: string): Promise<{
|
|
15
|
+
data: Buffer;
|
|
16
|
+
mimeType: string;
|
|
17
|
+
}>;
|
|
18
|
+
/** Check whether a URI exists in the store. */
|
|
19
|
+
exists(uri: string): Promise<boolean>;
|
|
20
|
+
}
|
|
21
|
+
/** Guess MIME type from a filename extension. Falls back to application/octet-stream. */
|
|
22
|
+
export declare function guessMimeType(filename: string): string;
|
|
23
|
+
/**
|
|
24
|
+
* Local filesystem media store.
|
|
25
|
+
*
|
|
26
|
+
* Stores files under a configurable base path and returns `file://` URIs.
|
|
27
|
+
*/
|
|
28
|
+
export declare class LocalMediaStore implements MediaStore {
|
|
29
|
+
private readonly basePath;
|
|
30
|
+
private readonly prefix;
|
|
31
|
+
constructor(basePath?: string, prefix?: string);
|
|
32
|
+
private validatePath;
|
|
33
|
+
upload(data: Buffer, filename: string, _mimeType: string): Promise<string>;
|
|
34
|
+
fetch(uri: string): Promise<{
|
|
35
|
+
data: Buffer;
|
|
36
|
+
mimeType: string;
|
|
37
|
+
}>;
|
|
38
|
+
exists(uri: string): Promise<boolean>;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* S3-compatible media store.
|
|
42
|
+
*
|
|
43
|
+
* Uses lazy imports for @aws-sdk/client-s3 so it is only required
|
|
44
|
+
* when storage is configured as "s3".
|
|
45
|
+
*/
|
|
46
|
+
export declare class S3MediaStore implements MediaStore {
|
|
47
|
+
private readonly bucket;
|
|
48
|
+
private readonly endpoint;
|
|
49
|
+
private readonly prefix;
|
|
50
|
+
private _client;
|
|
51
|
+
constructor(bucket?: string, endpoint?: string, prefix?: string);
|
|
52
|
+
private getClient;
|
|
53
|
+
private loadS3Module;
|
|
54
|
+
upload(data: Buffer, filename: string, mimeType: string): Promise<string>;
|
|
55
|
+
fetch(uri: string): Promise<{
|
|
56
|
+
data: Buffer;
|
|
57
|
+
mimeType: string;
|
|
58
|
+
}>;
|
|
59
|
+
exists(uri: string): Promise<boolean>;
|
|
60
|
+
private parseUri;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Get (or create) the singleton MediaStore based on configuration.
|
|
64
|
+
*
|
|
65
|
+
* Reads `media_storage` config key (env: `MCP_MESH_MEDIA_STORAGE`).
|
|
66
|
+
* - `"local"` (default) -> LocalMediaStore
|
|
67
|
+
* - `"s3"` -> S3MediaStore
|
|
68
|
+
*/
|
|
69
|
+
export declare function getMediaStore(): MediaStore;
|
|
70
|
+
/**
|
|
71
|
+
* Reset the singleton (mainly for testing).
|
|
72
|
+
* @internal
|
|
73
|
+
*/
|
|
74
|
+
export declare function _resetMediaStore(): void;
|
|
75
|
+
//# sourceMappingURL=media-store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"media-store.d.ts","sourceRoot":"","sources":["../../src/media/media-store.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,wDAAwD;IACxD,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAE1E,2CAA2C;IAC3C,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAEhE,+CAA+C;IAC/C,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACvC;AAuBD,yFAAyF;AACzF,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAGtD;AAED;;;;GAIG;AACH,qBAAa,eAAgB,YAAW,UAAU;IAChD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;gBAEpB,QAAQ,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM;YAMhC,YAAY;IAQpB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAc1E,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IAW/D,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;CAY5C;AAED;;;;;GAKG;AACH,qBAAa,YAAa,YAAW,UAAU;IAC7C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAqB;IAC9C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAIhC,OAAO,CAAC,OAAO,CAAa;gBAEhB,MAAM,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM;YAQjD,SAAS;YAmBT,YAAY;IAKpB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAiBzE,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IAkB/D,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAqB3C,OAAO,CAAC,QAAQ;CAejB;AAQD;;;;;;GAMG;AACH,wBAAgB,aAAa,IAAI,UAAU,CAe1C;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,IAAI,IAAI,CAEvC"}
|