cubing 0.28.0 → 0.28.4

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 (107) hide show
  1. package/README.md +3 -1
  2. package/dist/esm/alg/index.js +4 -4
  3. package/dist/esm/bluetooth/index.js +222 -86
  4. package/dist/esm/bluetooth/index.js.map +3 -3
  5. package/dist/esm/{chunk-F4WWCPVE.js → chunk-2IZUSAXQ.js} +2 -2
  6. package/dist/esm/{chunk-F4WWCPVE.js.map → chunk-2IZUSAXQ.js.map} +1 -1
  7. package/dist/esm/{chunk-KBOIUBUE.js → chunk-DGJ3VGQO.js} +28 -12
  8. package/dist/esm/{chunk-KBOIUBUE.js.map → chunk-DGJ3VGQO.js.map} +1 -1
  9. package/dist/esm/{chunk-NJPSC7SH.js → chunk-GW4FGG42.js} +8 -4
  10. package/dist/esm/{chunk-NJPSC7SH.js.map → chunk-GW4FGG42.js.map} +1 -1
  11. package/dist/esm/{chunk-4KIZAW2Z.js → chunk-LSCTPPWV.js} +22 -8
  12. package/dist/esm/{chunk-4KIZAW2Z.js.map → chunk-LSCTPPWV.js.map} +1 -1
  13. package/dist/esm/{chunk-GXZIBFSN.js → chunk-NI7U4XAZ.js} +380 -242
  14. package/dist/esm/chunk-NI7U4XAZ.js.map +7 -0
  15. package/dist/esm/{chunk-GVPTO3OF.js → chunk-OX6O2ZO5.js} +1 -1
  16. package/dist/esm/{chunk-GVPTO3OF.js.map → chunk-OX6O2ZO5.js.map} +1 -1
  17. package/dist/esm/{chunk-LTPPXK6F.js → chunk-PYWGREIP.js} +44 -13
  18. package/dist/esm/chunk-PYWGREIP.js.map +7 -0
  19. package/dist/esm/{chunk-JAGHV77R.js → chunk-QDVCP6G7.js} +179 -76
  20. package/dist/esm/chunk-QDVCP6G7.js.map +7 -0
  21. package/dist/esm/chunk-RQGVI4ZL.js +1137 -0
  22. package/dist/esm/chunk-RQGVI4ZL.js.map +7 -0
  23. package/dist/esm/{chunk-MGJA5U5O.js → chunk-SBZRVSPK.js} +1 -12
  24. package/dist/esm/{chunk-MGJA5U5O.js.map → chunk-SBZRVSPK.js.map} +0 -0
  25. package/dist/esm/{chunk-V55YSWJY.js → chunk-WXCNEGW3.js} +10 -4
  26. package/dist/esm/{chunk-V55YSWJY.js.map → chunk-WXCNEGW3.js.map} +1 -1
  27. package/dist/esm/{chunk-UP6RBLG2.js → chunk-XU5ILFX5.js} +137 -66
  28. package/dist/esm/{chunk-UP6RBLG2.js.map → chunk-XU5ILFX5.js.map} +3 -3
  29. package/dist/esm/{chunk-4V4RM3YJ.js → chunk-Y22I7F7D.js} +21 -12
  30. package/dist/esm/{chunk-4V4RM3YJ.js.map → chunk-Y22I7F7D.js.map} +2 -2
  31. package/dist/esm/{chunk-ALBEW4DJ.js → chunk-ZB3P5AZN.js} +1 -1
  32. package/dist/esm/{chunk-ALBEW4DJ.js.map → chunk-ZB3P5AZN.js.map} +1 -1
  33. package/dist/esm/{chunk-47SWOA3X.js → chunk-ZNAYJGVL.js} +2 -2
  34. package/dist/esm/{chunk-47SWOA3X.js.map → chunk-ZNAYJGVL.js.map} +1 -1
  35. package/dist/esm/kpuzzle/index.js +3 -3
  36. package/dist/esm/notation/index.js +3 -3
  37. package/dist/esm/protocol/index.js +5 -5
  38. package/dist/esm/puzzle-geometry/index.js +4570 -15
  39. package/dist/esm/puzzle-geometry/index.js.map +4 -4
  40. package/dist/esm/puzzles/index.js +5 -5
  41. package/dist/esm/{puzzles-dynamic-3x3x3-NB2PEZTV.js → puzzles-dynamic-3x3x3-KIG5A6QR.js} +2 -2
  42. package/dist/esm/{puzzles-dynamic-3x3x3-NB2PEZTV.js.map → puzzles-dynamic-3x3x3-KIG5A6QR.js.map} +0 -0
  43. package/dist/esm/puzzles-dynamic-4x4x4-PEDAPUZK.js +126 -0
  44. package/dist/esm/puzzles-dynamic-4x4x4-PEDAPUZK.js.map +7 -0
  45. package/dist/esm/{puzzles-dynamic-side-events-WZI4Y3N6.js → puzzles-dynamic-side-events-5C7LMBWX.js} +2 -2
  46. package/dist/esm/{puzzles-dynamic-side-events-WZI4Y3N6.js.map → puzzles-dynamic-side-events-5C7LMBWX.js.map} +0 -0
  47. package/dist/esm/{puzzles-dynamic-unofficial-FUG3JBMH.js → puzzles-dynamic-unofficial-WWJ4NJMX.js} +2 -2
  48. package/dist/esm/{puzzles-dynamic-unofficial-FUG3JBMH.js.map → puzzles-dynamic-unofficial-WWJ4NJMX.js.map} +0 -0
  49. package/dist/esm/scramble/index.js +5 -5
  50. package/dist/esm/search/index.js +10 -10
  51. package/dist/esm/{search-dynamic-sgs-side-events-ZTOWSMQT.js → search-dynamic-sgs-side-events-MZN22QGN.js} +37 -21
  52. package/dist/esm/search-dynamic-sgs-side-events-MZN22QGN.js.map +7 -0
  53. package/dist/esm/{search-dynamic-sgs-unofficial-V6HZTLGM.js → search-dynamic-sgs-unofficial-AHPCH5XJ.js} +35 -14
  54. package/dist/esm/{search-dynamic-sgs-unofficial-V6HZTLGM.js.map → search-dynamic-sgs-unofficial-AHPCH5XJ.js.map} +2 -2
  55. package/dist/esm/{search-dynamic-solve-3x3x3-K42IWMQV.js → search-dynamic-solve-3x3x3-7XZTYQMO.js} +795 -142
  56. package/dist/esm/{search-dynamic-solve-3x3x3-K42IWMQV.js.map → search-dynamic-solve-3x3x3-7XZTYQMO.js.map} +1 -1
  57. package/dist/esm/{search-dynamic-solve-4x4x4-YH6SB2WB.js → search-dynamic-solve-4x4x4-IBS66QTP.js} +135 -29
  58. package/dist/esm/{search-dynamic-solve-4x4x4-YH6SB2WB.js.map → search-dynamic-solve-4x4x4-IBS66QTP.js.map} +1 -1
  59. package/dist/esm/{search-dynamic-solve-fto-O6UXF7EC.js → search-dynamic-solve-fto-4LI23P6K.js} +253 -69
  60. package/dist/esm/{search-dynamic-solve-fto-O6UXF7EC.js.map → search-dynamic-solve-fto-4LI23P6K.js.map} +2 -2
  61. package/dist/esm/{search-dynamic-solve-kilominx-ZPEOK4DY.js → search-dynamic-solve-kilominx-3HEVQ4MC.js} +32 -8
  62. package/dist/esm/{search-dynamic-solve-kilominx-ZPEOK4DY.js.map → search-dynamic-solve-kilominx-3HEVQ4MC.js.map} +2 -2
  63. package/dist/esm/{search-dynamic-solve-master_tetraminx-3RKD3IAN.js → search-dynamic-solve-master_tetraminx-UB32C7MM.js} +111 -42
  64. package/dist/esm/{search-dynamic-solve-master_tetraminx-3RKD3IAN.js.map → search-dynamic-solve-master_tetraminx-UB32C7MM.js.map} +2 -2
  65. package/dist/esm/{search-dynamic-solve-sq1-WIJEGVLP.js → search-dynamic-solve-sq1-HA72TYF2.js} +54 -9
  66. package/dist/esm/{search-dynamic-solve-sq1-WIJEGVLP.js.map → search-dynamic-solve-sq1-HA72TYF2.js.map} +2 -2
  67. package/dist/esm/search-worker-inside-generated-string-AMEXYCKK.js +3886 -0
  68. package/dist/esm/search-worker-inside-generated-string-AMEXYCKK.js.map +7 -0
  69. package/dist/esm/{search-worker-js-entry-3VKCL3RX.js → search-worker-js-entry-HUD3PWTB.js} +147 -53
  70. package/dist/esm/{search-worker-js-entry-3VKCL3RX.js.map → search-worker-js-entry-HUD3PWTB.js.map} +2 -2
  71. package/dist/esm/{search-worker-ts-entry-J3TDBCMV.js → search-worker-ts-entry-HER6WT5D.js} +5 -5
  72. package/dist/esm/{search-worker-ts-entry-J3TDBCMV.js.map → search-worker-ts-entry-HER6WT5D.js.map} +1 -1
  73. package/dist/esm/stream/index.js +12 -8
  74. package/dist/esm/stream/index.js.map +1 -1
  75. package/dist/esm/twisty/index.js +1164 -1513
  76. package/dist/esm/twisty/index.js.map +4 -4
  77. package/dist/esm/{twisty-dynamic-3d-UQJETF7O.js → twisty-dynamic-3d-NJUXK7KI.js} +358 -146
  78. package/dist/esm/twisty-dynamic-3d-NJUXK7KI.js.map +7 -0
  79. package/dist/types/{Alg-e2a80975.d.ts → Alg-137fb0d5.d.ts} +19 -16
  80. package/dist/types/{KState-a2f0e651.d.ts → KState-a73111d7.d.ts} +1 -9
  81. package/dist/types/{TwizzleLink-cd0fa192.d.ts → TwizzleLink-bef52ecd.d.ts} +47 -13
  82. package/dist/types/alg/index.d.ts +7 -6
  83. package/dist/types/bluetooth/index.d.ts +4 -4
  84. package/dist/types/{bluetooth-puzzle-3670a6a1.d.ts → bluetooth-puzzle-8a678993.d.ts} +9 -9
  85. package/dist/types/kpuzzle/index.d.ts +2 -2
  86. package/dist/types/notation/index.d.ts +1 -1
  87. package/dist/types/{outside-0ce1b145.d.ts → outside-e55f28a0.d.ts} +2 -2
  88. package/dist/types/{parse-ec97687c.d.ts → parseAlg-a28f7568.d.ts} +1 -1
  89. package/dist/types/protocol/index.d.ts +2 -2
  90. package/dist/types/puzzle-geometry/index.d.ts +3 -3
  91. package/dist/types/puzzles/index.d.ts +5 -5
  92. package/dist/types/scramble/index.d.ts +3 -3
  93. package/dist/types/search/index.d.ts +3 -3
  94. package/dist/types/stream/index.d.ts +5 -5
  95. package/dist/types/twisty/index.d.ts +13 -6
  96. package/package.json +43 -40
  97. package/dist/esm/chunk-7BLWQDZX.js +0 -342
  98. package/dist/esm/chunk-7BLWQDZX.js.map +0 -7
  99. package/dist/esm/chunk-GXZIBFSN.js.map +0 -7
  100. package/dist/esm/chunk-JAGHV77R.js.map +0 -7
  101. package/dist/esm/chunk-LTPPXK6F.js.map +0 -7
  102. package/dist/esm/chunk-ROGN5SXC.js +0 -4386
  103. package/dist/esm/chunk-ROGN5SXC.js.map +0 -7
  104. package/dist/esm/search-dynamic-sgs-side-events-ZTOWSMQT.js.map +0 -7
  105. package/dist/esm/search-worker-inside-generated-string-T43JGYSP.js +0 -3768
  106. package/dist/esm/search-worker-inside-generated-string-T43JGYSP.js.map +0 -7
  107. package/dist/esm/twisty-dynamic-3d-UQJETF7O.js.map +0 -7
@@ -3,15 +3,10 @@ import {
3
3
  StickeringManager,
4
4
  experimental3x3x3KPuzzle,
5
5
  experimentalStickerings
6
- } from "./chunk-LTPPXK6F.js";
6
+ } from "./chunk-PYWGREIP.js";
7
7
  import {
8
8
  KPuzzle
9
- } from "./chunk-UP6RBLG2.js";
10
- import {
11
- __privateAdd,
12
- __privateGet,
13
- __privateSet
14
- } from "./chunk-MGJA5U5O.js";
9
+ } from "./chunk-XU5ILFX5.js";
15
10
 
16
11
  // src/cubing/puzzles/events.ts
