dspx 1.1.5 → 1.2.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -346,6 +346,37 @@ const output = await pipeline.process(input, {
346
346
 
347
347
  **Recommendation:** Use batched callbacks in production. Individual callbacks benchmark faster but block the Node.js event loop and can't integrate with real telemetry systems (Kafka, Datadog, Loki).
348
348
 
349
+ ### 🎯 FFT Performance Note
350
+
351
+ **Pipeline vs Direct Processing:**
352
+
353
+ The DSP pipeline adds ~0.3-0.4ms overhead per operation for:
354
+
355
+ - Channel management and stage chaining
356
+ - N-API boundary crossings
357
+ - Output buffer allocation
358
+
359
+ For **maximum FFT performance** (when you don't need multi-stage processing or Redis persistence), use the direct `FftProcessor`:
360
+
361
+ ```javascript
362
+ // ⚡ FASTER: Direct FFT (no pipeline overhead)
363
+ import { FftProcessor } from "dspx";
364
+ const processor = new FftProcessor(1024);
365
+ const output = processor.rfft(signal); // ~4-14x faster than fft.js
366
+
367
+ // 🔧 FLEXIBLE: Pipeline FFT (with overhead)
368
+ const pipeline = createDspPipeline();
369
+ pipeline.fft({ size: 1024, type: "rfft" });
370
+ const result = pipeline.process(signal); // Still faster than pure JS, but ~0.3ms overhead
371
+ ```
372
+
373
+ **When to use each:**
374
+
375
+ - **FftProcessor**: Single FFT operations, maximum speed, batch processing
376
+ - **Pipeline**: Multi-stage processing (filter→FFT→analysis), Redis state, complex workflows
377
+
378
+ With recent optimizations (loop unrolling, memcpy, single-channel fast paths), dspx FFT is now **4-14x faster than fft.js** across all sizes when measured correctly. See [FFT_BENCHMARK_FIX.md](docs/FFT_BENCHMARK_FIX.md) for benchmark methodology.
379
+
349
380
  ### ⚠️ ARM/Mobile Platform Notice
350
381
 
351
382
  **ARM NEON optimizations are experimental.** Mobile/ARM devices face unique challenges:
@@ -281,15 +281,37 @@ declare class DspProcessor {
281
281
  Resample(params: ResampleParams): this;
282
282
  /**
283
283
  * Add a convolution stage to the pipeline
284
- * Applies a custom 1D kernel to the signal using either direct or FFT-based convolution
284
+ * Applies a 1D kernel to the signal using either direct or FFT-based convolution
285
+ *
286
+ * **Two Processing Modes:**
287
+ * 1. **Batch mode** (stateless): Standard convolution, output length = N - M + 1
288
+ * 2. **Moving mode** (stateful): Streaming convolution, maintains buffer, output length = N
285
289
  *
286
290
  * @param params - Convolution parameters
291
+ * @param params.kernel - 1D filter kernel (time-domain)
292
+ * @param params.mode - 'batch' (stateless, valid convolution) or 'moving' (stateful, streaming) [default: 'moving']
293
+ * @param params.method - 'auto' (smart selection), 'direct' (time-domain), or 'fft' (frequency-domain) [default: 'auto']
287
294
  * @returns this instance for method chaining
288
295
  *
289
296
  * @example
297
+ * // BATCH MODE: Standard convolution (output length = N - M + 1)
298
+ * const input = new Float32Array([1, 2, 3, 4, 5]);
299
+ * const kernel = new Float32Array([1, 0, -1]);
300
+ * pipeline.convolution({ kernel, mode: "batch" });
301
+ * const output = await pipeline.process(input, { channels: 1 });
302
+ * // output: [-2, -2, -2] (length = 5 - 3 + 1 = 3)
303
+ *
304
+ * @example
305
+ * // MOVING MODE: Streaming convolution (output length = N)
306
+ * pipeline.convolution({ kernel: mySmoothingKernel, mode: "moving" });
307
+ * const chunk1 = await pipeline.process(data1, { channels: 1 });
308
+ * const chunk2 = await pipeline.process(data2, { channels: 1 });
309
+ * // State maintained between chunks, same length as input
310
+ *
311
+ * @example
290
312
  * // Simple smoothing kernel
291
313
  * const smoothKernel = new Float32Array([0.2, 0.6, 0.2]);
292
- * pipeline.convolution({ kernel: smoothKernel });
314
+ * pipeline.convolution({ kernel: smoothKernel, mode: "batch" });
293
315
  *
294
316
  * @example
295
317
  * // Gaussian kernel with explicit method
@@ -311,11 +333,11 @@ declare class DspProcessor {
311
333
  * @example
312
334
  * // Multi-channel EMG grid with custom kernel
313
335
  * const emgGrid = new Float32Array(80000); // 10x8 grid, 1000 samples
314
- * pipeline.convolution({ kernel: mySmoothingKernel });
336
+ * pipeline.convolution({ kernel: mySmoothingKernel, mode: "batch" });
315
337
  * const output = await pipeline.process(emgGrid, {
316
338
  * sampleRate: 2000,
317
339
  * channels: 80 // 10 * 8 sensors
318
- * });\
340
+ * });
319
341
  */
320
342
  convolution(params: ConvolutionParams): this;
321
343
  /**
@@ -749,9 +771,16 @@ declare class DspProcessor {
749
771
  /**
750
772
  * Detect peaks (local maxima) in the input stream.
751
773
  *
752
- * Identifies peaks using three-point comparison: a peak is detected when
753
- * the previous sample is greater than both its neighbors AND exceeds
754
- * the threshold. Outputs 1.0 at peak locations, 0.0 elsewhere.
774
+ * Identifies peaks using a local window comparison. A peak is detected if
775
+ * it's the maximum value within its `windowSize` and exceeds the `threshold`.
776
+ *
777
+ * **Modes:**
778
+ * - `moving` (default): Stateful. Detects peaks across buffer boundaries.
779
+ * - `batch`: Stateless. Detects peaks only within the current buffer.
780
+ *
781
+ * **Domains:**
782
+ * - `time` (default): Operates on time-series data.
783
+ * - `frequency`: Operates on frequency-domain data (e.g., spectrum).
755
784
  *
756
785
  * **Use Cases:**
757
786
  * - Heart rate detection (R-peaks in ECG)
@@ -760,19 +789,35 @@ declare class DspProcessor {
760
789
  * - Spike detection in neural recordings
761
790
  *
762
791
  * @param params - Peak detection parameters
763
- * @param params.threshold - Minimum peak amplitude (must be >= 0)
792
+ * @param params.threshold - Minimum peak amplitude (must be >= 0). **Required**.
793
+ * @param params.mode - 'moving' or 'batch'. Default: 'moving'.
794
+ * @param params.domain - 'time' or 'frequency'. Default: 'time'.
795
+ * @param params.windowSize - Local neighborhood size (must be odd, >= 3). Default: 3.
796
+ * - The optimized SIMD path is used for `windowSize = 3` in 'batch' mode.
797
+ * - Other sizes (5, 7, ...) use a slower scalar implementation.
798
+ * - **Note**: `moving` mode only supports `windowSize = 3`.
799
+ * @param params.minPeakDistance - Minimum number of samples between peaks. Default: 1.
764
800
  * @returns this instance for method chaining
765
801
  *
766
- * @throws {TypeError} If threshold is missing or invalid
767
- * @throws {RangeError} If threshold < 0
802
+ * @throws {RangeError} If threshold < 0, windowSize is invalid, or minPeakDistance < 1.
803
+ * @throws {TypeError} If mode or domain is invalid.
768
804
  *
769
805
  * @example
770
- * // Detect R-peaks in ECG above 0.5mV
771
- * pipeline.PeakDetection({ threshold: 0.5 });
806
+ * // Detect R-peaks in ECG above 0.5mV, at least 200 samples apart
807
+ * pipeline.PeakDetection({
808
+ * threshold: 0.5,
809
+ * mode: 'moving',
810
+ * minPeakDistance: 200
811
+ * });
772
812
  *
773
813
  * @example
774
- * // Find all local maxima (no amplitude threshold)
775
- * pipeline.PeakDetection({ threshold: 0.0 });
814
+ * // Find all local maxima in a 'batch' with a 5-sample window
815
+ * pipeline.PeakDetection({
816
+ * threshold: 0.0,
817
+ * mode: 'batch',
818
+ * windowSize: 5,
819
+ * minPeakDistance: 1
820
+ * });
776
821
  */
777
822
  PeakDetection(params: PeakDetectionParams): this;
778
823
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"bindings.d.ts","sourceRoot":"","sources":["../src/ts/bindings.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bindings.d.ts","sourceRoot":"","sources":["../src/ts/bindings.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,cAAc,EACd,WAAW,EACX,mBAAmB,EACnB,SAAS,EACT,aAAa,EACb,cAAc,EACd,qBAAqB,EACrB,uBAAuB,EACvB,oBAAoB,EACpB,qBAAqB,EACrB,uBAAuB,EACvB,sBAAsB,EACtB,eAAe,EACf,iBAAiB,EACjB,cAAc,EACd,cAAc,EACd,iBAAiB,EACjB,sBAAsB,EACtB,qBAAqB,EACrB,iBAAiB,EACjB,eAAe,EAGf,WAAW,EACX,oBAAoB,EACpB,uBAAuB,EACvB,SAAS,EACT,qBAAqB,EACrB,qBAAqB,EACrB,mBAAmB,EACnB,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,EAClB,SAAS,EACT,UAAU,EACV,oBAAoB,EACpB,UAAU,EACX,MAAM,YAAY,CAAC;AAGpB,OAAO,EAGL,KAAK,aAAa,EAGnB,MAAM,cAAc,CAAC;AAiCtB;;;GAGG;AACH,cAAM,YAAY;IAQJ,OAAO,CAAC,cAAc;IAPlC,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,SAAS,CAAC,CAAoB;IACtC,OAAO,CAAC,SAAS,CAAoB;IACrC,OAAO,CAAC,YAAY,CACf;IACL,OAAO,CAAC,aAAa,CAA8B;gBAE/B,cAAc,EAAE,GAAG;IAMvC;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAgBxB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAyB1B;;OAEG;IACH;;;OAGG;IACH,OAAO,CAAC,kBAAkB;IAe1B;;OAEG;IACH,OAAO,CAAC,OAAO;IAyBf;;OAEG;IACH,OAAO,CAAC,SAAS;IAOjB;;;;;;;;;;;;;;;;;;;OAmBG;IACH,aAAa,CAAC,MAAM,EAAE,mBAAmB,GAAG,IAAI;IA6BhD;;;;;;;;;;;;;;;;;;;OAmBG;IACH,GAAG,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI;IA6B5B;;;;OAIG;IACH,OAAO,CAAC,MAAM,CAAC,EAAE,aAAa,GAAG,IAAI;IAMrC;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,QAAQ,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI;IA6BtC;;;;;;;;;;;;;;;;;OAiBG;IACH,eAAe,CAAC,MAAM,EAAE,qBAAqB,GAAG,IAAI;IA6BpD;;;;;;;;;;;;;;;;;OAiBG;IACH,iBAAiB,CAAC,MAAM,EAAE,uBAAuB,GAAG,IAAI;IA6BxD;;;;;;;;;;;;;;;;;;;OAmBG;IACH,cAAc,CAAC,MAAM,EAAE,oBAAoB,GAAG,IAAI;IAWlD;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACH,eAAe,CAAC,MAAM,EAAE,qBAAqB,GAAG,IAAI;IAgBpD;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACH,iBAAiB,CAAC,MAAM,EAAE,uBAAuB,GAAG,IAAI;IAgBxD;;;;;;;;;;;;;;;;;;OAkBG;IACH,WAAW,CAAC,MAAM,EAAE,iBAAiB,GAAG,IAAI;IAwB5C;;;;;;;;;;;;;;;;;;OAkBG;IACH,QAAQ,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI;IAwBtC;;;;;;;;;;;;;;;;;;;OAmBG;IACH,QAAQ,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI;IA6BtC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2DG;IACH,WAAW,CAAC,MAAM,EAAE,iBAAiB,GAAG,IAAI;IA4D5C;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACH,gBAAgB,CAAC,MAAM,EAAE,sBAAsB,GAAG,IAAI;IAyCtD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA+EG;IACH,SAAS,CAAC,MAAM,EAAE,eAAe,GAAG,IAAI;IA0CxC;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;IACH,SAAS,CAAC,MAAM,EAAE,eAAe,GAAG,IAAI;IAwCxC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAwCG;IACH,YAAY,CAAC,MAAM,EAAE,kBAAkB,GAAG,IAAI;IA8B9C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4CG;IACH,YAAY,CAAC,MAAM,EAAE,kBAAkB,GAAG,IAAI;IAuB9C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAmDG;IACH,kBAAkB,CAAC,MAAM,EAAE,wBAAwB,GAAG,IAAI;IAyB1D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA8DG;IACH,eAAe,CAAC,MAAM,EAAE,qBAAqB,GAAG,IAAI;IAiCpD;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,eAAe,CAAC,MAAM,EAAE,qBAAqB,GAAG,IAAI;IA0BpD;;;;;;;;;;;;;;;;;OAiBG;IACH,aAAa,CAAC,MAAM,EAAE,mBAAmB,GAAG,IAAI;IAmChD;;;;;;;;;;;;;;;;;;OAkBG;IACH,YAAY,CAAC,MAAM,EAAE,kBAAkB,GAAG,IAAI;IAqC9C;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACH,aAAa,CAAC,MAAM,EAAE,mBAAmB,GAAG,IAAI;IAUhD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAkDG;IACH,aAAa,CAAC,MAAM,EAAE,mBAAmB,GAAG,IAAI;IA4DhD;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;IACH,cAAc,IAAI,IAAI;IAMtB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAqCG;IACH,UAAU,CAAC,MAAM,GAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAO,GAAG,IAAI;IAcjD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAoDG;IACH,GAAG,CAAC,MAAM,EAAE;QAAE,UAAU,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAYzC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6EG;IACH,YAAY,CAAC,MAAM,EAAE,kBAAkB,GAAG,IAAI;IA8C9C;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,gBAAgB,CAAC,MAAM,EAAE,sBAAsB,GAAG,IAAI;IA+BtD;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACH,eAAe,CAAC,MAAM,EAAE,qBAAqB,GAAG,IAAI;IA6BpD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAsEG;IACH,GAAG,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI;IA4F5B;;OAEG;IACH,OAAO,CAAC,YAAY;IAIpB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAuEG;IACH,IAAI,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI;IAiG9B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAwDG;IACH,cAAc,CAAC,MAAM,EAAE,oBAAoB,GAAG,IAAI;IAyClD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6EG;IACH,IAAI,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI;IA+C9B;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACH,GAAG,CAAC,QAAQ,EAAE,WAAW,GAAG,IAAI;IAMhC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAiDG;IACH,MAAM,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI;IAoGpC;;OAEG;IACH,OAAO,CAAC,eAAe;IAuCvB;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAgC/B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAqD7B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IA2E1B;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACH,QAAQ,CAAC,SAAS,EAAE,iBAAiB,GAAG,IAAI;IAK5C;;;;;;;;;;;;;;;;;OAiBG;IACG,OAAO,CACX,KAAK,EAAE,YAAY,EACnB,mBAAmB,EAAE,YAAY,GAAG,cAAc,EAClD,mBAAmB,CAAC,EAAE,cAAc,GACnC,OAAO,CAAC,YAAY,CAAC;IAgJxB;;;;;;;;;;;;;;;;OAgBG;IACG,WAAW,CACf,KAAK,EAAE,YAAY,EACnB,mBAAmB,EAAE,YAAY,GAAG,cAAc,EAClD,mBAAmB,CAAC,EAAE,cAAc,GACnC,OAAO,CAAC,YAAY,CAAC;IAexB;;;;;;;;;OASG;IACG,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC;IAIlC;;;;;;;;;;;;OAYG;IACG,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAIpD;;;;;;OAMG;IACH,UAAU,IAAI,IAAI;IAIlB;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACH,SAAS,IAAI,oBAAoB;CAGlC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,YAAY,CAGpE;AAED,OAAO,EAAE,YAAY,EAAE,CAAC;AAMxB,OAAO,KAAK,EACV,SAAS,EACT,SAAS,EACT,eAAe,EACf,kBAAkB,EAClB,kBAAkB,EAClB,wBAAwB,EACzB,MAAM,YAAY,CAAC;AAEpB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4DG;AACH,wBAAgB,YAAY,CAC1B,eAAe,EAAE,YAAY,EAC7B,WAAW,EAAE,MAAM,GAClB,SAAS,CASX;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyDG;AACH,wBAAgB,kBAAkB,CAChC,eAAe,EAAE,YAAY,EAC7B,WAAW,EAAE,MAAM,EACnB,cAAc,GAAE,MAAa,GAC5B,eAAe,CAoBjB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkEG;AACH,wBAAgB,YAAY,CAC1B,eAAe,EAAE,YAAY,EAC7B,WAAW,EAAE,MAAM,EACnB,aAAa,GAAE,MAAY,EAC3B,SAAS,GAAE,MAAa,GACvB,SAAS,CAsBX;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgEG;AACH,wBAAgB,0BAA0B,CACxC,WAAW,EAAE,MAAM,EACnB,aAAa,EAAE,QAAQ,GAAG,UAAU,GAAG,QAAQ,EAC/C,cAAc,EAAE,MAAM,EACtB,cAAc,GAAE,MAAY,GAC3B,uBAAuB,CA4BzB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqGG;AACH,wBAAgB,8BAA8B,CAC5C,UAAU,EAAE,YAAY,EACxB,UAAU,EAAE,YAAY,EACxB,WAAW,EAAE,MAAM,EACnB,UAAU,CAAC,EAAE,MAAM,GAClB,SAAS,CAiCX"}
package/dist/bindings.js CHANGED
@@ -534,15 +534,37 @@ class DspProcessor {
534
534
  }
535
535
  /**
536
536
  * Add a convolution stage to the pipeline
537
- * Applies a custom 1D kernel to the signal using either direct or FFT-based convolution
537
+ * Applies a 1D kernel to the signal using either direct or FFT-based convolution
538
+ *
539
+ * **Two Processing Modes:**
540
+ * 1. **Batch mode** (stateless): Standard convolution, output length = N - M + 1
541
+ * 2. **Moving mode** (stateful): Streaming convolution, maintains buffer, output length = N
538
542
  *
539
543
  * @param params - Convolution parameters
544
+ * @param params.kernel - 1D filter kernel (time-domain)
545
+ * @param params.mode - 'batch' (stateless, valid convolution) or 'moving' (stateful, streaming) [default: 'moving']
546
+ * @param params.method - 'auto' (smart selection), 'direct' (time-domain), or 'fft' (frequency-domain) [default: 'auto']
540
547
  * @returns this instance for method chaining
541
548
  *
542
549
  * @example
550
+ * // BATCH MODE: Standard convolution (output length = N - M + 1)
551
+ * const input = new Float32Array([1, 2, 3, 4, 5]);
552
+ * const kernel = new Float32Array([1, 0, -1]);
553
+ * pipeline.convolution({ kernel, mode: "batch" });
554
+ * const output = await pipeline.process(input, { channels: 1 });
555
+ * // output: [-2, -2, -2] (length = 5 - 3 + 1 = 3)
556
+ *
557
+ * @example
558
+ * // MOVING MODE: Streaming convolution (output length = N)
559
+ * pipeline.convolution({ kernel: mySmoothingKernel, mode: "moving" });
560
+ * const chunk1 = await pipeline.process(data1, { channels: 1 });
561
+ * const chunk2 = await pipeline.process(data2, { channels: 1 });
562
+ * // State maintained between chunks, same length as input
563
+ *
564
+ * @example
543
565
  * // Simple smoothing kernel
544
566
  * const smoothKernel = new Float32Array([0.2, 0.6, 0.2]);
545
- * pipeline.convolution({ kernel: smoothKernel });
567
+ * pipeline.convolution({ kernel: smoothKernel, mode: "batch" });
546
568
  *
547
569
  * @example
548
570
  * // Gaussian kernel with explicit method
@@ -564,11 +586,11 @@ class DspProcessor {
564
586
  * @example
565
587
  * // Multi-channel EMG grid with custom kernel
566
588
  * const emgGrid = new Float32Array(80000); // 10x8 grid, 1000 samples
567
- * pipeline.convolution({ kernel: mySmoothingKernel });
589
+ * pipeline.convolution({ kernel: mySmoothingKernel, mode: "batch" });
568
590
  * const output = await pipeline.process(emgGrid, {
569
591
  * sampleRate: 2000,
570
592
  * channels: 80 // 10 * 8 sensors
571
- * });\
593
+ * });
572
594
  */
573
595
  convolution(params) {
574
596
  if (!params.kernel || params.kernel.length === 0) {
@@ -1258,9 +1280,16 @@ class DspProcessor {
1258
1280
  /**
1259
1281
  * Detect peaks (local maxima) in the input stream.
1260
1282
  *
1261
- * Identifies peaks using three-point comparison: a peak is detected when
1262
- * the previous sample is greater than both its neighbors AND exceeds
1263
- * the threshold. Outputs 1.0 at peak locations, 0.0 elsewhere.
1283
+ * Identifies peaks using a local window comparison. A peak is detected if
1284
+ * it's the maximum value within its `windowSize` and exceeds the `threshold`.
1285
+ *
1286
+ * **Modes:**
1287
+ * - `moving` (default): Stateful. Detects peaks across buffer boundaries.
1288
+ * - `batch`: Stateless. Detects peaks only within the current buffer.
1289
+ *
1290
+ * **Domains:**
1291
+ * - `time` (default): Operates on time-series data.
1292
+ * - `frequency`: Operates on frequency-domain data (e.g., spectrum).
1264
1293
  *
1265
1294
  * **Use Cases:**
1266
1295
  * - Heart rate detection (R-peaks in ECG)
@@ -1269,26 +1298,74 @@ class DspProcessor {
1269
1298
  * - Spike detection in neural recordings
1270
1299
  *
1271
1300
  * @param params - Peak detection parameters
1272
- * @param params.threshold - Minimum peak amplitude (must be >= 0)
1301
+ * @param params.threshold - Minimum peak amplitude (must be >= 0). **Required**.
1302
+ * @param params.mode - 'moving' or 'batch'. Default: 'moving'.
1303
+ * @param params.domain - 'time' or 'frequency'. Default: 'time'.
1304
+ * @param params.windowSize - Local neighborhood size (must be odd, >= 3). Default: 3.
1305
+ * - The optimized SIMD path is used for `windowSize = 3` in 'batch' mode.
1306
+ * - Other sizes (5, 7, ...) use a slower scalar implementation.
1307
+ * - **Note**: `moving` mode only supports `windowSize = 3`.
1308
+ * @param params.minPeakDistance - Minimum number of samples between peaks. Default: 1.
1273
1309
  * @returns this instance for method chaining
1274
1310
  *
1275
- * @throws {TypeError} If threshold is missing or invalid
1276
- * @throws {RangeError} If threshold < 0
1311
+ * @throws {RangeError} If threshold < 0, windowSize is invalid, or minPeakDistance < 1.
1312
+ * @throws {TypeError} If mode or domain is invalid.
1277
1313
  *
1278
1314
  * @example
1279
- * // Detect R-peaks in ECG above 0.5mV
1280
- * pipeline.PeakDetection({ threshold: 0.5 });
1315
+ * // Detect R-peaks in ECG above 0.5mV, at least 200 samples apart
1316
+ * pipeline.PeakDetection({
1317
+ * threshold: 0.5,
1318
+ * mode: 'moving',
1319
+ * minPeakDistance: 200
1320
+ * });
1281
1321
  *
1282
1322
  * @example
1283
- * // Find all local maxima (no amplitude threshold)
1284
- * pipeline.PeakDetection({ threshold: 0.0 });
1323
+ * // Find all local maxima in a 'batch' with a 5-sample window
1324
+ * pipeline.PeakDetection({
1325
+ * threshold: 0.0,
1326
+ * mode: 'batch',
1327
+ * windowSize: 5,
1328
+ * minPeakDistance: 1
1329
+ * });
1285
1330
  */
1286
1331
  PeakDetection(params) {
1332
+ // Required param
1287
1333
  if (typeof params.threshold !== "number" || params.threshold < 0) {
1288
1334
  throw new RangeError("PeakDetection: threshold must be >= 0");
1289
1335
  }
1290
- this.nativeInstance.addStage("peakDetection", params);
1291
- this.stages.push(`peakDetection:${params.threshold}`);
1336
+ // Defaulted params
1337
+ const mode = params.mode ?? "moving";
1338
+ const domain = params.domain ?? "time";
1339
+ const windowSize = params.windowSize ?? 3;
1340
+ const minPeakDistance = params.minPeakDistance ?? 1;
1341
+ // Validation for new params
1342
+ if (mode !== "moving" && mode !== "batch") {
1343
+ throw new TypeError(`PeakDetection: mode must be 'moving' or 'batch', got '${mode}'`);
1344
+ }
1345
+ if (domain !== "time" && domain !== "frequency") {
1346
+ throw new TypeError(`PeakDetection: domain must be 'time' or 'frequency', got '${domain}'`);
1347
+ }
1348
+ if (windowSize < 3 ||
1349
+ !Number.isInteger(windowSize) ||
1350
+ windowSize % 2 === 0) {
1351
+ throw new RangeError(`PeakDetection: windowSize must be an odd integer >= 3, got ${windowSize}`);
1352
+ }
1353
+ if (minPeakDistance < 1 || !Number.isInteger(minPeakDistance)) {
1354
+ throw new RangeError(`PeakDetection: minPeakDistance must be an integer >= 1, got ${minPeakDistance}`);
1355
+ }
1356
+ // Note: The C++ adapter will automatically force windowSize = 3 if mode = 'moving'
1357
+ if (mode === "moving" && windowSize !== 3) {
1358
+ console.warn(`PeakDetection: 'moving' mode only supports windowSize = 3. Defaulting to 3.`);
1359
+ }
1360
+ const stageParams = {
1361
+ threshold: params.threshold,
1362
+ mode,
1363
+ domain,
1364
+ windowSize,
1365
+ minPeakDistance,
1366
+ };
1367
+ this.nativeInstance.addStage("peakDetection", stageParams);
1368
+ this.stages.push(`peakDetection:${mode}:t=${params.threshold}:w=${windowSize}:d=${minPeakDistance}`);
1292
1369
  return this;
1293
1370
  }
1294
1371
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"bindings.js","sourceRoot":"","sources":["../src/ts/bindings.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bindings.js","sourceRoot":"","sources":["../src/ts/bindings.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AA0C1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EACL,SAAS,EACT,SAAS,GAIV,MAAM,cAAc,CAAC;AAEtB,wCAAwC;AACxC,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AAEtC,IAAI,QAAa,CAAC,CAAC,cAAc;AACjC,sCAAsC;AACtC,IAAI,CAAC;IACH,gDAAgD;IAChD,QAAQ,GAAG,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC;AACjD,CAAC;AAAC,OAAO,CAAC,EAAE,CAAC;IACX,IAAI,CAAC;QACH,oEAAoE;QACpE,QAAQ,GAAG,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;IACvD,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,+CAA+C;QAC/C,OAAO,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAC;QACxD,OAAO,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC;QAClD,OAAO,CAAC,KAAK,CACX,uCAAuC,EACtC,CAAW,CAAC,OAAO,CACrB,CAAC;QACF,OAAO,CAAC,KAAK,CAAC,sCAAsC,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;QACnE,MAAM,IAAI,KAAK,CACb,4EAA4E,IAAI,CAC9E,SAAS,EACT,IAAI,CACL,QAAQ,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,CACvC,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,YAAY;IAQhB,YAAoB,cAAmB;QAAnB,mBAAc,GAAd,cAAc,CAAK;QAP/B,WAAM,GAAa,EAAE,CAAC;QAGtB,iBAAY,GAClB,EAAE,CAAC;QACG,kBAAa,GAAyB,IAAI,CAAC;QAGjD,kEAAkE;QAClE,wDAAwD;QACxD,IAAI,CAAC,SAAS,GAAG,IAAI,iBAAiB,CAAC,EAAE,CAAC,CAAC;IAC7C,CAAC;IAED;;OAEG;IACK,gBAAgB,CACtB,KAA0C,EAC1C,OAAa;QAEb,MAAM,KAAK,GAAG,OAAO,EAAE,KAAK,CAAC;QAC7B,MAAM,QAAQ,GAAG,OAAO,EAAE,QAAQ,IAAI,KAAK,CAAC;QAE5C,IAAI,KAAK,EAAE,CAAC;YACV,8DAA8D;YAC9D,OAAO,kBAAkB,KAAK,IAAI,QAAQ,EAAE,CAAC;QAC/C,CAAC;aAAM,CAAC;YACN,kCAAkC;YAClC,OAAO,YAAY,KAAK,EAAE,CAAC;QAC7B,CAAC;IACH,CAAC;IAED;;OAEG;IACK,kBAAkB,CAAC,KAAa;QACtC,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC;QAC3C,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,IAAI,CAAC,CAAC,wBAAwB;QACvC,CAAC;QAED,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QAE1D,KAAK,MAAM,OAAO,IAAI,OAAO,EAAE,CAAC;YAC9B,oCAAoC;YACpC,+CAA+C;YAC/C,+CAA+C;YAC/C,MAAM,YAAY,GAAG,OAAO;iBACzB,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC;iBACrB,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;YAC3B,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,IAAI,YAAY,GAAG,CAAC,CAAC;YAE9C,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;gBACtB,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;OAEG;IACH;;;OAGG;IACK,kBAAkB,CACxB,KAA0C;QAE1C,QAAQ,KAAK,EAAE,CAAC;YACd,KAAK,OAAO;gBACV,OAAO,CAAC,CAAC;YACX,KAAK,MAAM;gBACT,OAAO,CAAC,CAAC;YACX,KAAK,MAAM;gBACT,OAAO,CAAC,CAAC;YACX,KAAK,OAAO;gBACV,OAAO,CAAC,CAAC;QACb,CAAC;IACH,CAAC;IAED;;OAEG;IACK,OAAO,CACb,KAA0C,EAC1C,OAAe,EACf,OAAa;QAEb,MAAM,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAEpD,sFAAsF;QACtF,IAAI,IAAI,CAAC,SAAS,EAAE,UAAU,IAAI,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAC;YACjE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;gBAClB,KAAK;gBACL,KAAK;gBACL,OAAO;gBACP,OAAO;gBACP,SAAS,EAAE,WAAW,CAAC,GAAG,EAAE;gBAC5B,QAAQ,EAAE,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC;aACzC,CAAC,CAAC;QACL,CAAC;QAED,gGAAgG;QAChG,IAAI,IAAI,CAAC,SAAS,EAAE,KAAK,IAAI,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAC;YAC5D,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QACvD,CAAC;IACH,CAAC;IAED;;OAEG;IACK,SAAS;QACf,IAAI,IAAI,CAAC,SAAS,EAAE,UAAU,IAAI,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,EAAE,CAAC;YAC9D,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;YACpC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAClC,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;;;;;;;;OAmBG;IACH,aAAa,CAAC,MAA2B;QACvC,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC7B,IACE,MAAM,CAAC,UAAU,KAAK,SAAS;gBAC/B,MAAM,CAAC,cAAc,KAAK,SAAS,EACnC,CAAC;gBACD,MAAM,IAAI,SAAS,CACjB,wFAAwF,CACzF,CAAC;YACJ,CAAC;YACD,IACE,MAAM,CAAC,UAAU,KAAK,SAAS;gBAC/B,CAAC,MAAM,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,EAChE,CAAC;gBACD,MAAM,IAAI,SAAS,CACjB,+EAA+E,MAAM,CAAC,UAAU,EAAE,CACnG,CAAC;YACJ,CAAC;YACD,IAAI,MAAM,CAAC,cAAc,KAAK,SAAS,IAAI,MAAM,CAAC,cAAc,IAAI,CAAC,EAAE,CAAC;gBACtE,MAAM,IAAI,SAAS,CACjB,uDAAuD,MAAM,CAAC,cAAc,EAAE,CAC/E,CAAC;YACJ,CAAC;QACH,CAAC;QACD,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;QACtD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QACjD,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;;;;;;;;;;;;;OAmBG;IACH,GAAG,CAAC,MAAiB;QACnB,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC7B,IACE,MAAM,CAAC,UAAU,KAAK,SAAS;gBAC/B,MAAM,CAAC,cAAc,KAAK,SAAS,EACnC,CAAC;gBACD,MAAM,IAAI,SAAS,CACjB,8EAA8E,CAC/E,CAAC;YACJ,CAAC;YACD,IACE,MAAM,CAAC,UAAU,KAAK,SAAS;gBAC/B,CAAC,MAAM,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,EAChE,CAAC;gBACD,MAAM,IAAI,SAAS,CACjB,qEAAqE,MAAM,CAAC,UAAU,EAAE,CACzF,CAAC;YACJ,CAAC;YACD,IAAI,MAAM,CAAC,cAAc,KAAK,SAAS,IAAI,MAAM,CAAC,cAAc,IAAI,CAAC,EAAE,CAAC;gBACtE,MAAM,IAAI,SAAS,CACjB,6CAA6C,MAAM,CAAC,cAAc,EAAE,CACrE,CAAC;YACJ,CAAC;QACH,CAAC;QACD,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAC5C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QACvC,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;OAIG;IACH,OAAO,CAAC,MAAsB;QAC5B,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;QACpE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,MAAM,EAAE,IAAI,IAAI,MAAM,EAAE,CAAC,CAAC;QACtD,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,QAAQ,CAAC,MAAsB;QAC7B,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC7B,IACE,MAAM,CAAC,UAAU,KAAK,SAAS;gBAC/B,MAAM,CAAC,cAAc,KAAK,SAAS,EACnC,CAAC;gBACD,MAAM,IAAI,SAAS,CACjB,mFAAmF,CACpF,CAAC;YACJ,CAAC;YACD,IACE,MAAM,CAAC,UAAU,KAAK,SAAS;gBAC/B,CAAC,MAAM,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,EAChE,CAAC;gBACD,MAAM,IAAI,SAAS,CACjB,0EAA0E,MAAM,CAAC,UAAU,EAAE,CAC9F,CAAC;YACJ,CAAC;YACD,IAAI,MAAM,CAAC,cAAc,KAAK,SAAS,IAAI,MAAM,CAAC,cAAc,IAAI,CAAC,EAAE,CAAC;gBACtE,MAAM,IAAI,SAAS,CACjB,kDAAkD,MAAM,CAAC,cAAc,EAAE,CAC1E,CAAC;YACJ,CAAC;QACH,CAAC;QACD,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QACjD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QAC5C,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;;;;;;;;;;;OAiBG;IACH,eAAe,CAAC,MAA6B;QAC3C,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC7B,IACE,MAAM,CAAC,UAAU,KAAK,SAAS;gBAC/B,MAAM,CAAC,cAAc,KAAK,SAAS,EACnC,CAAC;gBACD,MAAM,IAAI,SAAS,CACjB,4FAA4F,CAC7F,CAAC;YACJ,CAAC;YACD,IACE,MAAM,CAAC,UAAU,KAAK,SAAS;gBAC/B,CAAC,MAAM,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,EAChE,CAAC;gBACD,MAAM,IAAI,SAAS,CACjB,mFAAmF,MAAM,CAAC,UAAU,EAAE,CACvG,CAAC;YACJ,CAAC;YACD,IAAI,MAAM,CAAC,cAAc,KAAK,SAAS,IAAI,MAAM,CAAC,cAAc,IAAI,CAAC,EAAE,CAAC;gBACtE,MAAM,IAAI,SAAS,CACjB,2DAA2D,MAAM,CAAC,cAAc,EAAE,CACnF,CAAC;YACJ,CAAC;QACH,CAAC;QACD,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC;QACxD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,mBAAmB,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QACnD,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;;;;;;;;;;;OAiBG;IACH,iBAAiB,CAAC,MAA+B;QAC/C,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC7B,IACE,MAAM,CAAC,UAAU,KAAK,SAAS;gBAC/B,MAAM,CAAC,cAAc,KAAK,SAAS,EACnC,CAAC;gBACD,MAAM,IAAI,SAAS,CACjB,8FAA8F,CAC/F,CAAC;YACJ,CAAC;YACD,IACE,MAAM,CAAC,UAAU,KAAK,SAAS;gBAC/B,CAAC,MAAM,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,EAChE,CAAC;gBACD,MAAM,IAAI,SAAS,CACjB,qFAAqF,MAAM,CAAC,UAAU,EAAE,CACzG,CAAC;YACJ,CAAC;YACD,IAAI,MAAM,CAAC,cAAc,KAAK,SAAS,IAAI,MAAM,CAAC,cAAc,IAAI,CAAC,EAAE,CAAC;gBACtE,MAAM,IAAI,SAAS,CACjB,6DAA6D,MAAM,CAAC,cAAc,EAAE,CACrF,CAAC;YACJ,CAAC;QACH,CAAC;QACD,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC,CAAC;QAC1D,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,qBAAqB,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QACrD,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;;;;;;;;;;;;;OAmBG;IACH,cAAc,CAAC,MAA4B;QACzC,IAAI,MAAM,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;YACnE,MAAM,IAAI,SAAS,CACjB,8DAA8D,MAAM,CAAC,UAAU,EAAE,CAClF,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;QACvD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,kBAAkB,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;QACxD,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACH,eAAe,CAAC,MAA6B;QAC3C,IAAI,MAAM,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;YACnE,MAAM,IAAI,SAAS,CACjB,+DAA+D,MAAM,CAAC,UAAU,EAAE,CACnF,CAAC;QACJ,CAAC;QACD,IAAI,MAAM,CAAC,SAAS,KAAK,SAAS,IAAI,MAAM,CAAC,SAAS,GAAG,CAAC,EAAE,CAAC;YAC3D,MAAM,IAAI,SAAS,CACjB,wDAAwD,MAAM,CAAC,SAAS,EAAE,CAC3E,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC;QACxD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,mBAAmB,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;QACzD,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACH,iBAAiB,CAAC,MAA+B;QAC/C,IAAI,MAAM,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;YACnE,MAAM,IAAI,SAAS,CACjB,iEAAiE,MAAM,CAAC,UAAU,EAAE,CACrF,CAAC;QACJ,CAAC;QACD,IAAI,MAAM,CAAC,SAAS,KAAK,SAAS,IAAI,MAAM,CAAC,SAAS,GAAG,CAAC,EAAE,CAAC;YAC3D,MAAM,IAAI,SAAS,CACjB,0DAA0D,MAAM,CAAC,SAAS,EAAE,CAC7E,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC,CAAC;QAC1D,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,qBAAqB,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;QAC3D,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;;;;;;;;;;;;OAkBG;IACH,WAAW,CAAC,MAAyB;QACnC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;YAC1D,MAAM,IAAI,SAAS,CACjB,oDAAoD,MAAM,CAAC,MAAM,EAAE,CACpE,CAAC;QACJ,CAAC;QACD,IAAI,MAAM,CAAC,UAAU,IAAI,CAAC,EAAE,CAAC;YAC3B,MAAM,IAAI,SAAS,CACjB,iDAAiD,MAAM,CAAC,UAAU,EAAE,CACrE,CAAC;QACJ,CAAC;QACD,IACE,MAAM,CAAC,KAAK,KAAK,SAAS;YAC1B,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,IAAI,MAAM,CAAC,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC,EAC5C,CAAC;YACD,MAAM,IAAI,SAAS,CACjB,gDAAgD,MAAM,CAAC,KAAK,EAAE,CAC/D,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;QACpD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;QACjD,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;;;;;;;;;;;;OAkBG;IACH,QAAQ,CAAC,MAAsB;QAC7B,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;YAC1D,MAAM,IAAI,SAAS,CACjB,iDAAiD,MAAM,CAAC,MAAM,EAAE,CACjE,CAAC;QACJ,CAAC;QACD,IAAI,MAAM,CAAC,UAAU,IAAI,CAAC,EAAE,CAAC;YAC3B,MAAM,IAAI,SAAS,CACjB,8CAA8C,MAAM,CAAC,UAAU,EAAE,CAClE,CAAC;QACJ,CAAC;QACD,IACE,MAAM,CAAC,KAAK,KAAK,SAAS;YAC1B,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,IAAI,MAAM,CAAC,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC,EAC5C,CAAC;YACD,MAAM,IAAI,SAAS,CACjB,6CAA6C,MAAM,CAAC,KAAK,EAAE,CAC5D,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QACjD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;QAC9C,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;;;;;;;;;;;;;OAmBG;IACH,QAAQ,CAAC,MAAsB;QAC7B,IAAI,MAAM,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC9D,MAAM,IAAI,SAAS,CACjB,sDAAsD,MAAM,CAAC,QAAQ,EAAE,CACxE,CAAC;QACJ,CAAC;QACD,IAAI,MAAM,CAAC,UAAU,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;YAClE,MAAM,IAAI,SAAS,CACjB,wDAAwD,MAAM,CAAC,UAAU,EAAE,CAC5E,CAAC;QACJ,CAAC;QACD,IAAI,MAAM,CAAC,UAAU,IAAI,CAAC,EAAE,CAAC;YAC3B,MAAM,IAAI,SAAS,CACjB,8CAA8C,MAAM,CAAC,UAAU,EAAE,CAClE,CAAC;QACJ,CAAC;QACD,IACE,MAAM,CAAC,KAAK,KAAK,SAAS;YAC1B,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,IAAI,MAAM,CAAC,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC,EAC5C,CAAC;YACD,MAAM,IAAI,SAAS,CACjB,6CAA6C,MAAM,CAAC,KAAK,EAAE,CAC5D,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QACjD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;QACrE,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2DG;IACH,WAAW,CAAC,MAAyB;QACnC,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACjD,MAAM,IAAI,SAAS,CACjB,qDAAqD,CACtD,CAAC;QACJ,CAAC;QAED,oCAAoC;QACpC,MAAM,MAAM,GACV,MAAM,CAAC,MAAM,YAAY,YAAY;YACnC,CAAC,CAAC,MAAM,CAAC,MAAM;YACf,CAAC,CAAC,IAAI,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAEtC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,QAAQ,CAAC;QACrC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC;QAEvC,0EAA0E;QAC1E,IACE,IAAI,KAAK,QAAQ;YACjB,CAAC,OAAO,CAAC,IAAI,KAAK,OAAO,IAAI,OAAO,CAAC,IAAI,KAAK,KAAK,CAAC,EACpD,CAAC;YACD,oCAAoC;YACpC,IAAI,CAAE,UAAkB,CAAC,6BAA6B,EAAE,CAAC;gBACvD,OAAO,CAAC,IAAI,CACV,4EAA4E;oBAC1E,uFAAuF;oBACvF,iEAAiE,CACpE,CAAC;gBACD,UAAkB,CAAC,6BAA6B,GAAG,IAAI,CAAC;YAC3D,CAAC;QACH,CAAC;QAED,IAAI,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;YAC1C,MAAM,IAAI,SAAS,CACjB,uDAAuD,IAAI,GAAG,CAC/D,CAAC;QACJ,CAAC;QAED,IAAI,MAAM,KAAK,MAAM,IAAI,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;YACjE,MAAM,IAAI,SAAS,CACjB,gEAAgE,MAAM,GAAG,CAC1E,CAAC;QACJ,CAAC;QAED,MAAM,WAAW,GAA4B;YAC3C,MAAM;YACN,IAAI;YACJ,MAAM;SACP,CAAC;QAEF,+CAA+C;QAC/C,IAAI,MAAM,CAAC,aAAa,KAAK,SAAS,EAAE,CAAC;YACvC,WAAW,CAAC,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC;QACnD,CAAC;QAED,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;QACzD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,IAAI,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;QACnE,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACH,gBAAgB,CAAC,MAA8B;QAC7C,uBAAuB;QACvB,IACE,MAAM,CAAC,UAAU,KAAK,SAAS;YAC/B,MAAM,CAAC,UAAU,IAAI,CAAC;YACtB,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,EACpC,CAAC;YACD,MAAM,IAAI,SAAS,CACjB,gEAAgE,MAAM,CAAC,UAAU,EAAE,CACpF,CAAC;QACJ,CAAC;QAED,uBAAuB;QACvB,MAAM,YAAY,GAA4C;YAC5D,OAAO;YACP,WAAW;YACX,WAAW;YACX,aAAa;SACd,CAAC;QACF,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;YAC1C,MAAM,IAAI,SAAS,CACjB,2CAA2C,YAAY,CAAC,IAAI,CAC1D,IAAI,CACL,UAAU,MAAM,CAAC,MAAM,GAAG,CAC5B,CAAC;QACJ,CAAC;QAED,oCAAoC;QACpC,MAAM,YAAY,GAAG;YACnB,KAAK,EAAE,uBAAuB;YAC9B,SAAS,EAAE,2BAA2B;YACtC,SAAS,EAAE,2BAA2B;YACtC,WAAW,EAAE,6BAA6B;SAC3C,CAAC;QAEF,MAAM,SAAS,GAAG,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC9C,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,SAAS,EAAE,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;QAC3E,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,oBAAoB,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;QACtD,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA+EG;IACH,SAAS,CAAC,MAAuB;QAC/B,mBAAmB;QACnB,IACE,MAAM,CAAC,OAAO,KAAK,SAAS;YAC5B,MAAM,CAAC,OAAO,IAAI,CAAC;YACnB,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,EACjC,CAAC;YACD,MAAM,IAAI,SAAS,CACjB,sDAAsD,MAAM,CAAC,OAAO,EAAE,CACvE,CAAC;QACJ,CAAC;QAED,0EAA0E;QAC1E,MAAM,YAAY,GAAG,MAAM,CAAC,YAAY,IAAI,MAAM,CAAC,EAAE,IAAI,IAAI,CAAC;QAC9D,IAAI,YAAY,IAAI,CAAC,IAAI,YAAY,GAAG,GAAG,EAAE,CAAC;YAC5C,MAAM,IAAI,UAAU,CAClB,uDAAuD,YAAY,EAAE,CACtE,CAAC;QACJ,CAAC;QAED,sCAAsC;QACtC,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,IAAI,KAAK,CAAC;QAC9C,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC;QAEpC,IAAI,MAAM,GAAG,CAAC,IAAI,MAAM,IAAI,GAAG,EAAE,CAAC;YAChC,MAAM,IAAI,UAAU,CAClB,4CAA4C,MAAM,EAAE,CACrD,CAAC;QACJ,CAAC;QAED,+BAA+B;QAC/B,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,WAAW,EAAE;YACxC,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,YAAY,EAAE,YAAY;YAC1B,UAAU,EAAE,UAAU;YACtB,MAAM,EAAE,MAAM;SACf,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,MAAM,CAAC,OAAO,MAAM,CAAC,CAAC;QACpD,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;IACH,SAAS,CAAC,MAAuB;QAC/B,mBAAmB;QACnB,IACE,MAAM,CAAC,OAAO,KAAK,SAAS;YAC5B,MAAM,CAAC,OAAO,IAAI,CAAC;YACnB,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,EACjC,CAAC;YACD,MAAM,IAAI,SAAS,CACjB,sDAAsD,MAAM,CAAC,OAAO,EAAE,CACvE,CAAC;QACJ,CAAC;QAED,yCAAyC;QACzC,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAChC,MAAM,IAAI,SAAS,CAAC,mDAAmD,CAAC,CAAC;QAC3E,CAAC;QAED,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;YAC9C,MAAM,IAAI,UAAU,CAClB,4CAA4C,MAAM,CAAC,MAAM,EAAE,CAC5D,CAAC;QACJ,CAAC;QAED,2CAA2C;QAC3C,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,IAAI,CAAC;QACnC,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;YACf,MAAM,IAAI,UAAU,CAAC,qCAAqC,KAAK,EAAE,CAAC,CAAC;QACrE,CAAC;QAED,+BAA+B;QAC/B,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,WAAW,EAAE;YACxC,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,KAAK,EAAE,KAAK;SACb,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,MAAM,CAAC,OAAO,UAAU,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;QACvE,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAwCG;IACH,YAAY,CAAC,MAA0B;QACrC,IAAI,CAAC,CAAC,MAAM,CAAC,SAAS,YAAY,YAAY,CAAC,EAAE,CAAC;YAChD,MAAM,IAAI,SAAS,CAAC,gDAAgD,CAAC,CAAC;QACxE,CAAC;QACD,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,YAAY,YAAY,CAAC,EAAE,CAAC;YAC3C,MAAM,IAAI,SAAS,CAAC,2CAA2C,CAAC,CAAC;QACnE,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,MAAM,CAAC,WAAW,IAAI,CAAC,EAAE,CAAC;YACrE,MAAM,IAAI,SAAS,CACjB,sDAAsD,CACvD,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,MAAM,CAAC,aAAa,IAAI,CAAC,EAAE,CAAC;YACzE,MAAM,IAAI,SAAS,CACjB,wDAAwD,CACzD,CAAC;QACJ,CAAC;QACD,IAAI,MAAM,CAAC,aAAa,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;YAC9C,MAAM,IAAI,UAAU,CAClB,uDAAuD,CACxD,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;QACrD,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,gBAAgB,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,aAAa,EAAE,CAC7D,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4CG;IACH,YAAY,CAAC,MAA0B;QACrC,IAAI,CAAC,CAAC,MAAM,CAAC,SAAS,YAAY,YAAY,CAAC,EAAE,CAAC;YAChD,MAAM,IAAI,SAAS,CAAC,gDAAgD,CAAC,CAAC;QACxE,CAAC;QACD,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,YAAY,YAAY,CAAC,EAAE,CAAC;YAC3C,MAAM,IAAI,SAAS,CAAC,2CAA2C,CAAC,CAAC;QACnE,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,MAAM,CAAC,WAAW,IAAI,CAAC,EAAE,CAAC;YACrE,MAAM,IAAI,SAAS,CACjB,sDAAsD,CACvD,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,MAAM,CAAC,aAAa,IAAI,CAAC,EAAE,CAAC;YACzE,MAAM,IAAI,SAAS,CACjB,wDAAwD,CACzD,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;QACrD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,MAAM,CAAC,WAAW,IAAI,CAAC,CAAC;QACzD,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAmDG;IACH,kBAAkB,CAAC,MAAgC;QACjD,IAAI,CAAC,CAAC,MAAM,CAAC,eAAe,YAAY,YAAY,CAAC,EAAE,CAAC;YACtD,MAAM,IAAI,SAAS,CACjB,4DAA4D,CAC7D,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,YAAY,YAAY,CAAC,EAAE,CAAC;YAC3C,MAAM,IAAI,SAAS,CAAC,iDAAiD,CAAC,CAAC;QACzE,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,MAAM,CAAC,WAAW,IAAI,CAAC,EAAE,CAAC;YACrE,MAAM,IAAI,SAAS,CACjB,4DAA4D,CAC7D,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,MAAM,CAAC,aAAa,IAAI,CAAC,EAAE,CAAC;YACzE,MAAM,IAAI,SAAS,CACjB,8DAA8D,CAC/D,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC,CAAC;QAC3D,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,sBAAsB,MAAM,CAAC,WAAW,IAAI,CAAC,CAAC;QAC/D,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA8DG;IACH,eAAe,CAAC,MAA6B;QAC3C,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,MAAM,CAAC,WAAW,GAAG,CAAC,EAAE,CAAC;YACpE,MAAM,IAAI,UAAU,CAAC,2CAA2C,CAAC,CAAC;QACpE,CAAC;QACD,IAAI,CAAC,CAAC,MAAM,CAAC,eAAe,YAAY,YAAY,CAAC,EAAE,CAAC;YACtD,MAAM,IAAI,SAAS,CACjB,yDAAyD,CAC1D,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,CAAC,MAAM,CAAC,cAAc,YAAY,YAAY,CAAC,EAAE,CAAC;YACrD,MAAM,IAAI,SAAS,CACjB,wDAAwD,CACzD,CAAC;QACJ,CAAC;QACD,IAAI,MAAM,CAAC,eAAe,CAAC,MAAM,KAAK,MAAM,CAAC,WAAW,EAAE,CAAC;YACzD,MAAM,IAAI,KAAK,CACb,4CAA4C,MAAM,CAAC,eAAe,CAAC,MAAM,IAAI;gBAC3E,2BAA2B,MAAM,CAAC,WAAW,GAAG,CACnD,CAAC;QACJ,CAAC;QACD,MAAM,oBAAoB,GAAG,MAAM,CAAC,WAAW,GAAG,CAAC,MAAM,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC;QAC3E,IAAI,MAAM,CAAC,cAAc,CAAC,MAAM,KAAK,oBAAoB,EAAE,CAAC;YAC1D,MAAM,IAAI,KAAK,CACb,2CAA2C,MAAM,CAAC,cAAc,CAAC,MAAM,IAAI;gBACzE,6CAA6C,oBAAoB,GAAG,CACvE,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC;QACxD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,mBAAmB,MAAM,CAAC,WAAW,QAAQ,CAAC,CAAC;QAChE,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,eAAe,CAAC,MAA6B;QAC3C,IACE,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,gBAAgB,CAAC;YAC1C,MAAM,CAAC,gBAAgB,IAAI,CAAC,EAC5B,CAAC;YACD,MAAM,IAAI,UAAU,CAClB,8DAA8D,CAC/D,CAAC;QACJ,CAAC;QACD,IACE,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,iBAAiB,CAAC;YAC3C,MAAM,CAAC,iBAAiB,IAAI,CAAC;YAC7B,MAAM,CAAC,iBAAiB,GAAG,MAAM,CAAC,gBAAgB,EAClD,CAAC;YACD,MAAM,IAAI,UAAU,CAClB,2DAA2D,MAAM,CAAC,gBAAgB,UAAU,MAAM,CAAC,iBAAiB,EAAE,CACvH,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC;QACxD,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,mBAAmB,MAAM,CAAC,gBAAgB,MAAM,MAAM,CAAC,iBAAiB,IAAI,CAC7E,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;;;;;;;;;;;OAiBG;IACH,aAAa,CAAC,MAA2B;QACvC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACpE,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;QACvE,CAAC;QACD,IACE,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,gBAAgB,CAAC;YAC1C,MAAM,CAAC,gBAAgB,IAAI,CAAC,EAC5B,CAAC;YACD,MAAM,IAAI,UAAU,CAClB,4DAA4D,CAC7D,CAAC;QACJ,CAAC;QAED,2BAA2B;QAC3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAChD,MAAM,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YAC9B,IACE,OAAO,EAAE,KAAK,QAAQ;gBACtB,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;gBACrB,EAAE,GAAG,CAAC;gBACN,EAAE,IAAI,MAAM,CAAC,gBAAgB,EAC7B,CAAC;gBACD,MAAM,IAAI,UAAU,CAClB,gCAAgC,EAAE,qBAChC,MAAM,CAAC,gBAAgB,GAAG,CAC5B,GAAG,CACJ,CAAC;YACJ,CAAC;QACH,CAAC;QAED,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;QACtD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,kBAAkB,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACjE,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;;;;;;;;;;;;OAkBG;IACH,YAAY,CAAC,MAA0B;QACrC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAClE,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;QACrE,CAAC;QACD,IACE,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,gBAAgB,CAAC;YAC1C,MAAM,CAAC,gBAAgB,IAAI,CAAC,EAC5B,CAAC;YACD,MAAM,IAAI,UAAU,CAClB,2DAA2D,CAC5D,CAAC;QACJ,CAAC;QAED,2BAA2B;QAC3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC/C,MAAM,EAAE,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YAC7B,IACE,OAAO,EAAE,KAAK,QAAQ;gBACtB,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;gBACrB,EAAE,GAAG,CAAC;gBACN,EAAE,IAAI,MAAM,CAAC,gBAAgB,EAC7B,CAAC;gBACD,MAAM,IAAI,UAAU,CAClB,+BAA+B,EAAE,qBAC/B,MAAM,CAAC,gBAAgB,GAAG,CAC5B,GAAG,CACJ,CAAC;YACJ,CAAC;QACH,CAAC;QAED,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;QACrD,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,gBAAgB,MAAM,CAAC,gBAAgB,MAAM,MAAM,CAAC,OAAO,CAAC,MAAM,IAAI,CACvE,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACH,aAAa,CAAC,MAA2B;QACvC,IAAI,OAAO,MAAM,CAAC,SAAS,KAAK,QAAQ,IAAI,MAAM,CAAC,SAAS,IAAI,CAAC,EAAE,CAAC;YAClE,MAAM,IAAI,UAAU,CAAC,sCAAsC,CAAC,CAAC;QAC/D,CAAC;QAED,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;QACtD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;QACtD,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAkDG;IACH,aAAa,CAAC,MAA2B;QACvC,iBAAiB;QACjB,IAAI,OAAO,MAAM,CAAC,SAAS,KAAK,QAAQ,IAAI,MAAM,CAAC,SAAS,GAAG,CAAC,EAAE,CAAC;YACjE,MAAM,IAAI,UAAU,CAAC,uCAAuC,CAAC,CAAC;QAChE,CAAC;QAED,mBAAmB;QACnB,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,QAAQ,CAAC;QACrC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC;QACvC,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,IAAI,CAAC,CAAC;QAC1C,MAAM,eAAe,GAAG,MAAM,CAAC,eAAe,IAAI,CAAC,CAAC;QAEpD,4BAA4B;QAC5B,IAAI,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;YAC1C,MAAM,IAAI,SAAS,CACjB,yDAAyD,IAAI,GAAG,CACjE,CAAC;QACJ,CAAC;QACD,IAAI,MAAM,KAAK,MAAM,IAAI,MAAM,KAAK,WAAW,EAAE,CAAC;YAChD,MAAM,IAAI,SAAS,CACjB,6DAA6D,MAAM,GAAG,CACvE,CAAC;QACJ,CAAC;QACD,IACE,UAAU,GAAG,CAAC;YACd,CAAC,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC;YAC7B,UAAU,GAAG,CAAC,KAAK,CAAC,EACpB,CAAC;YACD,MAAM,IAAI,UAAU,CAClB,8DAA8D,UAAU,EAAE,CAC3E,CAAC;QACJ,CAAC;QACD,IAAI,eAAe,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,eAAe,CAAC,EAAE,CAAC;YAC9D,MAAM,IAAI,UAAU,CAClB,+DAA+D,eAAe,EAAE,CACjF,CAAC;QACJ,CAAC;QAED,mFAAmF;QACnF,IAAI,IAAI,KAAK,QAAQ,IAAI,UAAU,KAAK,CAAC,EAAE,CAAC;YAC1C,OAAO,CAAC,IAAI,CACV,6EAA6E,CAC9E,CAAC;QACJ,CAAC;QAED,MAAM,WAAW,GAAG;YAClB,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,IAAI;YACJ,MAAM;YACN,UAAU;YACV,eAAe;SAChB,CAAC;QAEF,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,eAAe,EAAE,WAAW,CAAC,CAAC;QAC3D,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,iBAAiB,IAAI,MAAM,MAAM,CAAC,SAAS,MAAM,UAAU,MAAM,eAAe,EAAE,CACnF,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;IACH,cAAc;QACZ,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC;QACnD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACnC,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAqCG;IACH,UAAU,CAAC,SAA6B,EAAE;QACxC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,IAAI,CAAC;QAEnC,IAAI,KAAK,IAAI,GAAG,IAAI,KAAK,GAAG,GAAG,EAAE,CAAC;YAChC,MAAM,IAAI,SAAS,CACjB,kDAAkD,KAAK,EAAE,CAC1D,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,YAAY,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;QACtD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACrD,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAoDG;IACH,GAAG,CAAC,MAA8B;QAChC,IAAI,CAAC,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,UAAU,IAAI,CAAC,EAAE,CAAC;YACjD,MAAM,IAAI,SAAS,CACjB,+CAA+C,MAAM,CAAC,UAAU,EAAE,CACnE,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;QACvE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;QACjD,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6EG;IACH,YAAY,CAAC,MAA0B;QACrC,IAAI,CAAC,CAAC,MAAM,CAAC,SAAS,YAAY,YAAY,CAAC,EAAE,CAAC;YAChD,MAAM,IAAI,SAAS,CAAC,gDAAgD,CAAC,CAAC;QACxE,CAAC;QACD,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,YAAY,YAAY,CAAC,EAAE,CAAC;YAC3C,MAAM,IAAI,SAAS,CAAC,2CAA2C,CAAC,CAAC;QACnE,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,MAAM,CAAC,WAAW,IAAI,CAAC,EAAE,CAAC;YACrE,MAAM,IAAI,SAAS,CACjB,sDAAsD,CACvD,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,MAAM,CAAC,UAAU,IAAI,CAAC,EAAE,CAAC;YACnE,MAAM,IAAI,SAAS,CACjB,qDAAqD,CACtD,CAAC;QACJ,CAAC;QACD,IAAI,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;YAC3C,MAAM,IAAI,UAAU,CAClB,oDAAoD,CACrD,CAAC;QACJ,CAAC;QACD,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,KAAK,MAAM,CAAC,WAAW,EAAE,CAAC;YAC9C,MAAM,IAAI,KAAK,CACb,8BAA8B,MAAM,CAAC,IAAI,CAAC,MAAM,6BAA6B,MAAM,CAAC,WAAW,GAAG,CACnG,CAAC;QACJ,CAAC;QACD,MAAM,kBAAkB,GAAG,MAAM,CAAC,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC;QAClE,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM,KAAK,kBAAkB,EAAE,CAAC;YACnD,MAAM,IAAI,KAAK,CACb,mCAAmC,MAAM,CAAC,SAAS,CAAC,MAAM,IAAI;gBAC5D,wCAAwC,kBAAkB,GAAG,CAChE,CAAC;QACJ,CAAC;QAED,2DAA2D;QAC3D,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,cAAc,EAAE;YAC3C,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,kCAAkC;YAC/D,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,aAAa,EAAE,MAAM,CAAC,UAAU;SACjC,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;QAC5E,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,gBAAgB,CAAC,MAA8B;QAC7C,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,MAAM,IAAI,SAAS,CAAC,iDAAiD,CAAC,CAAC;QACzE,CAAC;QAED,MAAM,aAAa,GAAG;YACpB,MAAM;YACN,KAAK;YACL,KAAK;YACL,KAAK;YACL,KAAK;YACL,KAAK;YACL,KAAK;YACL,KAAK;YACL,KAAK;YACL,KAAK;YACL,MAAM;SACP,CAAC;QACF,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;YAC5C,MAAM,IAAI,SAAS,CACjB,2CACE,MAAM,CAAC,OACT,mBAAmB,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC9C,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC,CAAC;QACzD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,oBAAoB,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;QACvD,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACH,eAAe,CAAC,MAA6B;QAC3C,IAAI,MAAM,CAAC,UAAU,KAAK,SAAS,IAAI,MAAM,CAAC,UAAU,KAAK,IAAI,EAAE,CAAC;YAClE,MAAM,IAAI,SAAS,CAAC,mDAAmD,CAAC,CAAC;QAC3E,CAAC;QAED,IAAI,MAAM,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;YACnE,MAAM,IAAI,SAAS,CACjB,2EAA2E,MAAM,CAAC,UAAU,EAAE,CAC/F,CAAC;QACJ,CAAC;QAED,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YACjC,IACE,MAAM,CAAC,OAAO,GAAG,CAAC;gBAClB,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,UAAU;gBAClC,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,EACjC,CAAC;gBACD,MAAM,IAAI,SAAS,CACjB,gEAAgE,MAAM,CAAC,UAAU,UAAU,MAAM,CAAC,OAAO,EAAE,CAC5G,CAAC;YACJ,CAAC;QACH,CAAC;QAED,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC;QACxD,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;QACpE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,sBAAsB,MAAM,CAAC,UAAU,OAAO,OAAO,EAAE,CAAC,CAAC;QAC1E,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAsEG;IACH,GAAG,CAAC,MAAiB;QACnB,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;YACvE,MAAM,IAAI,SAAS,CACjB,6CAA6C,MAAM,CAAC,IAAI,EAAE,CAC3D,CAAC;QACJ,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,OAAO,CAAC;QACpC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC;QACnC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,IAAI,CAAC;QACvC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,WAAW,CAAC;QAC5C,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;QAE9D,gBAAgB;QAChB,IAAI,IAAI,KAAK,OAAO,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC1C,MAAM,IAAI,SAAS,CACjB,+CAA+C,IAAI,GAAG,CACvD,CAAC;QACJ,CAAC;QAED,mCAAmC;QACnC,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;YACtB,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC/C,MAAM,IAAI,SAAS,CACjB,gDAAgD,OAAO,EAAE,CAC1D,CAAC;YACJ,CAAC;YACD,IAAI,OAAO,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;gBAC1B,MAAM,IAAI,SAAS,CACjB,iBAAiB,OAAO,yBAAyB,MAAM,CAAC,IAAI,GAAG,CAChE,CAAC;YACJ,CAAC;QACH,CAAC;QAED,gBAAgB;QAChB,MAAM,UAAU,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QAClD,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YAC/B,MAAM,IAAI,SAAS,CACjB,4BAA4B,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,GAAG,CACnE,CAAC;QACJ,CAAC;QAED,yBAAyB;QACzB,MAAM,YAAY,GAAG,CAAC,SAAS,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QAChE,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YACnC,MAAM,IAAI,SAAS,CACjB,8BAA8B,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,MAAM,GAAG,CACzE,CAAC;QACJ,CAAC;QAED,4CAA4C;QAC5C,IACE,CAAC,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,MAAM,CAAC;YACnC,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,EAC/B,CAAC;YACD,MAAM,IAAI,SAAS,CACjB,QAAQ,IAAI,kCAAkC,MAAM,CAAC,IAAI,4CAA4C,CACtG,CAAC;QACJ,CAAC;QAED,wEAAwE;QACxE,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;YACtB,wCAAwC;YACxC,MAAM,UAAU,GAAG,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;YACrE,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;YAEzD,OAAO,IAAI,CAAC,IAAI,CAAC;gBACf,UAAU,EAAE,MAAM,CAAC,IAAI;gBACvB,OAAO,EAAE,OAAO;gBAChB,MAAM,EAAE,UAAU;gBAClB,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,OAAO;gBAChB,MAAM,EAAE,MAAM;gBACd,MAAM,EAAE,MAAM,EAAE,mEAAmE;aACpF,CAAC,CAAC;QACL,CAAC;QAED,qCAAqC;QACrC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,KAAK,EAAE;YAClC,IAAI;YACJ,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,OAAO;YACP,IAAI;YACJ,OAAO;YACP,MAAM;SACP,CAAC,CAAC;QAEH,MAAM,SAAS,GAAG,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;QAClD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,MAAM,CAAC,IAAI,UAAU,SAAS,IAAI,MAAM,EAAE,CAAC,CAAC;QAC5E,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACK,YAAY,CAAC,CAAS;QAC5B,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IACtC,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAuEG;IACH,IAAI,CAAC,MAAkB;QACrB,sBAAsB;QACtB,IACE,CAAC,MAAM,CAAC,UAAU;YAClB,MAAM,CAAC,UAAU,IAAI,CAAC;YACtB,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,EACpC,CAAC;YACD,MAAM,IAAI,SAAS,CACjB,oDAAoD,MAAM,CAAC,UAAU,EAAE,CACxE,CAAC;QACJ,CAAC;QAED,+BAA+B;QAC/B,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;QACpE,IACE,OAAO,IAAI,CAAC;YACZ,OAAO,GAAG,MAAM,CAAC,UAAU;YAC3B,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,EAC1B,CAAC;YACD,MAAM,IAAI,SAAS,CACjB,2DAA2D,MAAM,CAAC,UAAU,UAAU,OAAO,EAAE,CAChG,CAAC;QACJ,CAAC;QAED,0DAA0D;QAC1D,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QACpD,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QACzD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC;QACnC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,IAAI,CAAC;QACvC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,WAAW,CAAC;QAC5C,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC;QAE3C,kBAAkB;QAClB,MAAM,YAAY,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QACpC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YACnC,MAAM,IAAI,SAAS,CACjB,+BAA+B,YAAY,CAAC,IAAI,CAC9C,IAAI,CACL,UAAU,MAAM,GAAG,CACrB,CAAC;QACJ,CAAC;QAED,gBAAgB;QAChB,MAAM,UAAU,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QACvC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YAC/B,MAAM,IAAI,SAAS,CACjB,6BAA6B,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,GAAG,CACpE,CAAC;QACJ,CAAC;QAED,kBAAkB;QAClB,MAAM,YAAY,GAAG,CAAC,SAAS,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QAChE,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YACnC,MAAM,IAAI,SAAS,CACjB,+BAA+B,YAAY,CAAC,IAAI,CAC9C,IAAI,CACL,UAAU,MAAM,GAAG,CACrB,CAAC;QACJ,CAAC;QAED,2BAA2B;QAC3B,MAAM,YAAY,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;QACzE,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;YACvC,MAAM,IAAI,SAAS,CACjB,+BAA+B,YAAY,CAAC,IAAI,CAC9C,IAAI,CACL,UAAU,UAAU,GAAG,CACzB,CAAC;QACJ,CAAC;QAED,uCAAuC;QACvC,IAAI,MAAM,KAAK,KAAK,IAAI,CAAC,MAAM,EAAE,CAAC;YAChC,MAAM,IAAI,SAAS,CACjB,wDAAwD,MAAM,CAAC,UAAU,0CAA0C,CACpH,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,MAAM,EAAE;YACnC,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,OAAO;YACP,MAAM;YACN,IAAI;YACJ,OAAO;YACP,MAAM;YACN,MAAM,EAAE,UAAU;SACnB,CAAC,CAAC;QAEH,MAAM,SAAS,GAAG,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;QAClD,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAC3B,CAAC,CAAC,MAAM,CAAC,UAAU,GAAG,OAAO,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,GAAG,CAC1D,CAAC;QACF,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,QAAQ,MAAM,OAAO,MAAM,CAAC,UAAU,OAAO,OAAO,IAAI,UAAU,MAAM,UAAU,IAAI,SAAS,IAAI,MAAM,EAAE,CAC5G,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAwDG;IACH,cAAc,CAAC,MAA4B;QACzC,+BAA+B;QAC/B,IACE,CAAC,MAAM,CAAC,gBAAgB;YACxB,CAAC,CAAC,MAAM,CAAC,gBAAgB,YAAY,YAAY,CAAC,EAClD,CAAC;YACD,MAAM,IAAI,SAAS,CACjB,yDAAyD,CAC1D,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,IAAI,CAAC,EAAE,CAAC;YAC7D,MAAM,IAAI,SAAS,CAAC,oDAAoD,CAAC,CAAC;QAC5E,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,MAAM,CAAC,WAAW,IAAI,CAAC,EAAE,CAAC;YACrE,MAAM,IAAI,SAAS,CACjB,wDAAwD,CACzD,CAAC;QACJ,CAAC;QAED,iCAAiC;QACjC,MAAM,YAAY,GAAG,MAAM,CAAC,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC;QACzD,IAAI,MAAM,CAAC,gBAAgB,CAAC,MAAM,KAAK,YAAY,EAAE,CAAC;YACpD,MAAM,IAAI,UAAU,CAClB,4CAA4C,MAAM,CAAC,gBAAgB,CAAC,MAAM,uCAAuC,YAAY,GAAG,CACjI,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,gBAAgB,EAAE;YAC7C,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;YACzC,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,WAAW,EAAE,MAAM,CAAC,WAAW;SAChC,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,kBAAkB,MAAM,CAAC,OAAO,QAAQ,MAAM,CAAC,WAAW,MAAM,CACjE,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6EG;IACH,IAAI,CAAC,MAAkB;QACrB,+BAA+B;QAC/B,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,MAAM,CAAC,WAAW,IAAI,CAAC,EAAE,CAAC;YACrE,MAAM,IAAI,SAAS,CAAC,8CAA8C,CAAC,CAAC;QACtE,CAAC;QAED,iBAAiB;QACjB,MAAM,eAAe,GAAG,MAAM,CAAC,eAAe,IAAI,EAAE,CAAC;QACrD,MAAM,YAAY,GAAG,MAAM,CAAC,YAAY,IAAI,IAAI,CAAC;QACjD,MAAM,iBAAiB,GAAG,MAAM,CAAC,iBAAiB,IAAI,CAAC,CAAC;QAExD,+BAA+B;QAC/B,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,eAAe,CAAC,IAAI,eAAe,IAAI,CAAC,EAAE,CAAC;YAC/D,MAAM,IAAI,SAAS,CAAC,kDAAkD,CAAC,CAAC;QAC1E,CAAC;QAED,IAAI,eAAe,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;YACzC,MAAM,IAAI,UAAU,CAClB,0BAA0B,eAAe,4BAA4B,MAAM,CAAC,WAAW,GAAG,CAC3F,CAAC;QACJ,CAAC;QAED,IAAI,OAAO,YAAY,KAAK,SAAS,EAAE,CAAC;YACtC,MAAM,IAAI,SAAS,CAAC,sCAAsC,CAAC,CAAC;QAC9D,CAAC;QAED,IAAI,OAAO,iBAAiB,KAAK,QAAQ,IAAI,iBAAiB,GAAG,CAAC,EAAE,CAAC;YACnE,MAAM,IAAI,SAAS,CACjB,uDAAuD,CACxD,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,MAAM,EAAE;YACnC,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,eAAe;YACf,YAAY;YACZ,iBAAiB;SAClB,CAAC,CAAC;QAEH,MAAM,SAAS,GAAG,iBAAiB,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,iBAAiB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3E,MAAM,MAAM,GAAG,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1C,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,QAAQ,MAAM,CAAC,WAAW,QAAQ,eAAe,SAAS,MAAM,GAAG,SAAS,EAAE,CAC/E,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACH,GAAG,CAAC,QAAqB;QACvB,MAAM,gBAAgB,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC;QAC5D,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,QAAQ,EAAE,CAAC,CAAC;QAClE,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAiDG;IACH,MAAM,CAAC,OAAsB;QAC3B,uCAAuC;QACvC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CACb,qFAAqF,CACtF,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CACb,iIAAiI,CAClI,CAAC;QACJ,CAAC;QAED,kDAAkD;QAClD,IACE,CAAC,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC;YACpE,CAAC,OAAO,CAAC,UAAU,EACnB,CAAC;YACD,MAAM,IAAI,KAAK,CACb,gBAAgB,OAAO,CAAC,IAAI,yJAAyJ,CACtL,CAAC;QACJ,CAAC;QAED,8CAA8C;QAC9C,IAAI,cAAqC,CAAC;QAE1C,IAAI,CAAC;YACH,QAAQ,OAAO,CAAC,IAAI,EAAE,CAAC;gBACrB,KAAK,KAAK;oBACR,cAAc,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;oBAC/C,MAAM;gBAER,KAAK,aAAa;oBAChB,cAAc,GAAG,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAC;oBACvD,MAAM;gBAER,KAAK,WAAW;oBACd,cAAc,GAAG,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC;oBACrD,MAAM;gBAER,KAAK,QAAQ;oBACX,cAAc,GAAG,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;oBAClD,MAAM;gBAER,KAAK,KAAK,CAAC;gBACX;oBACE,MAAM,IAAI,KAAK,CACb,gBAAgB,OAAO,CAAC,IAAI,qFAAqF,CAClH,CAAC;YACN,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,uDAAuD;YACvD,MAAM,GAAG,GAAG,KAAc,CAAC;YAC3B,MAAM,IAAI,KAAK,CACb,oBAAoB,OAAO,CAAC,IAAI,kBAAkB,OAAO,CAAC,IAAI,MAAM,GAAG,CAAC,OAAO,IAAI;gBACjF,wGAAwG,CAC3G,CAAC;QACJ,CAAC;QAED,2CAA2C;QAC3C,wCAAwC;QACxC,IAAI,OAAqB,CAAC;QAC1B,IAAI,OAAqB,CAAC;QAE1B,IAAI,CAAC;YACH,IAAI,cAAc,YAAY,SAAS,EAAE,CAAC;gBACxC,2CAA2C;gBAC3C,MAAM,MAAM,GAAG,cAAc,CAAC,eAAe,EAAE,CAAC;gBAChD,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACnC,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;gBAC5D,CAAC;gBACD,OAAO,GAAG,IAAI,YAAY,CAAC,MAAM,CAAC,CAAC;gBACnC,OAAO,GAAG,IAAI,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YACpC,CAAC;iBAAM,IAAI,cAAc,YAAY,SAAS,EAAE,CAAC;gBAC/C,wCAAwC;gBACxC,MAAM,SAAS,GAAG,cAAc,CAAC,gBAAgB,EAAE,CAAC;gBACpD,MAAM,SAAS,GAAG,cAAc,CAAC,gBAAgB,EAAE,CAAC;gBACpD,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACzC,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;gBAC9D,CAAC;gBACD,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACzC,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;gBAC9D,CAAC;gBACD,OAAO,GAAG,IAAI,YAAY,CAAC,SAAS,CAAC,CAAC;gBACtC,OAAO,GAAG,IAAI,YAAY,CAAC,SAAS,CAAC,CAAC;YACxC,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;YACzC,CAAC;YAED,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YACrD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;QAC7D,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,GAAG,GAAG,KAAc,CAAC;YAC3B,MAAM,IAAI,KAAK,CAAC,2CAA2C,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QAC5E,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACK,eAAe,CAAC,OAAwC;QAC9D,MAAM,EAAE,IAAI,EAAE,eAAe,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,GACtE,OAAO,CAAC;QAEV,QAAQ,IAAI,EAAE,CAAC;YACb,KAAK,SAAS;gBACZ,IAAI,CAAC,eAAe,EAAE,CAAC;oBACrB,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;gBACjE,CAAC;gBACD,OAAO,SAAS,CAAC,aAAa,CAAC,OAAc,CAAC,CAAC;YAEjD,KAAK,UAAU;gBACb,IAAI,CAAC,eAAe,EAAE,CAAC;oBACrB,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;gBAClE,CAAC;gBACD,OAAO,SAAS,CAAC,cAAc,CAAC,OAAc,CAAC,CAAC;YAElD,KAAK,UAAU;gBACb,IAAI,CAAC,kBAAkB,IAAI,CAAC,mBAAmB,EAAE,CAAC;oBAChD,MAAM,IAAI,KAAK,CACb,yEAAyE,CAC1E,CAAC;gBACJ,CAAC;gBACD,OAAO,SAAS,CAAC,cAAc,CAAC,OAAc,CAAC,CAAC;YAElD,KAAK,UAAU,CAAC;YAChB,KAAK,OAAO;gBACV,IAAI,CAAC,kBAAkB,IAAI,CAAC,mBAAmB,EAAE,CAAC;oBAChD,MAAM,IAAI,KAAK,CACb,yEAAyE,CAC1E,CAAC;gBACJ,CAAC;gBACD,OAAO,SAAS,CAAC,cAAc,CAAC,OAAc,CAAC,CAAC;YAElD;gBACE,MAAM,IAAI,KAAK,CAAC,gCAAgC,IAAI,EAAE,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC;IAED;;OAEG;IACK,uBAAuB,CAC7B,OAAgD;QAEhD,MAAM,EAAE,IAAI,EAAE,eAAe,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,GACtE,OAAO,CAAC;QAEV,QAAQ,IAAI,EAAE,CAAC;YACb,KAAK,SAAS;gBACZ,IAAI,CAAC,eAAe,EAAE,CAAC;oBACrB,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;gBACjE,CAAC;gBACD,OAAO,SAAS,CAAC,wBAAwB,CAAC,OAAc,CAAC,CAAC;YAE5D,KAAK,UAAU;gBACb,IAAI,CAAC,eAAe,EAAE,CAAC;oBACrB,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;gBAClE,CAAC;gBACD,OAAO,SAAS,CAAC,yBAAyB,CAAC,OAAc,CAAC,CAAC;YAE7D,KAAK,UAAU;gBACb,IAAI,CAAC,kBAAkB,IAAI,CAAC,mBAAmB,EAAE,CAAC;oBAChD,MAAM,IAAI,KAAK,CACb,yEAAyE,CAC1E,CAAC;gBACJ,CAAC;gBACD,OAAO,SAAS,CAAC,yBAAyB,CAAC,OAAc,CAAC,CAAC;YAE7D;gBACE,MAAM,IAAI,KAAK,CAAC,wCAAwC,IAAI,EAAE,CAAC,CAAC;QACpE,CAAC;IACH,CAAC;IAED;;OAEG;IACK,qBAAqB,CAC3B,OAA8C;QAE9C,MAAM,EACJ,IAAI,EACJ,eAAe,EACf,kBAAkB,EAClB,mBAAmB,EACnB,MAAM,GAAG,GAAG,GACb,GAAG,OAAc,CAAC;QAEnB,QAAQ,IAAI,EAAE,CAAC;YACb,KAAK,SAAS;gBACZ,IAAI,CAAC,eAAe,EAAE,CAAC;oBACrB,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;gBACjE,CAAC;gBACD,OAAO,SAAS,CAAC,sBAAsB,CAAC;oBACtC,eAAe;oBACf,UAAU,EAAE,OAAO,CAAC,UAAU;oBAC9B,KAAK,EAAE,OAAO,CAAC,KAAK;oBACpB,QAAQ,EAAE,MAAM;iBACjB,CAAC,CAAC;YAEL,KAAK,UAAU;gBACb,IAAI,CAAC,eAAe,EAAE,CAAC;oBACrB,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;gBAClE,CAAC;gBACD,OAAO,SAAS,CAAC,uBAAuB,CAAC;oBACvC,eAAe;oBACf,UAAU,EAAE,OAAO,CAAC,UAAU;oBAC9B,KAAK,EAAE,OAAO,CAAC,KAAK;oBACpB,QAAQ,EAAE,MAAM;iBACjB,CAAC,CAAC;YAEL,KAAK,UAAU;gBACb,IAAI,CAAC,kBAAkB,IAAI,CAAC,mBAAmB,EAAE,CAAC;oBAChD,MAAM,IAAI,KAAK,CACb,yEAAyE,CAC1E,CAAC;gBACJ,CAAC;gBACD,OAAO,SAAS,CAAC,uBAAuB,CAAC;oBACvC,kBAAkB;oBAClB,mBAAmB;oBACnB,UAAU,EAAE,OAAO,CAAC,UAAU;oBAC9B,KAAK,EAAE,OAAO,CAAC,KAAK;oBACpB,QAAQ,EAAE,MAAM;iBACjB,CAAC,CAAC;YAEL;gBACE,MAAM,IAAI,KAAK,CAAC,sCAAsC,IAAI,EAAE,CAAC,CAAC;QAClE,CAAC;IACH,CAAC;IAED;;OAEG;IACK,kBAAkB,CACxB,OAA2C;QAE3C,MAAM,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC,GAAG,KAAK,EAAE,IAAI,GAAG,CAAC,EAAE,GAAG,OAAc,CAAC;QACtE,MAAM,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC;QAE/B,QAAQ,IAAI,EAAE,CAAC;YACb,KAAK,MAAM,CAAC;YACZ,KAAK,SAAS;gBACZ,IAAI,CAAC,eAAe,EAAE,CAAC;oBACrB,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;gBACjE,CAAC;gBACD,OAAO,SAAS,CAAC,eAAe,CAAC;oBAC/B,eAAe,EAAE,eAAe;oBAChC,UAAU;oBACV,CAAC,EAAE,CAAC;oBACJ,MAAM,EAAE,IAAI;iBACb,CAAC,CAAC;YAEL,KAAK,UAAU;gBACb,IAAI,CAAC,eAAe,EAAE,CAAC;oBACrB,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;gBACnE,CAAC;gBACD,OAAO,SAAS,CAAC,cAAc,CAAC;oBAC9B,eAAe;oBACf,UAAU;oBACV,MAAM,EAAE,IAAI;oBACZ,CAAC,EAAE,CAAC;iBACL,CAAC,CAAC;YAEL,KAAK,WAAW;gBACd,IAAI,CAAC,eAAe,EAAE,CAAC;oBACrB,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;gBACpE,CAAC;gBACD,OAAO,SAAS,CAAC,eAAe,CAAC;oBAC/B,eAAe;oBACf,UAAU;oBACV,MAAM,EAAE,IAAI;oBACZ,CAAC,EAAE,CAAC;iBACL,CAAC,CAAC;YAEL,KAAK,SAAS;gBACZ,IAAI,CAAC,eAAe,EAAE,CAAC;oBACrB,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;gBAC9C,CAAC;gBACD,iDAAiD;gBACjD,OAAO,SAAS,CAAC,wBAAwB,CAAC;oBACxC,eAAe;oBACf,UAAU;oBACV,KAAK,EAAE,CAAC;iBACT,CAAC,CAAC;YAEL,KAAK,UAAU;gBACb,IAAI,CAAC,eAAe,EAAE,CAAC;oBACrB,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;gBAC9C,CAAC;gBACD,kDAAkD;gBAClD,OAAO,SAAS,CAAC,yBAAyB,CAAC;oBACzC,eAAe;oBACf,UAAU;oBACV,KAAK,EAAE,CAAC;iBACT,CAAC,CAAC;YAEL,KAAK,UAAU,CAAC;YAChB,KAAK,UAAU,CAAC;YAChB,KAAK,OAAO;gBACV,MAAM,IAAI,KAAK,CACb,UAAU,IAAI,6EAA6E,CAC5F,CAAC;YAEJ;gBACE,MAAM,IAAI,KAAK,CAAC,mCAAmC,IAAI,EAAE,CAAC,CAAC;QAC/D,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACH,QAAQ,CAAC,SAA4B;QACnC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;;;;;;;;;;;OAiBG;IACH,KAAK,CAAC,OAAO,CACX,KAAmB,EACnB,mBAAkD,EAClD,mBAAoC;QAEpC,IAAI,UAAoC,CAAC;QACzC,IAAI,OAAuB,CAAC;QAE5B,mCAAmC;QACnC,IAAI,mBAAmB,YAAY,YAAY,EAAE,CAAC;YAChD,yDAAyD;YACzD,UAAU,GAAG,mBAAmB,CAAC;YACjC,OAAO,GAAG,EAAE,QAAQ,EAAE,CAAC,EAAE,GAAG,mBAAmB,EAAE,CAAC;YAElD,IAAI,UAAU,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,EAAE,CAAC;gBACvC,MAAM,IAAI,KAAK,CACb,sBAAsB,UAAU,CAAC,MAAM,gCAAgC,KAAK,CAAC,MAAM,GAAG,CACvF,CAAC;YACJ,CAAC;QACH,CAAC;aAAM,CAAC;YACN,kEAAkE;YAClE,OAAO,GAAG,EAAE,QAAQ,EAAE,CAAC,EAAE,GAAG,mBAAmB,EAAE,CAAC;YAElD,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;gBACvB,qEAAqE;gBACrE,MAAM,EAAE,GAAG,IAAI,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC,0BAA0B;gBAChE,UAAU,GAAG,IAAI,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gBAC5C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBACtC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;gBACzB,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,qDAAqD;gBACrD,UAAU,GAAG,IAAI,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gBAC5C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBACtC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;gBACpB,CAAC;YACH,CAAC;QACH,CAAC;QAED,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;QAEpC,wCAAwC;QACxC,IAAI,OAAO,CAAC,oBAAoB,IAAI,UAAU,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;YACrE,IACE,CAAC,IAAI,CAAC,aAAa;gBACnB,IAAI,CAAC,aAAa,CAAC,qBAAqB,EAAE,KAAK,OAAO,CAAC,UAAU,EACjE,CAAC;gBACD,iEAAiE;gBACjE,IAAI,CAAC,aAAa,GAAG,IAAI,aAAa,CAAC;oBACrC,kBAAkB,EAAE,OAAO,CAAC,UAAU;oBACtC,cAAc,EAAE,OAAO,CAAC,cAAc,IAAI,EAAE;oBAC5C,eAAe,EAAE,OAAO,CAAC,eAAe;iBACzC,CAAC,CAAC;YACL,CAAC;YACD,qCAAqC;YACrC,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;QAC9C,CAAC;QAED,IAAI,CAAC;YACH,qBAAqB;YACrB,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,8BAA8B,EAAE;gBACpD,WAAW,EAAE,KAAK,CAAC,MAAM;gBACzB,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM;gBAC1B,IAAI,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,YAAY;aACzD,CAAC,CAAC;YAEH,sCAAsC;YACtC,wEAAwE;YACxE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAC9C,KAAK,EACL,UAAU,EACV,OAAO,CACR,CAAC;YAEF,iDAAiD;YACjD,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACjC,KAAK,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;oBACxD,IAAI,CAAC;wBACH,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;oBAC9B,CAAC;oBAAC,OAAO,QAAQ,EAAE,CAAC;wBAClB,0CAA0C;wBAC1C,OAAO,CAAC,KAAK,CAAC,yBAAyB,SAAS,GAAG,EAAE,QAAQ,CAAC,CAAC;oBACjE,CAAC;gBACH,CAAC;YACH,CAAC;YAED,8DAA8D;YAC9D,IAAI,IAAI,CAAC,SAAS,EAAE,OAAO,EAAE,CAAC;gBAC5B,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,UAAU,CAAC;gBACxD,MAAM,KAAK,GAAgB;oBACzB,KAAK,EAAE,SAAS;oBAChB,OAAO,EAAE,MAAM;oBACf,UAAU,EAAE,CAAC;oBACb,KAAK,EAAE,MAAM,CAAC,MAAM;iBACrB,CAAC;gBACF,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAChC,CAAC;YAED,8DAA8D;YAC9D,mDAAmD;YACnD,IAAI,IAAI,CAAC,SAAS,EAAE,QAAQ,EAAE,CAAC;gBAC7B,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,UAAU,CAAC;gBACxD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBACvC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC;gBACnD,CAAC;YACH,CAAC;YAED,mCAAmC;YACnC,IAAI,IAAI,CAAC,SAAS,EAAE,eAAe,EAAE,CAAC;gBACpC,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;gBAC/C,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,UAAU,CAAC;gBAC3D,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;YACzD,CAAC;YAED,0BAA0B;YAC1B,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;YAC/C,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,+BAA+B,EAAE;gBACpD,UAAU,EAAE,QAAQ;gBACpB,WAAW,EAAE,MAAM,CAAC,MAAM;aAC3B,CAAC,CAAC;YAEH,mCAAmC;YACnC,IAAI,CAAC,SAAS,EAAE,CAAC;YAEjB,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,GAAG,GAAG,KAAc,CAAC;YAE3B,2BAA2B;YAC3B,IAAI,IAAI,CAAC,SAAS,EAAE,OAAO,EAAE,CAAC;gBAC5B,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,UAAU,CAAC;gBAC3D,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC;YAC5C,CAAC;YAED,qBAAqB;YACrB,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,4BAA4B,EAAE;gBAClD,KAAK,EAAE,GAAG,CAAC,OAAO;gBAClB,KAAK,EAAE,GAAG,CAAC,KAAK;aACjB,CAAC,CAAC;YAEH,2BAA2B;YAC3B,IAAI,CAAC,SAAS,EAAE,CAAC;YAEjB,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;;;;;OAgBG;IACH,KAAK,CAAC,WAAW,CACf,KAAmB,EACnB,mBAAkD,EAClD,mBAAoC;QAEpC,yCAAyC;QACzC,MAAM,IAAI,GAAG,IAAI,YAAY,CAAC,KAAK,CAAC,CAAC;QAErC,+DAA+D;QAC/D,IAAI,mBAAmB,YAAY,YAAY,EAAE,CAAC;YAChD,yDAAyD;YACzD,MAAM,cAAc,GAAG,IAAI,YAAY,CAAC,mBAAmB,CAAC,CAAC;YAC7D,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,cAAc,EAAE,mBAAoB,CAAC,CAAC;QACxE,CAAC;aAAM,CAAC;YACN,yCAAyC;YACzC,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,mBAAmB,CAAC,CAAC;QACvD,CAAC;IACH,CAAC;IAED;;;;;;;;;OASG;IACH,KAAK,CAAC,SAAS;QACb,OAAO,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,CAAC;IACzC,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,KAAK,CAAC,SAAS,CAAC,SAAiB;QAC/B,OAAO,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;IAClD,CAAC;IAED;;;;;;OAMG;IACH,UAAU;QACR,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,CAAC;IACnC,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACH,SAAS;QACP,OAAO,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,CAAC;IACzC,CAAC;CACF;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,iBAAiB,CAAC,MAAoB;IACpD,MAAM,cAAc,GAAG,IAAI,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IACxD,OAAO,IAAI,YAAY,CAAC,cAAc,CAAC,CAAC;AAC1C,CAAC;AAED,OAAO,EAAE,YAAY,EAAE,CAAC;AAexB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4DG;AACH,MAAM,UAAU,YAAY,CAC1B,eAA6B,EAC7B,WAAmB;IAEnB,IAAI,CAAC,CAAC,eAAe,YAAY,YAAY,CAAC,EAAE,CAAC;QAC/C,MAAM,IAAI,SAAS,CAAC,sDAAsD,CAAC,CAAC;IAC9E,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,WAAW,IAAI,CAAC,EAAE,CAAC;QACvD,MAAM,IAAI,SAAS,CAAC,sDAAsD,CAAC,CAAC;IAC9E,CAAC;IAED,OAAO,QAAQ,CAAC,YAAY,CAAC,eAAe,EAAE,WAAW,CAAC,CAAC;AAC7D,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyDG;AACH,MAAM,UAAU,kBAAkB,CAChC,eAA6B,EAC7B,WAAmB,EACnB,iBAAyB,IAAI;IAE7B,IAAI,CAAC,CAAC,eAAe,YAAY,YAAY,CAAC,EAAE,CAAC;QAC/C,MAAM,IAAI,SAAS,CACjB,4DAA4D,CAC7D,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,WAAW,IAAI,CAAC,EAAE,CAAC;QACvD,MAAM,IAAI,SAAS,CACjB,4DAA4D,CAC7D,CAAC;IACJ,CAAC;IACD,IAAI,cAAc,IAAI,CAAC,EAAE,CAAC;QACxB,MAAM,IAAI,UAAU,CAAC,qDAAqD,CAAC,CAAC;IAC9E,CAAC;IAED,OAAO,QAAQ,CAAC,kBAAkB,CAChC,eAAe,EACf,WAAW,EACX,cAAc,CACf,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkEG;AACH,MAAM,UAAU,YAAY,CAC1B,eAA6B,EAC7B,WAAmB,EACnB,gBAAwB,GAAG,EAC3B,YAAoB,IAAI;IAExB,IAAI,CAAC,CAAC,eAAe,YAAY,YAAY,CAAC,EAAE,CAAC;QAC/C,MAAM,IAAI,SAAS,CAAC,sDAAsD,CAAC,CAAC;IAC9E,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,WAAW,IAAI,CAAC,EAAE,CAAC;QACvD,MAAM,IAAI,SAAS,CAAC,sDAAsD,CAAC,CAAC;IAC9E,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,aAAa,IAAI,CAAC,EAAE,CAAC;QAC3D,MAAM,IAAI,SAAS,CACjB,wDAAwD,CACzD,CAAC;IACJ,CAAC;IACD,IAAI,SAAS,IAAI,CAAC,EAAE,CAAC;QACnB,MAAM,IAAI,UAAU,CAAC,0CAA0C,CAAC,CAAC;IACnE,CAAC;IAED,OAAO,QAAQ,CAAC,YAAY,CAC1B,eAAe,EACf,WAAW,EACX,aAAa,EACb,SAAS,CACV,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgEG;AACH,MAAM,UAAU,0BAA0B,CACxC,WAAmB,EACnB,aAA+C,EAC/C,cAAsB,EACtB,iBAAyB,GAAG;IAE5B,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,WAAW,GAAG,CAAC,EAAE,CAAC;QACtD,MAAM,IAAI,UAAU,CAClB,sDAAsD,CACvD,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,CAAC,QAAQ,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;QAC9D,MAAM,IAAI,SAAS,CACjB,qFAAqF,CACtF,CAAC;IACJ,CAAC;IACD,IAAI,OAAO,cAAc,KAAK,QAAQ,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;QACpE,MAAM,IAAI,SAAS,CACjB,oEAAoE,CACrE,CAAC;IACJ,CAAC;IACD,IAAI,OAAO,cAAc,KAAK,QAAQ,IAAI,cAAc,IAAI,CAAC,EAAE,CAAC;QAC9D,MAAM,IAAI,UAAU,CAClB,6DAA6D,CAC9D,CAAC;IACJ,CAAC;IAED,OAAO,QAAQ,CAAC,0BAA0B,CACxC,WAAW,EACX,aAAa,EACb,cAAc,EACd,cAAc,CACf,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqGG;AACH,MAAM,UAAU,8BAA8B,CAC5C,UAAwB,EACxB,UAAwB,EACxB,WAAmB,EACnB,UAAmB;IAEnB,IAAI,CAAC,CAAC,UAAU,YAAY,YAAY,CAAC,EAAE,CAAC;QAC1C,MAAM,IAAI,SAAS,CACjB,mEAAmE,CACpE,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,CAAC,UAAU,YAAY,YAAY,CAAC,EAAE,CAAC;QAC1C,MAAM,IAAI,SAAS,CACjB,mEAAmE,CACpE,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,WAAW,IAAI,CAAC,EAAE,CAAC;QACvD,MAAM,IAAI,SAAS,CACjB,wEAAwE,CACzE,CAAC;IACJ,CAAC;IACD,IACE,UAAU,KAAK,SAAS;QACxB,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC;YAC5B,UAAU,IAAI,CAAC;YACf,UAAU,GAAG,WAAW,CAAC,EAC3B,CAAC;QACD,MAAM,IAAI,UAAU,CAClB,8EAA8E,CAC/E,CAAC;IACJ,CAAC;IAED,OAAO,QAAQ,CAAC,8BAA8B,CAC5C,UAAU,EACV,UAAU,EACV,WAAW,EACX,UAAU,CACX,CAAC;AACJ,CAAC"}
package/dist/types.d.ts CHANGED
@@ -912,6 +912,29 @@ export interface PeakDetectionParams {
912
912
  * Example: 0.5 detects peaks above 50% amplitude.
913
913
  */
914
914
  threshold: number;
915
+ /** * Processing mode:
916
+ * - 'moving' (default): Stateful, detects peaks across buffer boundaries.
917
+ * - 'batch': Stateless, detects peaks only within the current buffer.
918
+ */
919
+ mode?: "moving" | "batch";
920
+ /** * Signal domain:
921
+ * - 'time' (default): Operates on a time-series signal.
922
+ * - 'frequency': Operates on a frequency spectrum.
923
+ */
924
+ domain?: "time" | "frequency";
925
+ /**
926
+ * The number of samples in the local neighborhood to check.
927
+ * Must be an odd number >= 3. (e.g., 3, 5, 7).
928
+ * Default: 3.
929
+ * @note In 'moving' mode, this is locked to 3. It is only flexible in 'batch' mode.
930
+ * @note The highly optimized SIMD implementation is used only for `windowSize = 3`. Other sizes will use a slower scalar implementation.
931
+ */
932
+ windowSize?: number;
933
+ /**
934
+ * The minimum number of samples between two consecutive peaks.
935
+ * Default: 1 (all peaks are kept).
936
+ */
937
+ minPeakDistance?: number;
915
938
  }
916
939
  /**
917
940
  * Parameters for Integrator stage (leaky integrator using IIR filter)