@stella_project/stellalib 1.1.31 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -72,6 +72,16 @@ class StellaPlayer {
72
72
  voiceReady = false;
73
73
  /** @hidden */
74
74
  voiceReadyResolvers = [];
75
+ /** Active SponsorBlock categories for this player. */
76
+ sponsorBlockCategories = [];
77
+ /** Crossfade configuration. */
78
+ crossfadeOptions = { duration: 0 };
79
+ /** Crossfade interval timer. */
80
+ crossfadeTimer;
81
+ /** Whether auto-ducking is active. */
82
+ autoDuckActive = false;
83
+ /** Volume before ducking was applied. */
84
+ preDuckVolume = 0;
75
85
  /**
76
86
  * Set custom data.
77
87
  * @param key
@@ -274,6 +284,45 @@ class StellaPlayer {
274
284
  this.state = "DISCONNECTED";
275
285
  return this;
276
286
  }
287
+ /**
288
+ * Silently re-identifies the voice connection without clearing the queue or filters.
289
+ * Used for "hot-swapping" when Discord rotates voice servers (code 4015/4000).
290
+ * The user hears a ~1s gap, then music resumes automatically.
291
+ */
292
+ async reconnectVoice() {
293
+ if (!this.voiceChannel)
294
+ throw new Error("No voice channel to reconnect to.");
295
+ this.manager.emit("Debug", `[Player:${this.guild}] Voice hot-swap: re-identifying to ${this.voiceChannel}`);
296
+ this.voiceReady = false;
297
+ this.state = "CONNECTING";
298
+ // Re-send the voice state to Discord to get a fresh token/endpoint
299
+ this.manager.options.send(this.guild, {
300
+ op: 4,
301
+ d: {
302
+ guild_id: this.guild,
303
+ channel_id: this.voiceChannel,
304
+ self_mute: this.options.selfMute || false,
305
+ self_deaf: this.options.selfDeafen || false,
306
+ },
307
+ });
308
+ // Wait for voice to be ready again (Discord will send new VOICE_STATE_UPDATE + VOICE_SERVER_UPDATE)
309
+ await this.waitForVoice(10000);
310
+ // Resume playback at the current position
311
+ if (this.queue.current && this.playing) {
312
+ const resumePosition = this.position;
313
+ await this.node.rest.updatePlayer({
314
+ guildId: this.guild,
315
+ data: {
316
+ encodedTrack: this.queue.current.track,
317
+ position: resumePosition,
318
+ volume: this.volume,
319
+ paused: this.paused,
320
+ },
321
+ });
322
+ this.manager.emit("Debug", `[Player:${this.guild}] Voice hot-swap: resumed at ${resumePosition}ms`);
323
+ }
324
+ this.state = "CONNECTED";
325
+ }
277
326
  /** Destroys the player, cleaning up all timers and resources. */
278
327
  destroy(disconnect = true) {
279
328
  this.state = "DESTROYING";
@@ -449,10 +498,10 @@ class StellaPlayer {
449
498
  * Sets the player volume.
450
499
  * @param volume
451
500
  */
452
- setVolume(volume) {
501
+ async setVolume(volume) {
453
502
  if (isNaN(volume))
454
503
  throw new TypeError("Volume must be a number.");
455
- this.node.rest.updatePlayer({
504
+ await this.node.rest.updatePlayer({
456
505
  guildId: this.options.guild,
457
506
  data: { volume },
458
507
  });
@@ -521,25 +570,25 @@ class StellaPlayer {
521
570
  return this;
522
571
  }
523
572
  /** Restarts the current track to the start. */
524
- restart() {
573
+ async restart() {
525
574
  if (!this.queue.current?.track) {
526
575
  if (this.queue.length)
527
576
  this.play();
528
577
  return;
529
578
  }
530
- this.node.rest.updatePlayer({
579
+ await this.node.rest.updatePlayer({
531
580
  guildId: this.guild,
532
581
  data: { position: 0, encodedTrack: this.queue.current?.track },
533
582
  });
534
583
  }
535
584
  /** Stops the current track, optionally give an amount to skip to. */
536
- stop(amount) {
585
+ async stop(amount) {
537
586
  if (typeof amount === "number" && amount > 1) {
538
587
  if (amount > this.queue.length)
539
588
  throw new RangeError("Cannot skip more than the queue length.");
540
589
  this.queue.splice(0, amount - 1);
541
590
  }
542
- this.node.rest.updatePlayer({
591
+ await this.node.rest.updatePlayer({
543
592
  guildId: this.guild,
544
593
  data: { encodedTrack: null },
545
594
  });
@@ -549,7 +598,7 @@ class StellaPlayer {
549
598
  * Pauses the current track.
550
599
  * @param pause
551
600
  */
552
- pause(pause) {
601
+ async pause(pause) {
553
602
  if (typeof pause !== "boolean")
554
603
  throw new RangeError('Pause can only be "true" or "false".');
555
604
  if (this.paused === pause || !this.queue.totalSize)
@@ -557,7 +606,7 @@ class StellaPlayer {
557
606
  const oldPlayer = { ...this };
558
607
  this.playing = !pause;
559
608
  this.paused = pause;
560
- this.node.rest.updatePlayer({
609
+ await this.node.rest.updatePlayer({
561
610
  guildId: this.guild,
562
611
  data: { paused: pause },
563
612
  });
@@ -576,7 +625,7 @@ class StellaPlayer {
576
625
  * Seeks to the position in the current track.
577
626
  * @param position
578
627
  */
579
- seek(position) {
628
+ async seek(position) {
580
629
  if (!this.queue.current)
581
630
  return undefined;
582
631
  position = Number(position);
@@ -585,7 +634,7 @@ class StellaPlayer {
585
634
  if (position < 0 || position > this.queue.current.duration)
586
635
  position = Math.max(Math.min(position, this.queue.current.duration), 0);
587
636
  this.position = position;
588
- this.node.rest.updatePlayer({
637
+ await this.node.rest.updatePlayer({
589
638
  guildId: this.guild,
590
639
  data: { position },
591
640
  });
@@ -645,6 +694,187 @@ class StellaPlayer {
645
694
  return Infinity;
646
695
  return Math.max(0, this.maxQueueSize - this.queue.length);
647
696
  }
697
+ // ── SponsorBlock Integration ─────────────────────────────────────────
698
+ /**
699
+ * Sets SponsorBlock categories to auto-skip for this player.
700
+ * Requires the SponsorBlock Lavalink plugin.
701
+ *
702
+ * @param categories The categories to skip (e.g., ["sponsor", "selfpromo", "intro"]).
703
+ * @example
704
+ * ```ts
705
+ * player.setSponsorBlock(["sponsor", "selfpromo", "interaction"]);
706
+ * ```
707
+ */
708
+ async setSponsorBlock(categories) {
709
+ await this.node.rest.setSponsorBlock(this.guild, categories);
710
+ this.sponsorBlockCategories = [...categories];
711
+ this.manager.emit("Debug", `[Player:${this.guild}] SponsorBlock categories set: ${categories.join(", ")}`);
712
+ }
713
+ /**
714
+ * Gets the current SponsorBlock categories for this player.
715
+ * @returns The active SponsorBlock segments from the server.
716
+ */
717
+ async getSponsorBlock() {
718
+ return await this.node.rest.getSponsorBlock(this.guild);
719
+ }
720
+ /**
721
+ * Removes all SponsorBlock categories from this player.
722
+ */
723
+ async clearSponsorBlock() {
724
+ await this.node.rest.deleteSponsorBlock(this.guild);
725
+ this.sponsorBlockCategories = [];
726
+ this.manager.emit("Debug", `[Player:${this.guild}] SponsorBlock categories cleared`);
727
+ }
728
+ /**
729
+ * Returns the locally-cached SponsorBlock categories.
730
+ * Does not make a REST call — use getSponsorBlock() for live data.
731
+ */
732
+ get sponsorBlock() {
733
+ return [...this.sponsorBlockCategories];
734
+ }
735
+ // ── Crossfade Emulation ──────────────────────────────────────────────
736
+ /**
737
+ * Sets the crossfade duration for track transitions.
738
+ * When enabled, the current track's volume fades out over the specified duration
739
+ * before the next track starts, creating a smooth audio transition.
740
+ *
741
+ * @param durationMs Crossfade duration in milliseconds (0 = disabled).
742
+ * @example
743
+ * ```ts
744
+ * player.setCrossfade(5000); // 5-second crossfade
745
+ * player.setCrossfade(0); // Disable crossfade
746
+ * ```
747
+ */
748
+ setCrossfade(durationMs) {
749
+ if (durationMs < 0)
750
+ throw new RangeError("Crossfade duration must be >= 0.");
751
+ this.crossfadeOptions = { duration: durationMs };
752
+ this.clearCrossfadeTimer();
753
+ if (durationMs > 0) {
754
+ this.startCrossfadeMonitor();
755
+ }
756
+ this.manager.emit("Debug", `[Player:${this.guild}] Crossfade set to ${durationMs}ms`);
757
+ }
758
+ /** Returns the current crossfade duration in ms. */
759
+ get crossfadeDuration() {
760
+ return this.crossfadeOptions.duration;
761
+ }
762
+ /**
763
+ * Monitors track position and triggers volume fade-out when approaching track end.
764
+ * @hidden
765
+ */
766
+ startCrossfadeMonitor() {
767
+ this.clearCrossfadeTimer();
768
+ if (this.crossfadeOptions.duration <= 0)
769
+ return;
770
+ this.crossfadeTimer = setInterval(() => {
771
+ if (!this.playing || !this.queue.current) {
772
+ this.clearCrossfadeTimer();
773
+ return;
774
+ }
775
+ const trackDuration = this.queue.current.duration ?? 0;
776
+ if (trackDuration <= 0 || this.queue.current.isStream)
777
+ return;
778
+ const remaining = trackDuration - this.position;
779
+ const fadeDuration = this.crossfadeOptions.duration;
780
+ if (remaining <= fadeDuration && remaining > 0 && this.queue.length > 0) {
781
+ this.clearCrossfadeTimer();
782
+ this.executeCrossfade(remaining);
783
+ }
784
+ }, 500);
785
+ }
786
+ /**
787
+ * Executes the crossfade by gradually reducing volume.
788
+ * @hidden
789
+ */
790
+ executeCrossfade(remainingMs) {
791
+ const originalVolume = this.volume;
792
+ const steps = Math.max(5, Math.floor(remainingMs / 200));
793
+ const volumeStep = originalVolume / steps;
794
+ let currentStep = 0;
795
+ const nextTrack = this.queue[0];
796
+ if (nextTrack) {
797
+ this.manager.emit("CrossfadeStart", this, this.queue.current, nextTrack);
798
+ }
799
+ const fadeInterval = setInterval(() => {
800
+ currentStep++;
801
+ const newVolume = Math.max(0, Math.round(originalVolume - (volumeStep * currentStep)));
802
+ this.node.rest.updatePlayer({
803
+ guildId: this.guild,
804
+ data: { volume: newVolume },
805
+ }).catch(() => { });
806
+ if (currentStep >= steps) {
807
+ clearInterval(fadeInterval);
808
+ // Restore volume for next track (will be applied on TrackStart)
809
+ this.volume = originalVolume;
810
+ }
811
+ }, Math.floor(remainingMs / steps));
812
+ }
813
+ /** Clears the crossfade monitor timer. @hidden */
814
+ clearCrossfadeTimer() {
815
+ if (this.crossfadeTimer) {
816
+ clearInterval(this.crossfadeTimer);
817
+ this.crossfadeTimer = undefined;
818
+ }
819
+ }
820
+ // ── Auto-Ducking ─────────────────────────────────────────────────────
821
+ /**
822
+ * Enables auto-ducking: reduces music volume temporarily.
823
+ * Useful when TTS or voice announcements play over music.
824
+ *
825
+ * @param duckVolume The volume to duck to (0-100, default: 20).
826
+ * @example
827
+ * ```ts
828
+ * player.duck(20); // Duck to 20% volume
829
+ * // ... TTS plays ...
830
+ * player.unduck(); // Restore original volume
831
+ * ```
832
+ */
833
+ async duck(duckVolume = 20) {
834
+ if (this.autoDuckActive)
835
+ return;
836
+ this.preDuckVolume = this.volume;
837
+ this.autoDuckActive = true;
838
+ await this.node.rest.updatePlayer({
839
+ guildId: this.guild,
840
+ data: { volume: duckVolume },
841
+ });
842
+ this.manager.emit("Debug", `[Player:${this.guild}] Auto-ducking: ${this.preDuckVolume} → ${duckVolume}`);
843
+ }
844
+ /**
845
+ * Restores volume after auto-ducking.
846
+ */
847
+ async unduck() {
848
+ if (!this.autoDuckActive)
849
+ return;
850
+ this.autoDuckActive = false;
851
+ const restoreVolume = this.preDuckVolume || this.volume;
852
+ await this.node.rest.updatePlayer({
853
+ guildId: this.guild,
854
+ data: { volume: restoreVolume },
855
+ });
856
+ this.volume = restoreVolume;
857
+ this.manager.emit("Debug", `[Player:${this.guild}] Auto-ducking restored to ${restoreVolume}`);
858
+ }
859
+ /** Whether the player is currently ducked. */
860
+ get isDucked() {
861
+ return this.autoDuckActive;
862
+ }
863
+ // ── Buffer Duration ──────────────────────────────────────────────────
864
+ /**
865
+ * Sets the buffer duration for the player's audio stream.
866
+ * Higher values improve stability on bad networks but increase latency.
867
+ * Requires Lavalink v4 with buffer support.
868
+ *
869
+ * @param durationMs Buffer duration in ms (default depends on Lavalink config).
870
+ */
871
+ async setBufferDuration(durationMs) {
872
+ if (durationMs < 0)
873
+ throw new RangeError("Buffer duration must be >= 0.");
874
+ this.set("bufferDuration", durationMs);
875
+ this.manager.emit("Debug", `[Player:${this.guild}] Buffer duration set to ${durationMs}ms`);
876
+ }
877
+ // ── State & Persistence ──────────────────────────────────────────────
648
878
  /**
649
879
  * Returns a snapshot of the player's current state.
650
880
  * Useful for persistence, debugging, or manual resume.
@@ -1 +1 @@
1
- {"version":3,"file":"Player.js","sourceRoot":"","sources":["../../src/Structures/Player.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Player.js","sourceRoot":"","sources":["../../src/Structures/Player.ts"],"names":[],"mappings":";;;;;;AAgCA,uCAAoC;AAEpC,mCAAgD;AAChD,uEAA+C;AAE/C,MAAa,YAAY;IA0GL;IAzGnB,gCAAgC;IAChB,KAAK,GAAG,IAAI,CAAC,iBAAS,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,EAAiB,CAAC;IACtE,wCAAwC;IACjC,OAAO,CAAU;IACxB,2CAA2C;IACpC,WAAW,GAAG,KAAK,CAAC;IAC3B,2CAA2C;IACpC,WAAW,GAAG,KAAK,CAAC;IAC3B,8DAA8D;IACvD,aAAa,GAAG,KAAK,CAAC;IAC7B,2CAA2C;IACpC,QAAQ,GAAG,CAAC,CAAC;IACpB,qCAAqC;IAC9B,OAAO,GAAG,KAAK,CAAC;IACvB,oCAAoC;IAC7B,MAAM,GAAG,KAAK,CAAC;IACtB,iCAAiC;IAC1B,MAAM,CAAS;IACtB,+BAA+B;IACxB,IAAI,CAAa;IACxB,gCAAgC;IACzB,KAAK,CAAS;IACrB,wCAAwC;IACjC,YAAY,GAAkB,IAAI,CAAC;IAC1C,uCAAuC;IAChC,WAAW,GAAkB,IAAI,CAAC;IACzC,uCAAuC;IAChC,KAAK,GAAU,cAAc,CAAC;IACrC,iCAAiC;IAC1B,KAAK,GAAG,IAAI,KAAK,CAAS,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC/C,2CAA2C;IACpC,UAAU,CAAa;IAC9B,mBAAmB;IACZ,OAAO,CAAgB;IAC9B,wCAAwC;IACjC,UAAU,GAAG,KAAK,CAAC;IAC1B,mEAAmE;IAC5D,eAAe,GAAa,EAAE,CAAC;IACtC,mDAAmD;IAC5C,MAAM,CAAU,oBAAoB,GAAG,EAAE,CAAC;IACjD,8EAA8E;IACvE,gBAAgB,GAA2F,EAAE,CAAC;IACrH,0BAA0B;IACnB,MAAM,CAAU,aAAa,GAAG,CAAC,CAAC;IACzC,4GAA4G;IACrG,cAAc,GAAgG,IAAI,CAAC;IAC1H,6CAA6C;IACtC,SAAS,GAAG,KAAK,CAAC;IACzB,0CAA0C;IACnC,IAAI,GAAG,CAAC,CAAC,CAAC;IAEjB,iFAAiF;IAC1E,iBAAiB,CAAS;IACjC,0CAA0C;IACnC,YAAY,CAAS;IAEpB,MAAM,CAAC,QAAQ,CAAgB;IACtB,IAAI,GAA4B,EAAE,CAAC;IAC5C,mBAAmB,CAAkC;IAC7D,4CAA4C;IACpC,eAAe,CAAiC;IAExD,0DAA0D;IACnD,UAAU,GAAG,KAAK,CAAC;IAC1B,cAAc;IACP,mBAAmB,GAAsB,EAAE,CAAC;IAEnD,sDAAsD;IAC9C,sBAAsB,GAA2B,EAAE,CAAC;IAE5D,+BAA+B;IACvB,gBAAgB,GAAqB,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;IAC7D,gCAAgC;IACxB,cAAc,CAAkC;IACxD,sCAAsC;IAC9B,cAAc,GAAG,KAAK,CAAC;IAC/B,yCAAyC;IACjC,aAAa,GAAG,CAAC,CAAC;IAE1B;;;;OAIG;IACI,GAAG,CAAC,GAAW,EAAE,KAAc;QACrC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IACxB,CAAC;IAED;;;OAGG;IACI,GAAG,CAAI,GAAW;QACxB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAM,CAAC;IAC5B,CAAC;IAED,cAAc;IACP,MAAM,CAAC,IAAI,CAAC,OAAsB;QACxC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;IACzB,CAAC;IAED;;;OAGG;IACH,YAAmB,OAAsB;QAAtB,YAAO,GAAP,OAAO,CAAe;QACxC,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,IAAI,CAAC,OAAO,GAAG,iBAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC;QACnE,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,UAAU,CAAC,iCAAiC,CAAC,CAAC;QAE3E,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC;YAC1C,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAE,CAAC;QAEjD,IAAA,qBAAW,EAAC,OAAO,CAAC,CAAC;QAErB,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAC3B,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC;YAC/B,EAAE,EAAE,aAAsB;YAC1B,OAAO,EAAE,OAAO,CAAC,KAAK;SACtB,CAAC,CAAC;QAEH,IAAI,OAAO,CAAC,YAAY;YAAE,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;QACnE,IAAI,OAAO,CAAC,WAAW;YAAE,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;QAEhE,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,IAAK,CAAC,CAAC;QACnD,IAAI,CAAC,IAAI,GAAG,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC;QAE9C,IAAI,CAAC,IAAI,CAAC,IAAI;YAAE,MAAM,IAAI,UAAU,CAAC,qBAAqB,CAAC,CAAC;QAE5D,IAAI,CAAC,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,IAAI,CAAC,CAAC;QACxD,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,IAAI,CAAC,CAAC;QAE9C,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAC9C,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;QACxC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;QACrC,IAAI,CAAC,OAAO,GAAG,IAAI,iBAAO,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;IAED;;;;OAIG;IACI,MAAM,CAAC,KAA2B,EAAE,SAAkB;QAC5D,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IAC9C,CAAC;IAED,oCAAoC;IAC7B,OAAO;QACb,IAAI,CAAC,IAAI,CAAC,YAAY;YAAE,MAAM,IAAI,UAAU,CAAC,gCAAgC,CAAC,CAAC;QAC/E,IAAI,CAAC,KAAK,GAAG,YAAY,CAAC;QAE1B,IAAI,CAAC,OAAO,CAAC,IAAI,CAChB,OAAO,EACP,WAAW,IAAI,CAAC,KAAK,iCAAiC,IAAI,CAAC,YAAY,EAAE,CACzE,CAAC;QAEF,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;YACrC,EAAE,EAAE,CAAC;YACL,CAAC,EAAE;gBACF,QAAQ,EAAE,IAAI,CAAC,KAAK;gBACpB,UAAU,EAAE,IAAI,CAAC,YAAY;gBAC7B,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,KAAK;gBACzC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,KAAK;aAC3C;SACD,CAAC,CAAC;QAEH,IAAI,CAAC,KAAK,GAAG,WAAW,CAAC;QACzB,OAAO,IAAI,CAAC;IACb,CAAC;IAED;;;OAGG;IACI,YAAY,CAAC,OAAO,GAAG,KAAK;QAClC,IAAI,IAAI,CAAC,UAAU;YAAE,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;QAE9C,IAAI,CAAC,OAAO,CAAC,IAAI,CAChB,OAAO,EACP,WAAW,IAAI,CAAC,KAAK,kDAAkD,CACvE,CAAC;QAEF,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACtC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;gBAC7B,MAAM,GAAG,GAAG,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;gBACtD,IAAI,GAAG,KAAK,CAAC,CAAC;oBAAE,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBACxD,MAAM,CAAC,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC,CAAC;YACjD,CAAC,EAAE,OAAO,CAAC,CAAC;YAEZ,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,GAAG,EAAE;gBAClC,YAAY,CAAC,KAAK,CAAC,CAAC;gBACpB,OAAO,EAAE,CAAC;YACX,CAAC,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;IACJ,CAAC;IAED;;;OAGG;IACI,KAAK,CAAC,QAAQ,CAAC,IAAa;QAClC,MAAM,QAAQ,GACb,IAAI;YACJ,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,UAAU;YACpE,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAa,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC;QAE3F,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC;YACjD,MAAM,IAAI,UAAU,CAAC,qBAAqB,CAAC,CAAC;QAC7C,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,KAAK,QAAQ;YAAE,OAAO,IAAI,CAAC;QAE3D,+CAA+C;QAC/C,IAAI,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC9B,aAAa,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;YACxC,IAAI,CAAC,mBAAmB,GAAG,SAAS,CAAC;QACtC,CAAC;QAED,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC;QAC9B,MAAM,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAE,CAAC;QAC1D,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAE7B,gFAAgF;QAChF,IAAI,WAAW,CAAC,SAAS,EAAE,CAAC;YAC3B,IAAI,CAAC;gBACJ,MAAM,aAAa,GAAG,CAAC,MAAM,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CACX,CAAC;gBACzD,QAAQ,GAAG,aAAa,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC;YAClE,CAAC;YAAC,MAAM,CAAC;gBACR,+CAA+C;YAChD,CAAC;QACF,CAAC;QAED,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC;QAEtB,qEAAqE;QACrE,IAAI,IAAI,CAAC,UAAU,EAAE,SAAS,IAAI,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE,CAAC;YAC1D,MAAM,eAAe,CAAC,IAAI,CAAC,YAAY,CAAC;gBACvC,OAAO,EAAE,IAAI,CAAC,KAAK;gBACnB,IAAI,EAAE;oBACL,KAAK,EAAE;wBACN,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK;wBAClC,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,QAAQ;wBACxC,SAAS,EAAE,IAAI,CAAC,UAAU,CAAC,SAAS;wBACpC,SAAS,EAAE,IAAI,CAAC,YAAY,IAAI,SAAS;qBACzC;iBACD;aACD,CAAC,CAAC;QACJ,CAAC;QAED,kEAAkE;QAClE,MAAM,eAAe,CAAC,IAAI,CAAC,YAAY,CAAC;YACvC,OAAO,EAAE,IAAI,CAAC,KAAK;YACnB,IAAI,EAAE;gBACL,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK;gBACvC,QAAQ;gBACR,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,OAAO,EAAE;oBACR,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU;oBACnC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS;oBACjC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO;oBAC7B,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ;oBAC/B,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS;oBACjC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO;oBAC7B,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM;iBAC3B;aACD;SACD,CAAC,CAAC;QAEH,wBAAwB;QACxB,MAAM,SAAS,GAAG,WAAW,CAAC,OAAO,CAAC,UAAW,CAAC;QAClD,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC;QAE5B,wDAAwD;QACxD,IAAI,WAAW,CAAC,SAAS,EAAE,CAAC;YAC3B,WAAW,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAC5D,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,IAAI,CAChB,OAAO,EACP,WAAW,IAAI,CAAC,KAAK,gBAAgB,SAAS,MAAM,eAAe,CAAC,OAAO,CAAC,UAAU,UAAU,QAAQ,KAAK,CAC7G,CAAC;QAEF,UAAU,CAAC,GAAG,EAAE;YACf,IAAI,IAAI,CAAC,KAAK,KAAK,QAAQ;gBAAE,IAAI,CAAC,KAAK,GAAG,WAAW,CAAC;QACvD,CAAC,EAAE,IAAI,CAAC,CAAC;QAET,OAAO,IAAI,CAAC;IACb,CAAC;IAED,yCAAyC;IAClC,UAAU;QAChB,IAAI,IAAI,CAAC,YAAY,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC;QAC5C,IAAI,CAAC,KAAK,GAAG,eAAe,CAAC;QAE7B,mCAAmC;QACnC,IAAI,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC9B,aAAa,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;YACxC,IAAI,CAAC,mBAAmB,GAAG,SAAS,CAAC;QACtC,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACjB,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;YACrC,EAAE,EAAE,CAAC;YACL,CAAC,EAAE;gBACF,QAAQ,EAAE,IAAI,CAAC,KAAK;gBACpB,UAAU,EAAE,IAAI;gBAChB,SAAS,EAAE,KAAK;gBAChB,SAAS,EAAE,KAAK;aAChB;SACD,CAAC,CAAC;QAEH,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QACxB,IAAI,CAAC,KAAK,GAAG,cAAc,CAAC;QAC5B,OAAO,IAAI,CAAC;IACb,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,cAAc;QAC1B,IAAI,CAAC,IAAI,CAAC,YAAY;YAAE,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;QAE7E,IAAI,CAAC,OAAO,CAAC,IAAI,CAChB,OAAO,EACP,WAAW,IAAI,CAAC,KAAK,uCAAuC,IAAI,CAAC,YAAY,EAAE,CAC/E,CAAC;QAEF,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QACxB,IAAI,CAAC,KAAK,GAAG,YAAY,CAAC;QAE1B,mEAAmE;QACnE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;YACrC,EAAE,EAAE,CAAC;YACL,CAAC,EAAE;gBACF,QAAQ,EAAE,IAAI,CAAC,KAAK;gBACpB,UAAU,EAAE,IAAI,CAAC,YAAY;gBAC7B,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,KAAK;gBACzC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,KAAK;aAC3C;SACD,CAAC,CAAC;QAEH,oGAAoG;QACpG,MAAM,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QAE/B,0CAA0C;QAC1C,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACxC,MAAM,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC;YACrC,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC;gBACjC,OAAO,EAAE,IAAI,CAAC,KAAK;gBACnB,IAAI,EAAE;oBACL,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK;oBACtC,QAAQ,EAAE,cAAc;oBACxB,MAAM,EAAE,IAAI,CAAC,MAAM;oBACnB,MAAM,EAAE,IAAI,CAAC,MAAM;iBACnB;aACD,CAAC,CAAC;YAEH,IAAI,CAAC,OAAO,CAAC,IAAI,CAChB,OAAO,EACP,WAAW,IAAI,CAAC,KAAK,gCAAgC,cAAc,IAAI,CACvE,CAAC;QACH,CAAC;QAED,IAAI,CAAC,KAAK,GAAG,WAAW,CAAC;IAC1B,CAAC;IAED,iEAAiE;IAC1D,OAAO,CAAC,UAAU,GAAG,IAAI;QAC/B,IAAI,CAAC,KAAK,GAAG,YAAY,CAAC;QAE1B,mCAAmC;QACnC,IAAI,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC9B,aAAa,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;YACxC,IAAI,CAAC,mBAAmB,GAAG,SAAS,CAAC;QACtC,CAAC;QAED,4BAA4B;QAC5B,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAE3B,gCAAgC;QAChC,IAAI,CAAC,mBAAmB,GAAG,EAAE,CAAC;QAC9B,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QAExB,IAAI,UAAU;YAAE,IAAI,CAAC,UAAU,EAAE,CAAC;QAElC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAEzD,wEAAwE;QACxE,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,mBAAmB,EAAE,CAAC;QACjD,IAAI,KAAK,EAAE,CAAC;YACX,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QACtE,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;QACzC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACzC,CAAC;IAED;;;OAGG;IACI,eAAe,CAAC,OAAe;QACrC,IAAI,OAAO,OAAO,KAAK,QAAQ;YAAE,MAAM,IAAI,SAAS,CAAC,qCAAqC,CAAC,CAAC;QAC5F,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC;QAC5B,IAAI,CAAC,OAAO,EAAE,CAAC;QACf,OAAO,IAAI,CAAC;IACb,CAAC;IAED;;;OAGG;IACI,cAAc,CAAC,OAAe;QACpC,IAAI,OAAO,OAAO,KAAK,QAAQ;YAAE,MAAM,IAAI,SAAS,CAAC,qCAAqC,CAAC,CAAC;QAC5F,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC;QAC3B,OAAO,IAAI,CAAC;IACb,CAAC;IAUM,KAAK,CAAC,IAAI,CAChB,cAAsD,EACtD,WAAyB;QAEzB,IAAI,OAAO,cAAc,KAAK,WAAW,IAAI,kBAAU,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;YAClF,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO;gBAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;YACjE,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,cAAuB,CAAC;QAC9C,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO;YAAE,MAAM,IAAI,UAAU,CAAC,mBAAmB,CAAC,CAAC;QAEnE,MAAM,YAAY,GAAG,WAAW;YAC/B,CAAC,CAAC,WAAW;YACb,CAAC,CAAC,CAAC,WAAW,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAClD,MAAM,CAAC,IAAI,CAAC,cAAc,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAC7C;gBACD,CAAC,CAAE,cAA8B;gBACjC,CAAC,CAAC,EAAE,CAAC;QAEP,IAAI,kBAAU,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;YACtD,IAAI,CAAC;gBACJ,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,kBAAU,CAAC,eAAe,CACpD,IAAI,CAAC,KAAK,CAAC,OAA0B,CACrC,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBAChB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;gBACjE,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;oBAAE,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;gBACnD,OAAO;YACR,CAAC;QACF,CAAC;QAED,uDAAuD;QACvD,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACtB,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QAC3B,CAAC;QAED,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC;YACjC,OAAO,EAAE,IAAI,CAAC,KAAK;YACnB,IAAI,EAAE;gBACL,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK;gBACvC,GAAG,YAAY;aACf;SACD,CAAC,CAAC;QAEH,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;IACrD,CAAC;IAED;;;;OAIG;IACI,WAAW,CAAC,aAAsB,EAAE,OAAe;QACzD,IAAI,OAAO,aAAa,KAAK,SAAS;YACrC,MAAM,IAAI,SAAS,CAAC,kCAAkC,CAAC,CAAC;QACzD,IAAI,OAAO,OAAO,KAAK,QAAQ;YAAE,MAAM,IAAI,SAAS,CAAC,gCAAgC,CAAC,CAAC;QACvF,IAAI,CAAC,UAAU,GAAG,aAAa,CAAC;QAChC,IAAI,CAAC,GAAG,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC;QACtC,IAAI,CAAC,aAAa,EAAE,CAAC;YACpB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;YAC3B,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;YAC3B,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;QAC3B,CAAC;QACD,OAAO,IAAI,CAAC;IACb,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,cAAc,CAAC,KAAY,EAAE,SAAkB;QAC3D,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC;QACvC,IAAI,CAAC,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;QAElD,MAAM,aAAa,GAAG,CAAC,aAAa,EAAE,kBAAkB,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CACtE,KAAK,CAAC,GAAG,EAAE,QAAQ,CAAC,GAAG,CAAC,CACxB,CAAC;QACF,MAAM,aAAa,GAAG,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAC9D,KAAK,CAAC,GAAG,EAAE,QAAQ,CAAC,GAAG,CAAC,CACxB,CAAC;QAEF,IAAI,aAAa,EAAE,CAAC;YACnB,IAAI,CAAC;gBACJ,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;gBACvC,MAAM,sBAAsB,GAAG,IAAI,CAAC,OAAO,EAAE,IAAI,CAChD,CAAC,MAAwB,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,gBAAgB,CAC9D,CAAC;gBACF,MAAM,6BAA6B,GAAG,IAAI,CAAC,cAAc,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC;gBAE/E,IAAI,sBAAsB,IAAI,6BAA6B,EAAE,CAAC;oBAC7D,MAAM,OAAO,GAAG,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;oBACtD,MAAM,QAAQ,GAAG,KAAK,CAAC,UAAU,EAAE,SAAS;wBAC3C,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC;wBACzD,CAAC,CAAC,IAAI,CAAC;oBAER,IAAI,UAAU,GAAG,EAAE,CAAC;oBACpB,IAAI,OAAO,IAAI,QAAQ;wBAAE,UAAU,GAAG,sBAAsB,QAAQ,gBAAgB,OAAO,EAAE,CAAC;yBACzF,IAAI,OAAO;wBAAE,UAAU,GAAG,qBAAqB,OAAO,EAAE,CAAC;yBACzD,IAAI,QAAQ;wBAAE,UAAU,GAAG,sBAAsB,QAAQ,EAAE,CAAC;oBAEjE,IAAI,UAAU,EAAE,CAAC;wBAChB,MAAM,iBAAiB,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;wBAEjE,IAAI,iBAAiB,CAAC,QAAQ,KAAK,UAAU,EAAE,CAAC;4BAC/C,MAAM,YAAY,GAAG,iBAAiB,CAAC,IAAuB,CAAC;4BAC/D,IAAI,YAAY,CAAC,MAAM;gCACtB,OAAO,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,kBAAU,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;wBACxE,CAAC;oBACF,CAAC;gBACF,CAAC;YACF,CAAC;YAAC,MAAM,CAAC;gBACR,eAAe;YAChB,CAAC;QACF,CAAC;QAED,IAAI,OAAO,GAAG,KAAK,CAAC,GAAG,EAAE,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;QAC/D,IAAI,CAAC,aAAa,EAAE,CAAC;YACpB,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,MAAM,MAAM,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;YAC1E,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;QAC7E,CAAC;QAED,IAAI,CAAC,OAAO;YAAE,OAAO,SAAS,CAAC;QAE/B,MAAM,SAAS,GAAG,mCAAmC,OAAO,WAAW,OAAO,EAAE,CAAC;QACjF,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACjD,IAAI,GAAG,CAAC,QAAQ,KAAK,OAAO,IAAI,GAAG,CAAC,QAAQ,KAAK,OAAO;YAAE,OAAO,SAAS,CAAC;QAE3E,IAAI,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;QACxB,IAAI,GAAG,CAAC,QAAQ,KAAK,UAAU;YAAE,MAAM,GAAG,GAAG,CAAC,QAAQ,EAAE,MAAM,IAAI,EAAE,CAAC;QAErE,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,CACnC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,mCAAmC,OAAO,EAAE,CAC7D,CAAC;QAEF,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,yBAAyB,EAAE,CAAC;YACpD,KAAK,MAAM,CAAC,IAAI,cAAc,EAAE,CAAC;gBAChC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;gBAClD,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;gBAChD,IAAI,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;oBAC3B,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;oBACxE,CAAC,CAAC,MAAM,GAAG,MAAM,CAAC;oBAClB,CAAC,CAAC,KAAK,GAAG,KAAK,CAAC;gBACjB,CAAC;YACF,CAAC;QACF,CAAC;QAED,OAAO,cAAc,CAAC;IACvB,CAAC;IAED;;;OAGG;IACI,KAAK,CAAC,SAAS,CAAC,MAAc;QACpC,IAAI,KAAK,CAAC,MAAM,CAAC;YAAE,MAAM,IAAI,SAAS,CAAC,0BAA0B,CAAC,CAAC;QACnE,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC;YACjC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK;YAC3B,IAAI,EAAE,EAAE,MAAM,EAAE;SAChB,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,OAAO,IAAI,CAAC;IACb,CAAC;IAED;;;OAGG;IACI,cAAc,CAAC,MAAe;QACpC,IAAI,OAAO,MAAM,KAAK,SAAS;YAC9B,MAAM,IAAI,SAAS,CAAC,uCAAuC,CAAC,CAAC;QAC9D,MAAM,SAAS,GAAG,EAAE,GAAG,IAAI,EAAE,CAAC;QAC9B,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC;QAC1B,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QACzB,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC3B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,mBAAmB,EAAE,SAAyB,EAAE,IAAI,CAAC,CAAC;QACxE,OAAO,IAAI,CAAC;IACb,CAAC;IAED;;;OAGG;IACI,cAAc,CAAC,MAAe;QACpC,IAAI,OAAO,MAAM,KAAK,SAAS;YAC9B,MAAM,IAAI,SAAS,CAAC,uCAAuC,CAAC,CAAC;QAC9D,MAAM,SAAS,GAAG,EAAE,GAAG,IAAI,EAAE,CAAC;QAC9B,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QACzB,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC;QAC1B,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC3B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,mBAAmB,EAAE,SAAyB,EAAE,IAAI,CAAC,CAAC;QACxE,OAAO,IAAI,CAAC;IACb,CAAC;IAED;;;;OAIG;IACI,gBAAgB,CAAC,MAAe,EAAE,EAAU;QAClD,IAAI,OAAO,MAAM,KAAK,SAAS;YAC9B,MAAM,IAAI,SAAS,CAAC,uCAAuC,CAAC,CAAC;QAC9D,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC;YACvB,MAAM,IAAI,UAAU,CAAC,wCAAwC,CAAC,CAAC;QAEhE,MAAM,SAAS,GAAG,EAAE,GAAG,IAAI,EAAE,CAAC;QAE9B,IAAI,MAAM,EAAE,CAAC;YACZ,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;YACzB,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;YACzB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;YAC1B,IAAI,CAAC,mBAAmB,GAAG,WAAW,CAAC,GAAG,EAAE;gBAC3C,IAAI,CAAC,IAAI,CAAC,aAAa;oBAAE,OAAO;gBAChC,MAAM,QAAQ,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC;gBACjE,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;gBACnB,QAAQ,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;YACpD,CAAC,EAAE,EAAE,CAAC,CAAC;QACR,CAAC;aAAM,CAAC;YACP,IAAI,IAAI,CAAC,mBAAmB;gBAAE,aAAa,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;YACtE,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;YACzB,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;YACzB,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC5B,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,mBAAmB,EAAE,SAAyB,EAAE,IAAI,CAAC,CAAC;QACxE,OAAO,IAAI,CAAC;IACb,CAAC;IAED,+CAA+C;IACxC,KAAK,CAAC,OAAO;QACnB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC;YAChC,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM;gBAAE,IAAI,CAAC,IAAI,EAAE,CAAC;YACnC,OAAO;QACR,CAAC;QACD,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC;YACjC,OAAO,EAAE,IAAI,CAAC,KAAK;YACnB,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,EAAE;SAC9D,CAAC,CAAC;IACJ,CAAC;IAED,qEAAqE;IAC9D,KAAK,CAAC,IAAI,CAAC,MAAe;QAChC,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9C,IAAI,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM;gBAC7B,MAAM,IAAI,UAAU,CAAC,yCAAyC,CAAC,CAAC;YACjE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC;QAClC,CAAC;QAED,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC;YACjC,OAAO,EAAE,IAAI,CAAC,KAAK;YACnB,IAAI,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE;SAC5B,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC;IACb,CAAC;IAED;;;OAGG;IACI,KAAK,CAAC,KAAK,CAAC,KAAc;QAChC,IAAI,OAAO,KAAK,KAAK,SAAS;YAC7B,MAAM,IAAI,UAAU,CAAC,sCAAsC,CAAC,CAAC;QAC9D,IAAI,IAAI,CAAC,MAAM,KAAK,KAAK,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS;YAAE,OAAO,IAAI,CAAC;QAEhE,MAAM,SAAS,GAAG,EAAE,GAAG,IAAI,EAAE,CAAC;QAC9B,IAAI,CAAC,OAAO,GAAG,CAAC,KAAK,CAAC;QACtB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QAEpB,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC;YACjC,OAAO,EAAE,IAAI,CAAC,KAAK;YACnB,IAAI,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;SACvB,CAAC,CAAC;QAEH,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,mBAAmB,EAAE,SAAyB,EAAE,IAAI,CAAC,CAAC;QACxE,OAAO,IAAI,CAAC;IACb,CAAC;IAED,oCAAoC;IAC7B,QAAQ;QACd,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;YACzB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACzC,CAAC;QACD,IAAI,CAAC,IAAI,EAAE,CAAC;QACZ,OAAO,IAAI,CAAC;IACb,CAAC;IAED;;;OAGG;IACI,KAAK,CAAC,IAAI,CAAC,QAAgB;QACjC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO;YAAE,OAAO,SAAS,CAAC;QAC1C,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;QAE5B,IAAI,KAAK,CAAC,QAAQ,CAAC;YAAE,MAAM,IAAI,UAAU,CAAC,4BAA4B,CAAC,CAAC;QACxE,IAAI,QAAQ,GAAG,CAAC,IAAI,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAS;YAC1D,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAS,CAAC,EAAE,CAAC,CAAC,CAAC;QAE1E,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAEzB,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC;YACjC,OAAO,EAAE,IAAI,CAAC,KAAK;YACnB,IAAI,EAAE,EAAE,QAAQ,EAAE;SAClB,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC;IACb,CAAC;IAED;;;OAGG;IACI,iBAAiB;QACvB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,MAAM,SAAS,GAAG,IAAI,CAAC,mBAAmB,CAAC;QAC3C,IAAI,CAAC,mBAAmB,GAAG,EAAE,CAAC;QAC9B,KAAK,MAAM,OAAO,IAAI,SAAS;YAAE,OAAO,EAAE,CAAC;IAC5C,CAAC;IAED,yEAAyE;IAEzE;;;OAGG;IACI,oBAAoB;QAC1B,IAAI,CAAC,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,iBAAiB,IAAI,CAAC;YAAE,OAAO;QACnE,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAE3B,IAAI,CAAC,OAAO,CAAC,IAAI,CAChB,OAAO,EACP,WAAW,IAAI,CAAC,KAAK,iDAAiD,IAAI,CAAC,iBAAiB,IAAI,CAChG,CAAC;QAEF,IAAI,CAAC,eAAe,GAAG,UAAU,CAAC,GAAG,EAAE;YACtC,IAAI,CAAC,OAAO,CAAC,IAAI,CAChB,OAAO,EACP,WAAW,IAAI,CAAC,KAAK,kDAAkD,CACvE,CAAC;YACF,IAAI,CAAC,OAAO,EAAE,CAAC;QAChB,CAAC,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAC5B,CAAC;IAED,+EAA+E;IACxE,mBAAmB;QACzB,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YAC1B,YAAY,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YACnC,IAAI,CAAC,eAAe,GAAG,SAAS,CAAC;QAClC,CAAC;IACF,CAAC;IAED,yEAAyE;IAEzE;;;;OAIG;IACI,aAAa,CAAC,KAAK,GAAG,CAAC;QAC7B,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC;QAC9D,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,KAAK,IAAI,IAAI,CAAC,YAAY,CAAC;IACvD,CAAC;IAED;;;OAGG;IACH,IAAW,mBAAmB;QAC7B,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,IAAI,CAAC;YAAE,OAAO,QAAQ,CAAC;QAClE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC3D,CAAC;IAED,wEAAwE;IAExE;;;;;;;;;OASG;IACI,KAAK,CAAC,eAAe,CAAC,UAAkC;QAC9D,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;QAC7D,IAAI,CAAC,sBAAsB,GAAG,CAAC,GAAG,UAAU,CAAC,CAAC;QAC9C,IAAI,CAAC,OAAO,CAAC,IAAI,CAChB,OAAO,EACP,WAAW,IAAI,CAAC,KAAK,kCAAkC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC9E,CAAC;IACH,CAAC;IAED;;;OAGG;IACI,KAAK,CAAC,eAAe;QAC3B,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACzD,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,iBAAiB;QAC7B,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACpD,IAAI,CAAC,sBAAsB,GAAG,EAAE,CAAC;QACjC,IAAI,CAAC,OAAO,CAAC,IAAI,CAChB,OAAO,EACP,WAAW,IAAI,CAAC,KAAK,mCAAmC,CACxD,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,IAAW,YAAY;QACtB,OAAO,CAAC,GAAG,IAAI,CAAC,sBAAsB,CAAC,CAAC;IACzC,CAAC;IAED,wEAAwE;IAExE;;;;;;;;;;;OAWG;IACI,YAAY,CAAC,UAAkB;QACrC,IAAI,UAAU,GAAG,CAAC;YAAE,MAAM,IAAI,UAAU,CAAC,kCAAkC,CAAC,CAAC;QAC7E,IAAI,CAAC,gBAAgB,GAAG,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC;QACjD,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAE3B,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;YACpB,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC9B,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,IAAI,CAChB,OAAO,EACP,WAAW,IAAI,CAAC,KAAK,sBAAsB,UAAU,IAAI,CACzD,CAAC;IACH,CAAC;IAED,oDAAoD;IACpD,IAAW,iBAAiB;QAC3B,OAAO,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC;IACvC,CAAC;IAED;;;OAGG;IACK,qBAAqB;QAC5B,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3B,IAAI,IAAI,CAAC,gBAAgB,CAAC,QAAQ,IAAI,CAAC;YAAE,OAAO;QAEhD,IAAI,CAAC,cAAc,GAAG,WAAW,CAAC,GAAG,EAAE;YACtC,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;gBAC1C,IAAI,CAAC,mBAAmB,EAAE,CAAC;gBAC3B,OAAO;YACR,CAAC;YAED,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,CAAC;YACvD,IAAI,aAAa,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ;gBAAE,OAAO;YAE9D,MAAM,SAAS,GAAG,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC;YAChD,MAAM,YAAY,GAAG,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC;YAEpD,IAAI,SAAS,IAAI,YAAY,IAAI,SAAS,GAAG,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACzE,IAAI,CAAC,mBAAmB,EAAE,CAAC;gBAC3B,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;YAClC,CAAC;QACF,CAAC,EAAE,GAAG,CAAC,CAAC;IACT,CAAC;IAED;;;OAGG;IACK,gBAAgB,CAAC,WAAmB;QAC3C,MAAM,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC;QACnC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,GAAG,CAAC,CAAC,CAAC;QACzD,MAAM,UAAU,GAAG,cAAc,GAAG,KAAK,CAAC;QAC1C,IAAI,WAAW,GAAG,CAAC,CAAC;QAEpB,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAChC,IAAI,SAAS,EAAE,CAAC;YACf,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,OAAgB,EAAE,SAAS,CAAC,CAAC;QACnF,CAAC;QAED,MAAM,YAAY,GAAG,WAAW,CAAC,GAAG,EAAE;YACrC,WAAW,EAAE,CAAC;YACd,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,cAAc,GAAG,CAAC,UAAU,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;YAEvF,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC;gBAC3B,OAAO,EAAE,IAAI,CAAC,KAAK;gBACnB,IAAI,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE;aAC3B,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;YAEnB,IAAI,WAAW,IAAI,KAAK,EAAE,CAAC;gBAC1B,aAAa,CAAC,YAAY,CAAC,CAAC;gBAC5B,gEAAgE;gBAChE,IAAI,CAAC,MAAM,GAAG,cAAc,CAAC;YAC9B,CAAC;QACF,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,KAAK,CAAC,CAAC,CAAC;IACrC,CAAC;IAED,kDAAkD;IAC1C,mBAAmB;QAC1B,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACzB,aAAa,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YACnC,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC;QACjC,CAAC;IACF,CAAC;IAED,wEAAwE;IAExE;;;;;;;;;;;OAWG;IACI,KAAK,CAAC,IAAI,CAAC,UAAU,GAAG,EAAE;QAChC,IAAI,IAAI,CAAC,cAAc;YAAE,OAAO;QAChC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC;QACjC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC3B,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC;YACjC,OAAO,EAAE,IAAI,CAAC,KAAK;YACnB,IAAI,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE;SAC5B,CAAC,CAAC;QACH,IAAI,CAAC,OAAO,CAAC,IAAI,CAChB,OAAO,EACP,WAAW,IAAI,CAAC,KAAK,mBAAmB,IAAI,CAAC,aAAa,MAAM,UAAU,EAAE,CAC5E,CAAC;IACH,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,MAAM;QAClB,IAAI,CAAC,IAAI,CAAC,cAAc;YAAE,OAAO;QACjC,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;QAC5B,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,MAAM,CAAC;QACxD,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC;YACjC,OAAO,EAAE,IAAI,CAAC,KAAK;YACnB,IAAI,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE;SAC/B,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,GAAG,aAAa,CAAC;QAC5B,IAAI,CAAC,OAAO,CAAC,IAAI,CAChB,OAAO,EACP,WAAW,IAAI,CAAC,KAAK,8BAA8B,aAAa,EAAE,CAClE,CAAC;IACH,CAAC;IAED,8CAA8C;IAC9C,IAAW,QAAQ;QAClB,OAAO,IAAI,CAAC,cAAc,CAAC;IAC5B,CAAC;IAED,wEAAwE;IAExE;;;;;;OAMG;IACI,KAAK,CAAC,iBAAiB,CAAC,UAAkB;QAChD,IAAI,UAAU,GAAG,CAAC;YAAE,MAAM,IAAI,UAAU,CAAC,+BAA+B,CAAC,CAAC;QAC1E,IAAI,CAAC,GAAG,CAAC,gBAAgB,EAAE,UAAU,CAAC,CAAC;QACvC,IAAI,CAAC,OAAO,CAAC,IAAI,CAChB,OAAO,EACP,WAAW,IAAI,CAAC,KAAK,4BAA4B,UAAU,IAAI,CAC/D,CAAC;IACH,CAAC;IAED,wEAAwE;IAExE;;;OAGG;IACI,gBAAgB;QACtB,OAAO;YACN,OAAO,EAAE,IAAI,CAAC,KAAK;YACnB,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,IAAI,IAAI;YACxC,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,OAAO,EAAE;gBACR,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU;gBACnC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS;gBACjC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO;gBAC7B,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ;gBAC/B,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS;gBACjC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO;gBAC7B,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM;aAC3B;YACD,cAAc,EAAE,IAAI,CAAC,YAAY;YACjC,aAAa,EAAE,IAAI,CAAC,WAAW;YAC/B,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,aAAa,EAAE,IAAI,CAAC,aAAa;SACjC,CAAC;IACH,CAAC;IAED,yDAAyD;IACjD,MAAM,CAAC,cAAc,CAAC,CAA0B;QACvD,OAAO;YACN,OAAO,EAAG,CAAW,CAAC,KAAK,IAAI,EAAE;YACjC,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE;YACpB,MAAM,EAAE,CAAC,CAAC,MAAM,IAAI,EAAE;YACtB,GAAG,EAAG,CAAW,CAAC,GAAG,IAAI,EAAE;YAC3B,QAAQ,EAAE,CAAC,CAAC,QAAQ,IAAI,CAAC;YACzB,UAAU,EAAG,CAAW,CAAC,UAAU,IAAI,SAAS;YAChD,UAAU,EAAG,CAAW,CAAC,UAAU,IAAI,EAAE;YACzC,UAAU,EAAG,CAAW,CAAC,UAAU,IAAI,EAAE;YACzC,IAAI,EAAG,CAAW,CAAC,IAAI,IAAI,EAAE;YAC7B,UAAU,EAAG,CAAW,CAAC,UAAU,IAAI,IAAI;YAC3C,QAAQ,EAAG,CAAW,CAAC,QAAQ,IAAI,KAAK;SACxC,CAAC;IACH,CAAC;IAED;;;OAGG;IACI,YAAY;QAClB,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAA2B,kBAAkB,CAAC,CAAC;QACvE,MAAM,SAAS,GAAG,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,EAAE,EAAE,IAAI,IAAI,CAAC;QAE9E,OAAO;YACN,OAAO,EAAE,IAAI,CAAC,KAAK;YACnB,cAAc,EAAE,IAAI,CAAC,YAAY;YACjC,aAAa,EAAE,IAAI,CAAC,WAAW;YAC/B,cAAc,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,UAAW;YAC7C,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI;YACzF,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,SAAS;YACT,eAAe,EAAE,IAAI,CAAC,eAAe;YACrC,gBAAgB,EAAE,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC;YAC5C,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;YAC5D,OAAO,EAAE;gBACR,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU;gBACnC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS;gBACjC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO;gBAC7B,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ;gBAC/B,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS;gBACjC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO;gBAC7B,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM;gBAC3B,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE;aAC9C;SACD,CAAC;IACH,CAAC;IAED;;;OAGG;IACI,gBAAgB,CAAC,KAAwB;QAC/C,IAAI,CAAC,OAAO,CAAC,IAAI,CAChB,OAAO,EACP,WAAW,IAAI,CAAC,KAAK,iCAAiC,KAAK,CAAC,UAAU,YAAY,KAAK,CAAC,KAAK,CAAC,MAAM,qBAAqB,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,MAAM,EAAE,CAC/N,CAAC;QAEF,yBAAyB;QACzB,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC;QACnC,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;YACrB,IAAI,CAAC,GAAG,CAAC,kBAAkB,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC;QACvD,CAAC;QAED,yCAAyC;QACzC,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC,eAAe,IAAI,EAAE,CAAC;QACnD,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC,gBAAgB,IAAI,EAAE,CAAC;QAErD,uBAAuB;QACvB,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC;QACrC,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC;QACrC,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,aAAa,CAAC;QAEzC,iBAAiB;QACjB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;QAE3B,oFAAoF;QACpF,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;YACnB,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC1C,CAAC;QAED,uBAAuB;QACvB,IAAI,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC;YACzB,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CACrC,kBAAU,CAAC,KAAK,CACf;gBACC,OAAO,EAAE,EAAE,CAAC,OAAO;gBACnB,IAAI,EAAE;oBACL,KAAK,EAAE,EAAE,CAAC,KAAK;oBACf,MAAM,EAAE,EAAE,CAAC,MAAM;oBACjB,GAAG,EAAE,EAAE,CAAC,GAAG;oBACX,MAAM,EAAE,EAAE,CAAC,QAAQ;oBACnB,UAAU,EAAE,EAAE,CAAC,UAAU;oBACzB,UAAU,EAAE,EAAE,CAAC,UAAU;oBACzB,IAAI,EAAE,EAAE,CAAC,IAAI;oBACb,UAAU,EAAE,EAAE,CAAC,UAAU;oBACzB,QAAQ,EAAE,EAAE,CAAC,QAAQ;oBACrB,UAAU,EAAE,EAAE,CAAC,UAAU;iBACzB;gBACD,UAAU,EAAE,EAAE;aACd,EACD,KAAK,CAAC,SAAS,IAAI,SAAS,CAC5B,CACD,CAAC;YACF,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC;QAC5B,CAAC;IACF,CAAC;;AA9oCF,oCA+oCC"}
@@ -46,6 +46,28 @@ export declare class StellaQueue extends Array<Track | UnresolvedTrack> {
46
46
  remove(start: number, end: number): (Track | UnresolvedTrack)[];
47
47
  /** Clears the queue. */
48
48
  clear(): void;
49
+ /**
50
+ * Compacts the queue to reduce RAM usage.
51
+ * Strips heavy metadata (pluginInfo, customData, thumbnail, artworkUrl, isrc)
52
+ * from all queued tracks, keeping only what's needed for playback:
53
+ * `track` (encoded base64), `title`, `author`, `duration`, `uri`, `sourceName`.
54
+ *
55
+ * At 700+ servers with 50-track queues, this can reduce RAM by 50-70%.
56
+ * Compacted tracks can still be played normally — Lavalink only needs the
57
+ * `encoded` string. UI display may lose artwork until the track is expanded.
58
+ *
59
+ * @returns Number of tracks compacted.
60
+ */
61
+ compactQueue(): number;
62
+ /**
63
+ * Returns true if a track has been compacted (heavy metadata stripped).
64
+ */
65
+ static isCompacted(track: Track | UnresolvedTrack): boolean;
66
+ /**
67
+ * Estimates the memory usage of the queue in bytes.
68
+ * Useful for monitoring and deciding when to call `compactQueue()`.
69
+ */
70
+ get memoryEstimate(): number;
49
71
  /** Shuffles the queue using the Fisher-Yates algorithm. */
50
72
  shuffle(): void;
51
73
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"Queue.d.ts","sourceRoot":"","sources":["../../src/Structures/Queue.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAGtD;;;GAGG;AACH,qBAAa,WAAY,SAAQ,KAAK,CAAC,KAAK,GAAG,eAAe,CAAC;IAC9D,mEAAmE;IACnE,IAAW,QAAQ,IAAI,MAAM,CAG5B;IAED,yEAAyE;IACzE,IAAW,SAAS,IAAI,MAAM,CAE7B;IAED,2DAA2D;IAC3D,IAAW,IAAI,IAAI,MAAM,CAExB;IAED,yBAAyB;IAClB,OAAO,EAAE,KAAK,GAAG,eAAe,GAAG,IAAI,CAAQ;IAEtD,0BAA0B;IACnB,QAAQ,EAAE,KAAK,GAAG,eAAe,GAAG,IAAI,CAAQ;IAEvD,yDAAyD;IAClD,OAAO,SAAK;IAEnB,4DAA4D;IACrD,YAAY,UAAS;IAE5B;;;;OAIG;IACI,GAAG,CACT,KAAK,EAAE,CAAC,KAAK,GAAG,eAAe,CAAC,GAAG,CAAC,KAAK,GAAG,eAAe,CAAC,EAAE,EAC9D,MAAM,CAAC,EAAE,MAAM,GACb,IAAI;IAyDP;;;OAGG;IACI,WAAW,CAAC,KAAK,EAAE,KAAK,GAAG,eAAe,GAAG,OAAO;IAmB3D;;;OAGG;IACI,MAAM,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,CAAC,KAAK,GAAG,eAAe,CAAC,EAAE;IAE7D;;OAEG;IACI,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,CAAC,KAAK,GAAG,eAAe,CAAC,EAAE;IAatE,wBAAwB;IACjB,KAAK,IAAI,IAAI;IAIpB,2DAA2D;IACpD,OAAO,IAAI,IAAI;IAOtB;;;OAGG;IACI,gBAAgB,IAAI,IAAI;CAoB/B"}
1
+ {"version":3,"file":"Queue.d.ts","sourceRoot":"","sources":["../../src/Structures/Queue.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAMtD;;;GAGG;AACH,qBAAa,WAAY,SAAQ,KAAK,CAAC,KAAK,GAAG,eAAe,CAAC;IAC9D,mEAAmE;IACnE,IAAW,QAAQ,IAAI,MAAM,CAG5B;IAED,yEAAyE;IACzE,IAAW,SAAS,IAAI,MAAM,CAE7B;IAED,2DAA2D;IAC3D,IAAW,IAAI,IAAI,MAAM,CAExB;IAED,yBAAyB;IAClB,OAAO,EAAE,KAAK,GAAG,eAAe,GAAG,IAAI,CAAQ;IAEtD,0BAA0B;IACnB,QAAQ,EAAE,KAAK,GAAG,eAAe,GAAG,IAAI,CAAQ;IAEvD,yDAAyD;IAClD,OAAO,SAAK;IAEnB,4DAA4D;IACrD,YAAY,UAAS;IAE5B;;;;OAIG;IACI,GAAG,CACT,KAAK,EAAE,CAAC,KAAK,GAAG,eAAe,CAAC,GAAG,CAAC,KAAK,GAAG,eAAe,CAAC,EAAE,EAC9D,MAAM,CAAC,EAAE,MAAM,GACb,IAAI;IAyDP;;;OAGG;IACI,WAAW,CAAC,KAAK,EAAE,KAAK,GAAG,eAAe,GAAG,OAAO;IAmB3D;;;OAGG;IACI,MAAM,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,CAAC,KAAK,GAAG,eAAe,CAAC,EAAE;IAE7D;;OAEG;IACI,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,CAAC,KAAK,GAAG,eAAe,CAAC,EAAE;IAatE,wBAAwB;IACjB,KAAK,IAAI,IAAI;IAMpB;;;;;;;;;;;OAWG;IACI,YAAY,IAAI,MAAM;IAiC7B;;OAEG;WACW,WAAW,CAAC,KAAK,EAAE,KAAK,GAAG,eAAe,GAAG,OAAO;IAIlE;;;OAGG;IACH,IAAW,cAAc,IAAI,MAAM,CAsBlC;IAED,2DAA2D;IACpD,OAAO,IAAI,IAAI;IAOtB;;;OAGG;IACI,gBAAgB,IAAI,IAAI;CAoB/B"}
@@ -2,6 +2,8 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.StellaQueue = void 0;
4
4
  const Utils_1 = require("./Utils");
5
+ /** Marker symbol indicating a track has been compacted (heavy fields stripped). */
6
+ const COMPACTED = Symbol.for("StellaLib.compacted");
5
7
  /**
6
8
  * The player's queue. The `current` property is the currently playing track,
7
9
  * think of the rest as the upcoming tracks.
@@ -130,6 +132,91 @@ class StellaQueue extends Array {
130
132
  clear() {
131
133
  this.splice(0);
132
134
  }
135
+ // ── Memory Optimization (Track Serialization) ───────────────────────
136
+ /**
137
+ * Compacts the queue to reduce RAM usage.
138
+ * Strips heavy metadata (pluginInfo, customData, thumbnail, artworkUrl, isrc)
139
+ * from all queued tracks, keeping only what's needed for playback:
140
+ * `track` (encoded base64), `title`, `author`, `duration`, `uri`, `sourceName`.
141
+ *
142
+ * At 700+ servers with 50-track queues, this can reduce RAM by 50-70%.
143
+ * Compacted tracks can still be played normally — Lavalink only needs the
144
+ * `encoded` string. UI display may lose artwork until the track is expanded.
145
+ *
146
+ * @returns Number of tracks compacted.
147
+ */
148
+ compactQueue() {
149
+ let compacted = 0;
150
+ for (let i = 0; i < this.length; i++) {
151
+ const track = this[i];
152
+ if (!track.track || track[COMPACTED])
153
+ continue;
154
+ // Strip heavy fields by replacing with a minimal object
155
+ const minimal = {
156
+ track: track.track,
157
+ title: track.title,
158
+ author: track.author,
159
+ duration: track.duration,
160
+ uri: track.uri,
161
+ sourceName: track.sourceName,
162
+ identifier: track.identifier,
163
+ isSeekable: track.isSeekable,
164
+ isStream: track.isStream,
165
+ isrc: "",
166
+ artworkUrl: "",
167
+ thumbnail: null,
168
+ requester: track.requester,
169
+ pluginInfo: {},
170
+ customData: {},
171
+ displayThumbnail: () => null,
172
+ [COMPACTED]: true,
173
+ };
174
+ this[i] = minimal;
175
+ compacted++;
176
+ }
177
+ return compacted;
178
+ }
179
+ /**
180
+ * Returns true if a track has been compacted (heavy metadata stripped).
181
+ */
182
+ static isCompacted(track) {
183
+ return !!track[COMPACTED];
184
+ }
185
+ /**
186
+ * Estimates the memory usage of the queue in bytes.
187
+ * Useful for monitoring and deciding when to call `compactQueue()`.
188
+ */
189
+ get memoryEstimate() {
190
+ let bytes = 0;
191
+ const estimate = (t) => {
192
+ if (!t)
193
+ return 0;
194
+ let size = 200; // base object overhead
195
+ if (t.track)
196
+ size += t.track.length * 2;
197
+ if (t.title)
198
+ size += t.title.length * 2;
199
+ if (t.author)
200
+ size += t.author.length * 2;
201
+ if (t.uri)
202
+ size += t.uri.length * 2;
203
+ if (t.isrc)
204
+ size += t.isrc.length * 2;
205
+ if (t.artworkUrl)
206
+ size += t.artworkUrl.length * 2;
207
+ if (t.pluginInfo)
208
+ size += JSON.stringify(t.pluginInfo).length * 2;
209
+ if (t.customData)
210
+ size += JSON.stringify(t.customData).length * 2;
211
+ return size;
212
+ };
213
+ bytes += estimate(this.current);
214
+ bytes += estimate(this.previous);
215
+ for (const track of this) {
216
+ bytes += estimate(track);
217
+ }
218
+ return bytes;
219
+ }
133
220
  /** Shuffles the queue using the Fisher-Yates algorithm. */
134
221
  shuffle() {
135
222
  for (let i = this.length - 1; i > 0; i--) {
@@ -1 +1 @@
1
- {"version":3,"file":"Queue.js","sourceRoot":"","sources":["../../src/Structures/Queue.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Queue.js","sourceRoot":"","sources":["../../src/Structures/Queue.ts"],"names":[],"mappings":"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"}