@datamoc/mw_games 0.5.0 → 0.5.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.
Files changed (52) hide show
  1. package/dist/actors/EntityTemplate.d.ts +127 -0
  2. package/dist/actors/EntityTemplate.d.ts.map +1 -0
  3. package/dist/actors/EntityTemplate.js +117 -0
  4. package/dist/actors/EntityTemplate.js.map +1 -0
  5. package/dist/actors/index.d.ts +2 -0
  6. package/dist/actors/index.d.ts.map +1 -1
  7. package/dist/actors/index.js +1 -0
  8. package/dist/actors/index.js.map +1 -1
  9. package/dist/board/HexSkirmish.d.ts +213 -0
  10. package/dist/board/HexSkirmish.d.ts.map +1 -0
  11. package/dist/board/HexSkirmish.js +271 -0
  12. package/dist/board/HexSkirmish.js.map +1 -0
  13. package/dist/board/index.d.ts +2 -0
  14. package/dist/board/index.d.ts.map +1 -1
  15. package/dist/board/index.js +1 -0
  16. package/dist/board/index.js.map +1 -1
  17. package/dist/core/Csv.d.ts +64 -0
  18. package/dist/core/Csv.d.ts.map +1 -0
  19. package/dist/core/Csv.js +164 -0
  20. package/dist/core/Csv.js.map +1 -0
  21. package/dist/core/Registry.d.ts +31 -0
  22. package/dist/core/Registry.d.ts.map +1 -0
  23. package/dist/core/Registry.js +46 -0
  24. package/dist/core/Registry.js.map +1 -0
  25. package/dist/core/SceneComponents.d.ts +67 -0
  26. package/dist/core/SceneComponents.d.ts.map +1 -0
  27. package/dist/core/SceneComponents.js +76 -0
  28. package/dist/core/SceneComponents.js.map +1 -0
  29. package/dist/core/index.d.ts +5 -0
  30. package/dist/core/index.d.ts.map +1 -1
  31. package/dist/core/index.js +3 -0
  32. package/dist/core/index.js.map +1 -1
  33. package/dist/mw_games.global.js +91 -90
  34. package/dist/rpg/Quest.d.ts +45 -0
  35. package/dist/rpg/Quest.d.ts.map +1 -1
  36. package/dist/rpg/Quest.js +76 -0
  37. package/dist/rpg/Quest.js.map +1 -1
  38. package/dist/rpg/index.d.ts +2 -2
  39. package/dist/rpg/index.d.ts.map +1 -1
  40. package/dist/rpg/index.js +1 -1
  41. package/dist/rpg/index.js.map +1 -1
  42. package/dist/two-d/render/Shape2D.d.ts +23 -1
  43. package/dist/two-d/render/Shape2D.d.ts.map +1 -1
  44. package/dist/two-d/render/Shape2D.js +23 -1
  45. package/dist/two-d/render/Shape2D.js.map +1 -1
  46. package/dist/two-d/render/index.d.ts +1 -1
  47. package/dist/two-d/render/index.d.ts.map +1 -1
  48. package/dist/two-d/render/index.js +1 -1
  49. package/dist/two-d/render/index.js.map +1 -1
  50. package/dist/version.d.ts +1 -1
  51. package/dist/version.js +1 -1
  52. package/package.json +1 -1
