@rcrsr/rill-ext-pinecone 0.8.3 → 0.8.5

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.
@@ -1 +0,0 @@
1
- {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../src/factory.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAIL,KAAK,eAAe,EAIrB,MAAM,aAAa,CAAC;AAUrB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AA2CjD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,cAAc,GACrB,eAAe,CA2rBjB"}
package/dist/factory.js DELETED
@@ -1,597 +0,0 @@
1
- /**
2
- * Extension factory for Pinecone vector database integration.
3
- * Creates extension instance with config validation and SDK lifecycle management.
4
- */
5
- import { Pinecone } from '@pinecone-database/pinecone';
6
- import { RuntimeError, emitExtensionEvent, createVector, } from '@rcrsr/rill';
7
- import { mapVectorError, withEventEmission, createDisposalState, checkDisposed as sharedCheckDisposed, dispose as sharedDispose, assertRequired, } from '@rcrsr/rill-ext-vector-shared';
8
- // ============================================================
9
- // HELPER FUNCTIONS
10
- // ============================================================
11
- /**
12
- * Map Pinecone SDK error to RuntimeError with Pinecone-specific checks.
13
- * Adds "authentication" keyword check and "index" to "collection" translation.
14
- *
15
- * @param error - Error from Pinecone SDK
16
- * @returns RuntimeError with appropriate message
17
- */
18
- function mapPineconeError(error) {
19
- // Pinecone-specific: Check for "authentication" keyword (IR-1)
20
- if (error instanceof Error) {
21
- const message = error.message;
22
- if (message.toLowerCase().includes('authentication')) {
23
- return new RuntimeError('RILL-R004', 'pinecone: authentication failed (401)');
24
- }
25
- // Special handling for "index" instead of "collection" in error messages
26
- // This must be checked before delegating to shared mapper
27
- if (message.toLowerCase().includes('index') &&
28
- message.toLowerCase().includes('not found')) {
29
- return new RuntimeError('RILL-R004', 'pinecone: collection not found');
30
- }
31
- }
32
- // Delegate to shared error mapper for common error patterns
33
- return mapVectorError('pinecone', error);
34
- }
35
- // Validation functions removed - now using assertRequired from shared utilities
36
- // ============================================================
37
- // FACTORY
38
- // ============================================================
39
- /**
40
- * Create Pinecone extension instance.
41
- * Validates configuration and returns host functions with cleanup.
42
- *
43
- * @param config - Extension configuration
44
- * @returns ExtensionResult with 11 vector database functions and dispose
45
- * @throws Error for invalid configuration (AC-10)
46
- *
47
- * @example
48
- * ```typescript
49
- * const ext = createPineconeExtension({
50
- * apiKey: 'your-api-key',
51
- * index: 'my-index',
52
- * });
53
- * // Use with rill runtime...
54
- * await ext.dispose();
55
- * ```
56
- */
57
- export function createPineconeExtension(config) {
58
- // Validate required fields using shared assertRequired (AC-10)
59
- assertRequired(config.apiKey, 'apiKey');
60
- assertRequired(config.index, 'index');
61
- // Instantiate SDK client at factory time
62
- const client = new Pinecone({
63
- apiKey: config.apiKey,
64
- });
65
- // Store config values for use in functions
66
- const factoryIndex = config.index;
67
- const factoryNamespace = config.namespace ?? '';
68
- // Create disposal state using shared utility (IR-4)
69
- const disposalState = createDisposalState('pinecone');
70
- // Dispose function for cleanup using shared utility (AC-31, AC-32, IR-6)
71
- const dispose = async () => {
72
- await sharedDispose(disposalState);
73
- };
74
- // Helper to check if disposed using shared utility (EC-8, IR-5)
75
- const checkDisposed = () => {
76
- sharedCheckDisposed(disposalState, 'pinecone');
77
- };
78
- // Convert RillValue metadata to Pinecone-compatible format
79
- const convertMetadata = (input) => {
80
- const result = {};
81
- for (const [key, value] of Object.entries(input)) {
82
- if (typeof value === 'string' ||
83
- typeof value === 'number' ||
84
- typeof value === 'boolean') {
85
- result[key] = value;
86
- }
87
- else {
88
- result[key] = String(value);
89
- }
90
- }
91
- return result;
92
- };
93
- // Return extension result with implementations
94
- const result = {
95
- // IR-1: pinecone::upsert
96
- upsert: {
97
- params: [
98
- { name: 'id', type: 'string' },
99
- { name: 'vector', type: 'vector' },
100
- { name: 'metadata', type: 'dict', defaultValue: {} },
101
- ],
102
- fn: async (args, ctx) => {
103
- checkDisposed();
104
- // Extract arguments
105
- const id = args[0];
106
- const vector = args[1];
107
- const metadataArg = (args[2] ?? {});
108
- // Convert metadata
109
- const metadata = convertMetadata(metadataArg);
110
- // Use shared withEventEmission wrapper (IR-2)
111
- return withEventEmission(ctx, 'pinecone', 'upsert', { id }, async () => {
112
- // Get index handle
113
- const index = client.Index(factoryIndex);
114
- // Call Pinecone API
115
- await index.namespace(factoryNamespace).upsert([
116
- {
117
- id,
118
- values: Array.from(vector.data),
119
- metadata,
120
- },
121
- ]);
122
- // Build and return result
123
- return {
124
- id,
125
- success: true,
126
- };
127
- });
128
- },
129
- description: 'Insert or update single vector with metadata',
130
- returnType: 'dict',
131
- },
132
- // IR-2: pinecone::upsert_batch
133
- upsert_batch: {
134
- params: [{ name: 'items', type: 'list' }],
135
- fn: async (args, ctx) => {
136
- const startTime = Date.now();
137
- try {
138
- checkDisposed();
139
- // Extract arguments
140
- const items = args[0];
141
- let succeeded = 0;
142
- // Get index handle
143
- const index = client.Index(factoryIndex);
144
- // Process sequentially; halt on first failure
145
- for (let i = 0; i < items.length; i++) {
146
- const item = items[i];
147
- // Validate item structure
148
- if (!item || typeof item !== 'object') {
149
- const result = {
150
- succeeded,
151
- failed: `index ${i}`,
152
- error: 'invalid item structure',
153
- };
154
- const duration = Date.now() - startTime;
155
- emitExtensionEvent(ctx, {
156
- event: 'pinecone:upsert_batch',
157
- subsystem: 'extension:pinecone',
158
- duration,
159
- count: items.length,
160
- succeeded,
161
- });
162
- return result;
163
- }
164
- const id = item['id'];
165
- const vector = item['vector'];
166
- const metadataArg = (item['metadata'] ?? {});
167
- // Convert metadata
168
- const metadata = convertMetadata(metadataArg);
169
- try {
170
- // Call Pinecone API
171
- await index.namespace(factoryNamespace).upsert([
172
- {
173
- id,
174
- values: Array.from(vector.data),
175
- metadata,
176
- },
177
- ]);
178
- succeeded++;
179
- }
180
- catch (error) {
181
- // Halt on first failure
182
- const rillError = mapPineconeError(error);
183
- const result = {
184
- succeeded,
185
- failed: id,
186
- error: rillError.message,
187
- };
188
- const duration = Date.now() - startTime;
189
- emitExtensionEvent(ctx, {
190
- event: 'pinecone:upsert_batch',
191
- subsystem: 'extension:pinecone',
192
- duration,
193
- count: items.length,
194
- succeeded,
195
- });
196
- return result;
197
- }
198
- }
199
- // All succeeded - emit single success event
200
- const duration = Date.now() - startTime;
201
- emitExtensionEvent(ctx, {
202
- event: 'pinecone:upsert_batch',
203
- subsystem: 'extension:pinecone',
204
- duration,
205
- count: items.length,
206
- succeeded,
207
- });
208
- return { succeeded };
209
- }
210
- catch (error) {
211
- // Map error and emit failure event
212
- const duration = Date.now() - startTime;
213
- const rillError = mapPineconeError(error);
214
- emitExtensionEvent(ctx, {
215
- event: 'pinecone:error',
216
- subsystem: 'extension:pinecone',
217
- error: rillError.message,
218
- duration,
219
- });
220
- throw rillError;
221
- }
222
- },
223
- description: 'Batch insert/update vectors',
224
- returnType: 'dict',
225
- },
226
- // IR-3: pinecone::search
227
- search: {
228
- params: [
229
- { name: 'vector', type: 'vector' },
230
- { name: 'options', type: 'dict', defaultValue: {} },
231
- ],
232
- fn: async (args, ctx) => {
233
- checkDisposed();
234
- // Extract arguments
235
- const vector = args[0];
236
- const options = (args[1] ?? {});
237
- // Extract options with defaults
238
- const k = typeof options['k'] === 'number' ? options['k'] : 10;
239
- const filter = (options['filter'] ?? {});
240
- const scoreThreshold = typeof options['score_threshold'] === 'number'
241
- ? options['score_threshold']
242
- : undefined;
243
- // Manual event emission for search (needs result_count after operation)
244
- const startTime = Date.now();
245
- try {
246
- // Get index handle
247
- const index = client.Index(factoryIndex);
248
- // Build search request
249
- const searchRequest = {
250
- vector: Array.from(vector.data),
251
- topK: k,
252
- includeMetadata: true,
253
- };
254
- if (Object.keys(filter).length > 0) {
255
- searchRequest.filter = filter;
256
- }
257
- // Call Pinecone API
258
- const response = await index
259
- .namespace(factoryNamespace)
260
- .query(searchRequest);
261
- // Build result list
262
- const results = (response.matches ?? []).map((hit) => {
263
- const metadata = {};
264
- if (hit.metadata) {
265
- for (const [key, value] of Object.entries(hit.metadata)) {
266
- if (typeof value === 'string' ||
267
- typeof value === 'number' ||
268
- typeof value === 'boolean') {
269
- metadata[key] = value;
270
- }
271
- else {
272
- metadata[key] = String(value);
273
- }
274
- }
275
- }
276
- return {
277
- id: hit.id,
278
- score: hit.score ?? 0,
279
- metadata,
280
- };
281
- });
282
- // Filter by score_threshold if provided
283
- let filtered = results;
284
- if (scoreThreshold !== undefined && Array.isArray(results)) {
285
- filtered = results.filter((r) => (r['score'] ?? 0) >= scoreThreshold);
286
- }
287
- // Emit success event with actual result_count
288
- const duration = Date.now() - startTime;
289
- emitExtensionEvent(ctx, {
290
- event: 'pinecone:search',
291
- subsystem: 'extension:pinecone',
292
- duration,
293
- result_count: Array.isArray(filtered) ? filtered.length : 0,
294
- k,
295
- });
296
- return filtered;
297
- }
298
- catch (error) {
299
- // Map error and emit failure event
300
- const duration = Date.now() - startTime;
301
- const rillError = mapPineconeError(error);
302
- emitExtensionEvent(ctx, {
303
- event: 'pinecone:error',
304
- subsystem: 'extension:pinecone',
305
- error: rillError.message,
306
- duration,
307
- });
308
- throw rillError;
309
- }
310
- },
311
- description: 'Search k nearest neighbors',
312
- returnType: 'list',
313
- },
314
- // IR-4: pinecone::get
315
- get: {
316
- params: [{ name: 'id', type: 'string' }],
317
- fn: async (args, ctx) => {
318
- checkDisposed();
319
- // Extract arguments
320
- const id = args[0];
321
- // Use shared withEventEmission wrapper (IR-2)
322
- return withEventEmission(ctx, 'pinecone', 'get', { id }, async () => {
323
- // Get index handle
324
- const index = client.Index(factoryIndex);
325
- // Call Pinecone API
326
- const response = await index
327
- .namespace(factoryNamespace)
328
- .fetch([id]);
329
- // EC-7: ID not found
330
- if (!response.records || response.records[id] === undefined) {
331
- throw new RuntimeError('RILL-R004', 'pinecone: id not found');
332
- }
333
- const record = response.records[id];
334
- const vectorData = record.values;
335
- // Validate vector data
336
- if (!vectorData || !Array.isArray(vectorData)) {
337
- throw new RuntimeError('RILL-R004', 'pinecone: invalid vector format');
338
- }
339
- const float32Data = new Float32Array(vectorData);
340
- const vector = createVector(float32Data, factoryIndex);
341
- // Build and return result
342
- return {
343
- id,
344
- vector,
345
- metadata: record.metadata ?? {},
346
- };
347
- });
348
- },
349
- description: 'Fetch vector by ID',
350
- returnType: 'dict',
351
- },
352
- // IR-5: pinecone::delete
353
- delete: {
354
- params: [{ name: 'id', type: 'string' }],
355
- fn: async (args, ctx) => {
356
- checkDisposed();
357
- // Extract arguments
358
- const id = args[0];
359
- // Use shared withEventEmission wrapper (IR-2)
360
- return withEventEmission(ctx, 'pinecone', 'delete', { id }, async () => {
361
- // Get index handle
362
- const index = client.Index(factoryIndex);
363
- // Call Pinecone API
364
- const ns = factoryNamespace || '';
365
- await index.namespace(ns).deleteOne(id);
366
- // Build and return result
367
- return {
368
- id,
369
- deleted: true,
370
- };
371
- });
372
- },
373
- description: 'Delete vector by ID',
374
- returnType: 'dict',
375
- },
376
- // IR-6: pinecone::delete_batch
377
- delete_batch: {
378
- params: [{ name: 'ids', type: 'list' }],
379
- fn: async (args, ctx) => {
380
- const startTime = Date.now();
381
- try {
382
- checkDisposed();
383
- // Extract arguments
384
- const ids = args[0];
385
- let succeeded = 0;
386
- // Get index handle
387
- const index = client.Index(factoryIndex);
388
- // Process sequentially; halt on first failure
389
- for (let i = 0; i < ids.length; i++) {
390
- const id = ids[i];
391
- try {
392
- // Call Pinecone API
393
- await index.namespace(factoryNamespace).deleteOne(id);
394
- succeeded++;
395
- }
396
- catch (error) {
397
- // Halt on first failure
398
- const rillError = mapPineconeError(error);
399
- const result = {
400
- succeeded,
401
- failed: id,
402
- error: rillError.message,
403
- };
404
- const duration = Date.now() - startTime;
405
- emitExtensionEvent(ctx, {
406
- event: 'pinecone:delete_batch',
407
- subsystem: 'extension:pinecone',
408
- duration,
409
- count: ids.length,
410
- succeeded,
411
- });
412
- return result;
413
- }
414
- }
415
- // All succeeded - emit single success event
416
- const duration = Date.now() - startTime;
417
- emitExtensionEvent(ctx, {
418
- event: 'pinecone:delete_batch',
419
- subsystem: 'extension:pinecone',
420
- duration,
421
- count: ids.length,
422
- succeeded,
423
- });
424
- return { succeeded };
425
- }
426
- catch (error) {
427
- // Map error and emit failure event
428
- const duration = Date.now() - startTime;
429
- const rillError = mapPineconeError(error);
430
- emitExtensionEvent(ctx, {
431
- event: 'pinecone:error',
432
- subsystem: 'extension:pinecone',
433
- error: rillError.message,
434
- duration,
435
- });
436
- throw rillError;
437
- }
438
- },
439
- description: 'Batch delete vectors',
440
- returnType: 'dict',
441
- },
442
- // IR-7: pinecone::count
443
- count: {
444
- params: [],
445
- fn: async (_args, ctx) => {
446
- checkDisposed();
447
- // Use shared withEventEmission wrapper (IR-2)
448
- return withEventEmission(ctx, 'pinecone', 'count', {}, async () => {
449
- // Get index handle
450
- const index = client.Index(factoryIndex);
451
- // Call Pinecone API to get index stats
452
- const stats = await index.describeIndexStats();
453
- // Extract count from the target namespace
454
- const count = stats.namespaces?.[factoryNamespace]?.recordCount ?? 0;
455
- return count;
456
- });
457
- },
458
- description: 'Return total vector count in collection',
459
- returnType: 'number',
460
- },
461
- // IR-8: pinecone::create_collection
462
- create_collection: {
463
- params: [
464
- { name: 'name', type: 'string' },
465
- { name: 'options', type: 'dict', defaultValue: {} },
466
- ],
467
- fn: async (args, ctx) => {
468
- checkDisposed();
469
- // Extract arguments
470
- const name = args[0];
471
- const options = (args[1] ?? {});
472
- // Extract options
473
- const dimensions = options['dimensions'];
474
- const distance = options['distance'] ?? 'cosine';
475
- // Validate dimensions
476
- if (!dimensions || typeof dimensions !== 'number' || dimensions <= 0) {
477
- throw new RuntimeError('RILL-R004', 'pinecone: dimensions must be a positive integer');
478
- }
479
- // Use shared withEventEmission wrapper (IR-2)
480
- return withEventEmission(ctx, 'pinecone', 'create_collection', { name }, async () => {
481
- // Map distance metric to Pinecone format
482
- let pineconeMetric;
483
- if (distance === 'cosine') {
484
- pineconeMetric = 'cosine';
485
- }
486
- else if (distance === 'euclidean') {
487
- pineconeMetric = 'euclidean';
488
- }
489
- else {
490
- pineconeMetric = 'dotproduct';
491
- }
492
- // Call Pinecone API to create serverless index
493
- await client.createIndex({
494
- name,
495
- dimension: dimensions,
496
- metric: pineconeMetric,
497
- spec: {
498
- serverless: {
499
- cloud: 'aws',
500
- region: 'us-east-1',
501
- },
502
- },
503
- });
504
- // Build and return result
505
- return {
506
- name,
507
- created: true,
508
- };
509
- });
510
- },
511
- description: 'Create new vector collection',
512
- returnType: 'dict',
513
- },
514
- // IR-9: pinecone::delete_collection
515
- delete_collection: {
516
- params: [{ name: 'name', type: 'string' }],
517
- fn: async (args, ctx) => {
518
- checkDisposed();
519
- // Extract arguments
520
- const name = args[0];
521
- // Use shared withEventEmission wrapper (IR-2)
522
- return withEventEmission(ctx, 'pinecone', 'delete_collection', { name }, async () => {
523
- // Call Pinecone API to delete index
524
- await client.deleteIndex(name);
525
- // Build and return result
526
- return {
527
- name,
528
- deleted: true,
529
- };
530
- });
531
- },
532
- description: 'Delete vector collection',
533
- returnType: 'dict',
534
- },
535
- // IR-10: pinecone::list_collections
536
- list_collections: {
537
- params: [],
538
- fn: async (_args, ctx) => {
539
- checkDisposed();
540
- // Use shared withEventEmission wrapper (IR-2)
541
- return withEventEmission(ctx, 'pinecone', 'list_collections', {}, async () => {
542
- // Call Pinecone API to list indexes
543
- const response = await client.listIndexes();
544
- // Extract index names
545
- const names = response.indexes?.map((index) => index.name ?? '') ?? [];
546
- return names;
547
- });
548
- },
549
- description: 'List all collection names',
550
- returnType: 'list',
551
- },
552
- // IR-11: pinecone::describe
553
- describe: {
554
- params: [],
555
- fn: async (_args, ctx) => {
556
- checkDisposed();
557
- // Use shared withEventEmission wrapper (IR-2)
558
- return withEventEmission(ctx, 'pinecone', 'describe', { name: factoryIndex }, async () => {
559
- // Get index handle for stats
560
- const index = client.Index(factoryIndex);
561
- // Call Pinecone API to get index stats (data plane)
562
- const stats = await index.describeIndexStats();
563
- // Call Pinecone API to get index metadata (control plane)
564
- const indexInfo = await client.describeIndex(factoryIndex);
565
- // Extract collection info
566
- const dimensions = stats.dimension ?? 0;
567
- const count = stats.namespaces?.[factoryNamespace]?.recordCount ?? 0;
568
- // Map Pinecone metric to standard format
569
- let distance = 'cosine';
570
- const metric = indexInfo.metric;
571
- if (metric === 'cosine') {
572
- distance = 'cosine';
573
- }
574
- else if (metric === 'euclidean') {
575
- distance = 'euclidean';
576
- }
577
- else if (metric === 'dotproduct') {
578
- distance = 'dot';
579
- }
580
- // Build and return result
581
- return {
582
- name: factoryIndex,
583
- count,
584
- dimensions,
585
- distance,
586
- };
587
- });
588
- },
589
- description: 'Describe configured collection',
590
- returnType: 'dict',
591
- },
592
- };
593
- // Attach dispose lifecycle method
594
- result.dispose = dispose;
595
- return result;
596
- }
597
- //# sourceMappingURL=factory.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"factory.js","sourceRoot":"","sources":["../src/factory.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AACvD,OAAO,EACL,YAAY,EACZ,kBAAkB,EAClB,YAAY,GAKb,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,mBAAmB,EACnB,aAAa,IAAI,mBAAmB,EACpC,OAAO,IAAI,aAAa,EACxB,cAAc,GAEf,MAAM,+BAA+B,CAAC;AAGvC,+DAA+D;AAC/D,mBAAmB;AACnB,+DAA+D;AAE/D;;;;;;GAMG;AACH,SAAS,gBAAgB,CAAC,KAAc;IACtC,+DAA+D;IAC/D,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;QAC3B,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;QAC9B,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;YACrD,OAAO,IAAI,YAAY,CACrB,WAAW,EACX,uCAAuC,CACxC,CAAC;QACJ,CAAC;QACD,yEAAyE;QACzE,0DAA0D;QAC1D,IACE,OAAO,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC;YACvC,OAAO,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,EAC3C,CAAC;YACD,OAAO,IAAI,YAAY,CAAC,WAAW,EAAE,gCAAgC,CAAC,CAAC;QACzE,CAAC;IACH,CAAC;IAED,4DAA4D;IAC5D,OAAO,cAAc,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;AAC3C,CAAC;AAED,gFAAgF;AAEhF,+DAA+D;AAC/D,UAAU;AACV,+DAA+D;AAE/D;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,uBAAuB,CACrC,MAAsB;IAEtB,+DAA+D;IAC/D,cAAc,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACxC,cAAc,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAEtC,yCAAyC;IACzC,MAAM,MAAM,GAAG,IAAI,QAAQ,CAAC;QAC1B,MAAM,EAAE,MAAM,CAAC,MAAM;KACtB,CAAC,CAAC;IAEH,2CAA2C;IAC3C,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC;IAClC,MAAM,gBAAgB,GAAW,MAAM,CAAC,SAAS,IAAI,EAAE,CAAC;IAExD,oDAAoD;IACpD,MAAM,aAAa,GAAkB,mBAAmB,CAAC,UAAU,CAAC,CAAC;IAErE,yEAAyE;IACzE,MAAM,OAAO,GAAG,KAAK,IAAmB,EAAE;QACxC,MAAM,aAAa,CAAC,aAAa,CAAC,CAAC;IACrC,CAAC,CAAC;IAEF,gEAAgE;IAChE,MAAM,aAAa,GAAG,GAAS,EAAE;QAC/B,mBAAmB,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;IACjD,CAAC,CAAC;IAEF,2DAA2D;IAC3D,MAAM,eAAe,GAAG,CACtB,KAA8B,EACa,EAAE;QAC7C,MAAM,MAAM,GAA8C,EAAE,CAAC;QAC7D,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACjD,IACE,OAAO,KAAK,KAAK,QAAQ;gBACzB,OAAO,KAAK,KAAK,QAAQ;gBACzB,OAAO,KAAK,KAAK,SAAS,EAC1B,CAAC;gBACD,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;YACtB,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;YAC9B,CAAC;QACH,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;IAEF,+CAA+C;IAC/C,MAAM,MAAM,GAAoB;QAC9B,yBAAyB;QACzB,MAAM,EAAE;YACN,MAAM,EAAE;gBACN,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE;gBAC9B,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE;gBAClC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE,EAAE;aACrD;YACD,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAsB,EAAE;gBAC1C,aAAa,EAAE,CAAC;gBAEhB,oBAAoB;gBACpB,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,CAAW,CAAC;gBAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,CAAe,CAAC;gBACrC,MAAM,WAAW,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAA4B,CAAC;gBAE/D,mBAAmB;gBACnB,MAAM,QAAQ,GAAG,eAAe,CAAC,WAAW,CAAC,CAAC;gBAE9C,8CAA8C;gBAC9C,OAAO,iBAAiB,CACtB,GAAqB,EACrB,UAAU,EACV,QAAQ,EACR,EAAE,EAAE,EAAE,EACN,KAAK,IAAI,EAAE;oBACT,mBAAmB;oBACnB,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;oBAEzC,oBAAoB;oBACpB,MAAM,KAAK,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC,MAAM,CAAC;wBAC7C;4BACE,EAAE;4BACF,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;4BAC/B,QAAQ;yBACT;qBACF,CAAC,CAAC;oBAEH,0BAA0B;oBAC1B,OAAO;wBACL,EAAE;wBACF,OAAO,EAAE,IAAI;qBACD,CAAC;gBACjB,CAAC,CACF,CAAC;YACJ,CAAC;YACD,WAAW,EAAE,8CAA8C;YAC3D,UAAU,EAAE,MAAM;SACnB;QAED,+BAA+B;QAC/B,YAAY,EAAE;YACZ,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;YACzC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAsB,EAAE;gBAC1C,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;gBAE7B,IAAI,CAAC;oBACH,aAAa,EAAE,CAAC;oBAEhB,oBAAoB;oBACpB,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAqC,CAAC;oBAE1D,IAAI,SAAS,GAAG,CAAC,CAAC;oBAElB,mBAAmB;oBACnB,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;oBAEzC,8CAA8C;oBAC9C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;wBACtC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;wBAEtB,0BAA0B;wBAC1B,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;4BACtC,MAAM,MAAM,GAAG;gCACb,SAAS;gCACT,MAAM,EAAE,SAAS,CAAC,EAAE;gCACpB,KAAK,EAAE,wBAAwB;6BAChC,CAAC;4BACF,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;4BACxC,kBAAkB,CAAC,GAAqB,EAAE;gCACxC,KAAK,EAAE,uBAAuB;gCAC9B,SAAS,EAAE,oBAAoB;gCAC/B,QAAQ;gCACR,KAAK,EAAE,KAAK,CAAC,MAAM;gCACnB,SAAS;6BACV,CAAC,CAAC;4BACH,OAAO,MAAmB,CAAC;wBAC7B,CAAC;wBAED,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAW,CAAC;wBAChC,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAe,CAAC;wBAC5C,MAAM,WAAW,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAG1C,CAAC;wBAEF,mBAAmB;wBACnB,MAAM,QAAQ,GAAG,eAAe,CAAC,WAAW,CAAC,CAAC;wBAE9C,IAAI,CAAC;4BACH,oBAAoB;4BACpB,MAAM,KAAK,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC,MAAM,CAAC;gCAC7C;oCACE,EAAE;oCACF,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;oCAC/B,QAAQ;iCACT;6BACF,CAAC,CAAC;4BAEH,SAAS,EAAE,CAAC;wBACd,CAAC;wBAAC,OAAO,KAAc,EAAE,CAAC;4BACxB,wBAAwB;4BACxB,MAAM,SAAS,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;4BAC1C,MAAM,MAAM,GAAG;gCACb,SAAS;gCACT,MAAM,EAAE,EAAE;gCACV,KAAK,EAAE,SAAS,CAAC,OAAO;6BACzB,CAAC;4BACF,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;4BACxC,kBAAkB,CAAC,GAAqB,EAAE;gCACxC,KAAK,EAAE,uBAAuB;gCAC9B,SAAS,EAAE,oBAAoB;gCAC/B,QAAQ;gCACR,KAAK,EAAE,KAAK,CAAC,MAAM;gCACnB,SAAS;6BACV,CAAC,CAAC;4BACH,OAAO,MAAmB,CAAC;wBAC7B,CAAC;oBACH,CAAC;oBAED,4CAA4C;oBAC5C,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;oBACxC,kBAAkB,CAAC,GAAqB,EAAE;wBACxC,KAAK,EAAE,uBAAuB;wBAC9B,SAAS,EAAE,oBAAoB;wBAC/B,QAAQ;wBACR,KAAK,EAAE,KAAK,CAAC,MAAM;wBACnB,SAAS;qBACV,CAAC,CAAC;oBAEH,OAAO,EAAE,SAAS,EAAe,CAAC;gBACpC,CAAC;gBAAC,OAAO,KAAc,EAAE,CAAC;oBACxB,mCAAmC;oBACnC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;oBACxC,MAAM,SAAS,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;oBAE1C,kBAAkB,CAAC,GAAqB,EAAE;wBACxC,KAAK,EAAE,gBAAgB;wBACvB,SAAS,EAAE,oBAAoB;wBAC/B,KAAK,EAAE,SAAS,CAAC,OAAO;wBACxB,QAAQ;qBACT,CAAC,CAAC;oBAEH,MAAM,SAAS,CAAC;gBAClB,CAAC;YACH,CAAC;YACD,WAAW,EAAE,6BAA6B;YAC1C,UAAU,EAAE,MAAM;SACnB;QAED,yBAAyB;QACzB,MAAM,EAAE;YACN,MAAM,EAAE;gBACN,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE;gBAClC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE,EAAE;aACpD;YACD,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAsB,EAAE;gBAC1C,aAAa,EAAE,CAAC;gBAEhB,oBAAoB;gBACpB,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,CAAe,CAAC;gBACrC,MAAM,OAAO,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAA4B,CAAC;gBAE3D,gCAAgC;gBAChC,MAAM,CAAC,GAAG,OAAO,OAAO,CAAC,GAAG,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC/D,MAAM,MAAM,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,CAA4B,CAAC;gBACpE,MAAM,cAAc,GAClB,OAAO,OAAO,CAAC,iBAAiB,CAAC,KAAK,QAAQ;oBAC5C,CAAC,CAAC,OAAO,CAAC,iBAAiB,CAAC;oBAC5B,CAAC,CAAC,SAAS,CAAC;gBAEhB,wEAAwE;gBACxE,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;gBAE7B,IAAI,CAAC;oBACH,mBAAmB;oBACnB,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;oBAEzC,uBAAuB;oBACvB,MAAM,aAAa,GAKf;wBACF,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;wBAC/B,IAAI,EAAE,CAAC;wBACP,eAAe,EAAE,IAAI;qBACtB,CAAC;oBAEF,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBACnC,aAAa,CAAC,MAAM,GAAG,MAAM,CAAC;oBAChC,CAAC;oBAED,oBAAoB;oBACpB,MAAM,QAAQ,GAAG,MAAM,KAAK;yBACzB,SAAS,CAAC,gBAAgB,CAAC;yBAC3B,KAAK,CAAC,aAAa,CAAC,CAAC;oBAExB,oBAAoB;oBACpB,MAAM,OAAO,GAAc,CAAC,QAAQ,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;wBAC9D,MAAM,QAAQ,GAA8B,EAAE,CAAC;wBAC/C,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;4BACjB,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;gCACxD,IACE,OAAO,KAAK,KAAK,QAAQ;oCACzB,OAAO,KAAK,KAAK,QAAQ;oCACzB,OAAO,KAAK,KAAK,SAAS,EAC1B,CAAC;oCACD,QAAQ,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gCACxB,CAAC;qCAAM,CAAC;oCACN,QAAQ,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;gCAChC,CAAC;4BACH,CAAC;wBACH,CAAC;wBACD,OAAO;4BACL,EAAE,EAAE,GAAG,CAAC,EAAE;4BACV,KAAK,EAAE,GAAG,CAAC,KAAK,IAAI,CAAC;4BACrB,QAAQ;yBACT,CAAC;oBACJ,CAAC,CAAC,CAAC;oBAEH,wCAAwC;oBACxC,IAAI,QAAQ,GAAY,OAAO,CAAC;oBAChC,IAAI,cAAc,KAAK,SAAS,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;wBAC3D,QAAQ,GAAI,OAAqC,CAAC,MAAM,CACtD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAE,CAAC,CAAC,OAAO,CAAY,IAAI,CAAC,CAAC,IAAI,cAAc,CACvD,CAAC;oBACJ,CAAC;oBAED,8CAA8C;oBAC9C,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;oBACxC,kBAAkB,CAAC,GAAqB,EAAE;wBACxC,KAAK,EAAE,iBAAiB;wBACxB,SAAS,EAAE,oBAAoB;wBAC/B,QAAQ;wBACR,YAAY,EAAE,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;wBAC3D,CAAC;qBACF,CAAC,CAAC;oBAEH,OAAO,QAAqB,CAAC;gBAC/B,CAAC;gBAAC,OAAO,KAAc,EAAE,CAAC;oBACxB,mCAAmC;oBACnC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;oBACxC,MAAM,SAAS,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;oBAE1C,kBAAkB,CAAC,GAAqB,EAAE;wBACxC,KAAK,EAAE,gBAAgB;wBACvB,SAAS,EAAE,oBAAoB;wBAC/B,KAAK,EAAE,SAAS,CAAC,OAAO;wBACxB,QAAQ;qBACT,CAAC,CAAC;oBAEH,MAAM,SAAS,CAAC;gBAClB,CAAC;YACH,CAAC;YACD,WAAW,EAAE,4BAA4B;YACzC,UAAU,EAAE,MAAM;SACnB;QAED,sBAAsB;QACtB,GAAG,EAAE;YACH,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;YACxC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAsB,EAAE;gBAC1C,aAAa,EAAE,CAAC;gBAEhB,oBAAoB;gBACpB,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,CAAW,CAAC;gBAE7B,8CAA8C;gBAC9C,OAAO,iBAAiB,CACtB,GAAqB,EACrB,UAAU,EACV,KAAK,EACL,EAAE,EAAE,EAAE,EACN,KAAK,IAAI,EAAE;oBACT,mBAAmB;oBACnB,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;oBAEzC,oBAAoB;oBACpB,MAAM,QAAQ,GAAG,MAAM,KAAK;yBACzB,SAAS,CAAC,gBAAgB,CAAC;yBAC3B,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;oBAEf,qBAAqB;oBACrB,IAAI,CAAC,QAAQ,CAAC,OAAO,IAAI,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,SAAS,EAAE,CAAC;wBAC5D,MAAM,IAAI,YAAY,CAAC,WAAW,EAAE,wBAAwB,CAAC,CAAC;oBAChE,CAAC;oBAED,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;oBACpC,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC;oBAEjC,uBAAuB;oBACvB,IAAI,CAAC,UAAU,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;wBAC9C,MAAM,IAAI,YAAY,CACpB,WAAW,EACX,iCAAiC,CAClC,CAAC;oBACJ,CAAC;oBAED,MAAM,WAAW,GAAG,IAAI,YAAY,CAAC,UAAU,CAAC,CAAC;oBACjD,MAAM,MAAM,GAAG,YAAY,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;oBAEvD,0BAA0B;oBAC1B,OAAO;wBACL,EAAE;wBACF,MAAM;wBACN,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,EAAE;qBACnB,CAAC;gBACjB,CAAC,CACF,CAAC;YACJ,CAAC;YACD,WAAW,EAAE,oBAAoB;YACjC,UAAU,EAAE,MAAM;SACnB;QAED,yBAAyB;QACzB,MAAM,EAAE;YACN,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;YACxC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAsB,EAAE;gBAC1C,aAAa,EAAE,CAAC;gBAEhB,oBAAoB;gBACpB,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,CAAW,CAAC;gBAE7B,8CAA8C;gBAC9C,OAAO,iBAAiB,CACtB,GAAqB,EACrB,UAAU,EACV,QAAQ,EACR,EAAE,EAAE,EAAE,EACN,KAAK,IAAI,EAAE;oBACT,mBAAmB;oBACnB,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;oBAEzC,oBAAoB;oBACpB,MAAM,EAAE,GAAG,gBAAgB,IAAI,EAAE,CAAC;oBAClC,MAAM,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;oBAExC,0BAA0B;oBAC1B,OAAO;wBACL,EAAE;wBACF,OAAO,EAAE,IAAI;qBACD,CAAC;gBACjB,CAAC,CACF,CAAC;YACJ,CAAC;YACD,WAAW,EAAE,qBAAqB;YAClC,UAAU,EAAE,MAAM;SACnB;QAED,+BAA+B;QAC/B,YAAY,EAAE;YACZ,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;YACvC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAsB,EAAE;gBAC1C,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;gBAE7B,IAAI,CAAC;oBACH,aAAa,EAAE,CAAC;oBAEhB,oBAAoB;oBACpB,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAkB,CAAC;oBAErC,IAAI,SAAS,GAAG,CAAC,CAAC;oBAElB,mBAAmB;oBACnB,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;oBAEzC,8CAA8C;oBAC9C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;wBACpC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,CAAE,CAAC;wBAEnB,IAAI,CAAC;4BACH,oBAAoB;4BACpB,MAAM,KAAK,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;4BAEtD,SAAS,EAAE,CAAC;wBACd,CAAC;wBAAC,OAAO,KAAc,EAAE,CAAC;4BACxB,wBAAwB;4BACxB,MAAM,SAAS,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;4BAC1C,MAAM,MAAM,GAAG;gCACb,SAAS;gCACT,MAAM,EAAE,EAAE;gCACV,KAAK,EAAE,SAAS,CAAC,OAAO;6BACzB,CAAC;4BACF,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;4BACxC,kBAAkB,CAAC,GAAqB,EAAE;gCACxC,KAAK,EAAE,uBAAuB;gCAC9B,SAAS,EAAE,oBAAoB;gCAC/B,QAAQ;gCACR,KAAK,EAAE,GAAG,CAAC,MAAM;gCACjB,SAAS;6BACV,CAAC,CAAC;4BACH,OAAO,MAAmB,CAAC;wBAC7B,CAAC;oBACH,CAAC;oBAED,4CAA4C;oBAC5C,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;oBACxC,kBAAkB,CAAC,GAAqB,EAAE;wBACxC,KAAK,EAAE,uBAAuB;wBAC9B,SAAS,EAAE,oBAAoB;wBAC/B,QAAQ;wBACR,KAAK,EAAE,GAAG,CAAC,MAAM;wBACjB,SAAS;qBACV,CAAC,CAAC;oBAEH,OAAO,EAAE,SAAS,EAAe,CAAC;gBACpC,CAAC;gBAAC,OAAO,KAAc,EAAE,CAAC;oBACxB,mCAAmC;oBACnC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;oBACxC,MAAM,SAAS,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;oBAE1C,kBAAkB,CAAC,GAAqB,EAAE;wBACxC,KAAK,EAAE,gBAAgB;wBACvB,SAAS,EAAE,oBAAoB;wBAC/B,KAAK,EAAE,SAAS,CAAC,OAAO;wBACxB,QAAQ;qBACT,CAAC,CAAC;oBAEH,MAAM,SAAS,CAAC;gBAClB,CAAC;YACH,CAAC;YACD,WAAW,EAAE,sBAAsB;YACnC,UAAU,EAAE,MAAM;SACnB;QAED,wBAAwB;QACxB,KAAK,EAAE;YACL,MAAM,EAAE,EAAE;YACV,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAsB,EAAE;gBAC3C,aAAa,EAAE,CAAC;gBAEhB,8CAA8C;gBAC9C,OAAO,iBAAiB,CACtB,GAAqB,EACrB,UAAU,EACV,OAAO,EACP,EAAE,EACF,KAAK,IAAI,EAAE;oBACT,mBAAmB;oBACnB,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;oBAEzC,uCAAuC;oBACvC,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,kBAAkB,EAAE,CAAC;oBAE/C,0CAA0C;oBAC1C,MAAM,KAAK,GACT,KAAK,CAAC,UAAU,EAAE,CAAC,gBAAgB,CAAC,EAAE,WAAW,IAAI,CAAC,CAAC;oBAEzD,OAAO,KAAkB,CAAC;gBAC5B,CAAC,CACF,CAAC;YACJ,CAAC;YACD,WAAW,EAAE,yCAAyC;YACtD,UAAU,EAAE,QAAQ;SACrB;QAED,oCAAoC;QACpC,iBAAiB,EAAE;YACjB,MAAM,EAAE;gBACN,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE;gBAChC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE,EAAE;aACpD;YACD,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAsB,EAAE;gBAC1C,aAAa,EAAE,CAAC;gBAEhB,oBAAoB;gBACpB,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAW,CAAC;gBAC/B,MAAM,OAAO,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAA4B,CAAC;gBAE3D,kBAAkB;gBAClB,MAAM,UAAU,GAAG,OAAO,CAAC,YAAY,CAAW,CAAC;gBACnD,MAAM,QAAQ,GACX,OAAO,CAAC,UAAU,CAAoC,IAAI,QAAQ,CAAC;gBAEtE,sBAAsB;gBACtB,IAAI,CAAC,UAAU,IAAI,OAAO,UAAU,KAAK,QAAQ,IAAI,UAAU,IAAI,CAAC,EAAE,CAAC;oBACrE,MAAM,IAAI,YAAY,CACpB,WAAW,EACX,iDAAiD,CAClD,CAAC;gBACJ,CAAC;gBAED,8CAA8C;gBAC9C,OAAO,iBAAiB,CACtB,GAAqB,EACrB,UAAU,EACV,mBAAmB,EACnB,EAAE,IAAI,EAAE,EACR,KAAK,IAAI,EAAE;oBACT,yCAAyC;oBACzC,IAAI,cAAqD,CAAC;oBAC1D,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;wBAC1B,cAAc,GAAG,QAAQ,CAAC;oBAC5B,CAAC;yBAAM,IAAI,QAAQ,KAAK,WAAW,EAAE,CAAC;wBACpC,cAAc,GAAG,WAAW,CAAC;oBAC/B,CAAC;yBAAM,CAAC;wBACN,cAAc,GAAG,YAAY,CAAC;oBAChC,CAAC;oBAED,+CAA+C;oBAC/C,MAAM,MAAM,CAAC,WAAW,CAAC;wBACvB,IAAI;wBACJ,SAAS,EAAE,UAAU;wBACrB,MAAM,EAAE,cAAc;wBACtB,IAAI,EAAE;4BACJ,UAAU,EAAE;gCACV,KAAK,EAAE,KAAK;gCACZ,MAAM,EAAE,WAAW;6BACpB;yBACF;qBACF,CAAC,CAAC;oBAEH,0BAA0B;oBAC1B,OAAO;wBACL,IAAI;wBACJ,OAAO,EAAE,IAAI;qBACD,CAAC;gBACjB,CAAC,CACF,CAAC;YACJ,CAAC;YACD,WAAW,EAAE,8BAA8B;YAC3C,UAAU,EAAE,MAAM;SACnB;QAED,oCAAoC;QACpC,iBAAiB,EAAE;YACjB,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;YAC1C,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAsB,EAAE;gBAC1C,aAAa,EAAE,CAAC;gBAEhB,oBAAoB;gBACpB,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAW,CAAC;gBAE/B,8CAA8C;gBAC9C,OAAO,iBAAiB,CACtB,GAAqB,EACrB,UAAU,EACV,mBAAmB,EACnB,EAAE,IAAI,EAAE,EACR,KAAK,IAAI,EAAE;oBACT,oCAAoC;oBACpC,MAAM,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;oBAE/B,0BAA0B;oBAC1B,OAAO;wBACL,IAAI;wBACJ,OAAO,EAAE,IAAI;qBACD,CAAC;gBACjB,CAAC,CACF,CAAC;YACJ,CAAC;YACD,WAAW,EAAE,0BAA0B;YACvC,UAAU,EAAE,MAAM;SACnB;QAED,oCAAoC;QACpC,gBAAgB,EAAE;YAChB,MAAM,EAAE,EAAE;YACV,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAsB,EAAE;gBAC3C,aAAa,EAAE,CAAC;gBAEhB,8CAA8C;gBAC9C,OAAO,iBAAiB,CACtB,GAAqB,EACrB,UAAU,EACV,kBAAkB,EAClB,EAAE,EACF,KAAK,IAAI,EAAE;oBACT,oCAAoC;oBACpC,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,WAAW,EAAE,CAAC;oBAE5C,sBAAsB;oBACtB,MAAM,KAAK,GACT,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC;oBAE3D,OAAO,KAAkB,CAAC;gBAC5B,CAAC,CACF,CAAC;YACJ,CAAC;YACD,WAAW,EAAE,2BAA2B;YACxC,UAAU,EAAE,MAAM;SACnB;QAED,4BAA4B;QAC5B,QAAQ,EAAE;YACR,MAAM,EAAE,EAAE;YACV,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAsB,EAAE;gBAC3C,aAAa,EAAE,CAAC;gBAEhB,8CAA8C;gBAC9C,OAAO,iBAAiB,CACtB,GAAqB,EACrB,UAAU,EACV,UAAU,EACV,EAAE,IAAI,EAAE,YAAY,EAAE,EACtB,KAAK,IAAI,EAAE;oBACT,6BAA6B;oBAC7B,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;oBAEzC,oDAAoD;oBACpD,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,kBAAkB,EAAE,CAAC;oBAE/C,0DAA0D;oBAC1D,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;oBAE3D,0BAA0B;oBAC1B,MAAM,UAAU,GAAG,KAAK,CAAC,SAAS,IAAI,CAAC,CAAC;oBACxC,MAAM,KAAK,GACT,KAAK,CAAC,UAAU,EAAE,CAAC,gBAAgB,CAAC,EAAE,WAAW,IAAI,CAAC,CAAC;oBAEzD,yCAAyC;oBACzC,IAAI,QAAQ,GAAmC,QAAQ,CAAC;oBACxD,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC;oBAChC,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;wBACxB,QAAQ,GAAG,QAAQ,CAAC;oBACtB,CAAC;yBAAM,IAAI,MAAM,KAAK,WAAW,EAAE,CAAC;wBAClC,QAAQ,GAAG,WAAW,CAAC;oBACzB,CAAC;yBAAM,IAAI,MAAM,KAAK,YAAY,EAAE,CAAC;wBACnC,QAAQ,GAAG,KAAK,CAAC;oBACnB,CAAC;oBAED,0BAA0B;oBAC1B,OAAO;wBACL,IAAI,EAAE,YAAY;wBAClB,KAAK;wBACL,UAAU;wBACV,QAAQ;qBACI,CAAC;gBACjB,CAAC,CACF,CAAC;YACJ,CAAC;YACD,WAAW,EAAE,gCAAgC;YAC7C,UAAU,EAAE,MAAM;SACnB;KACF,CAAC;IAEF,kCAAkC;IAClC,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC;IAEzB,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,OAAO,UAAU,CAAC;AAK/B,YAAY,EAAE,cAAc,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAK1E,OAAO,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC"}
package/dist/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,UAAU;AACV,+DAA+D;AAE/D,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAC;AAO/B,+DAA+D;AAC/D,UAAU;AACV,+DAA+D;AAC/D,OAAO,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC"}