@rpgjs/server 4.0.0-beta.9 → 4.0.0-rc.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (77) hide show
  1. package/CHANGELOG.md +32 -0
  2. package/lib/Game/EventManager.d.ts +53 -0
  3. package/lib/Game/EventManager.js +93 -0
  4. package/lib/Game/EventManager.js.map +1 -0
  5. package/lib/Game/Map.d.ts +6 -30
  6. package/lib/Game/Map.js +26 -61
  7. package/lib/Game/Map.js.map +1 -1
  8. package/lib/Gui/MenuGui.js +2 -2
  9. package/lib/Gui/MenuGui.js.map +1 -1
  10. package/lib/Player/BattleManager.d.ts +5 -5
  11. package/lib/Player/BattleManager.js +8 -7
  12. package/lib/Player/BattleManager.js.map +1 -1
  13. package/lib/Player/ClassManager.d.ts +11 -4
  14. package/lib/Player/ClassManager.js +7 -3
  15. package/lib/Player/ClassManager.js.map +1 -1
  16. package/lib/Player/EffectManager.d.ts +2 -2
  17. package/lib/Player/EffectManager.js +6 -6
  18. package/lib/Player/EffectManager.js.map +1 -1
  19. package/lib/Player/ElementManager.d.ts +4 -1
  20. package/lib/Player/ElementManager.js.map +1 -1
  21. package/lib/Player/ItemManager.d.ts +21 -0
  22. package/lib/Player/ItemManager.js +22 -1
  23. package/lib/Player/ItemManager.js.map +1 -1
  24. package/lib/Player/MoveManager.js +27 -14
  25. package/lib/Player/MoveManager.js.map +1 -1
  26. package/lib/Player/ParameterManager.d.ts +2 -1
  27. package/lib/Player/ParameterManager.js +15 -4
  28. package/lib/Player/ParameterManager.js.map +1 -1
  29. package/lib/Player/Player.d.ts +150 -54
  30. package/lib/Player/Player.js +142 -58
  31. package/lib/Player/Player.js.map +1 -1
  32. package/lib/Player/SkillManager.d.ts +13 -8
  33. package/lib/Player/SkillManager.js +14 -12
  34. package/lib/Player/SkillManager.js.map +1 -1
  35. package/lib/Player/StateManager.d.ts +11 -6
  36. package/lib/Player/StateManager.js +21 -6
  37. package/lib/Player/StateManager.js.map +1 -1
  38. package/lib/RpgServer.d.ts +42 -2
  39. package/lib/Scenes/Map.d.ts +3 -0
  40. package/lib/Scenes/Map.js +4 -0
  41. package/lib/Scenes/Map.js.map +1 -1
  42. package/lib/decorators/event.d.ts +1 -1
  43. package/lib/decorators/event.js +2 -1
  44. package/lib/decorators/event.js.map +1 -1
  45. package/lib/decorators/map.d.ts +5 -2
  46. package/lib/decorators/map.js.map +1 -1
  47. package/lib/express/server.js +5 -1
  48. package/lib/express/server.js.map +1 -1
  49. package/lib/index.d.ts +3 -1
  50. package/lib/index.js +3 -1
  51. package/lib/index.js.map +1 -1
  52. package/lib/models/Item.d.ts +1 -1
  53. package/lib/server.d.ts +3 -6
  54. package/lib/server.js +9 -8
  55. package/lib/server.js.map +1 -1
  56. package/package.json +8 -7
  57. package/src/Game/EventManager.ts +110 -0
  58. package/src/Game/Map.ts +37 -69
  59. package/src/Gui/MenuGui.ts +3 -3
  60. package/src/Player/BattleManager.ts +10 -9
  61. package/src/Player/ClassManager.ts +13 -7
  62. package/src/Player/EffectManager.ts +6 -5
  63. package/src/Player/ElementManager.ts +4 -1
  64. package/src/Player/ItemManager.ts +47 -26
  65. package/src/Player/MoveManager.ts +35 -15
  66. package/src/Player/ParameterManager.ts +19 -8
  67. package/src/Player/Player.ts +170 -57
  68. package/src/Player/SkillManager.ts +23 -21
  69. package/src/Player/StateManager.ts +30 -11
  70. package/src/RpgServer.ts +42 -2
  71. package/src/Scenes/Map.ts +4 -0
  72. package/src/decorators/event.ts +2 -1
  73. package/src/decorators/map.ts +5 -2
  74. package/src/express/server.ts +9 -3
  75. package/src/index.ts +10 -8
  76. package/src/models/Item.ts +1 -1
  77. package/src/server.ts +11 -8
@@ -1,6 +1,5 @@
1
1
  import { RpgCommonPlayer, Utils, RpgPlugin, RpgCommonMap, Direction } from '@rpgjs/common';
2
2
  import { Room } from 'simple-room';
3
- import { Query } from '../Query.js';
4
3
  import merge from 'lodash.merge';
5
4
  import { ItemManager } from './ItemManager.js';
6
5
  import { GoldManager } from './GoldManager.js';
@@ -17,14 +16,26 @@ import { BattleManager } from './BattleManager.js';
17
16
  import { MAXHP, MAXSP, STR, INT, DEX, AGI, MAXHP_CURVE, MAXSP_CURVE, STR_CURVE, INT_CURVE, DEX_CURVE, AGI_CURVE } from '../presets/index.js';
18
17
  import { SocketEvents, SocketMethods } from '@rpgjs/types';
19
18
  import { ComponentManager } from './ComponentManager.js';
19
+ import { EventManager, EventMode } from '../Game/EventManager.js';
20
20
  const { isPromise, applyMixins, isString } = Utils;