@@ -0,0 +1,67 @@
1
+ import type { Scene } from './Scene.ts';
2
+ /**
3
+ * One self-contained section of a scene - map logic, encounter logic, UI wiring - with its
4
+ * own slice of `core.Scene`'s lifecycle, registered by name into a `SceneComponentHost`
5
+ * instead of folded into one growing scene class.
6
+ *
7
+ * Every hook is optional and receives the owning scene, so a component reads whatever the
8
+ * scene exposes (a `two-d.Scene2D`'s `stage`, a game's own fields) without the host needing
9
+ * to know what a scene actually is beyond `core.Scene`'s lifecycle shape.
10
+ */
11
+ export interface SceneComponent<TScene extends Scene = Scene> {
12
+ readonly name: string;
13
+ create?(scene: TScene): void;
14
+ update?(scene: TScene, dt: number): void;
15
+ resize?(scene: TScene, width: number, height: number): void;
16
+ onSuspend?(scene: TScene): void;
17
+ onResume?(scene: TScene, result: unknown): void;
18
+ destroy?(scene: TScene): void;
19
+ }
20
+ /**
21
+ * Composes a scene out of named `SceneComponent`s instead of one class accreting every
22
+ * responsibility a scene ends up needing - a factory assembling named sections (map,
23
+ * encounters, UI) at scene-creation time, each a separate module with its own lifecycle.
24
+ *
25
+ * A composition helper, not a base class: a scene owns one `SceneComponentHost` and forwards
26
+ * `core.Scene`'s lifecycle methods to it, the same few lines regardless of whether that scene
27
+ * extends `core.Scene` directly or `two-d.Scene2D` - inheritance would have to pick one of
28
+ * those to sit above, composition does not.
29
+ *
30
+ * @example
31
+ * ```ts
32
+ * import { Scene, SceneComponentHost, type SceneComponent } from '@datamoc/mw_games/core';
33
+ *
34
+ * class MapSection implements SceneComponent<DungeonScene> {
35
+ * readonly name = 'map';
36
+ * create(scene: DungeonScene): void { console.log('map ready for', scene.floor); }
37
+ * update(_scene: DungeonScene, dt: number): void { }
38
+ * }
39
+ *
40
+ * class DungeonScene extends Scene {
41
+ * floor = 1;
42
+ * private components = new SceneComponentHost<DungeonScene>();
43
+ *
44
+ * create(): void {
45
+ * this.components.add(new MapSection(), this);
46
+ * }
47
+ * override update(dt: number): void { this.components.update(this, dt); }
48
+ * protected override teardown(): void { this.components.destroy(this); }
49
+ * }
50
+ * ```
51
+ */
52
+ export declare class SceneComponentHost<TScene extends Scene = Scene> {
53
+ private order;
54
+ private registry;
55
+ /** registers `component` and immediately runs its `create`, if it has one */
56
+ add(component: SceneComponent<TScene>, scene: TScene): void;
57
+ has(name: string): boolean;
58
+ /** the component registered under `name`; throws if none was */
59
+ get<T extends SceneComponent<TScene> = SceneComponent<TScene>>(name: string): T;
60
+ update(scene: TScene, dt: number): void;
61
+ resize(scene: TScene, width: number, height: number): void;
62
+ onSuspend(scene: TScene): void;
63
+ onResume(scene: TScene, result: unknown): void;
64
+ /** destroys every component in reverse registration order, then forgets them all */
65
+ destroy(scene: TScene): void;
66
+ }
67
+ //# sourceMappingURL=SceneComponents.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SceneComponents.d.ts","sourceRoot":"","sources":["../../src/core/SceneComponents.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAGxC;;;;;;;;GAQG;AACH,MAAM,WAAW,cAAc,CAAC,MAAM,SAAS,KAAK,GAAG,KAAK;IAC3D,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,MAAM,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IACzC,MAAM,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5D,SAAS,CAAC,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,QAAQ,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,IAAI,CAAC;IAChD,OAAO,CAAC,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,qBAAa,kBAAkB,CAAC,MAAM,SAAS,KAAK,GAAG,KAAK;IAC3D,OAAO,CAAC,KAAK,CAAgC;IAC7C,OAAO,CAAC,QAAQ,CAA0C;IAE1D,6EAA6E;IAC7E,GAAG,CAAC,SAAS,EAAE,cAAc,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAI1D;IAED,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEzB;IAED,gEAAgE;IAChE,GAAG,CAAC,CAAC,SAAS,cAAc,CAAC,MAAM,CAAC,GAAG,cAAc,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC,CAE9E;IAED,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI,CAEtC;IAED,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAEzD;IAED,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAE7B;IAED,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,IAAI,CAE7C;IAED,oFAAoF;IACpF,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAI3B;CACD"}
@@ -0,0 +1,76 @@
1
+ import { Registry } from './Registry.js';
2
+ /**
3
+ * Composes a scene out of named `SceneComponent`s instead of one class accreting every
4
+ * responsibility a scene ends up needing - a factory assembling named sections (map,
5
+ * encounters, UI) at scene-creation time, each a separate module with its own lifecycle.
6
+ *
7
+ * A composition helper, not a base class: a scene owns one `SceneComponentHost` and forwards
8
+ * `core.Scene`'s lifecycle methods to it, the same few lines regardless of whether that scene
9
+ * extends `core.Scene` directly or `two-d.Scene2D` - inheritance would have to pick one of
10
+ * those to sit above, composition does not.
11
+ *
12
+ * @example
13
+ * ```ts
14
+ * import { Scene, SceneComponentHost, type SceneComponent } from '@datamoc/mw_games/core';
15
+ *
16
+ * class MapSection implements SceneComponent<DungeonScene> {
17
+ * readonly name = 'map';
18
+ * create(scene: DungeonScene): void { console.log('map ready for', scene.floor); }
19
+ * update(_scene: DungeonScene, dt: number): void { }
20
+ * }
21
+ *
22
+ * class DungeonScene extends Scene {
23
+ * floor = 1;
24
+ * private components = new SceneComponentHost<DungeonScene>();
25
+ *
26
+ * create(): void {
27
+ * this.components.add(new MapSection(), this);
28
+ * }
29
+ * override update(dt: number): void { this.components.update(this, dt); }
30
+ * protected override teardown(): void { this.components.destroy(this); }
31
+ * }
32
+ * ```
33
+ */
34
+ export class SceneComponentHost {
35
+ constructor() {
36
+ this.order = [];
37
+ this.registry = new Registry();
38
+ }
39
+ /** registers `component` and immediately runs its `create`, if it has one */
40
+ add(component, scene) {
41
+ this.registry.register(component.name, component);
42
+ this.order.push(component);
43
+ component.create?.(scene);
44
+ }
45
+ has(name) {
46
+ return this.registry.has(name);
47
+ }
48
+ /** the component registered under `name`; throws if none was */
49
+ get(name) {
50
+ return this.registry.get(name);
51
+ }
52
+ update(scene, dt) {
53
+ for (const c of this.order)
54
+ c.update?.(scene, dt);
55
+ }
56
+ resize(scene, width, height) {
57
+ for (const c of this.order)
58
+ c.resize?.(scene, width, height);
59
+ }
60
+ onSuspend(scene) {
61
+ for (const c of this.order)
62
+ c.onSuspend?.(scene);
63
+ }
64
+ onResume(scene, result) {
65
+ for (const c of this.order)
66
+ c.onResume?.(scene, result);
67
+ }
68
+ /** destroys every component in reverse registration order, then forgets them all */
69
+ destroy(scene) {
70
+ for (let i = this.order.length - 1; i >= 0; i--)
71
+ this.order[i].destroy?.(scene);
72
+ this.order = [];
73
+ this.registry = new Registry();
74
+ }
75
+ }
76
+ //# sourceMappingURL=SceneComponents.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SceneComponents.js","sourceRoot":"","sources":["../../src/core/SceneComponents.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAqBzC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,MAAM,OAAO,kBAAkB;IAA/B;QACS,UAAK,GAA6B,EAAE,CAAC;QACrC,aAAQ,GAAG,IAAI,QAAQ,EAA0B,CAAC;IAwC3D,CAAC;IAtCA,6EAA6E;IAC7E,GAAG,CAAC,SAAiC,EAAE,KAAa;QACnD,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QAClD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC3B,SAAS,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC;IAC3B,CAAC;IAED,GAAG,CAAC,IAAY;QACf,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;IAED,gEAAgE;IAChE,GAAG,CAA4D,IAAY;QAC1E,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAM,CAAC;IACrC,CAAC;IAED,MAAM,CAAC,KAAa,EAAE,EAAU;QAC/B,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,KAAK;YAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACnD,CAAC;IAED,MAAM,CAAC,KAAa,EAAE,KAAa,EAAE,MAAc;QAClD,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,KAAK;YAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IAC9D,CAAC;IAED,SAAS,CAAC,KAAa;QACtB,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,KAAK;YAAE,CAAC,CAAC,SAAS,EAAE,CAAC,KAAK,CAAC,CAAC;IAClD,CAAC;IAED,QAAQ,CAAC,KAAa,EAAE,MAAe;QACtC,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,KAAK;YAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACzD,CAAC;IAED,oFAAoF;IACpF,OAAO,CAAC,KAAa;QACpB,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;YAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC;QAChF,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAChB,IAAI,CAAC,QAAQ,GAAG,IAAI,QAAQ,EAA0B,CAAC;IACxD,CAAC;CACD"}
@@ -1,6 +1,9 @@
1
1
  export { Scene } from './Scene.ts';
