@llumiverse/drivers 0.21.0 → 0.22.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (133) hide show
  1. package/lib/cjs/azure/azure_foundry.js +9 -0
  2. package/lib/cjs/azure/azure_foundry.js.map +1 -1
  3. package/lib/cjs/bedrock/index.js +35 -22
  4. package/lib/cjs/bedrock/index.js.map +1 -1
  5. package/lib/cjs/vertexai/index.js +26 -18
  6. package/lib/cjs/vertexai/index.js.map +1 -1
  7. package/lib/cjs/vertexai/models/gemini.js +39 -12
  8. package/lib/cjs/vertexai/models/gemini.js.map +1 -1
  9. package/lib/esm/azure/azure_foundry.js +9 -0
  10. package/lib/esm/azure/azure_foundry.js.map +1 -1
  11. package/lib/esm/bedrock/index.js +35 -22
  12. package/lib/esm/bedrock/index.js.map +1 -1
  13. package/lib/esm/vertexai/index.js +26 -18
  14. package/lib/esm/vertexai/index.js.map +1 -1
  15. package/lib/esm/vertexai/models/gemini.js +39 -12
  16. package/lib/esm/vertexai/models/gemini.js.map +1 -1
  17. package/lib/types/azure/azure_foundry.d.ts.map +1 -1
  18. package/lib/types/bedrock/index.d.ts +2 -2
  19. package/lib/types/bedrock/index.d.ts.map +1 -1
  20. package/lib/types/vertexai/index.d.ts.map +1 -1
  21. package/lib/types/vertexai/models/gemini.d.ts +3 -2
  22. package/lib/types/vertexai/models/gemini.d.ts.map +1 -1
  23. package/package.json +14 -14
  24. package/src/azure/azure_foundry.ts +9 -1
  25. package/src/bedrock/index.ts +36 -23
  26. package/src/vertexai/index.ts +29 -22
  27. package/src/vertexai/models/gemini.ts +50 -12
  28. package/lib/cjs/openai/azure.js +0 -31
  29. package/lib/cjs/openai/azure.js.map +0 -1
  30. package/lib/esm/openai/azure.js +0 -27
  31. package/lib/esm/openai/azure.js.map +0 -1
  32. package/lib/esm/src/adobe/firefly.js +0 -115
  33. package/lib/esm/src/adobe/firefly.js.map +0 -1
  34. package/lib/esm/src/bedrock/converse.js +0 -278
  35. package/lib/esm/src/bedrock/converse.js.map +0 -1
  36. package/lib/esm/src/bedrock/index.js +0 -797
  37. package/lib/esm/src/bedrock/index.js.map +0 -1
  38. package/lib/esm/src/bedrock/nova-image-payload.js +0 -203
  39. package/lib/esm/src/bedrock/nova-image-payload.js.map +0 -1
  40. package/lib/esm/src/bedrock/payloads.js +0 -2
  41. package/lib/esm/src/bedrock/payloads.js.map +0 -1
  42. package/lib/esm/src/bedrock/s3.js +0 -99
  43. package/lib/esm/src/bedrock/s3.js.map +0 -1
  44. package/lib/esm/src/groq/index.js +0 -130
  45. package/lib/esm/src/groq/index.js.map +0 -1
  46. package/lib/esm/src/huggingface_ie.js +0 -196
  47. package/lib/esm/src/huggingface_ie.js.map +0 -1
  48. package/lib/esm/src/index.js +0 -13
  49. package/lib/esm/src/index.js.map +0 -1
  50. package/lib/esm/src/mistral/index.js +0 -167
  51. package/lib/esm/src/mistral/index.js.map +0 -1
  52. package/lib/esm/src/mistral/types.js +0 -80
  53. package/lib/esm/src/mistral/types.js.map +0 -1
  54. package/lib/esm/src/openai/azure.js +0 -27
  55. package/lib/esm/src/openai/azure.js.map +0 -1
  56. package/lib/esm/src/openai/index.js +0 -463
  57. package/lib/esm/src/openai/index.js.map +0 -1
  58. package/lib/esm/src/openai/openai.js +0 -14
  59. package/lib/esm/src/openai/openai.js.map +0 -1
  60. package/lib/esm/src/replicate.js +0 -268
  61. package/lib/esm/src/replicate.js.map +0 -1
  62. package/lib/esm/src/test/TestErrorCompletionStream.js +0 -16
  63. package/lib/esm/src/test/TestErrorCompletionStream.js.map +0 -1
  64. package/lib/esm/src/test/TestValidationErrorCompletionStream.js +0 -20
  65. package/lib/esm/src/test/TestValidationErrorCompletionStream.js.map +0 -1
  66. package/lib/esm/src/test/index.js +0 -91
  67. package/lib/esm/src/test/index.js.map +0 -1
  68. package/lib/esm/src/test/utils.js +0 -25
  69. package/lib/esm/src/test/utils.js.map +0 -1
  70. package/lib/esm/src/togetherai/index.js +0 -122
  71. package/lib/esm/src/togetherai/index.js.map +0 -1
  72. package/lib/esm/src/togetherai/interfaces.js +0 -2
  73. package/lib/esm/src/togetherai/interfaces.js.map +0 -1
  74. package/lib/esm/src/vertexai/debug.js +0 -6
  75. package/lib/esm/src/vertexai/debug.js.map +0 -1
  76. package/lib/esm/src/vertexai/embeddings/embeddings-image.js +0 -24
  77. package/lib/esm/src/vertexai/embeddings/embeddings-image.js.map +0 -1
  78. package/lib/esm/src/vertexai/embeddings/embeddings-text.js +0 -20
  79. package/lib/esm/src/vertexai/embeddings/embeddings-text.js.map +0 -1
  80. package/lib/esm/src/vertexai/index.js +0 -270
  81. package/lib/esm/src/vertexai/index.js.map +0 -1
  82. package/lib/esm/src/vertexai/models/claude.js +0 -370
  83. package/lib/esm/src/vertexai/models/claude.js.map +0 -1
  84. package/lib/esm/src/vertexai/models/gemini.js +0 -700
  85. package/lib/esm/src/vertexai/models/gemini.js.map +0 -1
  86. package/lib/esm/src/vertexai/models/imagen.js +0 -310
  87. package/lib/esm/src/vertexai/models/imagen.js.map +0 -1
  88. package/lib/esm/src/vertexai/models/llama.js +0 -178
  89. package/lib/esm/src/vertexai/models/llama.js.map +0 -1
  90. package/lib/esm/src/vertexai/models.js +0 -21
  91. package/lib/esm/src/vertexai/models.js.map +0 -1
  92. package/lib/esm/src/watsonx/index.js +0 -157
  93. package/lib/esm/src/watsonx/index.js.map +0 -1
  94. package/lib/esm/src/watsonx/interfaces.js +0 -2
  95. package/lib/esm/src/watsonx/interfaces.js.map +0 -1
  96. package/lib/esm/src/xai/index.js +0 -64
  97. package/lib/esm/src/xai/index.js.map +0 -1
  98. package/lib/esm/tsconfig.tsbuildinfo +0 -1
  99. package/lib/types/openai/azure.d.ts +0 -20
  100. package/lib/types/openai/azure.d.ts.map +0 -1
  101. package/lib/types/src/adobe/firefly.d.ts +0 -29
  102. package/lib/types/src/bedrock/converse.d.ts +0 -8
  103. package/lib/types/src/bedrock/index.d.ts +0 -57
  104. package/lib/types/src/bedrock/nova-image-payload.d.ts +0 -73
  105. package/lib/types/src/bedrock/payloads.d.ts +0 -11
  106. package/lib/types/src/bedrock/s3.d.ts +0 -22
  107. package/lib/types/src/groq/index.d.ts +0 -23
  108. package/lib/types/src/huggingface_ie.d.ts +0 -31
  109. package/lib/types/src/index.d.ts +0 -12
  110. package/lib/types/src/mistral/index.d.ts +0 -24
  111. package/lib/types/src/mistral/types.d.ts +0 -131
  112. package/lib/types/src/openai/azure.d.ts +0 -19
  113. package/lib/types/src/openai/index.d.ts +0 -25
  114. package/lib/types/src/openai/openai.d.ts +0 -14
  115. package/lib/types/src/replicate.d.ts +0 -44
  116. package/lib/types/src/test/TestErrorCompletionStream.d.ts +0 -8
  117. package/lib/types/src/test/TestValidationErrorCompletionStream.d.ts +0 -8
  118. package/lib/types/src/test/index.d.ts +0 -23
  119. package/lib/types/src/test/utils.d.ts +0 -4
  120. package/lib/types/src/togetherai/index.d.ts +0 -22
  121. package/lib/types/src/togetherai/interfaces.d.ts +0 -95
  122. package/lib/types/src/vertexai/debug.d.ts +0 -1
  123. package/lib/types/src/vertexai/embeddings/embeddings-image.d.ts +0 -10
  124. package/lib/types/src/vertexai/embeddings/embeddings-text.d.ts +0 -9
  125. package/lib/types/src/vertexai/index.d.ts +0 -49
  126. package/lib/types/src/vertexai/models/claude.d.ts +0 -17
  127. package/lib/types/src/vertexai/models/gemini.d.ts +0 -16
  128. package/lib/types/src/vertexai/models/imagen.d.ts +0 -74
  129. package/lib/types/src/vertexai/models/llama.d.ts +0 -19
  130. package/lib/types/src/vertexai/models.d.ts +0 -14
  131. package/lib/types/src/watsonx/index.d.ts +0 -26
  132. package/lib/types/src/watsonx/interfaces.d.ts +0 -64
  133. package/lib/types/src/xai/index.d.ts +0 -18
