@xivdyetools/core 2.3.0 → 2.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (35) hide show
  1. package/LICENSE +3 -12
  2. package/dist/config/consolidated-ids.d.ts +39 -5
  3. package/dist/config/consolidated-ids.d.ts.map +1 -1
  4. package/dist/config/consolidated-ids.js +64 -6
  5. package/dist/config/consolidated-ids.js.map +1 -1
  6. package/dist/constants/index.d.ts +1 -12
  7. package/dist/constants/index.d.ts.map +1 -1
  8. package/dist/data/colors_xiv.json +161 -161
  9. package/dist/data/locales/de.json +1 -1
  10. package/dist/data/locales/en.json +1 -1
  11. package/dist/data/locales/fr.json +1 -1
  12. package/dist/data/locales/ja.json +1 -1
  13. package/dist/data/locales/ko.json +1 -1
  14. package/dist/data/locales/zh.json +1 -1
  15. package/dist/index.d.ts +3 -1
  16. package/dist/index.d.ts.map +1 -1
  17. package/dist/index.js +3 -1
  18. package/dist/index.js.map +1 -1
  19. package/dist/services/CharacterColorService.js.map +1 -1
  20. package/dist/services/color/ColorConverter.d.ts +0 -34
  21. package/dist/services/color/ColorConverter.d.ts.map +1 -1
  22. package/dist/services/color/RybColorMixer.d.ts +0 -47
  23. package/dist/services/color/RybColorMixer.d.ts.map +1 -1
  24. package/dist/services/dye/DyeDatabase.d.ts +1 -43
  25. package/dist/services/dye/DyeDatabase.d.ts.map +1 -1
  26. package/dist/services/dye/DyeDatabase.js.map +1 -1
  27. package/dist/services/dye/DyeFilter.d.ts +41 -0
  28. package/dist/services/dye/DyeFilter.d.ts.map +1 -0
  29. package/dist/services/dye/DyeFilter.js +86 -0
  30. package/dist/services/dye/DyeFilter.js.map +1 -0
  31. package/dist/utils/index.d.ts +0 -294
  32. package/dist/utils/index.d.ts.map +1 -1
  33. package/dist/version.d.ts +1 -1
  34. package/dist/version.js +1 -1
  35. package/package.json +6 -6
package/LICENSE CHANGED
@@ -22,16 +22,7 @@ SOFTWARE.
22
22
 
23
23
  ---
24
24
 
