@stella_project/stellalib 1.0.2 → 1.1.2

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.
@@ -228,14 +228,27 @@ class StellaNode {
228
228
  this.socket.on("error", this.error.bind(this));
229
229
  this.socket.on("pong", this.heartbeatAck.bind(this));
230
230
  }
231
- /** Destroys the Node and all players connected with it. */
231
+ /** Destroys the Node. Attempts to move players to other healthy nodes first (auto-failover). */
232
232
  destroy() {
233
- if (!this.connected)
233
+ if (!this.connected && !this.socket)
234
234
  return;
235
235
  this.stopHeartbeat();
236
- for (const [, p] of this.manager.players) {
237
- if (p.node === this)
238
- p.destroy();
236
+ // Auto-failover: try to move players to other healthy nodes instead of destroying them
237
+ const affectedPlayers = [...this.manager.players.values()].filter((p) => p.node === this);
238
+ const healthyNodes = [...this.manager.nodes.values()].filter((n) => n !== this && n.connected);
239
+ for (const player of affectedPlayers) {
240
+ if (healthyNodes.length > 0) {
241
+ // Pick the least-loaded healthy node
242
+ const target = healthyNodes.sort((a, b) => a.penalties - b.penalties)[0];
243
+ this.manager.emit("Debug", `[Node:${this.options.identifier}] Failover: moving player ${player.guild} → ${target.options.identifier}`);
244
+ player.moveNode(target.options.identifier).catch(() => {
245
+ // If move fails, destroy the player
246
+ player.destroy();
247
+ });
248
+ }
249
+ else {
250
+ player.destroy();
251
+ }
239
252
  }
240
253
  this.socket?.close(1000, "destroy");
241
254
  this.socket?.removeAllListeners();
@@ -245,7 +258,7 @@ class StellaNode {
245
258
  if (this.reconnectTimeout)
246
259
  clearTimeout(this.reconnectTimeout);
247
260
  this.manager.emit("NodeDestroy", this);
248
- this.manager.destroyNode(this.options.identifier);
261
+ this.manager.nodes.delete(this.options.identifier);
249
262
  }
250
263
  /** Gracefully closes the connection, persisting the session for resume. */
251
264
  async gracefulClose() {
@@ -303,15 +316,23 @@ class StellaNode {
303
316
  }
304
317
  /**
305
318
  * Reconnects to the node with exponential backoff + jitter.
319
+ * First attempt uses a fast retry (2s) for quick recovery from transient failures.
306
320
  * Jitter prevents thundering herd when multiple nodes reconnect simultaneously.
307
321
  */
308
322
  reconnect() {
309
323
  const baseDelay = this.options.retryDelay ?? 60000;
310
324
  const maxDelay = 120000;
311
- const exponentialDelay = Math.min(baseDelay * Math.pow(1.5, this.reconnectAttempts - 1), maxDelay);
312
- // Add ±25% jitter
313
- const jitter = exponentialDelay * (0.75 + Math.random() * 0.5);
314
- const delay = Math.floor(jitter);
325
+ // Fast retry for first attempt most disconnects are transient
326
+ let delay;
327
+ if (this.reconnectAttempts <= 1) {
328
+ delay = 2000 + Math.floor(Math.random() * 1000);
329
+ }
330
+ else {
331
+ const exponentialDelay = Math.min(baseDelay * Math.pow(1.5, this.reconnectAttempts - 1), maxDelay);
332
+ // Add ±25% jitter
333
+ const jitter = exponentialDelay * (0.75 + Math.random() * 0.5);
334
+ delay = Math.floor(jitter);
335
+ }
315
336
  this.manager.emit("Debug", `[Node:${this.options.identifier}] Reconnecting in ${delay}ms (attempt ${this.reconnectAttempts}/${this.options.retryAmount ?? 30})`);
316
337
  this.reconnectTimeout = setTimeout(() => {
317
338
  if (this.reconnectAttempts >= (this.options.retryAmount ?? 30)) {
@@ -351,6 +372,8 @@ class StellaNode {
351
372
  // Fatal close codes — don't retry
352
373
  if (FATAL_CLOSE_CODES.has(code)) {
353
374
  this.manager.emit("NodeError", this, new Error(`[Node:${this.options.identifier}] Fatal close code ${code}: ${reasonStr}. Not reconnecting.`));
375
+ // Even on fatal, try to rescue playing players
376
+ this.attemptSeamlessFailover("fatal_close");
354
377
  return;
355
378
  }
356
379
  // Session invalidated — clear session ID so we get a fresh one
@@ -364,8 +387,49 @@ class StellaNode {
364
387
  catch { /* ignore */ }
365
388
  }
366
389
  }
367
- if (code !== 1000 || reasonStr !== "destroy")
390
+ // Seamless failover: immediately move playing players to healthy nodes
391
+ // instead of waiting for this node to reconnect (which may take seconds)
392
+ if (code !== 1000 || reasonStr !== "destroy") {
393
+ this.attemptSeamlessFailover("unexpected_close");
368
394
  this.reconnect();
395
+ }
396
+ }
397
+ /**
398
+ * Attempts to seamlessly move all players from this (dead) node to healthy nodes.
399
+ * Preserves current track position so audio continues without interruption.
400
+ * Players that fail to move are left for the reconnect cycle to recover.
401
+ */
402
+ attemptSeamlessFailover(reason) {
403
+ const affectedPlayers = [...this.manager.players.values()].filter((p) => p.node === this && (p.playing || p.paused));
404
+ if (!affectedPlayers.length)
405
+ return;
406
+ const healthyNodes = [...this.manager.nodes.values()].filter((n) => n !== this && n.connected);
407
+ if (!healthyNodes.length) {
408
+ this.manager.emit("Debug", `[Failover:${this.options.identifier}] No healthy nodes available — ${affectedPlayers.length} player(s) waiting for reconnect`);
409
+ return;
410
+ }
411
+ // Sort healthy nodes by penalty (best first)
412
+ healthyNodes.sort((a, b) => a.penalties - b.penalties);
413
+ this.manager.emit("Debug", `[Failover:${this.options.identifier}] Seamless failover triggered (${reason}) — moving ${affectedPlayers.length} player(s) to healthy nodes`);
414
+ for (const player of affectedPlayers) {
415
+ // Distribute players across available nodes (round-robin by penalty)
416
+ const targetNode = healthyNodes.reduce((best, n) => {
417
+ const bestLoad = [...this.manager.players.values()].filter((p) => p.node === best).length;
418
+ const nLoad = [...this.manager.players.values()].filter((p) => p.node === n).length;
419
+ return nLoad < bestLoad ? n : best;
420
+ }, healthyNodes[0]);
421
+ const oldNodeId = this.options.identifier;
422
+ const newNodeId = targetNode.options.identifier;
423
+ this.manager.emit("Debug", `[Failover] Moving player ${player.guild} (pos: ${player.position}ms) → ${newNodeId}`);
424
+ player.moveNode(newNodeId)
425
+ .then(() => {
426
+ this.manager.emit("PlayerFailover", player, oldNodeId, newNodeId);
427
+ this.manager.emit("Debug", `[Failover] Player ${player.guild} successfully moved to ${newNodeId} — playback continues`);
428
+ })
429
+ .catch((err) => {
430
+ this.manager.emit("Debug", `[Failover] Failed to move player ${player.guild}: ${err instanceof Error ? err.message : String(err)} — will retry on reconnect`);
431
+ });
432
+ }
369
433
  }
370
434
  error(error) {
371
435
  if (!error)
@@ -479,6 +543,22 @@ class StellaNode {
479
543
  player.voiceReady = true;
480
544
  player.connected = data.state.connected;
481
545
  }
546
+ // Restore persisted player state (autoplay, queue, filters, history)
547
+ const store = this.manager.getPlayerStateStore();
548
+ if (store) {
549
+ try {
550
+ const savedState = await store.getPlayerState(data.guildId);
551
+ if (savedState) {
552
+ player.restoreFromState(savedState);
553
+ this.manager.emit("Debug", `[Node:${this.options.identifier}] Restored persisted state for guild ${data.guildId} (autoplay: ${savedState.isAutoplay})`);
554
+ // Clean up persisted state after successful restore
555
+ await store.deletePlayerState(data.guildId);
556
+ }
557
+ }
558
+ catch {
559
+ // Ignore restore errors
560
+ }
561
+ }
482
562
  player.position = data.state.position;
483
563
  player.connected = data.state.connected;
484
564
  player.ping = data.state.ping;
@@ -706,7 +786,10 @@ class StellaNode {
706
786
  };
707
787
  // Helper: filter out history + current/previous, score & rank, return best
708
788
  const pickBestTransition = (tracks) => {
709
- const eligible = tracks.filter((t) => t.uri !== previousTrack.uri && t.uri !== track.uri && !historySet.has(t.uri));
789
+ const eligible = tracks.filter((t) => t.uri !== previousTrack.uri &&
790
+ t.uri !== track.uri &&
791
+ !historySet.has(t.uri) &&
792
+ !historySet.has(`${t.title}::${t.author}`));
710
793
  if (!eligible.length)
711
794
  return undefined;
712
795
  const scored = eligible.map((t) => ({ track: t, score: scoreTrack(t) }));
@@ -717,12 +800,16 @@ class StellaNode {
717
800
  this.manager.emit("Debug", `[AutoMix] Best candidates: ${scored.slice(0, 5).map((s) => `"${s.track.title}" (${s.score}pts)`).join(", ")}`);
718
801
  return pick?.track;
719
802
  };
720
- // Helper: add track to history (bounded ring buffer)
803
+ // Helper: add track to history (bounded ring buffer — dedup by URI and title+author)
721
804
  const addToHistory = (t) => {
722
- if (t.uri) {
723
- player.autoplayHistory.push(t.uri);
805
+ const key = t.uri || `${t.title}::${t.author}`;
806
+ if (key && !historySet.has(key)) {
807
+ player.autoplayHistory.push(key);
808
+ historySet.add(key);
724
809
  if (player.autoplayHistory.length > 50) {
725
- player.autoplayHistory.splice(0, player.autoplayHistory.length - 50);
810
+ const removed = player.autoplayHistory.splice(0, player.autoplayHistory.length - 50);
811
+ for (const r of removed)
812
+ historySet.delete(r);
726
813
  }
727
814
  }
728
815
  };
@@ -745,7 +832,10 @@ class StellaNode {
745
832
  const commitTrack = (found, strategy) => {
746
833
  addToHistory(found);
747
834
  player.queue.add(found);
748
- player.play();
835
+ player.play().catch((err) => {
836
+ this.manager.emit("Debug", `[AutoMix] Failed to play (${strategy}): ${err instanceof Error ? err.message : String(err)}`);
837
+ player.playing = false;
838
+ });
749
839
  this.manager.emit("Debug", `[AutoMix] Playing (${strategy}): "${found.title}" by "${found.author}"`);
750
840
  };
751
841
  this.manager.emit("Debug", `[AutoMix] Finding best transition (from: "${previousTrack.title}" by "${previousTrack.author}", avgDur: ${Math.round(avgDuration / 1000)}s, seeds: ${seedPool.length})`);
@@ -782,12 +872,23 @@ class StellaNode {
782
872
  const candidates = playlistData.tracks.map((t) => Utils_1.TrackUtils.build(t, requester));
783
873
  const picked = pickBestTransition(candidates);
784
874
  if (picked) {
785
- // Re-search on SoundCloud for a streamable version
875
+ // Try playing the Spotify rec directly first (if source supports it)
876
+ if (picked.track && picked.uri) {
877
+ commitTrack(picked, "Spotify rec (direct)");
878
+ return;
879
+ }
880
+ // Fallback: re-search on SoundCloud for a streamable version
786
881
  const streamable = await tryMixSearch({ source: "soundcloud", query: `${picked.author} ${picked.title}` });
787
882
  if (streamable) {
788
883
  commitTrack(streamable, "Spotify rec → SoundCloud");
789
884
  return;
790
885
  }
886
+ // Fallback: try YouTube
887
+ const ytFallback = await tryMixSearch({ source: "youtube", query: `${picked.author} ${picked.title}` });
888
+ if (ytFallback) {
889
+ commitTrack(ytFallback, "Spotify rec → YouTube");
890
+ return;
891
+ }
791
892
  }
792
893
  }
793
894
  }
@@ -848,8 +949,23 @@ class StellaNode {
848
949
  // ── Strategy 4: YouTube Radio Mix (last resort) ─────────────────────
849
950
  const hasYouTubeURL = ["youtube.com", "youtu.be"].some((url) => previousTrack.uri?.includes(url));
850
951
  if (hasYouTubeURL) {
851
- const videoID = previousTrack.uri?.substring(previousTrack.uri.indexOf("=") + 1);
852
- if (videoID) {
952
+ // Robust YouTube video ID extraction (handles /watch?v=ID, /shorts/ID, youtu.be/ID)
953
+ let videoID = null;
954
+ try {
955
+ const url = new URL(previousTrack.uri);
956
+ if (url.hostname === "youtu.be") {
957
+ videoID = url.pathname.slice(1).split("/")[0] || null;
958
+ }
959
+ else {
960
+ videoID = url.searchParams.get("v") ?? url.pathname.split("/").pop() ?? null;
961
+ }
962
+ }
963
+ catch {
964
+ // Fallback regex for malformed URIs
965
+ const match = previousTrack.uri?.match(/(?:v=|youtu\.be\/)([a-zA-Z0-9_-]{11})/);
966
+ videoID = match ? match[1] : null;
967
+ }
968
+ if (videoID && videoID.length >= 10) {
853
969
  const randomIndex = Math.floor(Math.random() * 23) + 2;
854
970
  const mixURI = `https://www.youtube.com/watch?v=${videoID}&list=RD${videoID}&index=${randomIndex}`;
855
971
  const found = await tryMixSearch(mixURI);
@@ -864,18 +980,18 @@ class StellaNode {
864
980
  player.playing = false;
865
981
  this.manager.emit("QueueEnd", player, track, { type: "TrackEndEvent", reason: "finished" });
866
982
  }
867
- handleFailedTrack(player, track, payload) {
983
+ async handleFailedTrack(player, track, payload) {
868
984
  player.queue.previous = player.queue.current;
869
985
  player.queue.current = player.queue.shift() ?? null;
870
986
  if (!player.queue.current) {
871
- this.queueEnd(player, track, payload);
987
+ await this.queueEnd(player, track, payload);
872
988
  return;
873
989
  }
874
990
  this.manager.emit("TrackEnd", player, track, payload);
875
991
  if (this.manager.options.autoPlay)
876
992
  player.play();
877
993
  }
878
- handleRepeatedTrack(player, track, payload) {
994
+ async handleRepeatedTrack(player, track, payload) {
879
995
  const { queue, trackRepeat, queueRepeat } = player;
880
996
  const { autoPlay } = this.manager.options;
881
997
  if (trackRepeat) {
@@ -888,7 +1004,7 @@ class StellaNode {
888
1004
  queue.current = queue.shift() ?? null;
889
1005
  this.manager.emit("TrackEnd", player, track, payload);
890
1006
  if (payload.reason === "stopped" && !(queue.current = queue.shift() ?? null)) {
891
- this.queueEnd(player, track, payload);
1007
+ await this.queueEnd(player, track, payload);
892
1008
  return;
893
1009
  }
894
1010
  if (autoPlay)
@@ -921,6 +1037,16 @@ class StellaNode {
921
1037
  }
922
1038
  socketClosed(player, payload) {
923
1039
  this.manager.emit("SocketClosed", player, payload);
1040
+ // 4014 = Disconnected by Discord (bot was kicked/moved out of voice)
1041
+ // 4006 = Session is no longer valid
1042
+ const VOICE_FATAL_CODES = [4014, 4006];
1043
+ if (VOICE_FATAL_CODES.includes(payload.code)) {
1044
+ this.manager.emit("Debug", `[Player:${player.guild}] Voice socket closed with code ${payload.code} (${payload.reason || "no reason"}) — cleaning up player`);
1045
+ player.voiceReady = false;
1046
+ player.connected = false;
1047
+ player.playing = false;
1048
+ player.state = "DISCONNECTED";
1049
+ }
924
1050
  }
925
1051
  }
926
1052
  exports.StellaNode = StellaNode;
@@ -1 +1 @@
1
- {"version":3,"file":"Node.js","sourceRoot":"","sources":["../../src/Structures/Node.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Node.js","sourceRoot":"","sources":["../../src/Structures/Node.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,7 @@
4
4
  * Derived from LithiumX — Copyright (c) 2025 Anantix Network (MIT)
5
5
  * See LICENSE and THIRD-PARTY-NOTICES.md for full license details.
6
6
  */
7
- import type { SearchQuery, SearchResult, State, VoiceState, PlayerOptions, Track, UnresolvedTrack, PlayOptions, PlayerStateSnapshot } from "./Types";
7
+ import type { SearchQuery, SearchResult, State, VoiceState, PlayerOptions, Track, UnresolvedTrack, PlayOptions, PlayerStateSnapshot, PlayerPersistData } from "./Types";
8
8
  import type { StellaManager } from "./Manager";
9
9
  import type { StellaNode } from "./Node";
10
10
  import { Filters } from "./Filters";
@@ -65,9 +65,15 @@ export declare class StellaPlayer {
65
65
  connected: boolean;
66
66
  /** The ping to the voice server in ms. */
67
67
  ping: number;
68
+ /** Inactivity timeout in ms (0 = disabled). Auto-disconnect when alone in VC. */
69
+ inactivityTimeout: number;
70
+ /** Maximum queue size (0 = unlimited). */
71
+ maxQueueSize: number;
68
72
  private static _manager;
69
73
  private readonly data;
70
74
  private dynamicLoopInterval?;
75
+ /** Timer for inactivity auto-disconnect. */
76
+ private inactivityTimer?;
71
77
  /** Whether the voice connection handshake is complete. */
72
78
  voiceReady: boolean;
73
79
  /** @hidden */
@@ -184,10 +190,40 @@ export declare class StellaPlayer {
184
190
  * Resolves all pending waitForVoice() callers.
185
191
  */
186
192
  resolveVoiceReady(): void;
193
+ /**
194
+ * Starts the inactivity timer. When it fires, the player auto-disconnects.
195
+ * Call this when the bot detects it's alone in the voice channel.
196
+ */
197
+ startInactivityTimer(): void;
198
+ /** Stops the inactivity timer (e.g., when someone joins the voice channel). */
199
+ stopInactivityTimer(): void;
200
+ /**
201
+ * Checks if the queue can accept more tracks.
202
+ * @param count Number of tracks to add (default 1).
203
+ * @returns true if the queue has room, false otherwise.
204
+ */
205
+ canAddToQueue(count?: number): boolean;
206
+ /**
207
+ * Returns how many more tracks can be added to the queue.
208
+ * Returns Infinity if no limit is set.
209
+ */
210
+ get queueSpaceRemaining(): number;
187
211
  /**
188
212
  * Returns a snapshot of the player's current state.
189
213
  * Useful for persistence, debugging, or manual resume.
190
214
  */
191
215
  getStateSnapshot(): PlayerStateSnapshot;
216
+ /** Helper to serialize a Track into TrackPersistData. */
217
+ private static trackToPersist;
218
+ /**
219
+ * Returns the full player state for persistence across restarts.
220
+ * Includes autoplay state, queue, filters, seed pool, and history.
221
+ */
222
+ getFullState(): PlayerPersistData;
223
+ /**
224
+ * Restores player state from persisted data (used after bot restart + session resume).
225
+ * Restores autoplay, filters, history, seed pool, repeat modes, and queue.
226
+ */
227
+ restoreFromState(state: PlayerPersistData): void;
192
228
  }
193
229
  //# sourceMappingURL=Player.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Player.d.ts","sourceRoot":"","sources":["../../src/Structures/Player.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Player.d.ts","sourceRoot":"","sources":["../../src/Structures/Player.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAKX,WAAW,EACX,YAAY,EAEZ,KAAK,EAEL,UAAU,EACV,aAAa,EACb,KAAK,EACL,eAAe,EACf,WAAW,EAGX,mBAAmB,EACnB,iBAAiB,EAEjB,MAAM,SAAS,CAAC;AACjB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAItC,qBAAa,YAAY;IA4FL,OAAO,EAAE,aAAa;IA3FzC,gCAAgC;IAChC,SAAgB,KAAK,EAAqC,WAAW,CAAC;IACtE,wCAAwC;IACjC,OAAO,EAAE,OAAO,CAAC;IACxB,2CAA2C;IACpC,WAAW,UAAS;IAC3B,2CAA2C;IACpC,WAAW,UAAS;IAC3B,8DAA8D;IACvD,aAAa,UAAS;IAC7B,2CAA2C;IACpC,QAAQ,SAAK;IACpB,qCAAqC;IAC9B,OAAO,UAAS;IACvB,oCAAoC;IAC7B,MAAM,UAAS;IACtB,iCAAiC;IAC1B,MAAM,EAAE,MAAM,CAAC;IACtB,+BAA+B;IACxB,IAAI,EAAE,UAAU,CAAC;IACxB,gCAAgC;IACzB,KAAK,EAAE,MAAM,CAAC;IACrB,wCAAwC;IACjC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAQ;IAC1C,uCAAuC;IAChC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAQ;IACzC,uCAAuC;IAChC,KAAK,EAAE,KAAK,CAAkB;IACrC,iCAAiC;IAC1B,KAAK,WAAmC;IAC/C,2CAA2C;IACpC,UAAU,EAAE,UAAU,CAAC;IAC9B,mBAAmB;IACZ,OAAO,EAAE,aAAa,CAAC;IAC9B,wCAAwC;IACjC,UAAU,UAAS;IAC1B,mEAAmE;IAC5D,eAAe,EAAE,MAAM,EAAE,CAAM;IACtC,mDAAmD;IACnD,gBAAuB,oBAAoB,MAAM;IACjD,8EAA8E;IACvE,gBAAgB,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,EAAE,CAAM;IACrH,0BAA0B;IAC1B,gBAAuB,aAAa,KAAK;IACzC,6CAA6C;IACtC,SAAS,UAAS;IACzB,0CAA0C;IACnC,IAAI,SAAM;IAEjB,iFAAiF;IAC1E,iBAAiB,EAAE,MAAM,CAAC;IACjC,0CAA0C;IACnC,YAAY,EAAE,MAAM,CAAC;IAE5B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAgB;IACvC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAA+B;IACpD,OAAO,CAAC,mBAAmB,CAAC,CAAiC;IAC7D,4CAA4C;IAC5C,OAAO,CAAC,eAAe,CAAC,CAAgC;IAExD,0DAA0D;IACnD,UAAU,UAAS;IAC1B,cAAc;IACP,mBAAmB,EAAE,KAAK,CAAC,MAAM,IAAI,CAAC,CAAM;IAEnD;;;;OAIG;IACI,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI;IAI7C;;;OAGG;IACI,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,CAAC;IAI7B,cAAc;WACA,IAAI,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI;IAIhD;;;OAGG;gBACgB,OAAO,EAAE,aAAa;IAgCzC;;;;OAIG;IACI,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAIrF,oCAAoC;IAC7B,OAAO,IAAI,IAAI;IAuBtB;;;OAGG;IACI,YAAY,CAAC,OAAO,SAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAsBnD;;;OAGG;IACU,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAyFnD,yCAAyC;IAClC,UAAU,IAAI,IAAI;IA2BzB,iEAAiE;IAC1D,OAAO,CAAC,UAAU,UAAO,GAAG,IAAI;IA8BvC;;;OAGG;IACI,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAO7C;;;OAGG;IACI,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAM5C,4BAA4B;IACf,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAClC,iCAAiC;IACpB,IAAI,CAAC,KAAK,EAAE,KAAK,GAAG,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAChE,8CAA8C;IACjC,IAAI,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IACtD,mDAAmD;IACtC,IAAI,CAAC,KAAK,EAAE,KAAK,GAAG,eAAe,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAgDtF;;;;OAIG;IACI,WAAW,CAAC,aAAa,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IASjE;;;;OAIG;IACU,cAAc,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,GAAG,SAAS,CAAC;IA+E3F;;;OAGG;IACI,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAUtC;;;OAGG;IACI,cAAc,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI;IAW5C;;;OAGG;IACI,cAAc,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI;IAW5C;;;;OAIG;IACI,gBAAgB,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI;IA6B1D,+CAA+C;IACxC,OAAO,IAAI,IAAI;IAWtB,qEAAqE;IAC9D,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;IAelC;;;OAGG;IACI,KAAK,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;IAkBlC,oCAAoC;IAC7B,QAAQ,IAAI,IAAI;IAQvB;;;OAGG;IACI,IAAI,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS;IAkB/C;;;OAGG;IACI,iBAAiB,IAAI,IAAI;IAUhC;;;OAGG;IACI,oBAAoB,IAAI,IAAI;IAkBnC,+EAA+E;IACxE,mBAAmB,IAAI,IAAI;IASlC;;;;OAIG;IACI,aAAa,CAAC,KAAK,SAAI,GAAG,OAAO;IAKxC;;;OAGG;IACH,IAAW,mBAAmB,IAAI,MAAM,CAGvC;IAED;;;OAGG;IACI,gBAAgB,IAAI,mBAAmB;IAwB9C,yDAAyD;IACzD,OAAO,CAAC,MAAM,CAAC,cAAc;IAgB7B;;;OAGG;IACI,YAAY,IAAI,iBAAiB;IAkCxC;;;OAGG;IACI,gBAAgB,CAAC,KAAK,EAAE,iBAAiB,GAAG,IAAI;CAuDvD"}