@@ -1,20 +0,0 @@
1
- export async function getEmbeddingsForText(driver, options) {
2
- const prompt = {
3
- instances: [{
4
- task_type: options.task_type,
5
- title: options.title,
6
- content: options.content
7
- }]
8
- };
9
- const model = options.model || "text-embedding-004";
10
- const client = driver.getFetchClient();
11
- const result = await client.post(`/publishers/google/models/${model}:predict`, {
12
- payload: prompt
13
- });
14
- return {
15
- ...result.predictions[0].embeddings,
16
- model,
17
- token_count: result.predictions[0].embeddings.statistics?.token_count
18
- };
19
- }
20
- //# sourceMappingURL=embeddings-text.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"embeddings-text.js","sourceRoot":"","sources":["../../../../../src/vertexai/embeddings/embeddings-text.ts"],"names":[],"mappings":"AA+BA,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,MAAsB,EAAE,OAA8B;IAC7F,MAAM,MAAM,GAAG;QACX,SAAS,EAAE,CAAC;gBACR,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,OAAO,EAAE,OAAO,CAAC,OAAO;aAC3B,CAAC;KACsB,CAAC;IAE7B,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,oBAAoB,CAAC;IAEpD,MAAM,MAAM,GAAG,MAAM,CAAC,cAAc,EAAE,CAAC;IAEvC,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,6BAA6B,KAAK,UAAU,EAAE;QAC3E,OAAO,EAAE,MAAM;KAClB,CAAyB,CAAC;IAE3B,OAAO;QACH,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,UAAU;QACnC,KAAK;QACL,WAAW,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,EAAE,WAAW;KACxE,CAAC;AACN,CAAC"}
@@ -1,270 +0,0 @@
1
- import { AbstractDriver, Modalities, getModelCapabilities, modelModalitiesToArray, } from "@llumiverse/core";
2
- import { FetchClient } from "@vertesia/api-fetch-client";
3
- import { GoogleAuth } from "google-auth-library";
4
- import { getEmbeddingsForText } from "./embeddings/embeddings-text.js";
5
- import { getModelDefinition } from "./models.js";
6
- import { getEmbeddingsForImages } from "./embeddings/embeddings-image.js";
7
- import { v1beta1 } from "@google-cloud/aiplatform";
8
- import { AnthropicVertex } from "@anthropic-ai/vertex-sdk";
9
- import { ImagenModelDefinition } from "./models/imagen.js";
10
- import { GoogleGenAI } from "@google/genai";
11
- export function trimModelName(model) {
12
- const i = model.lastIndexOf("@");
13
- return i > -1 ? model.substring(0, i) : model;
14
- }
15
- export class VertexAIDriver extends AbstractDriver {
16
- static PROVIDER = "vertexai";
17
- provider = VertexAIDriver.PROVIDER;
18
- aiplatform;
19
- anthropicClient;
20
- fetchClient;
21
- googleGenAI;
22
- llamaClient;
23
- modelGarden;
24
- authClient;
25
- constructor(options) {
26
- super(options);
27
- this.aiplatform = undefined;
28
- this.anthropicClient = undefined;
29
- this.fetchClient = undefined;
30
- this.googleGenAI = undefined;
31
- this.modelGarden = undefined;
32
- this.llamaClient = undefined;
33
- this.authClient = options.googleAuthOptions?.authClient ?? new GoogleAuth(options.googleAuthOptions);
34
- }
35
- getGoogleGenAIClient() {
36
- //Lazy initialisation
37
- if (!this.googleGenAI) {
38
- this.googleGenAI = new GoogleGenAI({
39
- project: this.options.project,
40
- location: this.options.region,
41
- vertexai: true,
42
- googleAuthOptions: {
43
- authClient: this.authClient,
44
- }
45
- });
46
- }
47
- return this.googleGenAI;
48
- }
49
- getFetchClient() {
50
- //Lazy initialisation
51
- if (!this.fetchClient) {
52
- this.fetchClient = createFetchClient({
53
- region: this.options.region,
54
- project: this.options.project,
55
- }).withAuthCallback(async () => {
56
- const accessTokenResponse = await this.authClient.getAccessToken();
57
- const token = typeof accessTokenResponse === 'string' ? accessTokenResponse : accessTokenResponse?.token;
58
- return `Bearer ${token}`;
59
- });
60
- }
61
- return this.fetchClient;
62
- }
63
- getLLamaClient(region = "us-central1") {
64
- //Lazy initialisation
65
- if (!this.llamaClient || this.llamaClient["region"] !== region) {
66
- this.llamaClient = createFetchClient({
67
- region: region,
68
- project: this.options.project,
69
- apiVersion: "v1beta1",
70
- }).withAuthCallback(async () => {
71
- const accessTokenResponse = await this.authClient.getAccessToken();
72
- const token = typeof accessTokenResponse === 'string' ? accessTokenResponse : accessTokenResponse?.token;
73
- return `Bearer ${token}`;
74
- });
75
- // Store the region for potential client reuse
76
- this.llamaClient["region"] = region;
77
- }
78
- return this.llamaClient;
79
- }
80
- getAnthropicClient() {
81
- //Lazy initialisation
82
- if (!this.anthropicClient) {
83
- this.anthropicClient = new AnthropicVertex({
84
- timeout: 20 * 60 * 10000, // Set to 20 minutes, 10 minute default, setting this disables long request error: https://github.com/anthropics/anthropic-sdk-typescript?#long-requests
85
- region: "us-east5",
86
- projectId: process.env.GOOGLE_PROJECT_ID,
87
- });
88
- }
89
- return this.anthropicClient;
90
- }
91
- getAIPlatformClient() {
92
- //Lazy initialisation
93
- if (!this.aiplatform) {
94
- this.aiplatform = new v1beta1.ModelServiceClient({
95
- projectId: this.options.project,
96
- apiEndpoint: `${this.options.region}-${API_BASE_PATH}`,
97
- authClient: this.authClient,
98
- });
99
- }
100
- return this.aiplatform;
101
- }
102
- getModelGardenClient() {
103
- //Lazy initialisation
104
- if (!this.modelGarden) {
105
- this.modelGarden = new v1beta1.ModelGardenServiceClient({
106
- projectId: this.options.project,
107
- apiEndpoint: `${this.options.region}-${API_BASE_PATH}`,
108
- authClient: this.authClient,
109
- });
110
- }
111
- return this.modelGarden;
112
- }
113
- validateResult(result, options) {
114
- // Optionally preprocess the result before validation
115
- const modelDef = getModelDefinition(options.model);
116
- if (typeof modelDef.preValidationProcessing === "function") {
117
- const processed = modelDef.preValidationProcessing(result, options);
118
- result = processed.result;
119
- options = processed.options;
120
- }
121
- super.validateResult(result, options);
122
- }
123
- canStream(options) {
124
- if (options.output_modality == Modalities.image) {
125
- return Promise.resolve(false);
126
- }
127
- return Promise.resolve(getModelDefinition(options.model).model.can_stream === true);
128
- }
129
- createPrompt(segments, options) {
130
- if (options.model.includes("imagen")) {
131
- return new ImagenModelDefinition(options.model).createPrompt(this, segments, options);
132
- }
133
- return getModelDefinition(options.model).createPrompt(this, segments, options);
134
- }
135
- async requestTextCompletion(prompt, options) {
136
- return getModelDefinition(options.model).requestTextCompletion(this, prompt, options);
137
- }
138
- async requestTextCompletionStream(prompt, options) {
139
- return getModelDefinition(options.model).requestTextCompletionStream(this, prompt, options);
140
- }
141
- async requestImageGeneration(_prompt, _options) {
142
- const splits = _options.model.split("/");
143
- const modelName = trimModelName(splits[splits.length - 1]);
144
- return new ImagenModelDefinition(modelName).requestImageGeneration(this, _prompt, _options);
145
- }
146
- async listModels(_params) {
147
- // Get clients
148
- const modelGarden = this.getModelGardenClient();
149
- const aiplatform = this.getAIPlatformClient();
150
- let models = [];
151
- //Project specific deployed models
152
- const [response] = await aiplatform.listModels({
153
- parent: `projects/${this.options.project}/locations/${this.options.region}`,
154
- });
155
- models = models.concat(response.map((model) => ({
156
- id: model.name?.split("/").pop() ?? "",
157
- name: model.displayName ?? "",
158
- provider: "vertexai"
159
- })));
160
- //Model Garden Publisher models - Pretrained models
161
- const publishers = ["google", "anthropic", "meta"];
162
- // Meta "maas" models are LLama Models-As-A-Service. Non-maas models are not pre-deployed.
163
- const supportedModels = { google: ["gemini", "imagen"], anthropic: ["claude"], meta: ["maas"] };
164
- // Additional models not in the listings, but we want to include
165
- // TODO: Remove once the models are available in the listing API, or no longer needed
166
- const additionalModels = {
167
- google: ["imagen-3.0-fast-generate-001"],
168
- anthropic: [],
169
- meta: [
170
- "llama-4-maverick-17b-128e-instruct-maas",
171
- "llama-4-scout-17b-16e-instruct-maas",
172
- "llama-3.3-70b-instruct-maas",
173
- "llama-3.2-90b-vision-instruct-maas",
174
- "llama-3.1-405b-instruct-maas",
175
- "llama-3.1-70b-instruct-maas",
176
- "llama-3.1-8b-instruct-maas",
177
- ],
178
- };
179
- //Used to exclude retired models that are still in the listing API but not available for use.
180
- //Or models we do not support yet
181
- const unsupportedModelsByPublisher = {
182
- google: ["gemini-pro", "gemini-ultra"],
183
- anthropic: [],
184
- meta: [],
185
- };
186
- for (const publisher of publishers) {
187
- let [response] = await modelGarden.listPublisherModels({
188
- parent: `publishers/${publisher}`,
189
- orderBy: "name",
190
- listAllVersions: true,
191
- });
192
- // Filter out the 100+ long list coming from Google models
193
- if (publisher === "google") {
194
- response = response.filter((model) => {
195
- return (model.supportedActions?.openGenerationAiStudio || undefined) !== undefined;
196
- });
197
- }
198
- const modelFamily = supportedModels[publisher];
199
- const retiredModels = unsupportedModelsByPublisher[publisher];
200
- models = models.concat(response.filter((model) => {
201
- const modelName = model.name ?? "";
202
- // Exclude retired models
203
- if (retiredModels.some(retiredModel => modelName.includes(retiredModel))) {
204
- return false;
205
- }
206
- // Check if the model belongs to the supported model families
207
- if (modelFamily.some(family => modelName.includes(family))) {
208
- return true;
209
- }
210
- return false;
211
- }).map(model => {
212
- const modelCapability = getModelCapabilities(model.name ?? '', "vertexai");
213
- return {
214
- id: model.name ?? '',
215
- name: model.name?.split('/').pop() ?? '',
216
- provider: 'vertexai',
217
- owner: publisher,
218
- input_modalities: modelModalitiesToArray(modelCapability.input),
219
- output_modalities: modelModalitiesToArray(modelCapability.output),
220
- tool_support: modelCapability.tool_support,
221
- };
222
- }));
223
- // Add additional models that are not in the listing
224
- for (const additionalModel of additionalModels[publisher]) {
225
- const publisherModelName = `publishers/${publisher}/models/${additionalModel}`;
226
- const modelCapability = getModelCapabilities(additionalModel, "vertexai");
227
- models.push({
228
- id: publisherModelName,
229
- name: additionalModel,
230
- provider: 'vertexai',
231
- owner: publisher,
232
- input_modalities: modelModalitiesToArray(modelCapability.input),
233
- output_modalities: modelModalitiesToArray(modelCapability.output),
234
- tool_support: modelCapability.tool_support,
235
- });
236
- }
237
- }
238
- //Remove duplicates
239
- const uniqueModels = Array.from(new Set(models.map(a => a.id)))
240
- .map(id => {
241
- return models.find(a => a.id === id) ?? {};
242
- }).sort((a, b) => a.id.localeCompare(b.id));
243
- return uniqueModels;
244
- }
245
- validateConnection() {
246
- throw new Error("Method not implemented.");
247
- }
248
- async generateEmbeddings(options) {
249
- if (options.image || options.model?.includes("multimodal")) {
250
- if (options.text && options.image) {
251
- throw new Error("Text and Image simultaneous embedding not implemented. Submit separately");
252
- }
253
- return getEmbeddingsForImages(this, options);
254
- }
255
- const text_options = {
256
- content: options.text ?? "",
257
- model: options.model,
258
- };
259
- return getEmbeddingsForText(this, text_options);
260
- }
261
- }
262
- //'us-central1-aiplatform.googleapis.com',
263
- const API_BASE_PATH = "aiplatform.googleapis.com";
264
- function createFetchClient({ region, project, apiEndpoint, apiVersion = "v1", }) {
265
- const vertexBaseEndpoint = apiEndpoint ?? `${region}-${API_BASE_PATH}`;
266
- return new FetchClient(`https://${vertexBaseEndpoint}/${apiVersion}/projects/${project}/locations/${region}`).withHeaders({
267
- "Content-Type": "application/json",
268
- });
269
- }
270
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/vertexai/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAEH,cAAc,EAOd,UAAU,EAGV,oBAAoB,EACpB,sBAAsB,GACzB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,UAAU,EAAqB,MAAM,qBAAqB,CAAC;AAEpE,OAAO,EAAyB,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AAC9F,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEjD,OAAO,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAC;AAC1E,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,qBAAqB,EAAgB,MAAM,oBAAoB,CAAC;AACzE,OAAO,EAAE,WAAW,EAAW,MAAM,eAAe,CAAC;AAgBrD,MAAM,UAAU,aAAa,CAAC,KAAa;IACvC,MAAM,CAAC,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IACjC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;AAClD,CAAC;AAED,MAAM,OAAO,cAAe,SAAQ,cAAqD;IACrF,MAAM,CAAC,QAAQ,GAAG,UAAU,CAAC;IAC7B,QAAQ,GAAG,cAAc,CAAC,QAAQ,CAAC;IAEnC,UAAU,CAAyC;IACnD,eAAe,CAA8B;IAC7C,WAAW,CAA0B;IACrC,WAAW,CAA0B;IACrC,WAAW,CAAgD;IAC3D,WAAW,CAA+C;IAE1D,UAAU,CAAsC;IAEhD,YAAY,OAA8B;QACtC,KAAK,CAAC,OAAO,CAAC,CAAC;QAEf,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;QAC5B,IAAI,CAAC,eAAe,GAAG,SAAS,CAAC;QACjC,IAAI,CAAC,WAAW,GAAG,SAAS,CAAA;QAC5B,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC;QAC7B,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC;QAC7B,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC;QAE7B,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,iBAAiB,EAAE,UAAU,IAAI,IAAI,UAAU,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;IACzG,CAAC;IAEM,oBAAoB;QACvB,qBAAqB;QACrB,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACpB,IAAI,CAAC,WAAW,GAAG,IAAI,WAAW,CAAC;gBAC/B,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO;gBAC7B,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM;gBAC7B,QAAQ,EAAE,IAAI;gBACd,iBAAiB,EAAE;oBACf,UAAU,EAAE,IAAI,CAAC,UAAwB;iBAC5C;aACJ,CAAC,CAAC;QACP,CAAC;QACD,OAAO,IAAI,CAAC,WAAW,CAAC;IAC5B,CAAC;IAEM,cAAc;QACjB,qBAAqB;QACrB,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACpB,IAAI,CAAC,WAAW,GAAG,iBAAiB,CAAC;gBACjC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM;gBAC3B,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO;aAChC,CAAC,CAAC,gBAAgB,CAAC,KAAK,IAAI,EAAE;gBAC3B,MAAM,mBAAmB,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE,CAAC;gBACnE,MAAM,KAAK,GAAG,OAAO,mBAAmB,KAAK,QAAQ,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,mBAAmB,EAAE,KAAK,CAAC;gBACzG,OAAO,UAAU,KAAK,EAAE,CAAC;YAC7B,CAAC,CAAC,CAAC;QACP,CAAC;QACD,OAAO,IAAI,CAAC,WAAW,CAAC;IAC5B,CAAC;IAEM,cAAc,CAAC,SAAiB,aAAa;QAChD,qBAAqB;QACrB,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,KAAK,MAAM,EAAE,CAAC;YAC7D,IAAI,CAAC,WAAW,GAAG,iBAAiB,CAAC;gBACjC,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO;gBAC7B,UAAU,EAAE,SAAS;aACxB,CAAC,CAAC,gBAAgB,CAAC,KAAK,IAAI,EAAE;gBAC3B,MAAM,mBAAmB,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE,CAAC;gBACnE,MAAM,KAAK,GAAG,OAAO,mBAAmB,KAAK,QAAQ,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,mBAAmB,EAAE,KAAK,CAAC;gBACzG,OAAO,UAAU,KAAK,EAAE,CAAC;YAC7B,CAAC,CAAC,CAAC;YACH,8CAA8C;YAC9C,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC;QACxC,CAAC;QACD,OAAO,IAAI,CAAC,WAAW,CAAC;IAC5B,CAAC;IAEM,kBAAkB;QACrB,qBAAqB;QACrB,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;YACxB,IAAI,CAAC,eAAe,GAAG,IAAI,eAAe,CAAC;gBACvC,OAAO,EAAE,EAAE,GAAG,EAAE,GAAG,KAAK,EAAE,wJAAwJ;gBAClL,MAAM,EAAE,UAAU;gBAClB,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB;aAC3C,CAAC,CAAC;QACP,CAAC;QACD,OAAO,IAAI,CAAC,eAAe,CAAC;IAChC,CAAC;IAEM,mBAAmB;QACtB,qBAAqB;QACrB,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACnB,IAAI,CAAC,UAAU,GAAG,IAAI,OAAO,CAAC,kBAAkB,CAAC;gBAC7C,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO;gBAC/B,WAAW,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,aAAa,EAAE;gBACtD,UAAU,EAAE,IAAI,CAAC,UAAwB;aAC5C,CAAC,CAAC;QACP,CAAC;QACD,OAAO,IAAI,CAAC,UAAU,CAAC;IAC3B,CAAC;IAEM,oBAAoB;QACvB,qBAAqB;QACrB,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACpB,IAAI,CAAC,WAAW,GAAG,IAAI,OAAO,CAAC,wBAAwB,CAAC;gBACpD,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO;gBAC/B,WAAW,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,aAAa,EAAE;gBACtD,UAAU,EAAE,IAAI,CAAC,UAAwB;aAC5C,CAAC,CAAC;QACP,CAAC;QACD,OAAO,IAAI,CAAC,WAAW,CAAC;IAC5B,CAAC;IAED,cAAc,CAAC,MAAkB,EAAE,OAAyB;QACxD,qDAAqD;QACrD,MAAM,QAAQ,GAAG,kBAAkB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACnD,IAAI,OAAO,QAAQ,CAAC,uBAAuB,KAAK,UAAU,EAAE,CAAC;YACzD,MAAM,SAAS,GAAG,QAAQ,CAAC,uBAAuB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YACpE,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC;YAC1B,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC;QAChC,CAAC;QAED,KAAK,CAAC,cAAc,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC1C,CAAC;IAES,SAAS,CAAC,OAAyB;QACzC,IAAI,OAAO,CAAC,eAAe,IAAI,UAAU,CAAC,KAAK,EAAE,CAAC;YAC9C,OAAO,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAClC,CAAC;QACD,OAAO,OAAO,CAAC,OAAO,CAAC,kBAAkB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,UAAU,KAAK,IAAI,CAAC,CAAC;IACxF,CAAC;IAEM,YAAY,CAAC,QAAyB,EAAE,OAAyB;QACpE,IAAI,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YACnC,OAAO,IAAI,qBAAqB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC1F,CAAC;QACD,OAAO,kBAAkB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IACnF,CAAC;IAED,KAAK,CAAC,qBAAqB,CAAC,MAAsB,EAAE,OAAyB;QACzE,OAAO,kBAAkB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IAC1F,CAAC;IACD,KAAK,CAAC,2BAA2B,CAC7B,MAAsB,EACtB,OAAyB;QAEzB,OAAO,kBAAkB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,2BAA2B,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IAChG,CAAC;IAED,KAAK,CAAC,sBAAsB,CACxB,OAAqB,EACrB,QAA0B;QAE1B,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACzC,MAAM,SAAS,GAAG,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;QAC3D,OAAO,IAAI,qBAAqB,CAAC,SAAS,CAAC,CAAC,sBAAsB,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;IAChG,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,OAA4B;QACzC,cAAc;QACd,MAAM,WAAW,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAChD,MAAM,UAAU,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAE9C,IAAI,MAAM,GAAsB,EAAE,CAAC;QAEnC,kCAAkC;QAClC,MAAM,CAAC,QAAQ,CAAC,GAAG,MAAM,UAAU,CAAC,UAAU,CAAC;YAC3C,MAAM,EAAE,YAAY,IAAI,CAAC,OAAO,CAAC,OAAO,cAAc,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;SAC9E,CAAC,CAAC;QACH,MAAM,GAAG,MAAM,CAAC,MAAM,CAClB,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YACrB,EAAE,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE;YACtC,IAAI,EAAE,KAAK,CAAC,WAAW,IAAI,EAAE;YAC7B,QAAQ,EAAE,UAAU;SACvB,CAAC,CAAC,CACN,CAAC;QAEF,mDAAmD;QACnD,MAAM,UAAU,GAAG,CAAC,QAAQ,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;QACnD,0FAA0F;QAC1F,MAAM,eAAe,GAAG,EAAE,MAAM,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE,SAAS,EAAE,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC;QAChG,gEAAgE;QAChE,qFAAqF;QACrF,MAAM,gBAAgB,GAAG;YACrB,MAAM,EAAE,CAAC,8BAA8B,CAAC;YACxC,SAAS,EAAE,EAAE;YACb,IAAI,EAAE;gBACF,yCAAyC;gBACzC,qCAAqC;gBACrC,6BAA6B;gBAC7B,oCAAoC;gBACpC,8BAA8B;gBAC9B,6BAA6B;gBAC7B,4BAA4B;aAC/B;SACJ,CAAA;QAED,6FAA6F;QAC7F,iCAAiC;QACjC,MAAM,4BAA4B,GAAG;YACjC,MAAM,EAAE,CAAC,YAAY,EAAE,cAAc,CAAC;YACtC,SAAS,EAAE,EAAE;YACb,IAAI,EAAE,EAAE;SACX,CAAC;QAEF,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;YACjC,IAAI,CAAC,QAAQ,CAAC,GAAG,MAAM,WAAW,CAAC,mBAAmB,CAAC;gBACnD,MAAM,EAAE,cAAc,SAAS,EAAE;gBACjC,OAAO,EAAE,MAAM;gBACf,eAAe,EAAE,IAAI;aACxB,CAAC,CAAC;YAEH,0DAA0D;YAC1D,IAAI,SAAS,KAAK,QAAQ,EAAE,CAAC;gBACzB,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE;oBACjC,OAAO,CAAC,KAAK,CAAC,gBAAgB,EAAE,sBAAsB,IAAI,SAAS,CAAC,KAAK,SAAS,CAAC;gBACvF,CAAC,CAAC,CAAC;YACP,CAAC;YAED,MAAM,WAAW,GAAG,eAAe,CAAC,SAAyC,CAAC,CAAC;YAC/E,MAAM,aAAa,GAAG,4BAA4B,CAAC,SAAsD,CAAC,CAAC;YAE3G,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE;gBAC7C,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC;gBACnC,yBAAyB;gBACzB,IAAI,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC;oBACvE,OAAO,KAAK,CAAC;gBACjB,CAAC;gBACD,6DAA6D;gBAC7D,IAAI,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;oBACzD,OAAO,IAAI,CAAC;gBAChB,CAAC;gBACD,OAAO,KAAK,CAAC;YACjB,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;gBACX,MAAM,eAAe,GAAG,oBAAoB,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,EAAE,UAAU,CAAC,CAAC;gBAC3E,OAAO;oBACH,EAAE,EAAE,KAAK,CAAC,IAAI,IAAI,EAAE;oBACpB,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE;oBACxC,QAAQ,EAAE,UAAU;oBACpB,KAAK,EAAE,SAAS;oBAChB,gBAAgB,EAAE,sBAAsB,CAAC,eAAe,CAAC,KAAK,CAAC;oBAC/D,iBAAiB,EAAE,sBAAsB,CAAC,eAAe,CAAC,MAAM,CAAC;oBACjE,YAAY,EAAE,eAAe,CAAC,YAAY;iBACnB,CAAC;YAChC,CAAC,CAAC,CAAC,CAAC;YAEJ,oDAAoD;YACpD,KAAK,MAAM,eAAe,IAAI,gBAAgB,CAAC,SAA0C,CAAC,EAAE,CAAC;gBACzF,MAAM,kBAAkB,GAAG,cAAc,SAAS,WAAW,eAAe,EAAE,CAAC;gBAC/E,MAAM,eAAe,GAAG,oBAAoB,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC;gBAC1E,MAAM,CAAC,IAAI,CAAC;oBACR,EAAE,EAAE,kBAAkB;oBACtB,IAAI,EAAE,eAAe;oBACrB,QAAQ,EAAE,UAAU;oBACpB,KAAK,EAAE,SAAS;oBAChB,gBAAgB,EAAE,sBAAsB,CAAC,eAAe,CAAC,KAAK,CAAC;oBAC/D,iBAAiB,EAAE,sBAAsB,CAAC,eAAe,CAAC,MAAM,CAAC;oBACjE,YAAY,EAAE,eAAe,CAAC,YAAY;iBACnB,CAAC,CAAC;YACjC,CAAC;QACL,CAAC;QAED,mBAAmB;QACnB,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;aAC1D,GAAG,CAAC,EAAE,CAAC,EAAE;YACN,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,IAAI,EAAqB,CAAC;QAClE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAEhD,OAAO,YAAY,CAAC;IACxB,CAAC;IAED,kBAAkB;QACd,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC/C,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,OAA0B;QAC/C,IAAI,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;YACzD,IAAI,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;gBAChC,MAAM,IAAI,KAAK,CAAC,0EAA0E,CAAC,CAAC;YAChG,CAAC;YACD,OAAO,sBAAsB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACjD,CAAC;QACD,MAAM,YAAY,GAA0B;YACxC,OAAO,EAAE,OAAO,CAAC,IAAI,IAAI,EAAE;YAC3B,KAAK,EAAE,OAAO,CAAC,KAAK;SACvB,CAAC;QACF,OAAO,oBAAoB,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;IACpD,CAAC;;AAGL,0CAA0C;AAC1C,MAAM,aAAa,GAAG,2BAA2B,CAAC;AAClD,SAAS,iBAAiB,CAAC,EACvB,MAAM,EACN,OAAO,EACP,WAAW,EACX,UAAU,GAAG,IAAI,GAMpB;IACG,MAAM,kBAAkB,GAAG,WAAW,IAAI,GAAG,MAAM,IAAI,aAAa,EAAE,CAAC;IACvE,OAAO,IAAI,WAAW,CAClB,WAAW,kBAAkB,IAAI,UAAU,aAAa,OAAO,cAAc,MAAM,EAAE,CACxF,CAAC,WAAW,CAAC;QACV,cAAc,EAAE,kBAAkB;KACrC,CAAC,CAAC;AACP,CAAC"}