21
- const itemSchemas = {
22
- name: String,
23
- description: String,
24
- price: Number,
25
- consumable: Boolean,
21
+ const commonSchemaFeature = {
22
+ name: {
23
+ $permanent: false
24
+ },
25
+ description: {
26
+ $permanent: false
27
+ },
26
28
  id: String
27
29
  };
30
+ const itemSchemas = {
31
+ price: {
32
+ $permanent: false
33
+ },
34
+ consumable: {
35
+ $permanent: false
36
+ },
37
+ ...commonSchemaFeature
38
+ };
28
39
  export const componentSchema = { id: String, value: String };
29
40
  export const layoutSchema = {
30
41
  width: Number,
@@ -47,19 +58,33 @@ const playerSchemas = {
47
58
  teleported: {
48
59
  $permanent: false
49
60
  },
61
+ deleted: {
62
+ $permanent: false
63
+ },
50
64
  param: Object,
51
65
  hp: Number,
52
66
  sp: Number,
53
67
  gold: Number,
54
- level: Number,
68
+ level: {
69
+ $effects: ['$this.expForNextlevel']
70
+ },
71
+ expForNextlevel: {
72
+ $permanent: false
73
+ },
55
74
  exp: Number,
56
75
  name: String,
57
- expForNextlevel: Number,
58
76
  items: [{ nb: Number, item: itemSchemas }],
59
- _class: { name: String, description: String, id: String },
77
+ _class: commonSchemaFeature,
60
78
  equipments: [itemSchemas],
61
- skills: [{ name: String, description: String, spCost: Number, id: String }],
62
- states: [{ name: String, description: String, id: String }],
79
+ skills: [
80
+ {
81
+ spCost: {
82
+ $permanent: false
83
+ },
84
+ ...commonSchemaFeature
85
+ }
86
+ ],
87
+ states: [commonSchemaFeature],
63
88
  effects: [String],
64
89
  layout: {
65
90
  top: layoutSchema,
@@ -121,14 +146,21 @@ class RpgPlayer extends RpgCommonPlayer {
121
146
  this.tmpPositions = null;
122
147
  this.otherPossessedPlayer = null;
123
148
  this.following = null;
149
+ // Indicates whether to load data with load(). In this case, hooks are not triggered.
150
+ this._dataLoading = false;
124
151
  // As soon as a teleport has been made, the value is changed to force the client to change the positions on the map without making a move.
125
152
  this.teleported = 0;
153
+ // a flag that lets the client know if the event is suppressed. The client can, for example, end animations before completely deleting the object (client side).
154
+ this.deleted = false;
126
155
  this.initialize();
127
156
  }
128
157
  // redefine type (as RpgPlayer)
129
158
  get otherPlayersCollision() {
130
159
  return super.otherPlayersCollision;
131
160
  }
161
+ get world() {
162
+ return this.server?.world;
163
+ }
132
164
  /** @internal */
133
165
  initialize() {
134
166
  this.expCurve = {
@@ -325,27 +357,13 @@ class RpgPlayer extends RpgCommonPlayer {
325
357
  let ret = {};
326
358
  for (let key in events) {
327
359
  this.events[key] = events[key];
360
+ this.events[key].playerRelated = this;
328
361
  this.events[key].execMethod('onInit', [this]);
329
362
  // force to get Proxy object to sync with client
330
363
  ret = { ...ret, [key]: this.events[key] };
331
364
  }
332
365
  return ret;
333
366
  }
334
- /**
335
- * Removes an event from the map (Scenario Mode). Returns false if the event is not found
336
- * @title Remove Event
337
- * @since 3.0.0-beta.4
338
- * @method player.removeEvent(eventId)
339
- * @param {string} eventId Event Name
340
- * @returns {boolean}
341
- * @memberof Player
342
- */
343
- removeEvent(eventId) {
344
- if (!this.events[eventId])
345
- return false;
346
- delete this.events[eventId];
347
- return true;
348
- }
349
367
  /**
350
368
  * Allows to change the positions of the player on the current map.
351
369
  * You can put the X and Y positions or the name of the created shape on Tiled Map Editor.
@@ -400,10 +418,11 @@ class RpgPlayer extends RpgCommonPlayer {
400
418
  * @title Load progress
401
419
  * @method player.load(json)
402
420
  * @param {string} json The JSON sent by the method save()
403
- * @returns {string}
421
+ * @returns {Promise<boolean | RpgMap | null>}
404
422
  * @memberof Player
405
423
  */
406
- load(json) {
424
+ async load(json) {
425
+ this._dataLoading = true;
407
426
  if (isString(json))
408
427
  json = JSON.parse(json);
409
428
  const getData = (id) => new (this.databaseById(id))();
@@ -419,10 +438,12 @@ class RpgPlayer extends RpgCommonPlayer {
419
438
  items[it.item.id] = getData(it.item.id);
420
439
  }
421
440
  json.items = json.items.map(it => ({ nb: it.nb, item: items[it.item.id] }));
422
- json.equipments = json.equipments.map(it => {
423
- items[it.id].equipped = true;
424
- return items[it.id];
425
- });
441
+ if (Array.isArray(json.equipments)) {
442
+ json.equipments = json.equipments.map(it => {
443
+ items[it.id].equipped = true;
444
+ return items[it.id];
445
+ });
446
+ }
426
447
  }
427
448
  if (json.states)
428
449
  json.states = json.states.map(state => getData(state.id));
@@ -434,8 +455,12 @@ class RpgPlayer extends RpgCommonPlayer {
434
455
  this.position = json.position;
435
456
  if (json.map) {
436
457
  this.map = '';
437
- this.changeMap(json.map, json.tmpPositions || json.position);
458
+ const map = await this.changeMap(json.map, json.tmpPositions || json.position);
459
+ this._dataLoading = false;
460
+ return map;
438
461
  }
462
+ this._dataLoading = false;
463
+ return null;
439
464
  }
440
465
  /**
441
466
  * Returns a JSON with all the data to keep in memory. Then use the `load()` method to load the data
@@ -579,6 +604,7 @@ class RpgPlayer extends RpgCommonPlayer {
579
604
  * This is useful, if for example, you want to make an animated character (sword stroke when pressing a key)
580
605
  * When the animation is finished, the original graphic is displayed again
581
606
  *
607
+ *
582
608
  * ```ts
583
609
  * player.showAnimation('sword_stroke', 'default', true)
584
610
  * ```
@@ -589,6 +615,10 @@ class RpgPlayer extends RpgCommonPlayer {
589
615
  * player.showAnimation(['body', 'sword_stroke'], 'default', true)
590
616
  * ```
591
617
  *
618
+ * ::: tip
619
+ * For this to work, the animations must have been previously defined in `setGraphic`.
620
+ * :::
621
+ *
592
622
  * @title Show Animation
593
623
  * @method player.showAnimation(graphic,animationName,replaceGraphic=false)
594
624
  * @param {string | string[]} graphic spritesheet identifier
@@ -599,7 +629,6 @@ class RpgPlayer extends RpgCommonPlayer {
599
629
  */
600
630
  showAnimation(graphic, animationName, replaceGraphic = false) {
601
631
  this.emitToMap('callMethod', {
602
- objectId: this.playerId,
603
632
  name: SocketMethods.ShowAnimation,
604
633
  params: [graphic, animationName, replaceGraphic]
605
634
  });
@@ -700,11 +729,30 @@ class RpgPlayer extends RpgCommonPlayer {
700
729
  if (this._socket)
701
730
  this._socket.removeAllListeners(key);
702
731
  }
732
+ disconnect() {
733
+ if (this._socket)
734
+ this._socket.disconnect();
735
+ }
703
736
  emitToMap(key, value) {
704
- Query.getPlayersOfMap(this.map).forEach(player => player.emit(key, value));
737
+ const map = this.getCurrentMap();
738
+ if (map) {
739
+ map.$setCurrentState(`users.${this.id}.${key}`, value);
740
+ }
705
741
  }
706
- async execMethod(methodName, methodData = []) {
707
- const ret = await RpgPlugin.emit(`Server.${methodName}`, [this, ...methodData], true);
742
+ async execMethod(methodName, methodData = [], target) {
743
+ const ignoreIfDataLoading = ['onLevelUp', 'onDead'];
744
+ if (ignoreIfDataLoading.includes(methodName) && this._dataLoading) {
745
+ return;
746
+ }
747
+ let ret;
748
+ if (target && target[methodName]) {
749
+ ret = target[methodName](...methodData);
750
+ if (isPromise(ret))
751
+ await ret;
752
+ }
753
+ else {
754
+ ret = await RpgPlugin.emit(`Server.${methodName}`, [this, ...methodData], true);
755
+ }
708
756
  this.syncChanges();
709
757
  return ret;
710
758
  }
@@ -713,6 +761,20 @@ class RpgPlayer extends RpgCommonPlayer {
713
761
  this[name](val);
714
762
  this.emit('Player.' + name, val);
715
763
  }
764
+ // @internal
765
+ /**
766
+ * Allows you to manually update a status in the rooms that will then be sent to the customer.
767
+ * @param path
768
+ * @example
769
+ * ```ts
770
+ * player.changeRoomState('hp')
771
+ * ```
772
+ */
773
+ changeRoomState(path) {
774
+ this.world?.forEachUserRooms(this.id, (room) => {
775
+ room.$setCurrentState(`users.${this.id}.${path}`);
776
+ });
777
+ }
716
778
  _eventChanges() {
717
779
  if (!this._getMap(this.map))
718
780
  return;
@@ -752,18 +814,18 @@ class RpgPlayer extends RpgCommonPlayer {
752
814
  * @title Play Sound
753
815
  * @method player.playSound(soundId,allMap=false)
754
816
  * @param {string} soundId Sound identifier, defined on the client side
755
- * @param {boolean} [allMap] Indicate if the sound is heard by the players on the map
817
+ * @param {boolean} [forEveryone=false] Indicate if the sound is heard by the players on the map
756
818
  * @since 3.0.0-alpha.9
757
819
  * @returns {void}
758
820
  * @memberof Player
759
821
  */
760
- playSound(soundId, allMap = false) {
822
+ playSound(soundId, forEveryone = false) {
761
823
  const obj = {
762
824
  objectId: this.playerId,
763
825
  name: SocketMethods.PlaySound,
764
826
  params: [soundId]
765
827
  };
766
- if (!allMap) {
828
+ if (!forEveryone) {
767
829
  this.emit(SocketEvents.CallMethod, obj);
768
830
  return;
769
831
  }
@@ -776,6 +838,7 @@ RpgPlayer.schemas = {
776
838
  };
777
839
  export { RpgPlayer };
778
840
  applyMixins(RpgPlayer, [
841
+ EventManager,
779
842
  ItemManager,
780
843
  GoldManager,
781
844
  StateManager,
@@ -790,35 +853,56 @@ applyMixins(RpgPlayer, [
790
853
  BattleManager,
791
854
  ComponentManager
792
855
  ]);
793
- export var EventMode;
794
- (function (EventMode) {
795
- EventMode["Shared"] = "shared";
796
- EventMode["Scenario"] = "scenario";
797
- })(EventMode || (EventMode = {}));
798
856
  export class RpgEvent extends RpgPlayer {
799
- constructor() {
800
- super(...arguments);
857
+ constructor(gameEngine, playerId) {
858
+ super(gameEngine, playerId);
801
859
  this.type = 'event';
802
860
  this.properties = {};
861
+ this.playerRelated = null;
803
862
  }
804
863
  async execMethod(methodName, methodData = []) {
805
864
  if (!this[methodName]) {
806
865
  return;
807
866
  }
808
867
  const ret = this[methodName](...methodData);
809
- const sync = () => {
810
- const player = methodData[0];
811
- if (player instanceof RpgPlayer) {
812
- player.syncChanges();
813
- }
814
- };
815
- if (Utils.isPromise(ret)) {
816
- ret.then(sync);
868
+ return ret;
869
+ }
870
+ changeRoomState(path) {
871
+ const room = this.getCurrentMap();
872
+ if (room) {
873
+ room.$setCurrentState(`events.${this.id}.${path}`);
817
874
  }
818
- else {
819
- sync();
875
+ }
876
+ /**
877
+ * Deletes the event from the map (in shared or scenario mode)
878
+ *
879
+ * @title Remove
880
+ * @since 4.0.0
881
+ * @method event.remove()
882
+ * @returns {boolean} true if the event has been removed. If false, the event is not on the map
883
+ * @memberof RpgEvent
884
+ */
885
+ remove() {
886
+ let bool = false;
887
+ if (this.playerRelated)
888
+ bool = this.playerRelated.removeEvent(this.id);
889
+ const map = this.getCurrentMap();
890
+ if (map) {
891
+ bool = map.removeEvent(this.id);
892
+ }
893
+ return bool;
894
+ }
895
+ emitToMap(key, value) {
896
+ const map = this.getCurrentMap();
897
+ if (map) {
898
+ const eventPath = `events.${this.id}.${key}`;
899
+ if (this.playerRelated) {
900
+ map.$setCurrentState(`users.${this.playerRelated.id}.${eventPath}`, value);
901
+ }
902
+ else {
903
+ map.$setCurrentState(eventPath, value);
904
+ }
820
905
  }
821
- return ret;
822
906
  }
823
907
  }
824
908
  //# sourceMappingURL=Player.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Player.js","sourceRoot":"","sources":["../../src/Player/Player.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,KAAK,EAAE,SAAS,EAAiB,YAAY,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AACzG,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AAElC,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAA;AAChC,OAAO,KAAK,MAAM,cAAc,CAAA;AAChC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,eAAe,CAAA;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAE/C,OAAO,EACH,KAAK,EACL,KAAK,EACL,GAAG,EACH,GAAG,EACH,GAAG,EACH,GAAG,EACH,WAAW,EACX,WAAW,EACX,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACZ,MAAM,YAAY,CAAA;AAInB,OAAO,EAAuC,YAAY,EAAE,aAAa,EAAgB,MAAM,cAAc,CAAA;AAC7G,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAGrD,MAAM,EACF,SAAS,EACT,WAAW,EACX,QAAQ,EACX,GAAG,KAAK,CAAA;AAIT,MAAM,WAAW,GAAG;IAChB,IAAI,EAAE,MAAM;IACZ,WAAW,EAAE,MAAM;IACnB,KAAK,EAAE,MAAM;IACb,UAAU,EAAE,OAAO;IACnB,EAAE,EAAE,MAAM;CACb,CAAA;AAED,MAAM,CAAC,MAAM,eAAe,GAAG,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,CAAA;AAC5D,MAAM,CAAC,MAAM,YAAY,GAAG;IACxB,KAAK,EAAE,MAAM;IACb,MAAM,EAAE,MAAM;IACd,YAAY,EAAE,MAAM;IACpB,SAAS,EAAE,MAAM;IACjB,UAAU,EAAE,MAAM;IAClB,WAAW,EAAE,MAAM;IACnB,KAAK,EAAE,CAAC;YACJ,GAAG,EAAE,CAAC,eAAe,CAAC;SACzB,CAAC;CACL,CAAA;AAED,MAAM,aAAa,GAAG;IAClB,QAAQ,EAAE;QACN,CAAC,EAAE,MAAM;QACT,CAAC,EAAE,MAAM;QACT,CAAC,EAAE,MAAM;KACZ;IACD,SAAS,EAAE,MAAM;IACjB,UAAU,EAAE;QACR,UAAU,EAAE,KAAK;KACpB;IACD,KAAK,EAAE,MAAM;IACb,EAAE,EAAE,MAAM;IACV,EAAE,EAAE,MAAM;IACV,IAAI,EAAE,MAAM;IACZ,KAAK,EAAE,MAAM;IACb,GAAG,EAAE,MAAM;IACX,IAAI,EAAE,MAAM;IACZ,eAAe,EAAE,MAAM;IACvB,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;IAC1C,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE;IACzD,UAAU,EAAE,CAAC,WAAW,CAAC;IACzB,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC;IAC3E,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC;IAC3D,OAAO,EAAE,CAAC,MAAM,CAAC;IAEjB,MAAM,EAAE;QACJ,GAAG,EAAE,YAAY;QACjB,MAAM,EAAE,YAAY;QACpB,IAAI,EAAE,YAAY;QAClB,KAAK,EAAE,YAAY;QACnB,MAAM,EAAE,YAAY;KACvB;IAED,MAAM,EAAE,MAAM;IACd,GAAG,EAAE,MAAM;IAEX,KAAK,EAAE,MAAM;IACb,SAAS,EAAE,MAAM;IACjB,OAAO,EAAE,OAAO;IAChB,OAAO,EAAE,OAAO;IAChB,kBAAkB,EAAE,OAAO;IAE3B,KAAK,EAAE,MAAM;IACb,MAAM,EAAE,MAAM;IACd,OAAO,EAAE,MAAM;IACf,OAAO,EAAE,MAAM;IAEf,kBAAkB;IAElB,iBAAiB,EAAE,CAAC;YAChB,IAAI,EAAE;gBACF,eAAe,EAAE,KAAK;aACzB;YACD,KAAK,EAAE;gBACH,eAAe,EAAE,KAAK;aACzB;SACJ,CAAC;IACF,YAAY,EAAE;QACV,eAAe,EAAE,KAAK;KACzB;IACD,YAAY,EAAE;QACV,eAAe,EAAE,KAAK;KACzB;IACD,UAAU,EAAE;QACR,eAAe,EAAE,KAAK;KACzB;CACJ,CAAA;AAED,MAAM,YAAY,GAAG;IACjB,KAAK,EAAE,EAAE;CACZ,CAAA;AAED,MAAa,SAAU,SAAQ,eAAe;IAkC1C,YAAY,UAAyB,EAAE,QAAgB;QACnD,KAAK,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;QAlCf,SAAI,GAAW,QAAQ,CAAA;QAMvC,WAAM,GAAsB;YACxB,GAAG,EAAE,YAAY;YACjB,MAAM,EAAE,YAAY;YACpB,IAAI,EAAE,YAAY;YAClB,KAAK,EAAE,YAAY;YACnB,MAAM,EAAE,YAAY;SACvB,CAAA;QAGM,WAAM,GAAQ,EAAE,CAAA;QAEhB,WAAM,GAAG,EAAE,CAAA;QACX,YAAO,GAAkB,IAAI,CAAA;QAC7B,YAAO,GAAW,EAAE,CAAA;QAGnB,cAAS,GAAY,KAAK,CAAA;QAClC,gBAAgB;QACT,iBAAY,GAA6B,IAAI,CAAA;QAC7C,yBAAoB,GAAgC,IAAI,CAAA;QACxD,cAAS,GAAgC,IAAI,CAAA;QAiBpD,0IAA0I;QAC1I,eAAU,GAAW,CAAC,CAAA;QATlB,IAAI,CAAC,UAAU,EAAE,CAAA;IACrB,CAAC;IAED,+BAA+B;IAC/B,IAAI,qBAAqB;QACrB,OAAO,KAAK,CAAC,qBAAoC,CAAA;IACrD,CAAC;IAKD,gBAAgB;IAChB,UAAU;QACN,IAAI,CAAC,QAAQ,GAAG;YACZ,KAAK,EAAE,EAAE;YACT,KAAK,EAAE,EAAE;YACT,aAAa,EAAE,EAAE;YACjB,aAAa,EAAE,EAAE;SACpB,CAAA;QACD,IAAI,CAAC,UAAU,GAAG,IAAI,GAAG,EAAE,CAAA;QAC3B,IAAI,CAAC,SAAS,GAAG,IAAI,GAAG,EAAE,CAAA;QAC1B,IAAI,CAAC,MAAM,GAAG,EAAE,CAAA;QAChB,IAAI,CAAC,UAAU,GAAG,EAAE,CAAA;QACpB,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAA;QAClB,IAAI,CAAC,KAAK,GAAG,EAAE,CAAA;QACf,IAAI,CAAC,MAAM,GAAG,EAAE,CAAA;QAChB,IAAI,CAAC,IAAI,GAAG,CAAC,CAAA;QACb,IAAI,CAAC,GAAG,GAAG,CAAC,CAAA;QACZ,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,MAAM,CAAA;QACzB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC,IAAI,CAAA;QAC/B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAA;QACnB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAA;QACpB,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAA;QAC9B,IAAI,CAAC,YAAY,GAAG,CAAC,CAAA;QACrB,IAAI,CAAC,UAAU,GAAG,EAAE,CAAA;QACpB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,YAAY,CAAA;QAC9B,IAAI,CAAC,IAAI,GAAG,EAAE,CAAA;QACd,IAAI,CAAC,mBAAmB,GAAG,EAAE,CAAA;QAC7B,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAA;QAE3B,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,WAAW,CAAC,CAAA;QACrC,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,WAAW,CAAC,CAAA;QACrC,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,SAAS,CAAC,CAAA;QACjC,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,SAAS,CAAC,CAAA;QACjC,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,SAAS,CAAC,CAAA;QACjC,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,SAAS,CAAC,CAAA;QACjC,IAAI,CAAC,WAAW,EAAE,CAAA;IACtB,CAAC;IAED,KAAK;QACD,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,iBAAiB,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE;YACzD,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;gBAClB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;gBACjC,IAAI,CAAC,WAAW,EAAE,CAAA;aACrB;QACL,CAAC,CAAC,CAAA;QACF,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE;YAC5C,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;QAC/B,CAAC,CAAC,CAAA;IACN,CAAC;IAED,IAAY,MAAM;QACd,OAAO;YACH,GAAG,SAAS,CAAC,OAAO;YACpB,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC;SAChC,CAAA;IACL,CAAC;IAED;;;;;;;SAOK;IACL,IAAI,IAAI;QACJ,OAAO,IAAI,CAAC,KAAK,CAAA;IACrB,CAAC;IAED,IAAI,IAAI,CAAC,GAAW;QAChB,IAAI,CAAC,KAAK,GAAG,GAAG,CAAA;IACpB,CAAC;IAED;;;;;;;;;;;;;OAaG;IACH,SAAS,CAAC,KAAa,EAAE,SAAyD;QAC9E,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,SAAS,CAAC,CAAA;IACjE,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,YAAsB;QACtC,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,EAAE,CAAA;QAChC,MAAM,SAAS,GAAG,GAAG,EAAE,cAAc,EAAE,CAAA;QACvC,IAAI,GAAG,GAAY,KAAK,CAAA;QACxB,IAAI,SAAS,IAAI,GAAG,EAAE;YAClB,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,EAAE,CAAA;YACrC,MAAM,eAAe,GAAG,GAAG,CAAC,SAAS,GAAG,CAAC,CAAA;YACzC,MAAM,aAAa,GAAG,GAAG,CAAC,UAAU,GAAG,CAAC,CAAA;YAExC,MAAM,SAAS,GAAG,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE;gBACrC,IAAI,IAAI,CAAC,SAAS,EAAE;oBAChB,OAAO,KAAK,CAAA;iBACf;gBACD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAA;gBACrB,MAAM,CAAC,OAAO,CAAC,GAAG,SAAS,CAAC,eAAe,CAAC,GAAG,EAAE,QAAQ,CAA0B,CAAA;gBACnF,IAAI,CAAC,OAAO;oBAAE,OAAO,KAAK,CAAA;gBAC1B,MAAM,EAAE,GAAG,OAAO,CAAC,EAAY,CAAA;gBAC/B,MAAM,WAAW,GAAG,SAAS,CAAC,UAAU,CAAC,EAAE,CAAqB,CAAA;gBAChE,OAAO,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,CAAA;YACxD,CAAC,CAAA;YAED,IAAI,YAAY,CAAC,CAAC,GAAG,eAAe,IAAI,SAAS,IAAI,SAAS,CAAC,IAAI,EAAE;gBACjE,GAAG,GAAG,MAAM,SAAS,CAAC;oBAClB,CAAC,EAAE,GAAG,CAAC,MAAM,GAAG,CAAC;oBACjB,CAAC,EAAE,IAAI,CAAC,cAAc,GAAG,CAAC;iBAC7B,EAAE,WAAW,CAAC,EAAE,CAAC,CAAC;oBACf,CAAC,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,GAAG,eAAe;oBACvD,CAAC,EAAE,GAAG,CAAC,MAAM,GAAG,WAAW,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC;iBACjD,CAAC,CAAC,CAAA;aACN;iBACI,IAAI,YAAY,CAAC,CAAC,GAAG,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,GAAG,eAAe,IAAI,SAAS,IAAI,SAAS,CAAC,KAAK,EAAE;gBACpG,GAAG,GAAG,MAAM,SAAS,CAAC;oBAClB,CAAC,EAAE,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,OAAO,GAAG,CAAC;oBAC/B,CAAC,EAAE,IAAI,CAAC,cAAc,GAAG,CAAC;iBAC7B,EAAE,WAAW,CAAC,EAAE,CAAC,CAAC;oBACf,CAAC,EAAE,eAAe;oBAClB,CAAC,EAAE,GAAG,CAAC,MAAM,GAAG,WAAW,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC;iBACjD,CAAC,CAAC,CAAA;aACN;iBACI,IAAI,YAAY,CAAC,CAAC,GAAG,aAAa,IAAI,SAAS,IAAI,SAAS,CAAC,EAAE,EAAE;gBAClE,GAAG,GAAG,MAAM,SAAS,CAAC;oBAClB,CAAC,EAAE,IAAI,CAAC,cAAc,GAAG,CAAC;oBAC1B,CAAC,EAAE,GAAG,CAAC,MAAM,GAAG,CAAC;iBACpB,EAAE,WAAW,CAAC,EAAE,CAAC,CAAC;oBACf,CAAC,EAAE,GAAG,CAAC,MAAM,GAAG,WAAW,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC;oBAC9C,CAAC,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,GAAG,aAAa;iBACzD,CAAC,CAAC,CAAA;aACN;iBACI,IAAI,YAAY,CAAC,CAAC,GAAG,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,GAAG,aAAa,IAAI,SAAS,IAAI,SAAS,CAAC,IAAI,EAAE;gBAClG,GAAG,GAAG,MAAM,SAAS,CAAC;oBAClB,CAAC,EAAE,IAAI,CAAC,cAAc,GAAG,CAAC;oBAC1B,CAAC,EAAE,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,QAAQ,GAAG,CAAC;iBACnC,EAAE,WAAW,CAAC,EAAE,CAAC,CAAC;oBACf,CAAC,EAAE,GAAG,CAAC,MAAM,GAAG,WAAW,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC;oBAC9C,CAAC,EAAE,aAAa;iBACnB,CAAC,CAAC,CAAA;aACN;iBACI;gBACD,IAAI,CAAC,SAAS,GAAG,KAAK,CAAA;aACzB;SACJ;QACD,OAAO,GAAG,CAAA;IACd,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;IACH,kBAAkB,CAAC,UAA6C,EAAE,YAAqB,IAAI;QAGvF,IAAI,CAAC,UAAU;YAAE,OAAO,EAAE,CAAA;QAC1B,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,EAAU,CAAA;QAChD,IAAI,CAAC,WAAW,EAAE;YACd,MAAM,uCAAuC,CAAA;SAChD;QACD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;YAC5B,UAAU,GAAG,CAAC,UAA4B,CAAC,CAAA;SAC9C;QACD,IAAI,cAAc,GAAG,UAAU,CAAA;QAC/B,IAAI,SAAS,EAAE;YACX,cAAc,GAAI,UAA+B,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;gBAC1D,KAAK,CAAC,KAAK,CAAC,IAAI,GAAG,SAAS,CAAC,QAAQ,CAAA;gBACrC,OAAO,KAAK,CAAA;YAChB,CAAC,CAAC,CAAA;SACL;QACD,MAAM,MAAM,GAAG,WAAW,CAAC,YAAY,CAAC,cAAkC,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAA;QAC/F,IAAI,GAAG,GAAG,EAAE,CAAA;QACZ,KAAK,IAAI,GAAG,IAAI,MAAM,EAAE;YACpB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAA;YAC9B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC,CAAA;YAC7C,gDAAgD;YAChD,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAA;SAC5C;QACD,OAAO,GAAG,CAAA;IACd,CAAC;IAED;;;;;;;;OAQG;IACH,WAAW,CAAC,OAAe;QACvB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;YAAE,OAAO,KAAK,CAAA;QACvC,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;QAC3B,OAAO,IAAI,CAAA;IACf,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACH,KAAK,CAAC,QAAQ,CAAC,SAAyC;QACpD,IAAI,QAAQ,CAAC,SAAS,CAAC;YAAE,SAAS,GAAa,IAAI,CAAC,aAAa,EAAE,EAAE,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,IAAI,SAAS,IAAI,KAAK,CAAC,OAAO,EAAE,IAAI,SAAS,CAAC,CAAA;QACzJ,IAAI,CAAC,SAAS;YAAE,SAAS,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAA;QAChD,IAAI,CAAE,SAAsB,CAAC,CAAC;YAAG,SAAsB,CAAC,CAAC,GAAG,CAAC,CAAA;QAC7D,IAAI,CAAC,UAAU,EAAE,CAAA;QACjB,IAAI,CAAC,QAAQ,GAAG,SAAqB,CAAA;QACrC,8HAA8H;QAC9H,IAAI,CAAC,mBAAmB,GAAG,SAAS,CAAA;QACpC,wCAAwC;QACxC,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QACpC,OAAQ,SAAsB,CAAA;IAClC,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACH,IAAI,CAAC,IAAS;QACV,IAAI,QAAQ,CAAC,IAAI,CAAC;YAAE,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QAE3C,MAAM,OAAO,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,EAAE,CAAA;QAErD,KAAK,IAAI,GAAG,IAAI,IAAI,EAAE;YAClB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAA;YACrB,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE;gBAChD,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;aACjC;SACJ;QAED,MAAM,KAAK,GAAG,EAAE,CAAA;QAEhB,IAAI,IAAI,CAAC,KAAK,EAAE;YACZ,KAAK,IAAI,EAAE,IAAI,IAAI,CAAC,KAAK,EAAE;gBACvB,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;aAC1C;YACD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;YAC3E,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;gBACvC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAA;gBAC5B,OAAO,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,CAAA;YACvB,CAAC,CAAC,CAAA;SACL;QACD,IAAI,IAAI,CAAC,MAAM;YAAE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAA;QAC1E,IAAI,IAAI,CAAC,MAAM;YAAE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAA;QAC1E,IAAI,IAAI,CAAC,SAAS;YAAE,IAAI,CAAC,SAAS,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QAE5D,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;QAEjB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAA;QAC7B,IAAI,IAAI,CAAC,GAAG,EAAE;YACV,IAAI,CAAC,GAAG,GAAG,EAAE,CAAA;YACb,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAA;SAC/D;IACL,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACH,IAAI;QACA,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;IAC/B,CAAC;IAED,OAAO;IACP,QAAQ;QACJ,OAAO;YACH,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,QAAQ,EAAE;gBACN,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAClB,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAClB,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;aACrB;YACD,MAAM,EAAE;gBACJ,KAAK,EAAE,IAAI,CAAC,OAAO;gBACnB,MAAM,EAAE,IAAI,CAAC,OAAO;aACvB;YACD,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,KAAK,EAAE,IAAI,CAAC,KAAK;SACpB,CAAA;IACL,CAAC;IAED,MAAM;QACF,MAAM,EAAE,eAAe,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QACpD,MAAM,QAAQ,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE,eAAe,CAAC,CAAA;QAChE,QAAQ,CAAC,SAAS,GAAG,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,CAAA;QACxC,OAAO,QAAQ,CAAA;IACnB,CAAC;IAED;;;;;;;;OAQG;IACH,WAAW;QACP,IAAI,CAAC,aAAa,EAAE,CAAA;IACxB,CAAC;IAED,YAAY,CAAC,EAAU;QACnB,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;QACrC,IAAI,CAAC,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,UAAU,EAAE,sGAAsG,CAAC,CAAA;QAC9I,OAAO,IAAI,CAAA;IACf,CAAC;IAED;;;;;;;;;OASG;IACH,aAAa;QACT,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IACjC,CAAC;IAED,SAAS,CAAC,IAAY,EAAE,IAAS;QAC7B,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE;YAC9B,IAAI;YACJ,IAAI;SACP,CAAC,CAAA;IACN,CAAC;IAED,YAAY;QACR,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,EAAU,CAAA;QAChD,IAAI,CAAC,WAAW,EAAE;YACd,MAAM,8CAA8C,CAAA;SACvD;QACD,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,WAAW,CAAQ,CAAA;QAClE,OAAO,YAAY,CAAC,MAAM,CAAA;QAC1B,OAAO,YAAY,CAAC,MAAM,CAAA;QAC1B,OAAO,YAAY,CAAC,OAAO,CAAA;QAE3B,KAAK,IAAI,KAAK,IAAI,YAAY,CAAC,MAAM,EAAE;YACnC,OAAO,KAAK,CAAC,GAAG,CAAA;SACnB;QAED,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE;YAClB,EAAE,EAAE,WAAW,CAAC,EAAE;YAClB,MAAM,EAAE,WAAW,CAAC,MAAM;YAC1B,GAAG,YAAY;SAClB,CAAC,CAAA;IACN,CAAC;IAED,UAAU;QACN,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAA;IACtC,CAAC;IAED,YAAY,CAAC,GAAW,EAAE,IAAY;QAClC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE;YACjC,GAAG;YACH,IAAI;SACP,CAAC,CAAA;IACN,CAAC;IAEO,OAAO,CAAC,EAAE;QACd,OAAO,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IACtC,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAgDG;IACH,aAAa,CAAC,OAA0B,EAAE,aAAqB,EAAE,iBAA0B,KAAK;QAC5F,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE;YACzB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,IAAI,EAAE,aAAa,CAAC,aAAa;YACjC,MAAM,EAAE,CAAC,OAAO,EAAE,aAAa,EAAE,cAAc,CAAC;SACnD,CAAC,CAAA;IACN,CAAC;IAED;;;;;;OAMG;IACH,gBAAgB,CAAC,WAAiC;QAC9C,IAAI,CAAC,oBAAoB,GAAG,WAAW,CAAA;QACvC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,QAAQ,EAAE,WAAW,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAA;QACtF,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,CAAA;IAClC,CAAC;IAED;;;;;;;;;;;;;OAaG;IACH,YAAY,CAAC,WAAiC,EAAE,UAAyB,EAAE;QACvE,IAAI,WAAW,CAAC,EAAE,IAAI,IAAI,CAAC,EAAE,EAAE;YAC3B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAA;SACxB;aACI;YACD,IAAI,CAAC,SAAS,GAAG,WAAW,CAAA;SAC/B;QACD,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE;YAC/B,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,IAAI,EAAE,aAAa,CAAC,YAAY;YAChC,MAAM,EAAE,CAAC,WAAW,CAAC,EAAE,EAAE,OAAO,CAAC;SACpC,CAAC,CAAA;IACN,CAAC;IAED;;;;;;;;;OASG;IACI,IAAI,CAAC,GAAW,EAAE,KAAW;QAChC,IAAI,IAAI,CAAC,OAAO;YAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;IACnD,CAAC;IAGD;;;;;;;;;OASG;IACI,EAAE,CAAC,GAAW,EAAE,EAAY;QAC/B,IAAI,IAAI,CAAC,OAAO;YAAE,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,CAAA;IAC9C,CAAC;IAED;;;;;;;;;;OAUG;IACI,IAAI,CAAC,GAAW,EAAE,EAAY;QACjC,IAAI,IAAI,CAAC,OAAO;YAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAA;IAChD,CAAC;IAED;;;;;;;;;OASG;IACI,GAAG,CAAC,GAAW;QAClB,IAAI,IAAI,CAAC,OAAO;YAAE,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAA;IAC1D,CAAC;IAED,SAAS,CAAC,GAAW,EAAE,KAAU;QAC7B,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAA;IAC9E,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,UAAkB,EAAE,UAAU,GAAG,EAAE;QAChD,MAAM,GAAG,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,UAAU,UAAU,EAAE,EAAE,CAAC,IAAI,EAAE,GAAG,UAAU,CAAC,EAAE,IAAI,CAAC,CAAA;QACrF,IAAI,CAAC,WAAW,EAAE,CAAA;QAClB,OAAO,GAAG,CAAA;IACd,CAAC;IAED,YAAY,CAAC,IAAI,EAAE,GAAI;QACnB,IAAI,IAAI,CAAC,IAAI,CAAC;YAAE,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAA;QAC/B,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,EAAE,GAAG,CAAC,CAAA;IACpC,CAAC;IAEO,aAAa;QACjB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;YAAE,OAAM;QACnC,MAAM,EACF,MAAM,EACT,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QAC1B,MAAM,WAAW,GAAU,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAA;QACpF,KAAK,IAAI,KAAK,IAAI,WAAW,EAAE;YAC3B,IAAI,KAAK,CAAC,SAAS;gBAAE,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;SAC7C;IACL,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAiCG;IACH,SAAS,CAAC,OAAe,EAAE,SAAkB,KAAK;QAC9C,MAAM,GAAG,GAAG;YACR,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,IAAI,EAAE,aAAa,CAAC,SAAS;YAC7B,MAAM,EAAE,CAAC,OAAO,CAAC;SACpB,CAAA;QACD,IAAI,CAAC,MAAM,EAAE;YACT,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,GAAG,CAAC,CAAA;YACvC,OAAM;SACT;QACD,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,UAAU,EAAE,GAAG,CAAC,CAAA;IAChD,CAAC;;AA3sBM,iBAAO,GAAG;IACb,GAAG,aAAa;IAChB,MAAM,EAAE,CAAC,aAAa,CAAC;CAC1B,AAHa,CAGb;SALQ,SAAS;AAouBtB,WAAW,CAAC,SAAS,EAAE;IACnB,WAAW;IACX,WAAW;IACX,YAAY;IACZ,YAAY;IACZ,gBAAgB;IAChB,aAAa;IACb,YAAY;IACZ,cAAc;IACd,UAAU;IACV,eAAe;IACf,WAAW;IACX,aAAa;IACb,gBAAgB;CACnB,CAAC,CAAA;AAEF,MAAM,CAAN,IAAY,SAGX;AAHD,WAAY,SAAS;IACjB,8BAAiB,CAAA;IACjB,kCAAqB,CAAA;AACzB,CAAC,EAHW,SAAS,KAAT,SAAS,QAGpB;AAOD,MAAM,OAAO,QAAS,SAAQ,SAAS;IAAvC;;QAEoB,SAAI,GAAW,OAAO,CAAA;QACtC,eAAU,GAAQ,EAAE,CAAA;IAqBxB,CAAC;IAnBG,KAAK,CAAC,UAAU,CAAC,UAAkB,EAAE,UAAU,GAAG,EAAE;QAChD,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;YACnB,OAAM;SACT;QACD,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,UAAU,CAAC,CAAA;QAC3C,MAAM,IAAI,GAAG,GAAG,EAAE;YACd,MAAM,MAAM,GAAQ,UAAU,CAAC,CAAC,CAAC,CAAA;YACjC,IAAI,MAAM,YAAY,SAAS,EAAE;gBAC7B,MAAM,CAAC,WAAW,EAAE,CAAA;aACvB;QACL,CAAC,CAAA;QACD,IAAI,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE;YACtB,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;SACjB;aACI;YACD,IAAI,EAAE,CAAA;SACT;QACD,OAAO,GAAG,CAAA;IACd,CAAC;CACJ"}
1
+ {"version":3,"file":"Player.js","sourceRoot":"","sources":["../../src/Player/Player.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,KAAK,EAAE,SAAS,EAAiB,YAAY,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AACzG,OAAO,EAAE,IAAI,EAAc,MAAM,aAAa,CAAA;AAG9C,OAAO,KAAK,MAAM,cAAc,CAAA;AAChC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,eAAe,CAAA;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAE/C,OAAO,EACH,KAAK,EACL,KAAK,EACL,GAAG,EACH,GAAG,EACH,GAAG,EACH,GAAG,EACH,WAAW,EACX,WAAW,EACX,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACZ,MAAM,YAAY,CAAA;AAInB,OAAO,EAAuC,YAAY,EAAE,aAAa,EAAgB,MAAM,cAAc,CAAA;AAC7G,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAErD,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AAE9D,MAAM,EACF,SAAS,EACT,WAAW,EACX,QAAQ,EACX,GAAG,KAAK,CAAA;AAIT,MAAM,mBAAmB,GAAG;IACxB,IAAI,EAAE;QACF,UAAU,EAAE,KAAK;KACpB;IACD,WAAW,EAAE;QACT,UAAU,EAAE,KAAK;KACpB;IACD,EAAE,EAAE,MAAM;CACb,CAAA;AAED,MAAM,WAAW,GAAG;IAChB,KAAK,EAAE;QACH,UAAU,EAAE,KAAK;KACpB;IACD,UAAU,EAAE;QACR,UAAU,EAAE,KAAK;KACpB;IACD,GAAG,mBAAmB;CACzB,CAAA;AAED,MAAM,CAAC,MAAM,eAAe,GAAG,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,CAAA;AAC5D,MAAM,CAAC,MAAM,YAAY,GAAG;IACxB,KAAK,EAAE,MAAM;IACb,MAAM,EAAE,MAAM;IACd,YAAY,EAAE,MAAM;IACpB,SAAS,EAAE,MAAM;IACjB,UAAU,EAAE,MAAM;IAClB,WAAW,EAAE,MAAM;IACnB,KAAK,EAAE,CAAC;YACJ,GAAG,EAAE,CAAC,eAAe,CAAC;SACzB,CAAC;CACL,CAAA;AAED,MAAM,aAAa,GAAG;IAClB,QAAQ,EAAE;QACN,CAAC,EAAE,MAAM;QACT,CAAC,EAAE,MAAM;QACT,CAAC,EAAE,MAAM;KACZ;IACD,SAAS,EAAE,MAAM;IAEjB,UAAU,EAAE;QACR,UAAU,EAAE,KAAK;KACpB;IAED,OAAO,EAAE;QACL,UAAU,EAAE,KAAK;KACpB;IAED,KAAK,EAAE,MAAM;IACb,EAAE,EAAE,MAAM;IACV,EAAE,EAAE,MAAM;IACV,IAAI,EAAE,MAAM;IACZ,KAAK,EAAE;QACH,QAAQ,EAAE,CAAC,uBAAuB,CAAC;KACtC;IACD,eAAe,EAAE;QACb,UAAU,EAAE,KAAK;KACpB;IACD,GAAG,EAAE,MAAM;IACX,IAAI,EAAE,MAAM;IACZ,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;IAC1C,MAAM,EAAE,mBAAmB;IAC3B,UAAU,EAAE,CAAC,WAAW,CAAC;IACzB,MAAM,EAAE;QACJ;YACI,MAAM,EAAE;gBACJ,UAAU,EAAE,KAAK;aACpB;YACD,GAAG,mBAAmB;SACzB;KACJ;IACD,MAAM,EAAE,CAAC,mBAAmB,CAAC;IAC7B,OAAO,EAAE,CAAC,MAAM,CAAC;IAEjB,MAAM,EAAE;QACJ,GAAG,EAAE,YAAY;QACjB,MAAM,EAAE,YAAY;QACpB,IAAI,EAAE,YAAY;QAClB,KAAK,EAAE,YAAY;QACnB,MAAM,EAAE,YAAY;KACvB;IAED,MAAM,EAAE,MAAM;IACd,GAAG,EAAE,MAAM;IAEX,KAAK,EAAE,MAAM;IACb,SAAS,EAAE,MAAM;IACjB,OAAO,EAAE,OAAO;IAChB,OAAO,EAAE,OAAO;IAChB,kBAAkB,EAAE,OAAO;IAE3B,KAAK,EAAE,MAAM;IACb,MAAM,EAAE,MAAM;IACd,OAAO,EAAE,MAAM;IACf,OAAO,EAAE,MAAM;IAEf,kBAAkB;IAElB,iBAAiB,EAAE,CAAC;YAChB,IAAI,EAAE;gBACF,eAAe,EAAE,KAAK;aACzB;YACD,KAAK,EAAE;gBACH,eAAe,EAAE,KAAK;aACzB;SACJ,CAAC;IACF,YAAY,EAAE;QACV,eAAe,EAAE,KAAK;KACzB;IACD,YAAY,EAAE;QACV,eAAe,EAAE,KAAK;KACzB;IACD,UAAU,EAAE;QACR,eAAe,EAAE,KAAK;KACzB;CACJ,CAAA;AAED,MAAM,YAAY,GAAG;IACjB,KAAK,EAAE,EAAE;CACZ,CAAA;AAED,MAAa,SAAU,SAAQ,eAAe;IA8C1C,YAAY,UAAyB,EAAE,QAAgB;QACnD,KAAK,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;QA9Cf,SAAI,GAAW,QAAQ,CAAA;QAMvC,WAAM,GAAsB;YACxB,GAAG,EAAE,YAAY;YACjB,MAAM,EAAE,YAAY;YACpB,IAAI,EAAE,YAAY;YAClB,KAAK,EAAE,YAAY;YACnB,MAAM,EAAE,YAAY;SACvB,CAAA;QAGM,WAAM,GAAQ,EAAE,CAAA;QAEhB,WAAM,GAAG,EAAE,CAAA;QACX,YAAO,GAAkB,IAAI,CAAA;QAC7B,YAAO,GAAW,EAAE,CAAA;QAWnB,cAAS,GAAY,KAAK,CAAA;QAElC,gBAAgB;QACT,iBAAY,GAA6B,IAAI,CAAA;QAC7C,yBAAoB,GAAgC,IAAI,CAAA;QACxD,cAAS,GAAgC,IAAI,CAAA;QAEpD,qFAAqF;QAC7E,iBAAY,GAAY,KAAK,CAAA;QAqBrC,0IAA0I;QAC1I,eAAU,GAAW,CAAC,CAAA;QAEtB,gKAAgK;QAChK,YAAO,GAAY,KAAK,CAAA;QAhBpB,IAAI,CAAC,UAAU,EAAE,CAAA;IACrB,CAAC;IAED,+BAA+B;IAC/B,IAAI,qBAAqB;QACrB,OAAO,KAAK,CAAC,qBAAoC,CAAA;IACrD,CAAC;IAED,IAAI,KAAK;QACL,OAAO,IAAI,CAAC,MAAM,EAAE,KAAK,CAAA;IAC7B,CAAC;IAQD,gBAAgB;IAChB,UAAU;QACN,IAAI,CAAC,QAAQ,GAAG;YACZ,KAAK,EAAE,EAAE;YACT,KAAK,EAAE,EAAE;YACT,aAAa,EAAE,EAAE;YACjB,aAAa,EAAE,EAAE;SACpB,CAAA;QACD,IAAI,CAAC,UAAU,GAAG,IAAI,GAAG,EAAE,CAAA;QAC3B,IAAI,CAAC,SAAS,GAAG,IAAI,GAAG,EAAE,CAAA;QAC1B,IAAI,CAAC,MAAM,GAAG,EAAE,CAAA;QAChB,IAAI,CAAC,UAAU,GAAG,EAAE,CAAA;QACpB,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAA;QAClB,IAAI,CAAC,KAAK,GAAG,EAAE,CAAA;QACf,IAAI,CAAC,MAAM,GAAG,EAAE,CAAA;QAChB,IAAI,CAAC,IAAI,GAAG,CAAC,CAAA;QACb,IAAI,CAAC,GAAG,GAAG,CAAC,CAAA;QACZ,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,MAAM,CAAA;QACzB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC,IAAI,CAAA;QAC/B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAA;QACnB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAA;QACpB,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAA;QAC9B,IAAI,CAAC,YAAY,GAAG,CAAC,CAAA;QACrB,IAAI,CAAC,UAAU,GAAG,EAAE,CAAA;QACpB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,YAAY,CAAA;QAC9B,IAAI,CAAC,IAAI,GAAG,EAAE,CAAA;QACd,IAAI,CAAC,mBAAmB,GAAG,EAAE,CAAA;QAC7B,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAA;QAE3B,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,WAAW,CAAC,CAAA;QACrC,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,WAAW,CAAC,CAAA;QACrC,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,SAAS,CAAC,CAAA;QACjC,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,SAAS,CAAC,CAAA;QACjC,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,SAAS,CAAC,CAAA;QACjC,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,SAAS,CAAC,CAAA;QACjC,IAAI,CAAC,WAAW,EAAE,CAAA;IACtB,CAAC;IAED,KAAK;QACD,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,iBAAiB,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE;YACzD,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;gBAClB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;gBACjC,IAAI,CAAC,WAAW,EAAE,CAAA;aACrB;QACL,CAAC,CAAC,CAAA;QACF,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE;YAC5C,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;QAC/B,CAAC,CAAC,CAAA;IACN,CAAC;IAED,IAAY,MAAM;QACd,OAAO;YACH,GAAG,SAAS,CAAC,OAAO;YACpB,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC;SAChC,CAAA;IACL,CAAC;IAED;;;;;;;SAOK;IACL,IAAI,IAAI;QACJ,OAAO,IAAI,CAAC,KAAK,CAAA;IACrB,CAAC;IAED,IAAI,IAAI,CAAC,GAAW;QAChB,IAAI,CAAC,KAAK,GAAG,GAAG,CAAA;IACpB,CAAC;IAED;;;;;;;;;;;;;OAaG;IACH,SAAS,CAAC,KAAa,EAAE,SAAyD;QAC9E,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,SAAS,CAAC,CAAA;IACjE,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,YAAsB;QACtC,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,EAAE,CAAA;QAChC,MAAM,SAAS,GAAG,GAAG,EAAE,cAAc,EAAE,CAAA;QACvC,IAAI,GAAG,GAAY,KAAK,CAAA;QACxB,IAAI,SAAS,IAAI,GAAG,EAAE;YAClB,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,EAAE,CAAA;YACrC,MAAM,eAAe,GAAG,GAAG,CAAC,SAAS,GAAG,CAAC,CAAA;YACzC,MAAM,aAAa,GAAG,GAAG,CAAC,UAAU,GAAG,CAAC,CAAA;YAExC,MAAM,SAAS,GAAG,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE;gBACrC,IAAI,IAAI,CAAC,SAAS,EAAE;oBAChB,OAAO,KAAK,CAAA;iBACf;gBACD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAA;gBACrB,MAAM,CAAC,OAAO,CAAC,GAAG,SAAS,CAAC,eAAe,CAAC,GAAG,EAAE,QAAQ,CAA0B,CAAA;gBACnF,IAAI,CAAC,OAAO;oBAAE,OAAO,KAAK,CAAA;gBAC1B,MAAM,EAAE,GAAG,OAAO,CAAC,EAAY,CAAA;gBAC/B,MAAM,WAAW,GAAG,SAAS,CAAC,UAAU,CAAC,EAAE,CAAqB,CAAA;gBAChE,OAAO,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,CAAA;YACxD,CAAC,CAAA;YAED,IAAI,YAAY,CAAC,CAAC,GAAG,eAAe,IAAI,SAAS,IAAI,SAAS,CAAC,IAAI,EAAE;gBACjE,GAAG,GAAG,MAAM,SAAS,CAAC;oBAClB,CAAC,EAAE,GAAG,CAAC,MAAM,GAAG,CAAC;oBACjB,CAAC,EAAE,IAAI,CAAC,cAAc,GAAG,CAAC;iBAC7B,EAAE,WAAW,CAAC,EAAE,CAAC,CAAC;oBACf,CAAC,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,GAAG,eAAe;oBACvD,CAAC,EAAE,GAAG,CAAC,MAAM,GAAG,WAAW,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC;iBACjD,CAAC,CAAC,CAAA;aACN;iBACI,IAAI,YAAY,CAAC,CAAC,GAAG,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,GAAG,eAAe,IAAI,SAAS,IAAI,SAAS,CAAC,KAAK,EAAE;gBACpG,GAAG,GAAG,MAAM,SAAS,CAAC;oBAClB,CAAC,EAAE,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,OAAO,GAAG,CAAC;oBAC/B,CAAC,EAAE,IAAI,CAAC,cAAc,GAAG,CAAC;iBAC7B,EAAE,WAAW,CAAC,EAAE,CAAC,CAAC;oBACf,CAAC,EAAE,eAAe;oBAClB,CAAC,EAAE,GAAG,CAAC,MAAM,GAAG,WAAW,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC;iBACjD,CAAC,CAAC,CAAA;aACN;iBACI,IAAI,YAAY,CAAC,CAAC,GAAG,aAAa,IAAI,SAAS,IAAI,SAAS,CAAC,EAAE,EAAE;gBAClE,GAAG,GAAG,MAAM,SAAS,CAAC;oBAClB,CAAC,EAAE,IAAI,CAAC,cAAc,GAAG,CAAC;oBAC1B,CAAC,EAAE,GAAG,CAAC,MAAM,GAAG,CAAC;iBACpB,EAAE,WAAW,CAAC,EAAE,CAAC,CAAC;oBACf,CAAC,EAAE,GAAG,CAAC,MAAM,GAAG,WAAW,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC;oBAC9C,CAAC,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,GAAG,aAAa;iBACzD,CAAC,CAAC,CAAA;aACN;iBACI,IAAI,YAAY,CAAC,CAAC,GAAG,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,GAAG,aAAa,IAAI,SAAS,IAAI,SAAS,CAAC,IAAI,EAAE;gBAClG,GAAG,GAAG,MAAM,SAAS,CAAC;oBAClB,CAAC,EAAE,IAAI,CAAC,cAAc,GAAG,CAAC;oBAC1B,CAAC,EAAE,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,QAAQ,GAAG,CAAC;iBACnC,EAAE,WAAW,CAAC,EAAE,CAAC,CAAC;oBACf,CAAC,EAAE,GAAG,CAAC,MAAM,GAAG,WAAW,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC;oBAC9C,CAAC,EAAE,aAAa;iBACnB,CAAC,CAAC,CAAA;aACN;iBACI;gBACD,IAAI,CAAC,SAAS,GAAG,KAAK,CAAA;aACzB;SACJ;QACD,OAAO,GAAG,CAAA;IACd,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;IACH,kBAAkB,CAAC,UAA6C,EAAE,YAAqB,IAAI;QAGvF,IAAI,CAAC,UAAU;YAAE,OAAO,EAAE,CAAA;QAC1B,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,EAAU,CAAA;QAChD,IAAI,CAAC,WAAW,EAAE;YACd,MAAM,uCAAuC,CAAA;SAChD;QACD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;YAC5B,UAAU,GAAG,CAAC,UAA4B,CAAC,CAAA;SAC9C;QACD,IAAI,cAAc,GAAG,UAAU,CAAA;QAC/B,IAAI,SAAS,EAAE;YACX,cAAc,GAAI,UAA+B,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;gBAC1D,KAAK,CAAC,KAAK,CAAC,IAAI,GAAG,SAAS,CAAC,QAAQ,CAAA;gBACrC,OAAO,KAAK,CAAA;YAChB,CAAC,CAAC,CAAA;SACL;QACD,MAAM,MAAM,GAAG,WAAW,CAAC,YAAY,CAAC,cAAkC,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAA;QAC/F,IAAI,GAAG,GAAG,EAAE,CAAA;QACZ,KAAK,IAAI,GAAG,IAAI,MAAM,EAAE;YACpB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAA;YAC9B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,aAAa,GAAG,IAAI,CAAA;YACrC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC,CAAA;YAC7C,gDAAgD;YAChD,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAA;SAC5C;QACD,OAAO,GAAG,CAAA;IACd,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACH,KAAK,CAAC,QAAQ,CAAC,SAAyC;QACpD,IAAI,QAAQ,CAAC,SAAS,CAAC;YAAE,SAAS,GAAa,IAAI,CAAC,aAAa,EAAE,EAAE,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,IAAI,SAAS,IAAI,KAAK,CAAC,OAAO,EAAE,IAAI,SAAS,CAAC,CAAA;QACzJ,IAAI,CAAC,SAAS;YAAE,SAAS,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAA;QAChD,IAAI,CAAE,SAAsB,CAAC,CAAC;YAAG,SAAsB,CAAC,CAAC,GAAG,CAAC,CAAA;QAC7D,IAAI,CAAC,UAAU,EAAE,CAAA;QACjB,IAAI,CAAC,QAAQ,GAAG,SAAqB,CAAA;QACrC,8HAA8H;QAC9H,IAAI,CAAC,mBAAmB,GAAG,SAAS,CAAA;QACpC,wCAAwC;QACxC,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QACpC,OAAQ,SAAsB,CAAA;IAClC,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACH,KAAK,CAAC,IAAI,CAAC,IAAS;QAChB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAA;QAExB,IAAI,QAAQ,CAAC,IAAI,CAAC;YAAE,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QAE3C,MAAM,OAAO,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,EAAE,CAAA;QAErD,KAAK,IAAI,GAAG,IAAI,IAAI,EAAE;YAClB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAA;YACrB,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE;gBAChD,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;aACjC;SACJ;QAED,MAAM,KAAK,GAAG,EAAE,CAAA;QAEhB,IAAI,IAAI,CAAC,KAAK,EAAE;YACZ,KAAK,IAAI,EAAE,IAAI,IAAI,CAAC,KAAK,EAAE;gBACvB,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;aAC1C;YACD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;YAC3E,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;gBAChC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;oBACvC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAA;oBAC5B,OAAO,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,CAAA;gBACvB,CAAC,CAAC,CAAA;aACL;SACJ;QACD,IAAI,IAAI,CAAC,MAAM;YAAE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAA;QAC1E,IAAI,IAAI,CAAC,MAAM;YAAE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAA;QAC1E,IAAI,IAAI,CAAC,SAAS;YAAE,IAAI,CAAC,SAAS,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QAE5D,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;QAEjB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAA;QAE7B,IAAI,IAAI,CAAC,GAAG,EAAE;YACV,IAAI,CAAC,GAAG,GAAG,EAAE,CAAA;YACb,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAA;YAC9E,IAAI,CAAC,YAAY,GAAG,KAAK,CAAA;YACzB,OAAO,GAAG,CAAA;SACb;QAED,IAAI,CAAC,YAAY,GAAG,KAAK,CAAA;QAEzB,OAAO,IAAI,CAAA;IACf,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACH,IAAI;QACA,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;IAC/B,CAAC;IAED,OAAO;IACP,QAAQ;QACJ,OAAO;YACH,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,QAAQ,EAAE;gBACN,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAClB,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAClB,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;aACrB;YACD,MAAM,EAAE;gBACJ,KAAK,EAAE,IAAI,CAAC,OAAO;gBACnB,MAAM,EAAE,IAAI,CAAC,OAAO;aACvB;YACD,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,KAAK,EAAE,IAAI,CAAC,KAAK;SACpB,CAAA;IACL,CAAC;IAED,MAAM;QACF,MAAM,EAAE,eAAe,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QACpD,MAAM,QAAQ,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE,eAAe,CAAC,CAAA;QAChE,QAAQ,CAAC,SAAS,GAAG,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,CAAA;QACxC,OAAO,QAAQ,CAAA;IACnB,CAAC;IAED;;;;;;;;OAQG;IACH,WAAW;QACP,IAAI,CAAC,aAAa,EAAE,CAAA;IACxB,CAAC;IAED,YAAY,CAAC,EAAU;QACnB,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;QACrC,IAAI,CAAC,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,UAAU,EAAE,sGAAsG,CAAC,CAAA;QAC9I,OAAO,IAAI,CAAA;IACf,CAAC;IAED;;;;;;;;;OASG;IACH,aAAa;QACT,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IACjC,CAAC;IAED,SAAS,CAAC,IAAY,EAAE,IAAS;QAC7B,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE;YAC9B,IAAI;YACJ,IAAI;SACP,CAAC,CAAA;IACN,CAAC;IAED,YAAY;QACR,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,EAAU,CAAA;QAChD,IAAI,CAAC,WAAW,EAAE;YACd,MAAM,8CAA8C,CAAA;SACvD;QACD,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,WAAW,CAAQ,CAAA;QAClE,OAAO,YAAY,CAAC,MAAM,CAAA;QAC1B,OAAO,YAAY,CAAC,MAAM,CAAA;QAC1B,OAAO,YAAY,CAAC,OAAO,CAAA;QAE3B,KAAK,IAAI,KAAK,IAAI,YAAY,CAAC,MAAM,EAAE;YACnC,OAAO,KAAK,CAAC,GAAG,CAAA;SACnB;QAED,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE;YAClB,EAAE,EAAE,WAAW,CAAC,EAAE;YAClB,MAAM,EAAE,WAAW,CAAC,MAAM;YAC1B,GAAG,YAAY;SAClB,CAAC,CAAA;IACN,CAAC;IAED,UAAU;QACN,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAA;IACtC,CAAC;IAED,YAAY,CAAC,GAAW,EAAE,IAAY;QAClC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE;YACjC,GAAG;YACH,IAAI;SACP,CAAC,CAAA;IACN,CAAC;IAEO,OAAO,CAAC,EAAE;QACd,OAAO,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IACtC,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAqDG;IACH,aAAa,CAAC,OAA0B,EAAE,aAAqB,EAAE,iBAA0B,KAAK;QAC5F,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE;YACzB,IAAI,EAAE,aAAa,CAAC,aAAa;YACjC,MAAM,EAAE,CAAC,OAAO,EAAE,aAAa,EAAE,cAAc,CAAC;SACnD,CAAC,CAAA;IACN,CAAC;IAED;;;;;;OAMG;IACH,gBAAgB,CAAC,WAAiC;QAC9C,IAAI,CAAC,oBAAoB,GAAG,WAAW,CAAA;QACvC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,QAAQ,EAAE,WAAW,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAA;QACtF,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,CAAA;IAClC,CAAC;IAED;;;;;;;;;;;;;OAaG;IACH,YAAY,CAAC,WAAiC,EAAE,UAAyB,EAAE;QACvE,IAAI,WAAW,CAAC,EAAE,IAAI,IAAI,CAAC,EAAE,EAAE;YAC3B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAA;SACxB;aACI;YACD,IAAI,CAAC,SAAS,GAAG,WAAW,CAAA;SAC/B;QACD,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE;YAC/B,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,IAAI,EAAE,aAAa,CAAC,YAAY;YAChC,MAAM,EAAE,CAAC,WAAW,CAAC,EAAE,EAAE,OAAO,CAAC;SACpC,CAAC,CAAA;IACN,CAAC;IAED;;;;;;;;;OASG;IACI,IAAI,CAAC,GAAW,EAAE,KAAW;QAChC,IAAI,IAAI,CAAC,OAAO;YAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;IACnD,CAAC;IAGD;;;;;;;;;OASG;IACI,EAAE,CAAC,GAAW,EAAE,EAAY;QAC/B,IAAI,IAAI,CAAC,OAAO;YAAE,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,CAAA;IAC9C,CAAC;IAED;;;;;;;;;;OAUG;IACI,IAAI,CAAC,GAAW,EAAE,EAAY;QACjC,IAAI,IAAI,CAAC,OAAO;YAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAA;IAChD,CAAC;IAED;;;;;;;;;OASG;IACI,GAAG,CAAC,GAAW;QAClB,IAAI,IAAI,CAAC,OAAO;YAAE,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAA;IAC1D,CAAC;IAED,UAAU;QACN,IAAI,IAAI,CAAC,OAAO;YAAE,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAA;IAC/C,CAAC;IAED,SAAS,CAAC,GAAW,EAAE,KAAU;QAC7B,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,EAAE,CAAA;QAChC,IAAI,GAAG,EAAE;YACL,GAAG,CAAC,gBAAgB,CAAC,SAAS,IAAI,CAAC,EAAE,IAAI,GAAG,EAAE,EAAE,KAAK,CAAC,CAAA;SACzD;IACL,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,UAAkB,EAAE,UAAU,GAAG,EAAE,EAAE,MAAY;QAC9D,MAAM,mBAAmB,GAAG,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAA;QACnD,IAAI,mBAAmB,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,YAAY,EAAE;YAC/D,OAAM;SACT;QACD,IAAI,GAAG,CAAA;QACP,IAAI,MAAM,IAAI,MAAM,CAAC,UAAU,CAAC,EAAE;YAC9B,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,GAAG,UAAU,CAAC,CAAA;YACvC,IAAI,SAAS,CAAC,GAAG,CAAC;gBAAE,MAAM,GAAG,CAAA;SAChC;aACI;YACD,GAAG,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,UAAU,UAAU,EAAE,EAAE,CAAC,IAAI,EAAE,GAAG,UAAU,CAAC,EAAE,IAAI,CAAC,CAAA;SAClF;QACD,IAAI,CAAC,WAAW,EAAE,CAAA;QAClB,OAAO,GAAG,CAAA;IACd,CAAC;IAED,YAAY,CAAC,IAAI,EAAE,GAAI;QACnB,IAAI,IAAI,CAAC,IAAI,CAAC;YAAE,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAA;QAC/B,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,EAAE,GAAG,CAAC,CAAA;IACpC,CAAC;IAED,YAAY;IACZ;;;;;;;OAOG;IACH,eAAe,CAAC,IAAY;QACxB,IAAI,CAAC,KAAK,EAAE,gBAAgB,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE;YAC1C,IAAY,CAAC,gBAAgB,CAAC,SAAS,IAAI,CAAC,EAAE,IAAI,IAAI,EAAE,CAAC,CAAA;QAC9D,CAAC,CAAC,CAAA;IACN,CAAC;IAEO,aAAa;QACjB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;YAAE,OAAM;QACnC,MAAM,EACF,MAAM,EACT,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QAC1B,MAAM,WAAW,GAAU,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAA;QACpF,KAAK,IAAI,KAAK,IAAI,WAAW,EAAE;YAC3B,IAAI,KAAK,CAAC,SAAS;gBAAE,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;SAC7C;IACL,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAiCG;IACH,SAAS,CAAC,OAAe,EAAE,cAAuB,KAAK;QACnD,MAAM,GAAG,GAAG;YACR,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,IAAI,EAAE,aAAa,CAAC,SAAS;YAC7B,MAAM,EAAE,CAAC,OAAO,CAAC;SACpB,CAAA;QACD,IAAI,CAAC,WAAW,EAAE;YACd,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,GAAG,CAAC,CAAA;YACvC,OAAM;SACT;QACD,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,UAAU,EAAE,GAAG,CAAC,CAAA;IAChD,CAAC;;AAhwBM,iBAAO,GAAG;IACb,GAAG,aAAa;IAChB,MAAM,EAAE,CAAC,aAAa,CAAC;CAC1B,AAHa,CAGb;SALQ,SAAS;AA0xBtB,WAAW,CAAC,SAAS,EAAE;IACnB,YAAY;IACZ,WAAW;IACX,WAAW;IACX,YAAY;IACZ,YAAY;IACZ,gBAAgB;IAChB,aAAa;IACb,YAAY;IACZ,cAAc;IACd,UAAU;IACV,eAAe;IACf,WAAW;IACX,aAAa;IACb,gBAAgB;CACnB,CAAC,CAAA;AAOF,MAAM,OAAO,QAAS,SAAQ,SAAS;IAOnC,YAAY,UAAyB,EAAE,QAAgB;QACnD,KAAK,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;QANf,SAAI,GAAW,OAAO,CAAA;QACtC,eAAU,GAAQ,EAAE,CAAA;QAEpB,kBAAa,GAAqB,IAAI,CAAA;IAItC,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,UAAkB,EAAE,UAAU,GAAG,EAAE;QAChD,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;YACnB,OAAM;SACT;QACD,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,UAAU,CAAC,CAAA;QAC3C,OAAO,GAAG,CAAA;IACd,CAAC;IAED,eAAe,CAAC,IAAY;QACxB,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,EAAE,CAAA;QACjC,IAAI,IAAI,EAAE;YACL,IAAY,CAAC,gBAAgB,CAAC,UAAU,IAAI,CAAC,EAAE,IAAI,IAAI,EAAE,CAAC,CAAA;SAC9D;IACL,CAAC;IAED;;;;;;;;MAQE;IACF,MAAM;QACF,IAAI,IAAI,GAAG,KAAK,CAAA;QAChB,IAAI,IAAI,CAAC,aAAa;YAAE,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QACtE,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,EAAE,CAAA;QAChC,IAAI,GAAG,EAAE;YACL,IAAI,GAAG,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;SAClC;QACD,OAAO,IAAI,CAAA;IACf,CAAC;IAEQ,SAAS,CAAC,GAAW,EAAE,KAAU;QACtC,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,EAAE,CAAA;QAChC,IAAI,GAAG,EAAE;YACL,MAAM,SAAS,GAAG,UAAU,IAAI,CAAC,EAAE,IAAI,GAAG,EAAE,CAAA;YAC5C,IAAI,IAAI,CAAC,aAAa,EAAE;gBACpB,GAAG,CAAC,gBAAgB,CAAC,SAAS,IAAI,CAAC,aAAa,CAAC,EAAE,IAAI,SAAS,EAAE,EAAE,KAAK,CAAC,CAAA;aAC7E;iBACI;gBACD,GAAG,CAAC,gBAAgB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAA;aACzC;SACJ;IACL,CAAC;CACJ"}
@@ -2,6 +2,9 @@ import { StateManager } from './StateManager';
2
2
  import { EffectManager } from './EffectManager';
3
3
  import { ParameterManager } from './ParameterManager';
4
4
  import { RpgPlayer } from './Player';
5
+ type SkillClass = {
6
+ new (...args: any[]): any;
7
+ };
5
8
  export declare class SkillManager {
6
9
  skills: any[];
7
10
  private _getSkillIndex;
@@ -15,11 +18,11 @@ export declare class SkillManager {
15
18
  *
16
19
  * @title Get Skill
17
20
  * @method player.getSkill(skillClass)
18
- * @param {SkillClass} skillClass
21
+ * @param {SkillClass | string} skillClass or data id
19
22
  * @returns {instance of SkillClass | null}
20
23
  * @memberof SkillManager
21
24
  */
22
- getSkill(skillClass: any): any;
25
+ getSkill(skillClass: SkillClass | string): any;
23
26
  /**
24
27
  * Learn a skill. Attributes the coefficient 1 to the parameter INT (intelligence) if cd is not present on the class.
25
28
  *
@@ -33,11 +36,11 @@ export declare class SkillManager {
33
36
  *
34
37
  * @title Learn Skill
35
38
  * @method player.learnSkill(skillClass)
36
- * @param {SkillClass} skillClass
39
+ * @param {SkillClass | string} skillClass or data id
37
40
  * @returns {instance of SkillClass}
38
41
  * @memberof SkillManager
39
42
  */
40
- learnSkill(skillClass: any): any;
43
+ learnSkill(skillClass: SkillClass | string): any;
41
44
  /**
42
45
  * Forget a skill
43
46
  *
@@ -56,7 +59,7 @@ export declare class SkillManager {
56
59
  *
57
60
  * @title Forget Skill
58
61
  * @method player.learnSkill(skillClass)
59
- * @param {SkillClass} skillClass
62
+ * @param {SkillClass | string} skillClass or data id
60
63
  * @throws {SkillLog} notLearned
61
64
  * If trying to forget a skill not learned
62
65
  * ```
@@ -68,7 +71,7 @@ export declare class SkillManager {
68
71
  * @returns {instance of SkillClass}
69
72
  * @memberof SkillManager
70
73
  */
71
- forgetSkill(skillClass: any): any;
74
+ forgetSkill(skillClass: SkillClass | string): any;
72
75
  /**
73
76
  * Using a skill
74
77
  *
@@ -103,7 +106,7 @@ export declare class SkillManager {
103
106
  *
104
107
  * @title Use Skill
105
108
  * @method player.useSkill(skillClass,otherPlayer)
106
- * @param {SkillClass} skillClass
109
+ * @param {SkillClass | string} skillClass or data id
107
110
  * @param {Array<RpgPlayer> | RpgPlayer} [otherPlayer]
108
111
  * @throws {SkillLog} restriction
109
112
  * If the player has the `Effect.CAN_NOT_SKILL` effect
@@ -144,7 +147,9 @@ export declare class SkillManager {
144
147
  * @memberof SkillManager
145
148
  * @todo
146
149
  */
147
- useSkill(skillClass: any, otherPlayer?: RpgPlayer | RpgPlayer[]): any;
150
+ useSkill(skillClass: SkillClass | string, otherPlayer?: RpgPlayer | RpgPlayer[]): any;
148
151
  }
149
152
  export interface SkillManager extends ParameterManager, StateManager, EffectManager {
153
+ databaseById(skillClass: any): any;
150
154
  }
155
+ export {};
@@ -4,7 +4,6 @@ import { SkillLog } from '../logs/index.js';
4
4
  import { StateManager } from './StateManager.js';
5
5
  import { EffectManager } from './EffectManager.js';
6
6
  import { ParameterManager } from './ParameterManager.js';
7
- import { INT } from '../presets/index.js';
8
7
  const { isArray, isString, isInstanceOf, applyMixins } = Utils;
9
8
  export class SkillManager {
10
9
  _getSkillIndex(skillClass) {
@@ -12,6 +11,9 @@ export class SkillManager {
12
11
  if (isString(skill)) {
13
12
  return skill.id == skillClass;
14
13
  }
14
+ if (isString(skillClass)) {
15
+ return skillClass == skill.id || skill;
16
+ }
15
17
  return isInstanceOf(skill, skillClass);
16
18
  });
17
19
  }
@@ -25,13 +27,13 @@ export class SkillManager {
25
27
  *
26
28
  * @title Get Skill
27
29
  * @method player.getSkill(skillClass)
28
- * @param {SkillClass} skillClass
30
+ * @param {SkillClass | string} skillClass or data id
29
31
  * @returns {instance of SkillClass | null}
30
32
  * @memberof SkillManager
31
33
  */
32
34
  getSkill(skillClass) {
33
35
  const index = this._getSkillIndex(skillClass);
34
- return this.skills[index];
36
+ return this.skills[index] ?? null;
35
37
  }
36
38
  /**
37
39
  * Learn a skill. Attributes the coefficient 1 to the parameter INT (intelligence) if cd is not present on the class.
@@ -46,16 +48,14 @@ export class SkillManager {
46
48
  *
47
49
  * @title Learn Skill
48
50
  * @method player.learnSkill(skillClass)
49
- * @param {SkillClass} skillClass
51
+ * @param {SkillClass | string} skillClass or data id
50
52
  * @returns {instance of SkillClass}
51
53
  * @memberof SkillManager
52
54
  */
53
55
  learnSkill(skillClass) {
56
+ if (isString(skillClass))
57
+ skillClass = this.databaseById(skillClass);
54
58
  const instance = new skillClass();
55
- if (!instance.coefficient)
56
- instance.coefficient = {
57
- [INT]: 1
58
- };
59
59
  this.skills.push(instance);
60
60
  this['execMethod']('onLearn', [this], instance);
61
61
  return instance;
@@ -78,7 +78,7 @@ export class SkillManager {
78
78
  *
79
79
  * @title Forget Skill
80
80
  * @method player.learnSkill(skillClass)
81
- * @param {SkillClass} skillClass
81
+ * @param {SkillClass | string} skillClass or data id
82
82
  * @throws {SkillLog} notLearned
83
83
  * If trying to forget a skill not learned
84
84
  * ```
@@ -91,12 +91,14 @@ export class SkillManager {
91
91
  * @memberof SkillManager
92
92
  */
93
93
  forgetSkill(skillClass) {
94
+ if (isString(skillClass))
95
+ skillClass = this.databaseById(skillClass);
94
96
  const index = this._getSkillIndex(skillClass);
95
97
  if (index == -1) {
96
98
  throw SkillLog.notLearned(skillClass);
97
99
  }
98
- this.skills.splice(index, 1);
99
100
  const instance = this.skills[index];
101
+ this.skills.splice(index, 1);
100
102
  this['execMethod']('onForget', [this], instance);
101
103
  return instance;
102
104
  }
@@ -134,7 +136,7 @@ export class SkillManager {
134
136
  *
135
137
  * @title Use Skill
136
138
  * @method player.useSkill(skillClass,otherPlayer)
137
- * @param {SkillClass} skillClass
139
+ * @param {SkillClass | string} skillClass or data id
138
140
  * @param {Array<RpgPlayer> | RpgPlayer} [otherPlayer]
139
141
  * @throws {SkillLog} restriction
140
142
  * If the player has the `Effect.CAN_NOT_SKILL` effect
@@ -187,7 +189,7 @@ export class SkillManager {
187
189
  throw SkillLog.notEnoughSp(skillClass, skill.spCost, this.sp);
188
190
  }
189
191
  this.sp -= (skill.spCost / (this.hasEffect(Effect.HALF_SP_COST) ? 2 : 1));
190
- const hitRate = skill.hitRate || 1;
192
+ const hitRate = skill.hitRate ?? 1;
191
193
  if (Math.random() > hitRate) {
192
194
  this['execMethod']('onUseFailed', [this, otherPlayer], skill);
193
195
  throw SkillLog.chanceToUseFailed(skillClass);
@@ -1 +1 @@
1
- {"version":3,"file":"SkillManager.js","sourceRoot":"","sources":["../../src/Player/SkillManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SkillManager.js","sourceRoot":"","sources":["../../src/Player/SkillManager.ts"],"names":[],"mappings":"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"}