2
2
  export type { SceneClass } from './Scene.ts';
3
3
  export { SceneStack } from './SceneStack.ts';
4
+ export { Registry } from './Registry.ts';
5
+ export { SceneComponentHost } from './SceneComponents.ts';
6
+ export type { SceneComponent } from './SceneComponents.ts';
4
7
  export { Logger } from './Log.ts';
5
8
  export type { LogLevel, LogEntry, LoggerOptions } from './Log.ts';
6
9
  export { Signal } from './Signal.ts';
@@ -55,4 +58,6 @@ export { EntityRegistry } from './Entity.ts';
55
58
  export type { EntityId } from './Entity.ts';
56
59
  export { PresentationQueue } from './Presentation.ts';
57
60
  export type { PresentationQueueOptions } from './Presentation.ts';
61
+ export { parseCSV } from './Csv.ts';
62
+ export type { CsvOptions, CsvColumnType } from './Csv.ts';
58
63
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,7 @@
1
1
  export { Scene } from './Scene.js';
2
2
  export { SceneStack } from './SceneStack.js';
3
+ export { Registry } from './Registry.js';
4
+ export { SceneComponentHost } from './SceneComponents.js';
3
5
  export { Logger } from './Log.js';
4
6
  export { Signal } from './Signal.js';
5
7
  export { HookRegistry } from './Hooks.js';
@@ -29,4 +31,5 @@ export { UndoHistory } from './UndoHistory.js';
29
31
  export { LoadQueue } from './Loading.js';
30
32
  export { EntityRegistry } from './Entity.js';
31
33
  export { PresentationQueue } from './Presentation.js';
34
+ export { parseCSV } from './Csv.js';
32
35
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAG1C,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AACtC,OAAO,KAAK,KAAK,MAAM,YAAY,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAEvC,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAG/C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAG7C,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAGzC,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEjD,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAExD,OAAO,EAAE,SAAS,EAAE,wBAAwB,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEzG,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAEnF,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAE/C,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAG/C,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAEhG,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAG1C,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AACtC,OAAO,KAAK,KAAK,MAAM,YAAY,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAEvC,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAG/C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAG7C,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAGzC,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEjD,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAExD,OAAO,EAAE,SAAS,EAAE,wBAAwB,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEzG,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAEnF,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAE/C,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAG/C,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAEhG,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAEtD,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC"}