25
- FINAL FANTASY XIV © SQUARE ENIX CO., LTD. All Rights Reserved.
26
-
27
- This project is a fan-made tool and is not affiliated with, endorsed by, or
28
- sponsored by Square Enix Co., Ltd. FINAL FANTASY is a registered trademark
29
- of Square Enix Holdings Co., Ltd.
30
-
31
- Game data, including dye names, colors, and acquisition methods, are property
32
- of Square Enix Co., Ltd. and are used under fair use for educational and
33
- informational purposes only.
34
-
35
- Market board data is provided by Universalis (https://universalis.app/),
36
- an independent third-party service not affiliated with Square Enix.
25
+ FINAL FANTASY XIV © 2010-2026 SQUARE ENIX CO., LTD. All Rights Reserved.
26
+ XIV Dye Tools is a fan-made application and is not affiliated with or endorsed by Square Enix.
27
+ Market board data is provided by Universalis (https://universalis.app/).
37
28
 
@@ -1,10 +1,38 @@
1
1
  /**
2
- * Consolidated dye item IDs for Patch 7.5.
2
+ * Consolidated dye configuration for Patch 7.5 (TRAIL TO THE HEAVENS, 2026-04-28).
3
3
  *
4
- * PATCH DAY (2026-04-28): Replace null values with real item IDs from datamining.
5
- * This is the ONLY file that needs updating on patch day.
4
+ * itemIDs (52254 / 52255 / 52256) and all six localized names are populated.
5
+ * The `ko: string | null` / `zh: string | null` types are kept as a safety hatch
6
+ * for future consolidation patches that may ship before localized names are sourced.
6
7
  */
7
- export declare const CONSOLIDATED_IDS: Record<'A' | 'B' | 'C', number | null>;
8
+ import type { LocaleCode } from '@xivdyetools/types';
9
+ export type ConsolidationType = 'A' | 'B' | 'C';
10
+ /**
11
+ * Localized name for a consolidated dye.
12
+ * `ko` and `zh` are typed as nullable so future unsourced patches can ship with
13
+ * `null` placeholders; `getConsolidatedDyeName` falls back to English in that case.
14
+ */
15
+ export interface LocalizedDyeName {
16
+ en: string;
17
+ ja: string;
18
+ de: string;
19
+ fr: string;
20
+ ko: string | null;
21
+ zh: string | null;
22
+ }
23
+ export interface ConsolidatedDye {
24
+ itemID: number | null;
25
+ names: LocalizedDyeName;
26
+ acquisition: string;
27
+ price: number;
28
+ currency: string;
29
+ }
30
+ export declare const CONSOLIDATED_IDS: Record<ConsolidationType, number | null>;
31
+ /**
32
+ * Full metadata for the three consolidated dye items shipped in Patch 7.5.
33
+ * `itemID` mirrors `CONSOLIDATED_IDS` and is filled on patch day.
34
+ */
35
+ export declare const CONSOLIDATED_DYES: Record<ConsolidationType, ConsolidatedDye>;
8
36
  /**
9
37
  * Whether dye consolidation is active (all IDs are known).
10
38
  * Returns true only when all three consolidated IDs have been set.
@@ -19,6 +47,12 @@ export declare function isConsolidationActive(): boolean;
19
47
  */
20
48
  export declare function getMarketItemID(dye: {
21
49
  itemID: number;
22
- consolidationType: 'A' | 'B' | 'C' | null;
50
+ consolidationType: ConsolidationType | null;
23
51
  }): number;
52
+ /**
53
+ * Get the localized display name for a consolidated dye.
54
+ * Falls back to English when the requested locale's translation is `null`
55
+ * (a safety hatch for any future unsourced ko/zh strings; not exercised today).
56
+ */
57
+ export declare function getConsolidatedDyeName(type: ConsolidationType, locale: LocaleCode): string;
24
58
  //# sourceMappingURL=consolidated-ids.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"consolidated-ids.d.ts","sourceRoot":"","sources":["../../src/config/consolidated-ids.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,MAAM,GAAG,IAAI,CAInE,CAAC;AAEF;;;GAGG;AACH,wBAAgB,qBAAqB,IAAI,OAAO,CAM/C;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,iBAAiB,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC;CAC3C,GAAG,MAAM,CAKT"}
1
+ {"version":3,"file":"consolidated-ids.d.ts","sourceRoot":"","sources":["../../src/config/consolidated-ids.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAErD,MAAM,MAAM,iBAAiB,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AAEhD;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IAClB,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,KAAK,EAAE,gBAAgB,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAIrE,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,iBAAiB,EAAE,eAAe,CA2CxE,CAAC;AAEF;;;GAGG;AACH,wBAAgB,qBAAqB,IAAI,OAAO,CAM/C;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,iBAAiB,EAAE,iBAAiB,GAAG,IAAI,CAAC;CAC7C,GAAG,MAAM,CAKT;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,iBAAiB,EAAE,MAAM,EAAE,UAAU,GAAG,MAAM,CAG1F"}
@@ -1,13 +1,62 @@
1
1
  /**
2
- * Consolidated dye item IDs for Patch 7.5.
2
+ * Consolidated dye configuration for Patch 7.5 (TRAIL TO THE HEAVENS, 2026-04-28).
3
3
  *
4
- * PATCH DAY (2026-04-28): Replace null values with real item IDs from datamining.
5
- * This is the ONLY file that needs updating on patch day.
4
+ * itemIDs (52254 / 52255 / 52256) and all six localized names are populated.
5
+ * The `ko: string | null` / `zh: string | null` types are kept as a safety hatch
6
+ * for future consolidation patches that may ship before localized names are sourced.
6
7
  */
7
8
  export const CONSOLIDATED_IDS = {
8
- A: null, // ARR dyes (85 dyes, itemIDs 5729-5813)
9
- B: null, // Ishgardian Restoration dyes (9 dyes, itemIDs 30116-30124)
10
- C: null, // Cosmic Exploration dyes (11 dyes, itemIDs 48163-48172, 48227)
9
+ A: 52254, // Standard Spectrum Dye — covers the 85 ARR dyes (itemIDs 5729-5813)
10
+ B: 52255, // Wide Spectrum #1 Dye — covers the 9 Ishgardian Restoration dyes (itemIDs 30116-30124)
11
+ C: 52256, // Wide Spectrum #2 Dye — covers the 11 Cosmic Exploration dyes (itemIDs 48163-48172, 48227)
12
+ };
13
+ /**
14
+ * Full metadata for the three consolidated dye items shipped in Patch 7.5.
15
+ * `itemID` mirrors `CONSOLIDATED_IDS` and is filled on patch day.
16
+ */
17
+ export const CONSOLIDATED_DYES = {
18
+ A: {
19
+ itemID: CONSOLIDATED_IDS.A,
20
+ names: {
21
+ en: 'Standard Spectrum Dye',
22
+ ja: 'カララント:ノーマルカラー',
23
+ de: 'Einfacher Farbstoff',
24
+ fr: 'Teinture standard',
25
+ ko: '염료: 기본 색상',
26
+ zh: '通用染剂',
27
+ },
28
+ acquisition: 'Dye Vendor',
29
+ price: 216,
30
+ currency: 'Gil',
31
+ },
32
+ B: {
33
+ itemID: CONSOLIDATED_IDS.B,
34
+ names: {
35
+ en: 'Wide Spectrum #1 Dye',
36
+ ja: 'カララント:アディショナルカラー1',
37
+ de: 'Zusatzfarbstoff 1',
38
+ fr: 'Teinture additionnelle n°1',
39
+ ko: '염료: 추가 색상 1',
40
+ zh: '追加染剂1',
41
+ },
42
+ acquisition: 'The Firmament',
43
+ price: 1000,
44
+ currency: "Sky Builders' Scrips",
45
+ },
46
+ C: {
47
+ itemID: CONSOLIDATED_IDS.C,
48
+ names: {
49
+ en: 'Wide Spectrum #2 Dye',
50
+ ja: 'カララント:アディショナルカラー2',
51
+ de: 'Zusatzfarbstoff 2',
52
+ fr: 'Teinture additionnelle n°2',
53
+ ko: '염료: 추가 색상 2',
54
+ zh: '追加染剂2',
55
+ },
56
+ acquisition: 'Cosmic Exploration',
57
+ price: 600,
58
+ currency: 'Cosmocredits',
59
+ },
11
60
  };
12
61
  /**
13
62
  * Whether dye consolidation is active (all IDs are known).
@@ -34,4 +83,13 @@ export function getMarketItemID(dye) {
34
83
  return dye.itemID; // Pre-patch fallback
35
84
  return CONSOLIDATED_IDS[dye.consolidationType];
36
85
  }
86
+ /**
87
+ * Get the localized display name for a consolidated dye.
88
+ * Falls back to English when the requested locale's translation is `null`
89
+ * (a safety hatch for any future unsourced ko/zh strings; not exercised today).
90
+ */
91
+ export function getConsolidatedDyeName(type, locale) {
92
+ const names = CONSOLIDATED_DYES[type].names;
93
+ return names[locale] ?? names.en;
94
+ }
37
95
  //# sourceMappingURL=consolidated-ids.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"consolidated-ids.js","sourceRoot":"","sources":["../../src/config/consolidated-ids.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAA2C;IACtE,CAAC,EAAE,IAAI,EAAE,wCAAwC;IACjD,CAAC,EAAE,IAAI,EAAE,4DAA4D;IACrE,CAAC,EAAE,IAAI,EAAE,gEAAgE;CAC1E,CAAC;AAEF;;;GAGG;AACH,MAAM,UAAU,qBAAqB;IACnC,OAAO,CACL,gBAAgB,CAAC,CAAC,KAAK,IAAI;QAC3B,gBAAgB,CAAC,CAAC,KAAK,IAAI;QAC3B,gBAAgB,CAAC,CAAC,KAAK,IAAI,CAC5B,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,eAAe,CAAC,GAG/B;IACC,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,WAAW;IAClD,IAAI,CAAC,GAAG,CAAC,iBAAiB;QAAE,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,wBAAwB;IACvE,IAAI,CAAC,qBAAqB,EAAE;QAAE,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,qBAAqB;IACtE,OAAO,gBAAgB,CAAC,GAAG,CAAC,iBAAiB,CAAE,CAAC;AAClD,CAAC"}
1
+ {"version":3,"file":"consolidated-ids.js","sourceRoot":"","sources":["../../src/config/consolidated-ids.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AA4BH,MAAM,CAAC,MAAM,gBAAgB,GAA6C;IACxE,CAAC,EAAE,KAAK,EAAE,qEAAqE;IAC/E,CAAC,EAAE,KAAK,EAAE,wFAAwF;IAClG,CAAC,EAAE,KAAK,EAAE,4FAA4F;CACvG,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAA+C;IAC3E,CAAC,EAAE;QACD,MAAM,EAAE,gBAAgB,CAAC,CAAC;QAC1B,KAAK,EAAE;YACL,EAAE,EAAE,uBAAuB;YAC3B,EAAE,EAAE,eAAe;YACnB,EAAE,EAAE,qBAAqB;YACzB,EAAE,EAAE,mBAAmB;YACvB,EAAE,EAAE,WAAW;YACf,EAAE,EAAE,MAAM;SACX;QACD,WAAW,EAAE,YAAY;QACzB,KAAK,EAAE,GAAG;QACV,QAAQ,EAAE,KAAK;KAChB;IACD,CAAC,EAAE;QACD,MAAM,EAAE,gBAAgB,CAAC,CAAC;QAC1B,KAAK,EAAE;YACL,EAAE,EAAE,sBAAsB;YAC1B,EAAE,EAAE,mBAAmB;YACvB,EAAE,EAAE,mBAAmB;YACvB,EAAE,EAAE,4BAA4B;YAChC,EAAE,EAAE,aAAa;YACjB,EAAE,EAAE,OAAO;SACZ;QACD,WAAW,EAAE,eAAe;QAC5B,KAAK,EAAE,IAAI;QACX,QAAQ,EAAE,sBAAsB;KACjC;IACD,CAAC,EAAE;QACD,MAAM,EAAE,gBAAgB,CAAC,CAAC;QAC1B,KAAK,EAAE;YACL,EAAE,EAAE,sBAAsB;YAC1B,EAAE,EAAE,mBAAmB;YACvB,EAAE,EAAE,mBAAmB;YACvB,EAAE,EAAE,4BAA4B;YAChC,EAAE,EAAE,aAAa;YACjB,EAAE,EAAE,OAAO;SACZ;QACD,WAAW,EAAE,oBAAoB;QACjC,KAAK,EAAE,GAAG;QACV,QAAQ,EAAE,cAAc;KACzB;CACF,CAAC;AAEF;;;GAGG;AACH,MAAM,UAAU,qBAAqB;IACnC,OAAO,CACL,gBAAgB,CAAC,CAAC,KAAK,IAAI;QAC3B,gBAAgB,CAAC,CAAC,KAAK,IAAI;QAC3B,gBAAgB,CAAC,CAAC,KAAK,IAAI,CAC5B,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,eAAe,CAAC,GAG/B;IACC,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,WAAW;IAClD,IAAI,CAAC,GAAG,CAAC,iBAAiB;QAAE,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,wBAAwB;IACvE,IAAI,CAAC,qBAAqB,EAAE;QAAE,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,qBAAqB;IACtE,OAAO,gBAAgB,CAAC,GAAG,CAAC,iBAAiB,CAAE,CAAC;AAClD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,sBAAsB,CAAC,IAAuB,EAAE,MAAkB;IAChF,MAAM,KAAK,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC;IAC5C,OAAO,KAAK,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;AACnC,CAAC"}
@@ -5,7 +5,7 @@
5
5
  *
6
6
  * @module constants
7
7
  */
8
- import type { VisionType, ColorblindMatrices } from '@xivdyetools/types';
8
+ import type { ColorblindMatrices } from '@xivdyetools/types';
9
9
  /**
10
10
  * RGB value constraints
11
11
  */
@@ -20,15 +20,6 @@ export declare const SATURATION_MIN = 0;
20
20
  export declare const SATURATION_MAX = 100;
21
21
  export declare const VALUE_MIN = 0;
22
22
  export declare const VALUE_MAX = 100;
23
- /**
24
- * @internal
25
- * Color distance calculation mode
26
- */
27
- export declare const COLOR_DISTANCE_MAX: number;
28
- /** @internal */
29
- export declare const VISION_TYPES: readonly VisionType[];
30
- /** @internal */
31
- export declare const VISION_TYPE_LABELS: Record<VisionType, string>;
32
23
  /**
33
24
  * Brettel 1997 transformation matrices for colorblindness simulation
34
25
  * These matrices transform RGB values to simulate different types of colorblindness
@@ -52,8 +43,6 @@ export declare const UNIVERSALIS_API_RETRY_DELAY = 1000;
52
43
  * API caching and rate limiting
53
44
  */
54
45
  export declare const API_CACHE_TTL: number;
55
- /** @internal */
56
- export declare const API_DEBOUNCE_DELAY = 500;
57
46
  export declare const API_CACHE_VERSION = "1.0.0";
58
47
  export declare const API_MAX_RESPONSE_SIZE: number;
59
48
  export declare const API_RATE_LIMIT_DELAY = 200;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/constants/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAMzE;;GAEG;AACH,eAAO,MAAM,OAAO,IAAI,CAAC;AACzB,eAAO,MAAM,OAAO,MAAM,CAAC;AAE3B;;GAEG;AACH,eAAO,MAAM,OAAO,IAAI,CAAC;AACzB,eAAO,MAAM,OAAO,MAAM,CAAC;AAC3B,eAAO,MAAM,cAAc,IAAI,CAAC;AAChC,eAAO,MAAM,cAAc,MAAM,CAAC;AAClC,eAAO,MAAM,SAAS,IAAI,CAAC;AAC3B,eAAO,MAAM,SAAS,MAAM,CAAC;AAE7B;;;GAGG;AACH,eAAO,MAAM,kBAAkB,QAA4C,CAAC;AAM5E,gBAAgB;AAChB,eAAO,MAAM,YAAY,EAAE,SAAS,UAAU,EAMpC,CAAC;AAEX,gBAAgB;AAChB,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,CAMzD,CAAC;AAMF;;;GAGG;AACH,eAAO,MAAM,gBAAgB,EAAE,kBAqB9B,CAAC;AAMF;;GAEG;AACH,eAAO,MAAM,QAAQ;;;CAGX,CAAC;AAMX;;GAEG;AACH,eAAO,MAAM,oBAAoB,mCAAmC,CAAC;AACrE,eAAO,MAAM,uBAAuB,OAAO,CAAC;AAC5C,eAAO,MAAM,2BAA2B,IAAI,CAAC;AAC7C,eAAO,MAAM,2BAA2B,OAAO,CAAC;AAEhD;;GAEG;AACH,eAAO,MAAM,aAAa,QAAgB,CAAC;AAC3C,gBAAgB;AAChB,eAAO,MAAM,kBAAkB,MAAM,CAAC;AACtC,eAAO,MAAM,iBAAiB,UAAU,CAAC;AACzC,eAAO,MAAM,qBAAqB,QAAc,CAAC;AACjD,eAAO,MAAM,oBAAoB,MAAM,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/constants/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAc,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAMzE;;GAEG;AACH,eAAO,MAAM,OAAO,IAAI,CAAC;AACzB,eAAO,MAAM,OAAO,MAAM,CAAC;AAE3B;;GAEG;AACH,eAAO,MAAM,OAAO,IAAI,CAAC;AACzB,eAAO,MAAM,OAAO,MAAM,CAAC;AAC3B,eAAO,MAAM,cAAc,IAAI,CAAC;AAChC,eAAO,MAAM,cAAc,MAAM,CAAC;AAClC,eAAO,MAAM,SAAS,IAAI,CAAC;AAC3B,eAAO,MAAM,SAAS,MAAM,CAAC;AAkC7B;;;GAGG;AACH,eAAO,MAAM,gBAAgB,EAAE,kBAqB9B,CAAC;AAMF;;GAEG;AACH,eAAO,MAAM,QAAQ;;;CAGX,CAAC;AAMX;;GAEG;AACH,eAAO,MAAM,oBAAoB,mCAAmC,CAAC;AACrE,eAAO,MAAM,uBAAuB,OAAO,CAAC;AAC5C,eAAO,MAAM,2BAA2B,IAAI,CAAC;AAC7C,eAAO,MAAM,2BAA2B,OAAO,CAAC;AAEhD;;GAEG;AACH,eAAO,MAAM,aAAa,QAAgB,CAAC;AAG3C,eAAO,MAAM,iBAAiB,UAAU,CAAC;AACzC,eAAO,MAAM,qBAAqB,QAAc,CAAC;AACjD,eAAO,MAAM,oBAAoB,MAAM,CAAC"}