17
12
  var wcaEvents = {
@@ -66,11 +61,11 @@ async function cubeAppearance(puzzleLoader, stickering) {
66
61
  const orLR = () => m.or(m.moves(["L", "R"]));
67
62
  const M = () => m.not(orLR());
68
63
  const F2L = () => m.not(LL());
69
- const centerLL = () => m.and([LL(), m.orbits(["CENTERS"])]);
70
- const CENTERS = () => m.orbits(["CENTERS"]);
71
- const EDGES = () => m.orbits(["EDGES"]);
72
- const CORNERS = () => m.orbits(["CORNERS"]);
64
+ const CENTERS = () => m.orbitPrefix("CENTER");
65
+ const EDGES = () => m.orbitPrefix("EDGE");
66
+ const CORNERS = () => m.or([m.orbitPrefix("CORNER"), m.orbitPrefix("C4RNER"), m.orbitPrefix("C5RNER")]);
73
67
  const L6E = () => m.or([M(), m.and([LL(), EDGES()])]);
68
+ const centerLL = () => m.and([LL(), CENTERS()]);
74
69
  const edgeFR = () => m.and([m.and(m.moves(["F", "R"])), EDGES()]);
75
70
  const cornerDFR = () => m.and([m.and(m.moves(["F", "R"])), CORNERS(), m.not(LL())]);
76
71
  const slotFR = () => m.or([cornerDFR(), edgeFR()]);
@@ -101,7 +96,10 @@ async function cubeAppearance(puzzleLoader, stickering) {
101
96
  puzzleStickering.set(cornerDFR(), "Regular" /* Regular */);
102
97
  puzzleStickering.set(LL(), "Ignoriented" /* Ignoriented */);
103
98
  puzzleStickering.set(m.and([LL(), CENTERS()]), "Dim" /* Dim */);
104
- puzzleStickering.set(m.and([LL(), CORNERS()]), "IgnoreNonPrimary" /* IgnoreNonPrimary */);
99
+ puzzleStickering.set(
100
+ m.and([LL(), CORNERS()]),
101
+ "IgnoreNonPrimary" /* IgnoreNonPrimary */
102
+ );
105
103
  break;
106
104
  case "OLL":
107
105
  dimF2L();
@@ -116,11 +114,17 @@ async function cubeAppearance(puzzleLoader, stickering) {
116
114
  case "OCLL":
117
115
  dimF2L();
118
116
  dimOLL();
119
- puzzleStickering.set(m.and([LL(), CORNERS()]), "IgnoreNonPrimary" /* IgnoreNonPrimary */);
117
+ puzzleStickering.set(
118
+ m.and([LL(), CORNERS()]),
119
+ "IgnoreNonPrimary" /* IgnoreNonPrimary */
120
+ );
120
121
  break;
121
122
  case "CLL":
122
123
  dimF2L();
123
- puzzleStickering.set(m.not(m.and([CORNERS(), LL()])), "Dim" /* Dim */);
124
+ puzzleStickering.set(
125
+ m.not(m.and([CORNERS(), LL()])),
126
+ "Dim" /* Dim */
127
+ );
124
128
  break;
125
129
  case "ELL":
126
130
  dimF2L();
@@ -162,7 +166,10 @@ async function cubeAppearance(puzzleLoader, stickering) {
162
166
  puzzleStickering.set(slotFR(), "Regular" /* Regular */);
163
167
  puzzleStickering.set(m.and([LL(), EDGES()]), "Ignoriented" /* Ignoriented */);
164
168
  puzzleStickering.set(m.and([LL(), CENTERS()]), "Dim" /* Dim */);
165
- puzzleStickering.set(m.and([LL(), CORNERS()]), "IgnoreNonPrimary" /* IgnoreNonPrimary */);
169
+ puzzleStickering.set(
170
+ m.and([LL(), CORNERS()]),
171
+ "IgnoreNonPrimary" /* IgnoreNonPrimary */
172
+ );
166
173
  break;
167
174
  case "LS":
168
175
  dimF2L();
@@ -172,15 +179,24 @@ async function cubeAppearance(puzzleLoader, stickering) {
172
179
  break;
173
180
  case "EO":
174
181
  puzzleStickering.set(CORNERS(), "Ignored" /* Ignored */);
175
- puzzleStickering.set(EDGES(), "OrientationWithoutPermutation" /* OrientationWithoutPermutation */);
182
+ puzzleStickering.set(
183
+ EDGES(),
184
+ "OrientationWithoutPermutation" /* OrientationWithoutPermutation */
185
+ );
176
186
  break;
177
187
  case "EOline":
178
188
  puzzleStickering.set(CORNERS(), "Ignored" /* Ignored */);
179
- puzzleStickering.set(EDGES(), "OrientationWithoutPermutation" /* OrientationWithoutPermutation */);
189
+ puzzleStickering.set(
190
+ EDGES(),
191
+ "OrientationWithoutPermutation" /* OrientationWithoutPermutation */
192
+ );
180
193
  puzzleStickering.set(m.and(m.moves(["D", "M"])), "Regular" /* Regular */);
181
194
  break;
182
195
  case "EOcross":
183
- puzzleStickering.set(EDGES(), "OrientationWithoutPermutation" /* OrientationWithoutPermutation */);
196
+ puzzleStickering.set(
197
+ EDGES(),
198
+ "OrientationWithoutPermutation" /* OrientationWithoutPermutation */
199
+ );
184
200
  puzzleStickering.set(m.move("D"), "Regular" /* Regular */);
185
201
  puzzleStickering.set(CORNERS(), "Ignored" /* Ignored */);
186
202
  break;
@@ -198,30 +214,63 @@ async function cubeAppearance(puzzleLoader, stickering) {
198
214
  break;
199
215
  case "L6EO":
200
216
  puzzleStickering.set(m.not(L6E()), "Dim" /* Dim */);
201
- puzzleStickering.set(L6E(), "OrientationWithoutPermutation" /* OrientationWithoutPermutation */);
202
- puzzleStickering.set(m.and([CENTERS(), orUD()]), "OrientationStickers" /* OrientationStickers */);
217
+ puzzleStickering.set(
218
+ L6E(),
219
+ "OrientationWithoutPermutation" /* OrientationWithoutPermutation */
220
+ );
221
+ puzzleStickering.set(
222
+ m.and([CENTERS(), orUD()]),
223
+ "OrientationStickers" /* OrientationStickers */
224
+ );
203
225
  break;
204
226
  case "Daisy":
205
227
  puzzleStickering.set(m.all(), "Ignored" /* Ignored */);
206
228
  puzzleStickering.set(CENTERS(), "Dim" /* Dim */);
207
- puzzleStickering.set(m.and([m.move("D"), CENTERS()]), "Regular" /* Regular */);
208
- puzzleStickering.set(m.and([m.move("U"), EDGES()]), "IgnoreNonPrimary" /* IgnoreNonPrimary */);
229
+ puzzleStickering.set(
230
+ m.and([m.move("D"), CENTERS()]),
231
+ "Regular" /* Regular */
232
+ );
233
+ puzzleStickering.set(
234
+ m.and([m.move("U"), EDGES()]),
235
+ "IgnoreNonPrimary" /* IgnoreNonPrimary */
236
+ );
209
237
  break;
210
238
  case "Cross":
211
239
  puzzleStickering.set(m.all(), "Ignored" /* Ignored */);
212
240
  puzzleStickering.set(CENTERS(), "Dim" /* Dim */);
213
- puzzleStickering.set(m.and([m.move("D"), CENTERS()]), "Regular" /* Regular */);
214
- puzzleStickering.set(m.and([m.move("D"), EDGES()]), "Regular" /* Regular */);
241
+ puzzleStickering.set(
242
+ m.and([m.move("D"), CENTERS()]),
243
+ "Regular" /* Regular */
244
+ );
245
+ puzzleStickering.set(
246
+ m.and([m.move("D"), EDGES()]),
247
+ "Regular" /* Regular */
248
+ );
215
249
  break;
216
250
  case "2x2x2":
217
- puzzleStickering.set(m.or(m.moves(["U", "F", "R"])), "Ignored" /* Ignored */);
218
- puzzleStickering.set(m.and([m.or(m.moves(["U", "F", "R"])), CENTERS()]), "Dim" /* Dim */);
251
+ puzzleStickering.set(
252
+ m.or(m.moves(["U", "F", "R"])),
253
+ "Ignored" /* Ignored */
254
+ );
255
+ puzzleStickering.set(
256
+ m.and([m.or(m.moves(["U", "F", "R"])), CENTERS()]),
257
+ "Dim" /* Dim */
258
+ );
219
259
  break;
220
260
  case "2x2x3":
221
261
  puzzleStickering.set(m.all(), "Dim" /* Dim */);
222
- puzzleStickering.set(m.or(m.moves(["U", "F", "R"])), "Ignored" /* Ignored */);
223
- puzzleStickering.set(m.and([m.or(m.moves(["U", "F", "R"])), CENTERS()]), "Dim" /* Dim */);
224
- puzzleStickering.set(m.and([m.move("F"), m.not(m.or(m.moves(["U", "R"])))]), "Regular" /* Regular */);
262
+ puzzleStickering.set(
263
+ m.or(m.moves(["U", "F", "R"])),
264
+ "Ignored" /* Ignored */
265
+ );
266
+ puzzleStickering.set(
267
+ m.and([m.or(m.moves(["U", "F", "R"])), CENTERS()]),
268
+ "Dim" /* Dim */
269
+ );
270
+ puzzleStickering.set(
271
+ m.and([m.move("F"), m.not(m.or(m.moves(["U", "R"])))]),
272
+ "Regular" /* Regular */
273
+ );
225
274
  break;
226
275
  case "Void Cube":
227
276
  puzzleStickering.set(CENTERS(), "Invisible" /* Invisible */);
@@ -234,7 +283,9 @@ async function cubeAppearance(puzzleLoader, stickering) {
234
283
  puzzleStickering.set(m.not(CENTERS()), "Ignored" /* Ignored */);
235
284
  break;
236
285
  default:
237
- console.warn(`Unsupported stickering for ${puzzleLoader.id}: ${stickering}. Setting all pieces to dim.`);
286
+ console.warn(
287
+ `Unsupported stickering for ${puzzleLoader.id}: ${stickering}. Setting all pieces to dim.`
288
+ );
238
289
  puzzleStickering.set(m.and(m.moves([])), "Dim" /* Dim */);
239
290
  }
240
291
  return puzzleStickering.toAppearance();
@@ -271,36 +322,35 @@ async function asyncGetKPuzzle(pgPromise, puzzleName) {
271
322
  const kpuzzleDefinition = pg.getKPuzzleDefinition(true);
272
323
  kpuzzleDefinition.name = puzzleName;
273
324
  const puzzleGeometry = await import("./puzzle-geometry/index.js");
274
- const pgNotation = new puzzleGeometry.ExperimentalPGNotation(pg, pg.getOrbitsDef(true));
325
+ const pgNotation = new puzzleGeometry.ExperimentalPGNotation(
326
+ pg,
327
+ pg.getOrbitsDef(true)
328
+ );
275
329
  return new KPuzzle(kpuzzleDefinition, {
276
330
  experimentalPGNotation: pgNotation
277
331
  });
278
332
  }
279
- var _cachedPG, _cachedKPuzzle, _cachedSVG;
280
333
  var PGPuzzleLoader = class {
281
334
  constructor(info) {
282
- __privateAdd(this, _cachedPG, void 0);
283
- __privateAdd(this, _cachedKPuzzle, void 0);
284
- __privateAdd(this, _cachedSVG, void 0);
285
335
  this.pgId = info.pgID;
286
336
  this.id = info.id;
287
337
  this.fullName = info.fullName;
288
338
  this.inventedBy = info.inventedBy;
289
339
  this.inventionYear = info.inventionYear;
290
340
  }
341
+ #cachedPG;
291
342
  pg() {
292
- return __privateGet(this, _cachedPG) ?? __privateSet(this, _cachedPG, asyncGetPuzzleGeometry(this.pgId ?? this.id));
343
+ return this.#cachedPG ?? (this.#cachedPG = asyncGetPuzzleGeometry(this.pgId ?? this.id));
293
344
  }
345
+ #cachedKPuzzle;
294
346
  kpuzzle() {
295
- return __privateGet(this, _cachedKPuzzle) ?? __privateSet(this, _cachedKPuzzle, asyncGetKPuzzle(this.pg(), this.id));
347
+ return this.#cachedKPuzzle ?? (this.#cachedKPuzzle = asyncGetKPuzzle(this.pg(), this.id));
296
348
  }
349
+ #cachedSVG;
297
350
  svg() {
298
- return __privateGet(this, _cachedSVG) ?? __privateSet(this, _cachedSVG, (async () => (await this.pg()).generatesvg())());
351
+ return this.#cachedSVG ?? (this.#cachedSVG = (async () => (await this.pg()).generatesvg())());
299
352
  }
300
353
  };
301
- _cachedPG = new WeakMap();
302
- _cachedKPuzzle = new WeakMap();
303
- _cachedSVG = new WeakMap();
304
354
  var CubePGPuzzleLoader = class extends PGPuzzleLoader {
305
355
  constructor() {
306
356
  super(...arguments);
@@ -315,9 +365,13 @@ var CubePGPuzzleLoader = class extends PGPuzzleLoader {
315
365
  var cube2x2x2 = {
316
366
  id: "2x2x2",
317
367
  fullName: "2\xD72\xD72 Cube",
318
- kpuzzle: getCached(async () => new KPuzzle((await import("./puzzles-dynamic-side-events-WZI4Y3N6.js")).cube2x2x2JSON)),
368
+ kpuzzle: getCached(
369
+ async () => new KPuzzle(
370
+ (await import("./puzzles-dynamic-side-events-5C7LMBWX.js")).cube2x2x2JSON
371
+ )
372
+ ),
319
373
  svg: async () => {
320
- return (await import("./puzzles-dynamic-side-events-WZI4Y3N6.js")).cube2x2x2SVG;
374
+ return (await import("./puzzles-dynamic-side-events-5C7LMBWX.js")).cube2x2x2SVG;
321
375
  },
322
376
  pg: getCached(async () => {
323
377
  return asyncGetPuzzleGeometry("2x2x2");
@@ -336,10 +390,10 @@ var cube3x3x3 = {
336
390
  return experimental3x3x3KPuzzle;
337
391
  }),
338
392
  svg: getCached(async () => {
339
- return (await import("./puzzles-dynamic-3x3x3-NB2PEZTV.js")).cube3x3x3SVG;
393
+ return (await import("./puzzles-dynamic-3x3x3-KIG5A6QR.js")).cube3x3x3SVG;
340
394
  }),
341
395
  llSVG: getCached(async () => {
342
- return (await import("./puzzles-dynamic-3x3x3-NB2PEZTV.js")).cube3x3x3LLSVG;
396
+ return (await import("./puzzles-dynamic-3x3x3-KIG5A6QR.js")).cube3x3x3LLSVG;
343
397
  }),
344
398
  pg: getCached(async () => {
345
399
  return asyncGetPuzzleGeometry("3x3x3");
@@ -354,9 +408,13 @@ var clock = {
354
408
  fullName: "Clock",
355
409
  inventedBy: ["Christopher C. Wiggs", "Christopher J. Taylor"],
356
410
  inventionYear: 1988,
357
- kpuzzle: getCached(async () => new KPuzzle((await import("./puzzles-dynamic-side-events-WZI4Y3N6.js")).clockJSON)),
411
+ kpuzzle: getCached(
412
+ async () => new KPuzzle(
413
+ (await import("./puzzles-dynamic-side-events-5C7LMBWX.js")).clockJSON
414
+ )
415
+ ),
358
416
  svg: getCached(async () => {
359
- return (await import("./puzzles-dynamic-side-events-WZI4Y3N6.js")).clockSVG;
417
+ return (await import("./puzzles-dynamic-side-events-5C7LMBWX.js")).clockSVG;
360
418
  })
361
419
  };
362
420
 
@@ -371,44 +429,65 @@ async function ftoStickering(puzzleLoader, stickering) {
371
429
  experimentalFTO_F2T(),
372
430
  m.and([m.move("F"), m.not(m.or(m.moves(["U", "BL", "BR"])))])
373
431
  ]);
374
- const experimentalFTO_L2C = () => m.not(m.or([
375
- m.and([m.move("U"), m.move("F")]),
376
- m.and([m.move("F"), m.move("BL")]),
377
- m.and([m.move("F"), m.move("BR")]),
378
- m.and([m.move("BL"), m.move("BR")])
379
- ]));
380
- const experimentalFTO_LBT = () => m.not(m.or([
381
- m.and([m.move("F"), m.move("BL")]),
382
- m.and([m.move("F"), m.move("BR")]),
383
- m.and([m.move("BL"), m.move("BR")])
384
- ]));
432
+ const experimentalFTO_L2C = () => m.not(
433
+ m.or([
434
+ m.and([m.move("U"), m.move("F")]),
435
+ m.and([m.move("F"), m.move("BL")]),
436
+ m.and([m.move("F"), m.move("BR")]),
437
+ m.and([m.move("BL"), m.move("BR")])
438
+ ])
439
+ );
440
+ const experimentalFTO_LBT = () => m.not(
441
+ m.or([
442
+ m.and([m.move("F"), m.move("BL")]),
443
+ m.and([m.move("F"), m.move("BR")]),
444
+ m.and([m.move("BL"), m.move("BR")])
445
+ ])
446
+ );
385
447
  switch (stickering) {
386
448
  case "full":
387
449
  break;
388
450
  case "experimental-fto-fc":
389
- puzzleStickering.set(m.not(experimentalFTO_FC()), "Ignored" /* Ignored */);
451
+ puzzleStickering.set(
452
+ m.not(experimentalFTO_FC()),
453
+ "Ignored" /* Ignored */
454
+ );
390
455
  break;
391
456
  case "experimental-fto-f2t":
392
- puzzleStickering.set(m.not(experimentalFTO_F2T()), "Ignored" /* Ignored */);
457
+ puzzleStickering.set(
458
+ m.not(experimentalFTO_F2T()),
459
+ "Ignored" /* Ignored */
460
+ );
393
461
  puzzleStickering.set(experimentalFTO_FC(), "Dim" /* Dim */);
394
462
  break;
395
463
  case "experimental-fto-sc":
396
- puzzleStickering.set(m.not(experimentalFTO_SC()), "Ignored" /* Ignored */);
464
+ puzzleStickering.set(
465
+ m.not(experimentalFTO_SC()),
466
+ "Ignored" /* Ignored */
467
+ );
397
468
  puzzleStickering.set(experimentalFTO_F2T(), "Dim" /* Dim */);
398
469
  break;
399
470
  case "experimental-fto-l2c":
400
- puzzleStickering.set(m.not(experimentalFTO_L2C()), "Ignored" /* Ignored */);
471
+ puzzleStickering.set(
472
+ m.not(experimentalFTO_L2C()),
473
+ "Ignored" /* Ignored */
474
+ );
401
475
  puzzleStickering.set(experimentalFTO_SC(), "Dim" /* Dim */);
402
476
  break;
403
477
  case "experimental-fto-lbt":
404
- puzzleStickering.set(m.not(experimentalFTO_LBT()), "Ignored" /* Ignored */);
478
+ puzzleStickering.set(
479
+ m.not(experimentalFTO_LBT()),
480
+ "Ignored" /* Ignored */
481
+ );
405
482
  puzzleStickering.set(experimentalFTO_L2C(), "Dim" /* Dim */);
406
483
  break;
407
484
  case "experimental-fto-l3t":
408
485
  puzzleStickering.set(experimentalFTO_LBT(), "Dim" /* Dim */);
409
486
  break;
410
487
  default:
411
- console.warn(`Unsupported stickering for ${puzzleLoader.id}: ${stickering}. Setting all pieces to dim.`);
488
+ console.warn(
489
+ `Unsupported stickering for ${puzzleLoader.id}: ${stickering}. Setting all pieces to dim.`
490
+ );
412
491
  puzzleStickering.set(m.and(m.moves([])), "Dim" /* Dim */);
413
492
  }
414
493
  return puzzleStickering.toAppearance();
@@ -437,7 +516,7 @@ var FTOPuzzleLoader = class extends PGPuzzleLoader {
437
516
  });
438
517
  this.stickerings = ftoStickerings;
439
518
  this.svg = getCached(async () => {
440
- return (await import("./puzzles-dynamic-unofficial-FUG3JBMH.js")).ftoSVG;
519
+ return (await import("./puzzles-dynamic-unofficial-WWJ4NJMX.js")).ftoSVG;
441
520
  });
442
521
  }
443
522
  appearance(stickering) {
@@ -458,7 +537,9 @@ async function megaminxAppearance(puzzleLoader, stickering) {
458
537
  case "CLS":
459
538
  return cubeAppearance(puzzleLoader, stickering);
460
539
  default:
461
- console.warn(`Unsupported stickering for ${puzzleLoader.id}: ${stickering}. Setting all pieces to dim.`);
540
+ console.warn(
541
+ `Unsupported stickering for ${puzzleLoader.id}: ${stickering}. Setting all pieces to dim.`
542
+ );
462
543
  }
463
544
  return cubeAppearance(puzzleLoader, "full");
464
545
  }
@@ -491,7 +572,7 @@ var PyraminxPuzzleLoader = class extends PGPuzzleLoader {
491
572
  inventedBy: ["Uwe Meffert"]
492
573
  });
493
574
  this.svg = getCached(async () => {
494
- return (await import("./puzzles-dynamic-side-events-WZI4Y3N6.js")).pyraminxSVG;
575
+ return (await import("./puzzles-dynamic-side-events-5C7LMBWX.js")).pyraminxSVG;
495
576
  });
496
577
  }
497
578
  };
@@ -503,9 +584,13 @@ var square1 = {
503
584
  fullName: "Square-1",
504
585
  inventedBy: ["Karel Hr\u0161el", "Vojtech Kopsk\xFD"],
505
586
  inventionYear: 1990,
506
- kpuzzle: getCached(async () => new KPuzzle((await import("./puzzles-dynamic-side-events-WZI4Y3N6.js")).sq1HyperOrbitJSON)),
587
+ kpuzzle: getCached(
588
+ async () => new KPuzzle(
589
+ (await import("./puzzles-dynamic-side-events-5C7LMBWX.js")).sq1HyperOrbitJSON
590
+ )
591
+ ),
507
592
  svg: getCached(async () => {
508
- return (await import("./puzzles-dynamic-side-events-WZI4Y3N6.js")).sq1HyperOrbitSVG;
593
+ return (await import("./puzzles-dynamic-side-events-5C7LMBWX.js")).sq1HyperOrbitSVG;
509
594
  })
510
595
  };
511
596
 
@@ -515,7 +600,9 @@ var kilominx = {
515
600
  fullName: "Kilominx",
516
601
  kpuzzle: getCached(async () => {
517
602
  const pg = await asyncGetPuzzleGeometry("megaminx + chopasaurus");
518
- const kpuzzleDefinition = JSON.parse(JSON.stringify(pg.getKPuzzleDefinition(true)));
603
+ const kpuzzleDefinition = JSON.parse(
604
+ JSON.stringify(pg.getKPuzzleDefinition(true))
605
+ );
519
606
  delete kpuzzleDefinition.orbits.CENTERS;
520
607
  delete kpuzzleDefinition.orbits.CENTERS2;
521
608
  delete kpuzzleDefinition.startStateData.CENTERS;
@@ -527,7 +614,10 @@ var kilominx = {
527
614
  kpuzzleDefinition.name = "kilominx";
528
615
  delete kpuzzleDefinition.experimentalPuzzleDescription;
529
616
  const puzzleGeometry = await import("./puzzle-geometry/index.js");
530
- const pgNotation = new puzzleGeometry.ExperimentalPGNotation(pg, pg.getOrbitsDef(true));
617
+ const pgNotation = new puzzleGeometry.ExperimentalPGNotation(
618
+ pg,
619
+ pg.getOrbitsDef(true)
620
+ );
531
621
  const kpuzzle = new KPuzzle(kpuzzleDefinition, {
532
622
  experimentalPGNotation: {
533
623
  lookupMove: (move) => {
@@ -543,7 +633,7 @@ var kilominx = {
543
633
  return kpuzzle;
544
634
  }),
545
635
  svg: getCached(async () => {
546
- return (await import("./puzzles-dynamic-unofficial-FUG3JBMH.js")).kilominxSVG;
636
+ return (await import("./puzzles-dynamic-unofficial-WWJ4NJMX.js")).kilominxSVG;
547
637
  })
548
638
  };
549
639
 
@@ -553,17 +643,30 @@ var rediCube = {
553
643
  fullName: "Redi Cube",
554
644
  inventedBy: ["Oskar van Deventer"],
555
645
  inventionYear: 2009,
556
- kpuzzle: getCached(async () => new KPuzzle((await import("./puzzles-dynamic-unofficial-FUG3JBMH.js")).rediCubeJSON)),
646
+ kpuzzle: getCached(
647
+ async () => new KPuzzle(
648
+ (await import("./puzzles-dynamic-unofficial-WWJ4NJMX.js")).rediCubeJSON
649
+ )
650
+ ),
557
651
  svg: async () => {
558
- return (await import("./puzzles-dynamic-unofficial-FUG3JBMH.js")).rediCubeSVG;
652
+ return (await import("./puzzles-dynamic-unofficial-WWJ4NJMX.js")).rediCubeSVG;
559
653
  }
560
654
  };
561
655
 
656
+ // src/cubing/puzzles/implementations/4x4x4/index.ts
657
+ var cube4x4x4 = new CubePGPuzzleLoader({
658
+ id: "4x4x4",
659
+ fullName: "4\xD74\xD74 Cube"
660
+ });
661
+ cube4x4x4.llSVG = getCached(async () => {
662
+ return (await import("./puzzles-dynamic-4x4x4-PEDAPUZK.js")).cube4x4x4LLSVG;
663
+ });
664
+
562
665
  // src/cubing/puzzles/index.ts
563
666
  var puzzles = {
564
667
  "3x3x3": cube3x3x3,
565
668
  "2x2x2": cube2x2x2,
566
- "4x4x4": new CubePGPuzzleLoader({ id: "4x4x4", fullName: "4\xD74\xD74 Cube" }),
669
+ "4x4x4": cube4x4x4,
567
670
  "5x5x5": new CubePGPuzzleLoader({ id: "5x5x5", fullName: "5\xD75\xD75 Cube" }),
568
671
  "6x6x6": new CubePGPuzzleLoader({ id: "6x6x6", fullName: "6\xD76\xD76 Cube" }),
569
672
  "7x7x7": new CubePGPuzzleLoader({ id: "7x7x7", fullName: "7\xD77\xD77 Cube" }),
@@ -605,4 +708,4 @@ export {
605
708
  cube3x3x3,
606
709
  puzzles
607
710
  };
608
- //# sourceMappingURL=chunk-JAGHV77R.js.map
711
+ //# sourceMappingURL=chunk-QDVCP6G7.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/cubing/puzzles/events.ts", "../../src/cubing/puzzles/stickerings/cube-stickerings.ts", "../../src/cubing/puzzles/async/lazy-cached.ts", "../../src/cubing/puzzles/async/async-pg3d.ts", "../../src/cubing/puzzles/implementations/2x2x2/index.ts", "../../src/cubing/puzzles/implementations/3x3x3/index.ts", "../../src/cubing/puzzles/implementations/clock/index.ts", "../../src/cubing/puzzles/stickerings/fto-stickerings.ts", "../../src/cubing/puzzles/implementations/fto/index.ts", "../../src/cubing/puzzles/stickerings/megaminx-stickerings.ts", "../../src/cubing/puzzles/implementations/megaminx/index.ts", "../../src/cubing/puzzles/implementations/pyraminx/index.ts", "../../src/cubing/puzzles/implementations/square1/index.ts", "../../src/cubing/puzzles/implementations/kilominx/index.ts", "../../src/cubing/puzzles/implementations/redi-cube/index.ts", "../../src/cubing/puzzles/implementations/4x4x4/index.ts", "../../src/cubing/puzzles/index.ts"],
4
+ "sourcesContent": ["import type { PuzzleID } from \"../twisty\";\n\ninterface EventInfo {\n puzzleID: PuzzleID;\n eventName: string;\n}\n\nconst wcaEvents: Record<string, EventInfo> = {\n \"333\": { puzzleID: \"3x3x3\", eventName: \"3x3x3 Cube\" },\n \"222\": { puzzleID: \"2x2x2\", eventName: \"2x2x2 Cube\" },\n \"444\": { puzzleID: \"4x4x4\", eventName: \"4x4x4 Cube\" },\n \"555\": { puzzleID: \"5x5x5\", eventName: \"5x5x5 Cube\" },\n \"666\": { puzzleID: \"6x6x6\", eventName: \"6x6x6 Cube\" },\n \"777\": { puzzleID: \"7x7x7\", eventName: \"7x7x7 Cube\" },\n \"333bf\": { puzzleID: \"3x3x3\", eventName: \"3x3x3 Blindfolded\" },\n \"333fm\": { puzzleID: \"3x3x3\", eventName: \"3x3x3 Fewest Moves\" },\n \"333oh\": { puzzleID: \"3x3x3\", eventName: \"3x3x3 One-Handed\" },\n \"clock\": { puzzleID: \"clock\", eventName: \"Clock\" },\n \"minx\": { puzzleID: \"megaminx\", eventName: \"Megaminx\" },\n \"pyram\": { puzzleID: \"pyraminx\", eventName: \"Pyraminx\" },\n \"skewb\": { puzzleID: \"skewb\", eventName: \"Skewb\" },\n \"sq1\": { puzzleID: \"square1\", eventName: \"Square-1\" },\n \"444bf\": { puzzleID: \"4x4x4\", eventName: \"4x4x4 Blindfolded\" },\n \"555bf\": { puzzleID: \"5x5x5\", eventName: \"5x5x5 Blindfolded\" },\n \"333mb\": { puzzleID: \"3x3x3\", eventName: \"3x3x3 Multi-Blind\" },\n};\n\n/** @category Event Info */\nexport function wcaEventInfo(event: string): EventInfo | null {\n return wcaEvents[event] ?? null;\n}\n\nconst events: Record<string, EventInfo> = {\n ...wcaEvents,\n fto: { puzzleID: \"fto\", eventName: \"Face-Turning Octahedron\" },\n master_tetraminx: {\n puzzleID: \"master_tetraminx\",\n eventName: \"Master Tetraminx\",\n },\n kilominx: {\n puzzleID: \"kilominx\",\n eventName: \"Kilominx\",\n },\n redi_cube: {\n puzzleID: \"redi_cube\",\n eventName: \"Redi Cube\",\n },\n};\n\n/** @category Event Info */\nexport function eventInfo(event: string): EventInfo | null {\n return events[event] ?? null;\n}\n", "import type { ExperimentalStickering } from \"../../twisty\";\nimport type { PuzzleLoader } from \"../PuzzleLoader\";\nimport {\n PieceSet,\n PieceStickering,\n PuzzleAppearance,\n PuzzleStickering,\n StickeringManager,\n} from \"./appearance\";\nimport { experimentalStickerings } from \"./puzzle-stickerings\";\n\n// TODO: cache calculations?\nexport async function cubeAppearance(\n puzzleLoader: PuzzleLoader,\n stickering: ExperimentalStickering,\n): Promise<PuzzleAppearance> {\n const kpuzzle = await puzzleLoader.kpuzzle();\n const puzzleStickering = new PuzzleStickering(kpuzzle);\n const m = new StickeringManager(kpuzzle);\n\n const LL = (): PieceSet => m.move(\"U\");\n const orUD = (): PieceSet => m.or(m.moves([\"U\", \"D\"]));\n const orLR = (): PieceSet => m.or(m.moves([\"L\", \"R\"]));\n const M = (): PieceSet => m.not(orLR());\n\n const F2L = (): PieceSet => m.not(LL());\n\n const CENTERS = (): PieceSet => m.orbitPrefix(\"CENTER\");\n const EDGES = (): PieceSet => m.orbitPrefix(\"EDGE\");\n const CORNERS = (): PieceSet => m.or([m.orbitPrefix(\"CORNER\"), m.orbitPrefix(\"C4RNER\"), m.orbitPrefix(\"C5RNER\")]);\n \n const L6E = (): PieceSet => m.or([M(), m.and([LL(), EDGES()])]);\n const centerLL = (): PieceSet => m.and([LL(), CENTERS()]);\n\n const edgeFR = (): PieceSet => m.and([m.and(m.moves([\"F\", \"R\"])), EDGES()]);\n const cornerDFR = (): PieceSet =>\n m.and([m.and(m.moves([\"F\", \"R\"])), CORNERS(), m.not(LL())]);\n const slotFR = (): PieceSet => m.or([cornerDFR(), edgeFR()]);\n\n function dimF2L(): void {\n puzzleStickering.set(F2L(), PieceStickering.Dim);\n }\n\n function setPLL(): void {\n puzzleStickering.set(LL(), PieceStickering.PermuteNonPrimary);\n puzzleStickering.set(centerLL(), PieceStickering.Dim); // For PG\n }\n\n function setOLL(): void {\n puzzleStickering.set(LL(), PieceStickering.IgnoreNonPrimary);\n puzzleStickering.set(centerLL(), PieceStickering.Regular); // For PG\n }\n\n function dimOLL(): void {\n puzzleStickering.set(LL(), PieceStickering.Ignoriented);\n puzzleStickering.set(centerLL(), PieceStickering.Dim); // For PG\n }\n\n switch (stickering) {\n case \"full\":\n break;\n case \"PLL\":\n dimF2L();\n setPLL();\n break;\n case \"CLS\":\n dimF2L();\n puzzleStickering.set(cornerDFR(), PieceStickering.Regular);\n puzzleStickering.set(LL(), PieceStickering.Ignoriented);\n puzzleStickering.set(m.and([LL(), CENTERS()]), PieceStickering.Dim);\n puzzleStickering.set(\n m.and([LL(), CORNERS()]),\n PieceStickering.IgnoreNonPrimary,\n );\n break;\n case \"OLL\":\n dimF2L();\n setOLL();\n break;\n case \"COLL\":\n dimF2L();\n puzzleStickering.set(m.and([LL(), EDGES()]), PieceStickering.Ignoriented);\n puzzleStickering.set(m.and([LL(), CENTERS()]), PieceStickering.Dim);\n puzzleStickering.set(m.and([LL(), CORNERS()]), PieceStickering.Regular);\n break;\n case \"OCLL\":\n dimF2L();\n dimOLL();\n puzzleStickering.set(\n m.and([LL(), CORNERS()]),\n PieceStickering.IgnoreNonPrimary,\n );\n break;\n case \"CLL\":\n dimF2L();\n puzzleStickering.set(\n m.not(m.and([CORNERS(), LL()])),\n PieceStickering.Dim,\n );\n break;\n case \"ELL\":\n dimF2L();\n puzzleStickering.set(LL(), PieceStickering.Dim);\n puzzleStickering.set(m.and([LL(), EDGES()]), PieceStickering.Regular);\n break;\n case \"ELS\":\n dimF2L();\n setOLL();\n puzzleStickering.set(m.and([LL(), CORNERS()]), PieceStickering.Ignored);\n puzzleStickering.set(edgeFR(), PieceStickering.Regular);\n puzzleStickering.set(cornerDFR(), PieceStickering.Ignored);\n break;\n case \"LL\":\n dimF2L();\n break;\n case \"F2L\":\n puzzleStickering.set(LL(), PieceStickering.Ignored);\n break;\n case \"ZBLL\":\n dimF2L();\n puzzleStickering.set(LL(), PieceStickering.PermuteNonPrimary);\n puzzleStickering.set(centerLL(), PieceStickering.Dim); // For PG\n puzzleStickering.set(m.and([LL(), CORNERS()]), PieceStickering.Regular);\n break;\n case \"ZBLS\":\n dimF2L();\n puzzleStickering.set(slotFR(), PieceStickering.Regular);\n setOLL();\n puzzleStickering.set(m.and([LL(), CORNERS()]), PieceStickering.Ignored);\n break;\n case \"VLS\":\n dimF2L();\n puzzleStickering.set(slotFR(), PieceStickering.Regular);\n setOLL();\n break;\n case \"WVLS\":\n dimF2L();\n puzzleStickering.set(slotFR(), PieceStickering.Regular);\n puzzleStickering.set(m.and([LL(), EDGES()]), PieceStickering.Ignoriented);\n puzzleStickering.set(m.and([LL(), CENTERS()]), PieceStickering.Dim);\n puzzleStickering.set(\n m.and([LL(), CORNERS()]),\n PieceStickering.IgnoreNonPrimary,\n );\n break;\n case \"LS\":\n dimF2L();\n puzzleStickering.set(slotFR(), PieceStickering.Regular);\n puzzleStickering.set(LL(), PieceStickering.Ignored);\n puzzleStickering.set(centerLL(), PieceStickering.Dim);\n break;\n case \"EO\":\n puzzleStickering.set(CORNERS(), PieceStickering.Ignored);\n puzzleStickering.set(\n EDGES(),\n PieceStickering.OrientationWithoutPermutation,\n );\n break;\n case \"EOline\":\n puzzleStickering.set(CORNERS(), PieceStickering.Ignored);\n puzzleStickering.set(\n EDGES(),\n PieceStickering.OrientationWithoutPermutation,\n );\n puzzleStickering.set(m.and(m.moves([\"D\", \"M\"])), PieceStickering.Regular);\n break;\n case \"EOcross\":\n puzzleStickering.set(\n EDGES(),\n PieceStickering.OrientationWithoutPermutation,\n );\n puzzleStickering.set(m.move(\"D\"), PieceStickering.Regular);\n puzzleStickering.set(CORNERS(), PieceStickering.Ignored);\n break;\n case \"CMLL\":\n puzzleStickering.set(F2L(), PieceStickering.Dim);\n puzzleStickering.set(L6E(), PieceStickering.Ignored);\n puzzleStickering.set(m.and([LL(), CORNERS()]), PieceStickering.Regular);\n break;\n case \"L10P\":\n puzzleStickering.set(m.not(L6E()), PieceStickering.Dim);\n puzzleStickering.set(m.and([CORNERS(), LL()]), PieceStickering.Regular);\n break;\n case \"L6E\":\n puzzleStickering.set(m.not(L6E()), PieceStickering.Dim);\n break;\n case \"L6EO\":\n puzzleStickering.set(m.not(L6E()), PieceStickering.Dim);\n puzzleStickering.set(\n L6E(),\n PieceStickering.OrientationWithoutPermutation,\n );\n puzzleStickering.set(\n m.and([CENTERS(), orUD()]),\n PieceStickering.OrientationStickers,\n ); // For PG\n break;\n case \"Daisy\":\n puzzleStickering.set(m.all(), PieceStickering.Ignored);\n puzzleStickering.set(CENTERS(), PieceStickering.Dim);\n puzzleStickering.set(\n m.and([m.move(\"D\"), CENTERS()]),\n PieceStickering.Regular,\n );\n puzzleStickering.set(\n m.and([m.move(\"U\"), EDGES()]),\n PieceStickering.IgnoreNonPrimary,\n );\n break;\n case \"Cross\":\n puzzleStickering.set(m.all(), PieceStickering.Ignored);\n puzzleStickering.set(CENTERS(), PieceStickering.Dim);\n puzzleStickering.set(\n m.and([m.move(\"D\"), CENTERS()]),\n PieceStickering.Regular,\n );\n puzzleStickering.set(\n m.and([m.move(\"D\"), EDGES()]),\n PieceStickering.Regular,\n );\n break;\n case \"2x2x2\":\n puzzleStickering.set(\n m.or(m.moves([\"U\", \"F\", \"R\"])),\n PieceStickering.Ignored,\n );\n puzzleStickering.set(\n m.and([m.or(m.moves([\"U\", \"F\", \"R\"])), CENTERS()]),\n PieceStickering.Dim,\n );\n break;\n case \"2x2x3\":\n puzzleStickering.set(m.all(), PieceStickering.Dim);\n puzzleStickering.set(\n m.or(m.moves([\"U\", \"F\", \"R\"])),\n PieceStickering.Ignored,\n );\n puzzleStickering.set(\n m.and([m.or(m.moves([\"U\", \"F\", \"R\"])), CENTERS()]),\n PieceStickering.Dim,\n );\n puzzleStickering.set(\n m.and([m.move(\"F\"), m.not(m.or(m.moves([\"U\", \"R\"])))]),\n PieceStickering.Regular,\n );\n break;\n case \"Void Cube\":\n puzzleStickering.set(CENTERS(), PieceStickering.Invisible);\n break;\n case \"picture\":\n // fallthrough\n case \"invisible\":\n puzzleStickering.set(m.all(), PieceStickering.Invisible);\n break;\n case \"centers-only\":\n puzzleStickering.set(m.not(CENTERS()), PieceStickering.Ignored);\n break;\n default:\n console.warn(\n `Unsupported stickering for ${puzzleLoader.id}: ${stickering}. Setting all pieces to dim.`,\n );\n puzzleStickering.set(m.and(m.moves([])), PieceStickering.Dim);\n }\n return puzzleStickering.toAppearance();\n}\n\nexport async function cubeStickerings(): Promise<ExperimentalStickering[]> {\n const stickerings: ExperimentalStickering[] = [];\n for (const [name, info] of Object.entries(experimentalStickerings)) {\n if (info.groups && \"3x3x3\" in info.groups) {\n stickerings.push(name);\n }\n }\n return stickerings;\n}\n", "export function getCached<T>(getValue: () => Promise<T>): () => Promise<T> {\n let cachedPromise: Promise<T> | null = null;\n return (): Promise<T> => {\n return (cachedPromise ??= getValue());\n };\n}\n", "import { KPuzzle, KPuzzleDefinition } from \"../../kpuzzle\";\nimport type { PuzzleGeometry } from \"../../puzzle-geometry\";\nimport type { ExperimentalStickering } from \"../../twisty\";\nimport type { PuzzleLoader } from \"../PuzzleLoader\";\nimport type { PuzzleAppearance } from \"../stickerings/appearance\";\nimport {\n cubeAppearance,\n cubeStickerings,\n} from \"../stickerings/cube-stickerings\";\nimport { getCached } from \"./lazy-cached\";\n\n// TODO: modify this to handle TwistyPlayer options\nexport async function asyncGetPuzzleGeometry(\n puzzleName: string,\n): Promise<PuzzleGeometry> {\n const puzzleGeometry = await import(\"../../puzzle-geometry\");\n return puzzleGeometry.getPuzzleGeometryByName(puzzleName, {\n allMoves: true,\n orientCenters: true,\n addRotations: true,\n });\n}\n\n// TODO: can we cache the puzzleGeometry to avoid duplicate calls, without\n// wasting memory? Maybe just save the latest one for successive calls about the\n// same puzzle?\nexport async function asyncGetKPuzzle(\n pgPromise: Promise<PuzzleGeometry>,\n puzzleName: string,\n): Promise<KPuzzle> {\n const pg = await pgPromise;\n const kpuzzleDefinition: KPuzzleDefinition = pg.getKPuzzleDefinition(true);\n kpuzzleDefinition.name = puzzleName;\n const puzzleGeometry = await import(\"../../puzzle-geometry\");\n const pgNotation = new puzzleGeometry.ExperimentalPGNotation(\n pg,\n pg.getOrbitsDef(true),\n );\n return new KPuzzle(kpuzzleDefinition, {\n experimentalPGNotation: pgNotation,\n });\n}\n\nexport function asyncLazyKPuzzleGetter(\n pgPromise: Promise<PuzzleGeometry>,\n puzzleName: string,\n): () => Promise<KPuzzle> {\n return getCached(() => asyncGetKPuzzle(pgPromise, puzzleName));\n}\n\ntype PuzzleLoaderConstructorArgs = {\n pgID?: string;\n id: string;\n fullName: string;\n inventedBy?: string[];\n inventionYear?: number;\n};\n\nexport class PGPuzzleLoader implements PuzzleLoader {\n pgId?: string;\n id: string;\n fullName: string;\n inventedBy?: string[];\n inventionYear?: number;\n constructor(info: PuzzleLoaderConstructorArgs) {\n this.pgId = info.pgID;\n this.id = info.id;\n this.fullName = info.fullName;\n this.inventedBy = info.inventedBy;\n this.inventionYear = info.inventionYear;\n }\n\n #cachedPG: Promise<PuzzleGeometry> | undefined;\n pg(): Promise<PuzzleGeometry> {\n return (this.#cachedPG ??= asyncGetPuzzleGeometry(this.pgId ?? this.id));\n }\n\n #cachedKPuzzle: Promise<KPuzzle> | undefined;\n kpuzzle(): Promise<KPuzzle> {\n return (this.#cachedKPuzzle ??= asyncGetKPuzzle(this.pg(), this.id));\n }\n\n #cachedSVG: Promise<string> | undefined;\n svg(): Promise<string> {\n return (this.#cachedSVG ??= (async () =>\n (await this.pg()).generatesvg())());\n }\n}\n\nexport class CubePGPuzzleLoader extends PGPuzzleLoader {\n appearance(stickering: ExperimentalStickering): Promise<PuzzleAppearance> {\n return cubeAppearance(this, stickering);\n }\n stickerings = cubeStickerings;\n}\n", "import { KPuzzle } from \"../../../kpuzzle\";\nimport type { ExperimentalStickering } from \"../../../twisty\";\nimport { asyncGetPuzzleGeometry } from \"../../async/async-pg3d\";\nimport { getCached } from \"../../async/lazy-cached\";\nimport type { PuzzleLoader } from \"../../PuzzleLoader\";\nimport type { PuzzleAppearance } from \"../../stickerings/appearance\";\nimport {\n cubeAppearance,\n cubeStickerings,\n} from \"../../stickerings/cube-stickerings\";\n\n/** @category Specific Puzzles */\nexport const cube2x2x2: PuzzleLoader = {\n id: \"2x2x2\",\n fullName: \"2\u00D72\u00D72 Cube\",\n kpuzzle: getCached(\n async () =>\n new KPuzzle(\n (\n await import(\"../dynamic/side-events/puzzles-dynamic-side-events\")\n ).cube2x2x2JSON,\n ),\n ),\n svg: async () => {\n return (await import(\"../dynamic/side-events/puzzles-dynamic-side-events\"))\n .cube2x2x2SVG;\n },\n pg: getCached(async () => {\n return asyncGetPuzzleGeometry(\"2x2x2\");\n }),\n appearance: (stickering: ExperimentalStickering): Promise<PuzzleAppearance> =>\n cubeAppearance(cube2x2x2, stickering),\n stickerings: cubeStickerings,\n};\n", "// Include 3x3x3 in the main bundle for better performance.\nimport { experimental3x3x3KPuzzle } from \"../../cubing-private\";\nimport type { ExperimentalStickering } from \"../../../twisty\";\nimport { asyncGetPuzzleGeometry } from \"../../async/async-pg3d\";\nimport { getCached } from \"../../async/lazy-cached\";\nimport type { PuzzleLoader } from \"../../PuzzleLoader\";\nimport type { PuzzleAppearance } from \"../../stickerings/appearance\";\nimport {\n cubeAppearance,\n cubeStickerings,\n} from \"../../stickerings/cube-stickerings\";\n\n/** @category Specific Puzzles */\nexport const cube3x3x3: PuzzleLoader = {\n id: \"3x3x3\",\n fullName: \"3\u00D73\u00D73 Cube\",\n inventedBy: [\"Ern\u0151 Rubik\"],\n inventionYear: 1974, // https://en.wikipedia.org/wiki/Rubik%27s_Cube#Conception_and_development\n kpuzzle: getCached(async () => {\n return experimental3x3x3KPuzzle;\n }),\n svg: getCached(async () => {\n return (await import(\"../dynamic/3x3x3/puzzles-dynamic-3x3x3\"))\n .cube3x3x3SVG;\n }),\n llSVG: getCached(async () => {\n return (await import(\"../dynamic/3x3x3/puzzles-dynamic-3x3x3\"))\n .cube3x3x3LLSVG;\n }),\n pg: getCached(async () => {\n return asyncGetPuzzleGeometry(\"3x3x3\");\n }),\n appearance: (stickering: ExperimentalStickering): Promise<PuzzleAppearance> =>\n cubeAppearance(cube3x3x3, stickering),\n stickerings: cubeStickerings,\n};\n", "import { KPuzzle } from \"../../../kpuzzle\";\nimport { getCached } from \"../../async/lazy-cached\";\nimport type { PuzzleLoader } from \"../../PuzzleLoader\";\n\nexport const clock: PuzzleLoader = {\n id: \"clock\",\n fullName: \"Clock\",\n inventedBy: [\"Christopher C. Wiggs\", \"Christopher J. Taylor\"],\n inventionYear: 1988, // Patent application year: https://www.jaapsch.net/puzzles/patents/us4869506.pdf\n kpuzzle: getCached(\n async () =>\n new KPuzzle(\n (\n await import(\"../dynamic/side-events/puzzles-dynamic-side-events\")\n ).clockJSON,\n ),\n ),\n svg: getCached(async () => {\n return (await import(\"../dynamic/side-events/puzzles-dynamic-side-events\"))\n .clockSVG;\n }),\n};\n", "import type { ExperimentalStickering } from \"../../twisty\";\nimport type { PuzzleLoader } from \"../PuzzleLoader\";\nimport {\n PuzzleAppearance,\n PuzzleStickering,\n StickeringManager,\n PieceSet,\n PieceStickering,\n} from \"./appearance\";\n\nexport async function ftoStickering(\n puzzleLoader: PuzzleLoader,\n stickering: ExperimentalStickering,\n): Promise<PuzzleAppearance> {\n const kpuzzle = await puzzleLoader.kpuzzle();\n const puzzleStickering = new PuzzleStickering(kpuzzle);\n const m = new StickeringManager(kpuzzle);\n\n const experimentalFTO_FC = (): PieceSet =>\n m.and([m.move(\"U\"), m.not(m.or(m.moves([\"F\", \"BL\", \"BR\"])))]);\n const experimentalFTO_F2T = (): PieceSet =>\n m.and([m.move(\"U\"), m.not(m.move(\"F\"))]);\n const experimentalFTO_SC = (): PieceSet =>\n m.or([\n experimentalFTO_F2T(),\n m.and([m.move(\"F\"), m.not(m.or(m.moves([\"U\", \"BL\", \"BR\"])))]),\n ]);\n const experimentalFTO_L2C = (): PieceSet =>\n m.not(\n m.or([\n m.and([m.move(\"U\"), m.move(\"F\")]),\n m.and([m.move(\"F\"), m.move(\"BL\")]),\n m.and([m.move(\"F\"), m.move(\"BR\")]),\n m.and([m.move(\"BL\"), m.move(\"BR\")]),\n ]),\n );\n const experimentalFTO_LBT = (): PieceSet =>\n m.not(\n m.or([\n m.and([m.move(\"F\"), m.move(\"BL\")]),\n m.and([m.move(\"F\"), m.move(\"BR\")]),\n m.and([m.move(\"BL\"), m.move(\"BR\")]),\n ]),\n );\n\n switch (stickering) {\n case \"full\":\n break;\n case \"experimental-fto-fc\":\n puzzleStickering.set(\n m.not(experimentalFTO_FC()),\n PieceStickering.Ignored,\n );\n break;\n case \"experimental-fto-f2t\":\n puzzleStickering.set(\n m.not(experimentalFTO_F2T()),\n PieceStickering.Ignored,\n );\n puzzleStickering.set(experimentalFTO_FC(), PieceStickering.Dim);\n break;\n case \"experimental-fto-sc\":\n puzzleStickering.set(\n m.not(experimentalFTO_SC()),\n PieceStickering.Ignored,\n );\n puzzleStickering.set(experimentalFTO_F2T(), PieceStickering.Dim);\n break;\n case \"experimental-fto-l2c\":\n puzzleStickering.set(\n m.not(experimentalFTO_L2C()),\n PieceStickering.Ignored,\n );\n puzzleStickering.set(experimentalFTO_SC(), PieceStickering.Dim);\n break;\n case \"experimental-fto-lbt\":\n puzzleStickering.set(\n m.not(experimentalFTO_LBT()),\n PieceStickering.Ignored,\n );\n puzzleStickering.set(experimentalFTO_L2C(), PieceStickering.Dim);\n break;\n case \"experimental-fto-l3t\":\n puzzleStickering.set(experimentalFTO_LBT(), PieceStickering.Dim);\n break;\n default:\n console.warn(\n `Unsupported stickering for ${puzzleLoader.id}: ${stickering}. Setting all pieces to dim.`,\n );\n puzzleStickering.set(m.and(m.moves([])), PieceStickering.Dim);\n }\n return puzzleStickering.toAppearance();\n}\n\nexport async function ftoStickerings(): Promise<ExperimentalStickering[]> {\n return [\n \"full\",\n \"experimental-fto-fc\",\n \"experimental-fto-f2t\",\n \"experimental-fto-sc\",\n \"experimental-fto-l2c\",\n \"experimental-fto-lbt\",\n \"experimental-fto-l3t\",\n ];\n}\n", "import type { ExperimentalStickering } from \"../../../twisty\";\nimport { PGPuzzleLoader } from \"../../async/async-pg3d\";\nimport { getCached } from \"../../async/lazy-cached\";\nimport type { PuzzleAppearance } from \"../../stickerings/appearance\";\nimport {\n ftoStickering,\n ftoStickerings,\n} from \"../../stickerings/fto-stickerings\";\n\nclass FTOPuzzleLoader extends PGPuzzleLoader {\n constructor() {\n super({\n pgID: \"FTO\",\n id: \"fto\",\n fullName: \"Face-Turning Octahedron\",\n inventedBy: [\"Karl Rohrbach\", \"David Pitcher\"], // http://twistypuzzles.com/cgi-bin/puzzle.cgi?pkey=1663\n inventionYear: 1983, // http://twistypuzzles.com/cgi-bin/puzzle.cgi?pkey=1663\n });\n }\n appearance(stickering: ExperimentalStickering): Promise<PuzzleAppearance> {\n return ftoStickering(this, stickering);\n }\n stickerings = ftoStickerings;\n svg = getCached(async () => {\n return (await import(\"../dynamic/unofficial/puzzles-dynamic-unofficial\"))\n .ftoSVG;\n });\n}\n\nexport const fto = new FTOPuzzleLoader();\n", "import type { ExperimentalStickering } from \"../../twisty\";\nimport type { PuzzleLoader } from \"../PuzzleLoader\";\nimport type { PuzzleAppearance } from \"./appearance\";\nimport { cubeAppearance } from \"./cube-stickerings\";\n\n// TODO: cache calculations?\nexport async function megaminxAppearance(\n puzzleLoader: PuzzleLoader,\n stickering: ExperimentalStickering,\n): Promise<PuzzleAppearance> {\n switch (stickering) {\n case \"full\":\n case \"F2L\":\n case \"LL\":\n case \"OLL\":\n case \"PLL\":\n case \"ELS\":\n case \"CLS\":\n return cubeAppearance(puzzleLoader, stickering);\n default:\n console.warn(\n `Unsupported stickering for ${puzzleLoader.id}: ${stickering}. Setting all pieces to dim.`,\n );\n }\n return cubeAppearance(puzzleLoader, \"full\");\n}\n\nexport async function megaminxStickerings(): Promise<ExperimentalStickering[]> {\n return [\"full\", \"F2L\", \"LL\", \"OLL\", \"PLL\", \"ELS\", \"CLS\"];\n}\n", "import type { ExperimentalStickering } from \"../../../twisty\";\nimport { PGPuzzleLoader } from \"../../async/async-pg3d\";\nimport type { PuzzleAppearance } from \"../../stickerings/appearance\";\nimport {\n megaminxAppearance,\n megaminxStickerings,\n} from \"../../stickerings/megaminx-stickerings\";\n\nclass MegaminxPuzzleLoader extends PGPuzzleLoader {\n constructor() {\n super({\n id: \"megaminx\",\n fullName: \"Megaminx\",\n // Too many simultaneous inventors to name.\n inventionYear: 1981, // Earliest date from https://www.jaapsch.net/puzzles/megaminx.htm\n });\n }\n appearance(stickering: ExperimentalStickering): Promise<PuzzleAppearance> {\n return megaminxAppearance(this, stickering);\n }\n stickerings = megaminxStickerings;\n}\n\nexport const megaminx = new MegaminxPuzzleLoader();\n", "import { PGPuzzleLoader } from \"../../async/async-pg3d\";\nimport { getCached } from \"../../async/lazy-cached\";\n\nclass PyraminxPuzzleLoader extends PGPuzzleLoader {\n constructor() {\n super({\n id: \"pyraminx\",\n fullName: \"Pyraminx\",\n inventedBy: [\"Uwe Meffert\"],\n });\n }\n svg = getCached(async () => {\n return (await import(\"../dynamic/side-events/puzzles-dynamic-side-events\"))\n .pyraminxSVG;\n });\n}\n\nexport const pyraminx = new PyraminxPuzzleLoader();\n", "import { KPuzzle } from \"../../../kpuzzle\";\nimport { getCached } from \"../../async/lazy-cached\";\nimport type { PuzzleLoader } from \"../../PuzzleLoader\";\n\nexport const square1: PuzzleLoader = {\n id: \"square1\",\n fullName: \"Square-1\",\n inventedBy: [\"Karel Hr\u0161el\", \"Vojtech Kopsk\u00FD\"],\n inventionYear: 1990, // Czech patent application year: http://spisy.upv.cz/Patents/FullDocuments/277/277266.pdf\n kpuzzle: getCached(\n async () =>\n new KPuzzle(\n (\n await import(\"../dynamic/side-events/puzzles-dynamic-side-events\")\n ).sq1HyperOrbitJSON,\n ),\n ),\n svg: getCached(async () => {\n return (await import(\"../dynamic/side-events/puzzles-dynamic-side-events\"))\n .sq1HyperOrbitSVG;\n }),\n};\n", "import type { PuzzleLoader } from \"../..\";\nimport type { Move } from \"../../../alg\";\nimport { KPuzzle, KTransformationData } from \"../../../kpuzzle\";\nimport type { ExperimentalPGNotation } from \"../../../puzzle-geometry\";\nimport { asyncGetPuzzleGeometry } from \"../../async/async-pg3d\";\nimport { getCached } from \"../../async/lazy-cached\";\n\n// TODO: Make this consistent with Megaminx corners\nexport const kilominx: PuzzleLoader = {\n id: \"kilominx\",\n fullName: \"Kilominx\",\n kpuzzle: getCached(async () => {\n const pg = await asyncGetPuzzleGeometry(\"megaminx + chopasaurus\");\n const kpuzzleDefinition = JSON.parse(\n JSON.stringify(pg.getKPuzzleDefinition(true)),\n );\n delete kpuzzleDefinition.orbits.CENTERS;\n delete kpuzzleDefinition.orbits.CENTERS2;\n delete kpuzzleDefinition.startStateData.CENTERS;\n delete kpuzzleDefinition.startStateData.CENTERS2;\n for (const moveDefinition of Object.values(kpuzzleDefinition.moves)) {\n delete (moveDefinition as any).CENTERS;\n delete (moveDefinition as any).CENTERS2;\n }\n kpuzzleDefinition.name = \"kilominx\";\n delete kpuzzleDefinition.experimentalPuzzleDescription;\n const puzzleGeometry = await import(\"../../../puzzle-geometry\");\n const pgNotation = new puzzleGeometry.ExperimentalPGNotation(\n pg,\n pg.getOrbitsDef(true),\n );\n const kpuzzle = new KPuzzle(kpuzzleDefinition, {\n experimentalPGNotation: {\n lookupMove: (move: Move): KTransformationData | null => {\n if (move.toString() === \"x2\" || move.toString() === \"x2'\") {\n return x2Transformation.transformationData;\n }\n return pgNotation.lookupMove(move);\n },\n } as ExperimentalPGNotation,\n });\n const x2Transformation = kpuzzle.algToTransformation(\"Rv2 Fv Uv'\");\n kpuzzleDefinition.moves[\"x2\"] = x2Transformation;\n return kpuzzle;\n }),\n svg: getCached(async () => {\n return (await import(\"../dynamic/unofficial/puzzles-dynamic-unofficial\"))\n .kilominxSVG;\n }),\n};\n", "import { KPuzzle } from \"../../../kpuzzle\";\nimport { getCached } from \"../../async/lazy-cached\";\nimport type { PuzzleLoader } from \"../../PuzzleLoader\";\n\nexport const rediCube: PuzzleLoader = {\n id: \"redi_cube\",\n fullName: \"Redi Cube\",\n // Announced 2009-07-21: https://www.youtube.com/watch?v=cjfMzA1u3vM\n // https://twistypuzzles.com/cgi-bin/puzzle.cgi?pkey=1520\n inventedBy: [\"Oskar van Deventer\"],\n inventionYear: 2009,\n kpuzzle: getCached(\n async () =>\n new KPuzzle(\n (\n await import(\"../dynamic/unofficial/puzzles-dynamic-unofficial\")\n ).rediCubeJSON,\n ),\n ),\n svg: async () => {\n return (await import(\"../dynamic/unofficial/puzzles-dynamic-unofficial\"))\n .rediCubeSVG;\n },\n};\n", "import { CubePGPuzzleLoader } from \"../../async/async-pg3d\";\nimport { getCached } from \"../../async/lazy-cached\";\nimport type { PuzzleLoader } from \"../../PuzzleLoader\";\n\nconst cube4x4x4: PuzzleLoader = new CubePGPuzzleLoader({\n id: \"4x4x4\",\n fullName: \"4\u00D74\u00D74 Cube\",\n});\n\ncube4x4x4.llSVG = getCached(async () => {\n return (await import(\"../dynamic/4x4x4/puzzles-dynamic-4x4x4\"))\n .cube4x4x4LLSVG;\n});\n\nexport { cube4x4x4 };\n", "export { eventInfo, wcaEventInfo } from \"./events\";\nexport type { PuzzleLoader };\nexport { cube2x2x2, cube3x3x3 };\n\nimport { CubePGPuzzleLoader, PGPuzzleLoader } from \"./async/async-pg3d\";\nimport { cube2x2x2 } from \"./implementations/2x2x2\";\nimport { cube3x3x3 } from \"./implementations/3x3x3\";\nimport { clock } from \"./implementations/clock\";\nimport { fto } from \"./implementations/fto\";\nimport { megaminx } from \"./implementations/megaminx\";\nimport { pyraminx } from \"./implementations/pyraminx\";\nimport { square1 } from \"./implementations/square1\";\nimport { kilominx } from \"./implementations/kilominx\";\nimport type { PuzzleLoader } from \"./PuzzleLoader\";\nimport { rediCube } from \"./implementations/redi-cube\";\nimport { cube4x4x4 } from \"./implementations/4x4x4\";\n\n/** @category All Puzzles */\nexport const puzzles: Record<string, PuzzleLoader> = {\n /******** Start of WCA Puzzles *******/\n \"3x3x3\": cube3x3x3,\n \"2x2x2\": cube2x2x2,\n \"4x4x4\": cube4x4x4,\n \"5x5x5\": new CubePGPuzzleLoader({ id: \"5x5x5\", fullName: \"5\u00D75\u00D75 Cube\" }),\n \"6x6x6\": new CubePGPuzzleLoader({ id: \"6x6x6\", fullName: \"6\u00D76\u00D76 Cube\" }),\n \"7x7x7\": new CubePGPuzzleLoader({ id: \"7x7x7\", fullName: \"7\u00D77\u00D77 Cube\" }),\n \"40x40x40\": new CubePGPuzzleLoader({\n id: \"40x40x40\",\n fullName: \"40\u00D740\u00D740 Cube\",\n }),\n // 3x3x3 Blindfolded\n // 3x3x3 Fewest Moves\n // 3x3x3 One-Handed\n clock,\n \"megaminx\": megaminx,\n pyraminx,\n \"skewb\": new PGPuzzleLoader({\n id: \"skewb\",\n fullName: \"Skewb\",\n inventedBy: [\"Tony Durham\"], // https://www.jaapsch.net/puzzles/skewb.htm\n // inventionYear: 1982, // 1982 is actually the year of Hofstadter's column.\n }),\n square1,\n // 4x4x4 Blindfolded\n // 5x5x5 Blindfolded\n /******** End of WCA puzzles ********/\n \"fto\": fto,\n \"gigaminx\": new PGPuzzleLoader({\n id: \"gigaminx\",\n fullName: \"Gigaminx\",\n inventedBy: [\"Tyler Fox\"],\n inventionYear: 2006, // Earliest date from https://www.twistypuzzles.com/cgi-bin/puzzle.cgi?pkey=1475\n }),\n \"master_tetraminx\": new PGPuzzleLoader({\n pgID: \"master tetraminx\",\n id: \"master_tetraminx\",\n fullName: \"Master Tetraminx\",\n inventedBy: [\"Katsuhiko Okamoto\"], // Using master pyraminx: https://twistypuzzles.com/cgi-bin/puzzle.cgi?pkey=1352\n inventionYear: 2002, // Using master pyraminx: https://twistypuzzles.com/cgi-bin/puzzle.cgi?pkey=1352\n }),\n kilominx,\n \"redi_cube\": rediCube,\n};\n"],
5
+ "mappings": ";;;;;;;;;;;AAOA,IAAM,YAAuC;AAAA,EAC3C,OAAO,EAAE,UAAU,SAAS,WAAW,aAAa;AAAA,EACpD,OAAO,EAAE,UAAU,SAAS,WAAW,aAAa;AAAA,EACpD,OAAO,EAAE,UAAU,SAAS,WAAW,aAAa;AAAA,EACpD,OAAO,EAAE,UAAU,SAAS,WAAW,aAAa;AAAA,EACpD,OAAO,EAAE,UAAU,SAAS,WAAW,aAAa;AAAA,EACpD,OAAO,EAAE,UAAU,SAAS,WAAW,aAAa;AAAA,EACpD,SAAS,EAAE,UAAU,SAAS,WAAW,oBAAoB;AAAA,EAC7D,SAAS,EAAE,UAAU,SAAS,WAAW,qBAAqB;AAAA,EAC9D,SAAS,EAAE,UAAU,SAAS,WAAW,mBAAmB;AAAA,EAC5D,SAAS,EAAE,UAAU,SAAS,WAAW,QAAQ;AAAA,EACjD,QAAQ,EAAE,UAAU,YAAY,WAAW,WAAW;AAAA,EACtD,SAAS,EAAE,UAAU,YAAY,WAAW,WAAW;AAAA,EACvD,SAAS,EAAE,UAAU,SAAS,WAAW,QAAQ;AAAA,EACjD,OAAO,EAAE,UAAU,WAAW,WAAW,WAAW;AAAA,EACpD,SAAS,EAAE,UAAU,SAAS,WAAW,oBAAoB;AAAA,EAC7D,SAAS,EAAE,UAAU,SAAS,WAAW,oBAAoB;AAAA,EAC7D,SAAS,EAAE,UAAU,SAAS,WAAW,oBAAoB;AAC/D;AAGO,SAAS,aAAa,OAAiC;AAC5D,SAAO,UAAU,UAAU;AAC7B;AAEA,IAAM,SAAoC;AAAA,EACxC,GAAG;AAAA,EACH,KAAK,EAAE,UAAU,OAAO,WAAW,0BAA0B;AAAA,EAC7D,kBAAkB;AAAA,IAChB,UAAU;AAAA,IACV,WAAW;AAAA,EACb;AAAA,EACA,UAAU;AAAA,IACR,UAAU;AAAA,IACV,WAAW;AAAA,EACb;AAAA,EACA,WAAW;AAAA,IACT,UAAU;AAAA,IACV,WAAW;AAAA,EACb;AACF;AAGO,SAAS,UAAU,OAAiC;AACzD,SAAO,OAAO,UAAU;AAC1B;;;ACxCA,eAAsB,eACpB,cACA,YAC2B;AAC3B,QAAM,UAAU,MAAM,aAAa,QAAQ;AAC3C,QAAM,mBAAmB,IAAI,iBAAiB,OAAO;AACrD,QAAM,IAAI,IAAI,kBAAkB,OAAO;AAEvC,QAAM,KAAK,MAAgB,EAAE,KAAK,GAAG;AACrC,QAAM,OAAO,MAAgB,EAAE,GAAG,EAAE,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC;AACrD,QAAM,OAAO,MAAgB,EAAE,GAAG,EAAE,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC;AACrD,QAAM,IAAI,MAAgB,EAAE,IAAI,KAAK,CAAC;AAEtC,QAAM,MAAM,MAAgB,EAAE,IAAI,GAAG,CAAC;AAEtC,QAAM,UAAU,MAAgB,EAAE,YAAY,QAAQ;AACtD,QAAM,QAAQ,MAAgB,EAAE,YAAY,MAAM;AAClD,QAAM,UAAU,MAAgB,EAAE,GAAG,CAAC,EAAE,YAAY,QAAQ,GAAG,EAAE,YAAY,QAAQ,GAAG,EAAE,YAAY,QAAQ,CAAC,CAAC;AAEhH,QAAM,MAAM,MAAgB,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;AAC9D,QAAM,WAAW,MAAgB,EAAE,IAAI,CAAC,GAAG,GAAG,QAAQ,CAAC,CAAC;AAExD,QAAM,SAAS,MAAgB,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC;AAC1E,QAAM,YAAY,MAChB,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,QAAQ,GAAG,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAC5D,QAAM,SAAS,MAAgB,EAAE,GAAG,CAAC,UAAU,GAAG,OAAO,CAAC,CAAC;AAE3D,WAAS,SAAe;AACtB,qBAAiB,IAAI,IAAI,kBAAsB;AAAA,EACjD;AAEA,WAAS,SAAe;AACtB,qBAAiB,IAAI,GAAG,8CAAoC;AAC5D,qBAAiB,IAAI,SAAS,kBAAsB;AAAA,EACtD;AAEA,WAAS,SAAe;AACtB,qBAAiB,IAAI,GAAG,4CAAmC;AAC3D,qBAAiB,IAAI,SAAS,0BAA0B;AAAA,EAC1D;AAEA,WAAS,SAAe;AACtB,qBAAiB,IAAI,GAAG,kCAA8B;AACtD,qBAAiB,IAAI,SAAS,kBAAsB;AAAA,EACtD;AAEA,UAAQ;AAAA,SACD;AACH;AAAA,SACG;AACH,aAAO;AACP,aAAO;AACP;AAAA,SACG;AACH,aAAO;AACP,uBAAiB,IAAI,UAAU,0BAA0B;AACzD,uBAAiB,IAAI,GAAG,kCAA8B;AACtD,uBAAiB,IAAI,EAAE,IAAI,CAAC,GAAG,GAAG,QAAQ,CAAC,CAAC,kBAAsB;AAClE,uBAAiB;AAAA,QACf,EAAE,IAAI,CAAC,GAAG,GAAG,QAAQ,CAAC,CAAC;AAAA;AAAA,MAEzB;AACA;AAAA,SACG;AACH,aAAO;AACP,aAAO;AACP;AAAA,SACG;AACH,aAAO;AACP,uBAAiB,IAAI,EAAE,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,CAAC,kCAA8B;AACxE,uBAAiB,IAAI,EAAE,IAAI,CAAC,GAAG,GAAG,QAAQ,CAAC,CAAC,kBAAsB;AAClE,uBAAiB,IAAI,EAAE,IAAI,CAAC,GAAG,GAAG,QAAQ,CAAC,CAAC,0BAA0B;AACtE;AAAA,SACG;AACH,aAAO;AACP,aAAO;AACP,uBAAiB;AAAA,QACf,EAAE,IAAI,CAAC,GAAG,GAAG,QAAQ,CAAC,CAAC;AAAA;AAAA,MAEzB;AACA;AAAA,SACG;AACH,aAAO;AACP,uBAAiB;AAAA,QACf,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC,CAAC,CAAC;AAAA;AAAA,MAEhC;AACA;AAAA,SACG;AACH,aAAO;AACP,uBAAiB,IAAI,GAAG,kBAAsB;AAC9C,uBAAiB,IAAI,EAAE,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,CAAC,0BAA0B;AACpE;AAAA,SACG;AACH,aAAO;AACP,aAAO;AACP,uBAAiB,IAAI,EAAE,IAAI,CAAC,GAAG,GAAG,QAAQ,CAAC,CAAC,0BAA0B;AACtE,uBAAiB,IAAI,OAAO,0BAA0B;AACtD,uBAAiB,IAAI,UAAU,0BAA0B;AACzD;AAAA,SACG;AACH,aAAO;AACP;AAAA,SACG;AACH,uBAAiB,IAAI,GAAG,0BAA0B;AAClD;AAAA,SACG;AACH,aAAO;AACP,uBAAiB,IAAI,GAAG,8CAAoC;AAC5D,uBAAiB,IAAI,SAAS,kBAAsB;AACpD,uBAAiB,IAAI,EAAE,IAAI,CAAC,GAAG,GAAG,QAAQ,CAAC,CAAC,0BAA0B;AACtE;AAAA,SACG;AACH,aAAO;AACP,uBAAiB,IAAI,OAAO,0BAA0B;AACtD,aAAO;AACP,uBAAiB,IAAI,EAAE,IAAI,CAAC,GAAG,GAAG,QAAQ,CAAC,CAAC,0BAA0B;AACtE;AAAA,SACG;AACH,aAAO;AACP,uBAAiB,IAAI,OAAO,0BAA0B;AACtD,aAAO;AACP;AAAA,SACG;AACH,aAAO;AACP,uBAAiB,IAAI,OAAO,0BAA0B;AACtD,uBAAiB,IAAI,EAAE,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,CAAC,kCAA8B;AACxE,uBAAiB,IAAI,EAAE,IAAI,CAAC,GAAG,GAAG,QAAQ,CAAC,CAAC,kBAAsB;AAClE,uBAAiB;AAAA,QACf,EAAE,IAAI,CAAC,GAAG,GAAG,QAAQ,CAAC,CAAC;AAAA;AAAA,MAEzB;AACA;AAAA,SACG;AACH,aAAO;AACP,uBAAiB,IAAI,OAAO,0BAA0B;AACtD,uBAAiB,IAAI,GAAG,0BAA0B;AAClD,uBAAiB,IAAI,SAAS,kBAAsB;AACpD;AAAA,SACG;AACH,uBAAiB,IAAI,QAAQ,0BAA0B;AACvD,uBAAiB;AAAA,QACf,MAAM;AAAA;AAAA,MAER;AACA;AAAA,SACG;AACH,uBAAiB,IAAI,QAAQ,0BAA0B;AACvD,uBAAiB;AAAA,QACf,MAAM;AAAA;AAAA,MAER;AACA,uBAAiB,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,0BAA0B;AACxE;AAAA,SACG;AACH,uBAAiB;AAAA,QACf,MAAM;AAAA;AAAA,MAER;AACA,uBAAiB,IAAI,EAAE,KAAK,GAAG,0BAA0B;AACzD,uBAAiB,IAAI,QAAQ,0BAA0B;AACvD;AAAA,SACG;AACH,uBAAiB,IAAI,IAAI,kBAAsB;AAC/C,uBAAiB,IAAI,IAAI,0BAA0B;AACnD,uBAAiB,IAAI,EAAE,IAAI,CAAC,GAAG,GAAG,QAAQ,CAAC,CAAC,0BAA0B;AACtE;AAAA,SACG;AACH,uBAAiB,IAAI,EAAE,IAAI,IAAI,CAAC,kBAAsB;AACtD,uBAAiB,IAAI,EAAE,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC,CAAC,0BAA0B;AACtE;AAAA,SACG;AACH,uBAAiB,IAAI,EAAE,IAAI,IAAI,CAAC,kBAAsB;AACtD;AAAA,SACG;AACH,uBAAiB,IAAI,EAAE,IAAI,IAAI,CAAC,kBAAsB;AACtD,uBAAiB;AAAA,QACf,IAAI;AAAA;AAAA,MAEN;AACA,uBAAiB;AAAA,QACf,EAAE,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,CAAC;AAAA;AAAA,MAE3B;AACA;AAAA,SACG;AACH,uBAAiB,IAAI,EAAE,IAAI,0BAA0B;AACrD,uBAAiB,IAAI,QAAQ,kBAAsB;AACnD,uBAAiB;AAAA,QACf,EAAE,IAAI,CAAC,EAAE,KAAK,GAAG,GAAG,QAAQ,CAAC,CAAC;AAAA;AAAA,MAEhC;AACA,uBAAiB;AAAA,QACf,EAAE,IAAI,CAAC,EAAE,KAAK,GAAG,GAAG,MAAM,CAAC,CAAC;AAAA;AAAA,MAE9B;AACA;AAAA,SACG;AACH,uBAAiB,IAAI,EAAE,IAAI,0BAA0B;AACrD,uBAAiB,IAAI,QAAQ,kBAAsB;AACnD,uBAAiB;AAAA,QACf,EAAE,IAAI,CAAC,EAAE,KAAK,GAAG,GAAG,QAAQ,CAAC,CAAC;AAAA;AAAA,MAEhC;AACA,uBAAiB;AAAA,QACf,EAAE,IAAI,CAAC,EAAE,KAAK,GAAG,GAAG,MAAM,CAAC,CAAC;AAAA;AAAA,MAE9B;AACA;AAAA,SACG;AACH,uBAAiB;AAAA,QACf,EAAE,GAAG,EAAE,MAAM,CAAC,KAAK,KAAK,GAAG,CAAC,CAAC;AAAA;AAAA,MAE/B;AACA,uBAAiB;AAAA,QACf,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,KAAK,KAAK,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC;AAAA;AAAA,MAEnD;AACA;AAAA,SACG;AACH,uBAAiB,IAAI,EAAE,IAAI,kBAAsB;AACjD,uBAAiB;AAAA,QACf,EAAE,GAAG,EAAE,MAAM,CAAC,KAAK,KAAK,GAAG,CAAC,CAAC;AAAA;AAAA,MAE/B;AACA,uBAAiB;AAAA,QACf,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,KAAK,KAAK,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC;AAAA;AAAA,MAEnD;AACA,uBAAiB;AAAA,QACf,EAAE,IAAI,CAAC,EAAE,KAAK,GAAG,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAAA;AAAA,MAEvD;AACA;AAAA,SACG;AACH,uBAAiB,IAAI,QAAQ,8BAA4B;AACzD;AAAA,SACG;AAAA,SAEA;AACH,uBAAiB,IAAI,EAAE,IAAI,8BAA4B;AACvD;AAAA,SACG;AACH,uBAAiB,IAAI,EAAE,IAAI,QAAQ,CAAC,0BAA0B;AAC9D;AAAA;AAEA,cAAQ;AAAA,QACN,8BAA8B,aAAa,OAAO;AAAA,MACpD;AACA,uBAAiB,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,kBAAsB;AAAA;AAEhE,SAAO,iBAAiB,aAAa;AACvC;AAEA,eAAsB,kBAAqD;AACzE,QAAM,cAAwC,CAAC;AAC/C,aAAW,CAAC,MAAM,IAAI,KAAK,OAAO,QAAQ,uBAAuB,GAAG;AAClE,QAAI,KAAK,UAAU,WAAW,KAAK,QAAQ;AACzC,kBAAY,KAAK,IAAI;AAAA,IACvB;AAAA,EACF;AACA,SAAO;AACT;;;AClRO,SAAS,UAAa,UAA8C;AACzE,MAAI,gBAAmC;AACvC,SAAO,MAAkB;AACvB,WAAQ,kCAAkB,SAAS;AAAA,EACrC;AACF;;;ACOA,eAAsB,uBACpB,YACyB;AACzB,QAAM,iBAAiB,MAAM,OAAO;AACpC,SAAO,eAAe,wBAAwB,YAAY;AAAA,IACxD,UAAU;AAAA,IACV,eAAe;AAAA,IACf,cAAc;AAAA,EAChB,CAAC;AACH;AAKA,eAAsB,gBACpB,WACA,YACkB;AAClB,QAAM,KAAK,MAAM;AACjB,QAAM,oBAAuC,GAAG,qBAAqB,IAAI;AACzE,oBAAkB,OAAO;AACzB,QAAM,iBAAiB,MAAM,OAAO;AACpC,QAAM,aAAa,IAAI,eAAe;AAAA,IACpC;AAAA,IACA,GAAG,aAAa,IAAI;AAAA,EACtB;AACA,SAAO,IAAI,QAAQ,mBAAmB;AAAA,IACpC,wBAAwB;AAAA,EAC1B,CAAC;AACH;AAiBO,IAAM,iBAAN,MAA6C;AAAA,EAMlD,YAAY,MAAmC;AAC7C,SAAK,OAAO,KAAK;AACjB,SAAK,KAAK,KAAK;AACf,SAAK,WAAW,KAAK;AACrB,SAAK,aAAa,KAAK;AACvB,SAAK,gBAAgB,KAAK;AAAA,EAC5B;AAAA,EAEA;AAAA,EACA,KAA8B;AAC5B,WAAQ,oCAAmB,uBAAuB,KAAK,QAAQ,KAAK,EAAE;AAAA,EACxE;AAAA,EAEA;AAAA,EACA,UAA4B;AAC1B,WAAQ,8CAAwB,gBAAgB,KAAK,GAAG,GAAG,KAAK,EAAE;AAAA,EACpE;AAAA,EAEA;AAAA,EACA,MAAuB;AACrB,WAAQ,uCAAqB,aAC1B,MAAM,KAAK,GAAG,GAAG,YAAY,GAAG;AAAA,EACrC;AACF;AAEO,IAAM,qBAAN,cAAiC,eAAe;AAAA,EAAhD;AAAA;AAIL,uBAAc;AAAA;AAAA,EAHd,WAAW,YAA+D;AACxE,WAAO,eAAe,MAAM,UAAU;AAAA,EACxC;AAEF;;;AClFO,IAAM,YAA0B;AAAA,EACrC,IAAI;AAAA,EACJ,UAAU;AAAA,EACV,SAAS;AAAA,IACP,YACE,IAAI;AAAA,OAEA,MAAM,OAAO,8CACb;AAAA,IACJ;AAAA,EACJ;AAAA,EACA,KAAK,YAAY;AACf,YAAQ,MAAM,OAAO,8CAClB;AAAA,EACL;AAAA,EACA,IAAI,UAAU,YAAY;AACxB,WAAO,uBAAuB,OAAO;AAAA,EACvC,CAAC;AAAA,EACD,YAAY,CAAC,eACX,eAAe,WAAW,UAAU;AAAA,EACtC,aAAa;AACf;;;ACpBO,IAAM,YAA0B;AAAA,EACrC,IAAI;AAAA,EACJ,UAAU;AAAA,EACV,YAAY,CAAC,iBAAY;AAAA,EACzB,eAAe;AAAA,EACf,SAAS,UAAU,YAAY;AAC7B,WAAO;AAAA,EACT,CAAC;AAAA,EACD,KAAK,UAAU,YAAY;AACzB,YAAQ,MAAM,OAAO,wCAClB;AAAA,EACL,CAAC;AAAA,EACD,OAAO,UAAU,YAAY;AAC3B,YAAQ,MAAM,OAAO,wCAClB;AAAA,EACL,CAAC;AAAA,EACD,IAAI,UAAU,YAAY;AACxB,WAAO,uBAAuB,OAAO;AAAA,EACvC,CAAC;AAAA,EACD,YAAY,CAAC,eACX,eAAe,WAAW,UAAU;AAAA,EACtC,aAAa;AACf;;;AC/BO,IAAM,QAAsB;AAAA,EACjC,IAAI;AAAA,EACJ,UAAU;AAAA,EACV,YAAY,CAAC,wBAAwB,uBAAuB;AAAA,EAC5D,eAAe;AAAA,EACf,SAAS;AAAA,IACP,YACE,IAAI;AAAA,OAEA,MAAM,OAAO,8CACb;AAAA,IACJ;AAAA,EACJ;AAAA,EACA,KAAK,UAAU,YAAY;AACzB,YAAQ,MAAM,OAAO,8CAClB;AAAA,EACL,CAAC;AACH;;;ACXA,eAAsB,cACpB,cACA,YAC2B;AAC3B,QAAM,UAAU,MAAM,aAAa,QAAQ;AAC3C,QAAM,mBAAmB,IAAI,iBAAiB,OAAO;AACrD,QAAM,IAAI,IAAI,kBAAkB,OAAO;AAEvC,QAAM,qBAAqB,MACzB,EAAE,IAAI,CAAC,EAAE,KAAK,GAAG,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,CAAC,KAAK,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9D,QAAM,sBAAsB,MAC1B,EAAE,IAAI,CAAC,EAAE,KAAK,GAAG,GAAG,EAAE,IAAI,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;AACzC,QAAM,qBAAqB,MACzB,EAAE,GAAG;AAAA,IACH,oBAAoB;AAAA,IACpB,EAAE,IAAI,CAAC,EAAE,KAAK,GAAG,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,CAAC,KAAK,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AAAA,EAC9D,CAAC;AACH,QAAM,sBAAsB,MAC1B,EAAE;AAAA,IACA,EAAE,GAAG;AAAA,MACH,EAAE,IAAI,CAAC,EAAE,KAAK,GAAG,GAAG,EAAE,KAAK,GAAG,CAAC,CAAC;AAAA,MAChC,EAAE,IAAI,CAAC,EAAE,KAAK,GAAG,GAAG,EAAE,KAAK,IAAI,CAAC,CAAC;AAAA,MACjC,EAAE,IAAI,CAAC,EAAE,KAAK,GAAG,GAAG,EAAE,KAAK,IAAI,CAAC,CAAC;AAAA,MACjC,EAAE,IAAI,CAAC,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,CAAC,CAAC;AAAA,IACpC,CAAC;AAAA,EACH;AACF,QAAM,sBAAsB,MAC1B,EAAE;AAAA,IACA,EAAE,GAAG;AAAA,MACH,EAAE,IAAI,CAAC,EAAE,KAAK,GAAG,GAAG,EAAE,KAAK,IAAI,CAAC,CAAC;AAAA,MACjC,EAAE,IAAI,CAAC,EAAE,KAAK,GAAG,GAAG,EAAE,KAAK,IAAI,CAAC,CAAC;AAAA,MACjC,EAAE,IAAI,CAAC,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,CAAC,CAAC;AAAA,IACpC,CAAC;AAAA,EACH;AAEF,UAAQ;AAAA,SACD;AACH;AAAA,SACG;AACH,uBAAiB;AAAA,QACf,EAAE,IAAI,mBAAmB,CAAC;AAAA;AAAA,MAE5B;AACA;AAAA,SACG;AACH,uBAAiB;AAAA,QACf,EAAE,IAAI,oBAAoB,CAAC;AAAA;AAAA,MAE7B;AACA,uBAAiB,IAAI,mBAAmB,kBAAsB;AAC9D;AAAA,SACG;AACH,uBAAiB;AAAA,QACf,EAAE,IAAI,mBAAmB,CAAC;AAAA;AAAA,MAE5B;AACA,uBAAiB,IAAI,oBAAoB,kBAAsB;AAC/D;AAAA,SACG;AACH,uBAAiB;AAAA,QACf,EAAE,IAAI,oBAAoB,CAAC;AAAA;AAAA,MAE7B;AACA,uBAAiB,IAAI,mBAAmB,kBAAsB;AAC9D;AAAA,SACG;AACH,uBAAiB;AAAA,QACf,EAAE,IAAI,oBAAoB,CAAC;AAAA;AAAA,MAE7B;AACA,uBAAiB,IAAI,oBAAoB,kBAAsB;AAC/D;AAAA,SACG;AACH,uBAAiB,IAAI,oBAAoB,kBAAsB;AAC/D;AAAA;AAEA,cAAQ;AAAA,QACN,8BAA8B,aAAa,OAAO;AAAA,MACpD;AACA,uBAAiB,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,kBAAsB;AAAA;AAEhE,SAAO,iBAAiB,aAAa;AACvC;AAEA,eAAsB,iBAAoD;AACxE,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;;;AC/FA,IAAM,kBAAN,cAA8B,eAAe;AAAA,EAC3C,cAAc;AACZ,UAAM;AAAA,MACJ,MAAM;AAAA,MACN,IAAI;AAAA,MACJ,UAAU;AAAA,MACV,YAAY,CAAC,iBAAiB,eAAe;AAAA,MAC7C,eAAe;AAAA,IACjB,CAAC;AAKH,uBAAc;AACd,eAAM,UAAU,YAAY;AAC1B,cAAQ,MAAM,OAAO,6CAClB;AAAA,IACL,CAAC;AAAA,EARD;AAAA,EACA,WAAW,YAA+D;AACxE,WAAO,cAAc,MAAM,UAAU;AAAA,EACvC;AAMF;AAEO,IAAM,MAAM,IAAI,gBAAgB;;;ACvBvC,eAAsB,mBACpB,cACA,YAC2B;AAC3B,UAAQ;AAAA,SACD;AAAA,SACA;AAAA,SACA;AAAA,SACA;AAAA,SACA;AAAA,SACA;AAAA,SACA;AACH,aAAO,eAAe,cAAc,UAAU;AAAA;AAE9C,cAAQ;AAAA,QACN,8BAA8B,aAAa,OAAO;AAAA,MACpD;AAAA;AAEJ,SAAO,eAAe,cAAc,MAAM;AAC5C;AAEA,eAAsB,sBAAyD;AAC7E,SAAO,CAAC,QAAQ,OAAO,MAAM,OAAO,OAAO,OAAO,KAAK;AACzD;;;ACrBA,IAAM,uBAAN,cAAmC,eAAe;AAAA,EAChD,cAAc;AACZ,UAAM;AAAA,MACJ,IAAI;AAAA,MACJ,UAAU;AAAA,MAEV,eAAe;AAAA,IACjB,CAAC;AAKH,uBAAc;AAAA,EAJd;AAAA,EACA,WAAW,YAA+D;AACxE,WAAO,mBAAmB,MAAM,UAAU;AAAA,EAC5C;AAEF;AAEO,IAAM,WAAW,IAAI,qBAAqB;;;ACpBjD,IAAM,uBAAN,cAAmC,eAAe;AAAA,EAChD,cAAc;AACZ,UAAM;AAAA,MACJ,IAAI;AAAA,MACJ,UAAU;AAAA,MACV,YAAY,CAAC,aAAa;AAAA,IAC5B,CAAC;AAEH,eAAM,UAAU,YAAY;AAC1B,cAAQ,MAAM,OAAO,8CAClB;AAAA,IACL,CAAC;AAAA,EAJD;AAKF;AAEO,IAAM,WAAW,IAAI,qBAAqB;;;ACb1C,IAAM,UAAwB;AAAA,EACnC,IAAI;AAAA,EACJ,UAAU;AAAA,EACV,YAAY,CAAC,oBAAe,mBAAgB;AAAA,EAC5C,eAAe;AAAA,EACf,SAAS;AAAA,IACP,YACE,IAAI;AAAA,OAEA,MAAM,OAAO,8CACb;AAAA,IACJ;AAAA,EACJ;AAAA,EACA,KAAK,UAAU,YAAY;AACzB,YAAQ,MAAM,OAAO,8CAClB;AAAA,EACL,CAAC;AACH;;;ACbO,IAAM,WAAyB;AAAA,EACpC,IAAI;AAAA,EACJ,UAAU;AAAA,EACV,SAAS,UAAU,YAAY;AAC7B,UAAM,KAAK,MAAM,uBAAuB,wBAAwB;AAChE,UAAM,oBAAoB,KAAK;AAAA,MAC7B,KAAK,UAAU,GAAG,qBAAqB,IAAI,CAAC;AAAA,IAC9C;AACA,WAAO,kBAAkB,OAAO;AAChC,WAAO,kBAAkB,OAAO;AAChC,WAAO,kBAAkB,eAAe;AACxC,WAAO,kBAAkB,eAAe;AACxC,eAAW,kBAAkB,OAAO,OAAO,kBAAkB,KAAK,GAAG;AACnE,aAAQ,eAAuB;AAC/B,aAAQ,eAAuB;AAAA,IACjC;AACA,sBAAkB,OAAO;AACzB,WAAO,kBAAkB;AACzB,UAAM,iBAAiB,MAAM,OAAO;AACpC,UAAM,aAAa,IAAI,eAAe;AAAA,MACpC;AAAA,MACA,GAAG,aAAa,IAAI;AAAA,IACtB;AACA,UAAM,UAAU,IAAI,QAAQ,mBAAmB;AAAA,MAC7C,wBAAwB;AAAA,QACtB,YAAY,CAAC,SAA2C;AACtD,cAAI,KAAK,SAAS,MAAM,QAAQ,KAAK,SAAS,MAAM,OAAO;AACzD,mBAAO,iBAAiB;AAAA,UAC1B;AACA,iBAAO,WAAW,WAAW,IAAI;AAAA,QACnC;AAAA,MACF;AAAA,IACF,CAAC;AACD,UAAM,mBAAmB,QAAQ,oBAAoB,YAAY;AACjE,sBAAkB,MAAM,QAAQ;AAChC,WAAO;AAAA,EACT,CAAC;AAAA,EACD,KAAK,UAAU,YAAY;AACzB,YAAQ,MAAM,OAAO,6CAClB;AAAA,EACL,CAAC;AACH;;;AC7CO,IAAM,WAAyB;AAAA,EACpC,IAAI;AAAA,EACJ,UAAU;AAAA,EAGV,YAAY,CAAC,oBAAoB;AAAA,EACjC,eAAe;AAAA,EACf,SAAS;AAAA,IACP,YACE,IAAI;AAAA,OAEA,MAAM,OAAO,6CACb;AAAA,IACJ;AAAA,EACJ;AAAA,EACA,KAAK,YAAY;AACf,YAAQ,MAAM,OAAO,6CAClB;AAAA,EACL;AACF;;;ACnBA,IAAM,YAA0B,IAAI,mBAAmB;AAAA,EACrD,IAAI;AAAA,EACJ,UAAU;AACZ,CAAC;AAED,UAAU,QAAQ,UAAU,YAAY;AACtC,UAAQ,MAAM,OAAO,wCAClB;AACL,CAAC;;;ACMM,IAAM,UAAwC;AAAA,EAEnD,SAAS;AAAA,EACT,SAAS;AAAA,EACT,SAAS;AAAA,EACT,SAAS,IAAI,mBAAmB,EAAE,IAAI,SAAS,UAAU,mBAAa,CAAC;AAAA,EACvE,SAAS,IAAI,mBAAmB,EAAE,IAAI,SAAS,UAAU,mBAAa,CAAC;AAAA,EACvE,SAAS,IAAI,mBAAmB,EAAE,IAAI,SAAS,UAAU,mBAAa,CAAC;AAAA,EACvE,YAAY,IAAI,mBAAmB;AAAA,IACjC,IAAI;AAAA,IACJ,UAAU;AAAA,EACZ,CAAC;AAAA,EAID;AAAA,EACA,YAAY;AAAA,EACZ;AAAA,EACA,SAAS,IAAI,eAAe;AAAA,IAC1B,IAAI;AAAA,IACJ,UAAU;AAAA,IACV,YAAY,CAAC,aAAa;AAAA,EAE5B,CAAC;AAAA,EACD;AAAA,EAIA,OAAO;AAAA,EACP,YAAY,IAAI,eAAe;AAAA,IAC7B,IAAI;AAAA,IACJ,UAAU;AAAA,IACV,YAAY,CAAC,WAAW;AAAA,IACxB,eAAe;AAAA,EACjB,CAAC;AAAA,EACD,oBAAoB,IAAI,eAAe;AAAA,IACrC,MAAM;AAAA,IACN,IAAI;AAAA,IACJ,UAAU;AAAA,IACV,YAAY,CAAC,mBAAmB;AAAA,IAChC,eAAe;AAAA,EACjB,CAAC;AAAA,EACD;AAAA,EACA,aAAa;AACf;",
6
+ "names": []
7
+ }