cubing 0.48.1 → 0.48.3

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 (90) hide show
  1. package/alg/index.d.ts +1 -1
  2. package/bluetooth/index.d.ts +1 -1
  3. package/dist/lib/cubing/{Alg.d-Qi_gM3ue.d.ts → Alg.d-T-vs-GDG.d.ts} +17 -17
  4. package/dist/lib/cubing/{KPattern.d-1RSDwKrh.d.ts → KPattern.d-eWxoJtl0.d.ts} +1 -1
  5. package/dist/lib/cubing/{TwizzleLink.d-97ef04xr.d.ts → TwizzleLink.d-S18moNia.d.ts} +5 -5
  6. package/dist/lib/cubing/alg/index.d.ts +3 -3
  7. package/dist/lib/cubing/alg/index.js +1 -1
  8. package/dist/lib/cubing/bluetooth/index.d.ts +4 -4
  9. package/dist/lib/cubing/bluetooth/index.js +7 -6
  10. package/dist/lib/cubing/bluetooth/index.js.map +2 -2
  11. package/dist/lib/cubing/{bluetooth-puzzle.d-myIXFws0.d.ts → bluetooth-puzzle.d-NEYj0B8F.d.ts} +2 -2
  12. package/dist/lib/cubing/chunks/{chunk-JISTVUPJ.js → chunk-3V53MPRZ.js} +3 -3
  13. package/dist/lib/cubing/chunks/{chunk-JISTVUPJ.js.map → chunk-3V53MPRZ.js.map} +2 -2
  14. package/dist/lib/cubing/chunks/{chunk-S3SMCJ2Q.js → chunk-4MAJE4KF.js} +3 -3
  15. package/dist/lib/cubing/chunks/{chunk-S3SMCJ2Q.js.map → chunk-4MAJE4KF.js.map} +1 -1
  16. package/dist/lib/cubing/chunks/chunk-5KNIZ2YB.js +605 -0
  17. package/dist/lib/cubing/chunks/chunk-5KNIZ2YB.js.map +7 -0
  18. package/dist/lib/cubing/chunks/{chunk-U4JLWFNS.js → chunk-6OQS3O7Y.js} +43 -42
  19. package/dist/lib/cubing/chunks/chunk-6OQS3O7Y.js.map +7 -0
  20. package/dist/lib/cubing/chunks/{chunk-YB6VZREV.js → chunk-GEMIB7TF.js} +2 -2
  21. package/dist/lib/cubing/chunks/{chunk-YB6VZREV.js.map → chunk-GEMIB7TF.js.map} +1 -1
  22. package/dist/lib/cubing/chunks/{chunk-GQ6KD2XI.js → chunk-H5G52ETP.js} +1 -1
  23. package/dist/lib/cubing/chunks/chunk-H5G52ETP.js.map +7 -0
  24. package/dist/lib/cubing/chunks/{chunk-K7335MAG.js → chunk-I4WNYLYZ.js} +3 -3
  25. package/dist/lib/cubing/chunks/{chunk-M52K5JNF.js → chunk-OOFPCAGO.js} +4 -4
  26. package/dist/lib/cubing/chunks/{chunk-NEAVVKH5.js → chunk-PP44P6WK.js} +2 -2
  27. package/dist/lib/cubing/chunks/{chunk-GZV6D4HL.js → chunk-PX2L23L2.js} +40 -3
  28. package/dist/lib/cubing/chunks/chunk-PX2L23L2.js.map +7 -0
  29. package/dist/lib/cubing/chunks/{chunk-VL22SFND.js → chunk-RDSQRW3G.js} +1 -1
  30. package/dist/lib/cubing/chunks/chunk-RDSQRW3G.js.map +7 -0
  31. package/dist/lib/cubing/chunks/{chunk-U6FOYW3P.js → chunk-VQIVSUL2.js} +2 -2
  32. package/dist/lib/cubing/chunks/{chunk-6P7J74PX.js → inside-CH2IHSQT.js} +52 -615
  33. package/dist/lib/cubing/chunks/inside-CH2IHSQT.js.map +7 -0
  34. package/dist/lib/cubing/chunks/{search-dynamic-sgs-side-events-TV6HT26E.js → search-dynamic-sgs-side-events-EG3CKCS4.js} +6 -6
  35. package/dist/lib/cubing/chunks/{search-dynamic-sgs-unofficial-HAXSGKV7.js → search-dynamic-sgs-unofficial-XHAYSQO3.js} +6 -6
  36. package/dist/lib/cubing/chunks/{search-dynamic-solve-4x4x4-4HG4AFW2.js → search-dynamic-solve-4x4x4-IYN4OTDM.js} +8 -9
  37. package/dist/lib/cubing/chunks/{search-dynamic-solve-4x4x4-4HG4AFW2.js.map → search-dynamic-solve-4x4x4-IYN4OTDM.js.map} +1 -1
  38. package/dist/lib/cubing/chunks/{search-dynamic-solve-kilominx-F7OMJSDE.js → search-dynamic-solve-kilominx-BN4POKYF.js} +2 -2
  39. package/dist/lib/cubing/chunks/search-worker-entry.js +3 -3
  40. package/dist/lib/cubing/chunks/{twisty-dynamic-3d-A23ABL4R.js → twisty-dynamic-3d-2IJDXFSH.js} +6 -6
  41. package/dist/lib/cubing/chunks/twisty-dynamic-3d-2IJDXFSH.js.map +7 -0
  42. package/dist/lib/cubing/chunks/{twsearch-QLSDT3QA.js → twsearch-6KUSKPX2.js} +2 -2
  43. package/dist/lib/cubing/{index-WrxLz0RY.d.ts → index-t97giMqB.d.ts} +2 -2
  44. package/dist/lib/cubing/kpuzzle/index.d.ts +2 -2
  45. package/dist/lib/cubing/kpuzzle/index.js +2 -2
  46. package/dist/lib/cubing/notation/index.d.ts +4 -4
  47. package/dist/lib/cubing/notation/index.js +4 -4
  48. package/dist/lib/cubing/{parseAlg.d-LTqyeghV.d.ts → parseAlg.d-tIlAma60.d.ts} +1 -1
  49. package/dist/lib/cubing/protocol/index.d.ts +2 -2
  50. package/dist/lib/cubing/protocol/index.js +4 -4
  51. package/dist/lib/cubing/puzzle-geometry/index.d.ts +3 -3
  52. package/dist/lib/cubing/puzzle-geometry/index.js +3 -3
  53. package/dist/lib/cubing/puzzle-geometry/index.js.map +1 -1
  54. package/dist/lib/cubing/puzzles/index.d.ts +875 -4
  55. package/dist/lib/cubing/puzzles/index.js +4 -4
  56. package/dist/lib/cubing/scramble/index.d.ts +3 -3
  57. package/dist/lib/cubing/scramble/index.js +7 -8
  58. package/dist/lib/cubing/search/index.d.ts +3 -3
  59. package/dist/lib/cubing/search/index.js +7 -8
  60. package/dist/lib/cubing/stream/index.d.ts +3 -3
  61. package/dist/lib/cubing/stream/index.js +1 -1
  62. package/dist/lib/cubing/twisty/index.d.ts +5 -5
  63. package/dist/lib/cubing/twisty/index.js +10 -9
  64. package/dist/lib/cubing/twisty/index.js.map +2 -2
  65. package/kpuzzle/index.d.ts +1 -1
  66. package/notation/index.d.ts +1 -1
  67. package/package.json +15 -15
  68. package/protocol/index.d.ts +1 -1
  69. package/puzzle-geometry/index.d.ts +1 -1
  70. package/puzzles/index.d.ts +1 -1
  71. package/scramble/index.d.ts +1 -1
  72. package/search/index.d.ts +1 -1
  73. package/stream/index.d.ts +1 -1
  74. package/twisty/index.d.ts +1 -1
  75. package/dist/lib/cubing/chunks/chunk-6P7J74PX.js.map +0 -7
  76. package/dist/lib/cubing/chunks/chunk-GQ6KD2XI.js.map +0 -7
  77. package/dist/lib/cubing/chunks/chunk-GZV6D4HL.js.map +0 -7
  78. package/dist/lib/cubing/chunks/chunk-U4JLWFNS.js.map +0 -7
  79. package/dist/lib/cubing/chunks/chunk-VL22SFND.js.map +0 -7
  80. package/dist/lib/cubing/chunks/inside-EKCXLHV5.js +0 -16
  81. package/dist/lib/cubing/chunks/inside-EKCXLHV5.js.map +0 -7
  82. package/dist/lib/cubing/chunks/twisty-dynamic-3d-A23ABL4R.js.map +0 -7
  83. /package/dist/lib/cubing/chunks/{chunk-K7335MAG.js.map → chunk-I4WNYLYZ.js.map} +0 -0
  84. /package/dist/lib/cubing/chunks/{chunk-M52K5JNF.js.map → chunk-OOFPCAGO.js.map} +0 -0
  85. /package/dist/lib/cubing/chunks/{chunk-NEAVVKH5.js.map → chunk-PP44P6WK.js.map} +0 -0
  86. /package/dist/lib/cubing/chunks/{chunk-U6FOYW3P.js.map → chunk-VQIVSUL2.js.map} +0 -0
  87. /package/dist/lib/cubing/chunks/{search-dynamic-sgs-side-events-TV6HT26E.js.map → search-dynamic-sgs-side-events-EG3CKCS4.js.map} +0 -0
  88. /package/dist/lib/cubing/chunks/{search-dynamic-sgs-unofficial-HAXSGKV7.js.map → search-dynamic-sgs-unofficial-XHAYSQO3.js.map} +0 -0
  89. /package/dist/lib/cubing/chunks/{search-dynamic-solve-kilominx-F7OMJSDE.js.map → search-dynamic-solve-kilominx-BN4POKYF.js.map} +0 -0
  90. /package/dist/lib/cubing/chunks/{twsearch-QLSDT3QA.js.map → twsearch-6KUSKPX2.js.map} +0 -0
@@ -0,0 +1,605 @@
1
+ import {
2
+ puzzles
3
+ } from "./chunk-OOFPCAGO.js";
4
+ import {
5
+ from
6
+ } from "./chunk-6OQS3O7Y.js";
7
+ import {
8
+ KPattern
9
+ } from "./chunk-GEMIB7TF.js";
10
+ import {
11
+ Alg,
12
+ AlgBuilder,
13
+ Move
14
+ } from "./chunk-H5G52ETP.js";
15
+
16
+ // src/cubing/search/inside/solve/puzzles/3x3x3/index.ts
17
+ import { randomChoice as randomChoice2 } from "random-uint-below";
18
+
19
+ // src/cubing/search/inside/inside-worker.ts
20
+ var isInsideWorker = false;
21
+ function setIsInsideWorker(inside) {
22
+ isInsideWorker = inside;
23
+ }
24
+ function mustBeInsideWorker() {
25
+ if (!isInsideWorker) {
26
+ throw new Error(
27
+ "Must be called from inside a worker, to avoid impact on page performance. Try importing from the top level of `cubing/solve`?"
28
+ );
29
+ }
30
+ }
31
+
32
+ // src/cubing/search/inside/solve/addOrientationSuffix.ts
33
+ import { randomChoice } from "random-uint-below";
34
+ function addOrientationSuffix(alg, suffixSpec) {
35
+ const algBuilder = new AlgBuilder();
36
+ algBuilder.experimentalPushAlg(alg);
37
+ for (const suffix of suffixSpec) {
38
+ const choice = randomChoice(suffix);
39
+ if (choice !== null) {
40
+ algBuilder.push(Move.fromString(choice));
41
+ }
42
+ }
43
+ return algBuilder.toAlg();
44
+ }
45
+
46
+ // src/cubing/search/inside/solve/puzzles/dynamic/3x3x3/index.ts
47
+ var dynamic3x3x3min2phase = from(() => import("./search-dynamic-solve-3x3x3-QHRLSVAC.js"));
48
+
49
+ // src/cubing/search/inside/solve/puzzles/3x3x3/convert.ts
50
+ var reidEdgeOrder = "UF UR UB UL DF DR DB DL FR FL BR BL".split(" ");
51
+ var reidCornerOrder = "UFR URB UBL ULF DRF DFL DLB DBR".split(" ");
52
+ var centerOrder = "U L F R B D".split(" ");
53
+ var map = [
54
+ [1, 2, 0],
55
+ [0, 2, 0],
56
+ [1, 1, 0],
57
+ [0, 3, 0],
58
+ [2, 0, 0],
59
+ [0, 1, 0],
60
+ [1, 3, 0],
61
+ [0, 0, 0],
62
+ [1, 0, 0],
63
+ [1, 0, 2],
64
+ [0, 1, 1],
65
+ [1, 1, 1],
66
+ [0, 8, 1],
67
+ [2, 3, 0],
68
+ [0, 10, 1],
69
+ [1, 4, 1],
70
+ [0, 5, 1],
71
+ [1, 7, 2],
72
+ [1, 3, 2],
73
+ [0, 0, 1],
74
+ [1, 0, 1],
75
+ [0, 9, 0],
76
+ [2, 2, 0],
77
+ [0, 8, 0],
78
+ [1, 5, 1],
79
+ [0, 4, 1],
80
+ [1, 4, 2],
81
+ [1, 5, 0],
82
+ [0, 4, 0],
83
+ [1, 4, 0],
84
+ [0, 7, 0],
85
+ [2, 5, 0],
86
+ [0, 5, 0],
87
+ [1, 6, 0],
88
+ [0, 6, 0],
89
+ [1, 7, 0],
90
+ [1, 2, 2],
91
+ [0, 3, 1],
92
+ [1, 3, 1],
93
+ [0, 11, 1],
94
+ [2, 1, 0],
95
+ [0, 9, 1],
96
+ [1, 6, 1],
97
+ [0, 7, 1],
98
+ [1, 5, 2],
99
+ [1, 1, 2],
100
+ [0, 2, 1],
101
+ [1, 2, 1],
102
+ [0, 10, 0],
103
+ [2, 4, 0],
104
+ [0, 11, 0],
105
+ [1, 7, 1],
106
+ [0, 6, 1],
107
+ [1, 6, 2]
108
+ ];
109
+ function rotateLeft(s, i) {
110
+ return s.slice(i) + s.slice(0, i);
111
+ }
112
+ function toReid333Struct(pattern) {
113
+ const output = [[], []];
114
+ for (let i = 0; i < 6; i++) {
115
+ if (pattern.patternData["CENTERS"].pieces[i] !== i) {
116
+ throw new Error("non-oriented puzzles are not supported");
117
+ }
118
+ }
119
+ for (let i = 0; i < 12; i++) {
120
+ output[0].push(
121
+ rotateLeft(
122
+ reidEdgeOrder[pattern.patternData["EDGES"].pieces[i]],
123
+ pattern.patternData["EDGES"].orientation[i]
124
+ )
125
+ );
126
+ }
127
+ for (let i = 0; i < 8; i++) {
128
+ output[1].push(
129
+ rotateLeft(
130
+ reidCornerOrder[pattern.patternData["CORNERS"].pieces[i]],
131
+ pattern.patternData["CORNERS"].orientation[i]
132
+ )
133
+ );
134
+ }
135
+ output.push(centerOrder);
136
+ return output;
137
+ }
138
+ function toMin2PhasePattern(pattern) {
139
+ const reid = toReid333Struct(pattern);
140
+ return map.map(([orbit, perm, ori]) => reid[orbit][perm][ori]).join("");
141
+ }
142
+
143
+ // src/cubing/search/inside/solve/puzzles/3x3x3/filter.ts
144
+ function isEquivalentTranformationIgnoringCENTERS(t1, t2) {
145
+ const t1NoCenterOri = new KPattern(t1.kpuzzle, {
146
+ EDGES: t1.patternData.EDGES,
147
+ CORNERS: t1.patternData.CORNERS,
148
+ CENTERS: {
149
+ pieces: t1.patternData.CENTERS.pieces,
150
+ orientation: new Array(6).fill(0)
151
+ }
152
+ }).experimentalToTransformation();
153
+ const t2NoCenterOri = new KPattern(t2.kpuzzle, {
154
+ EDGES: t2.patternData.EDGES,
155
+ CORNERS: t2.patternData.CORNERS,
156
+ CENTERS: {
157
+ pieces: t2.patternData.CENTERS.pieces,
158
+ orientation: new Array(6).fill(0)
159
+ }
160
+ }).experimentalToTransformation();
161
+ return t1NoCenterOri.isIdentical(t2NoCenterOri);
162
+ }
163
+ function passesFilter(kpuzzle, pattern) {
164
+ if (isEquivalentTranformationIgnoringCENTERS(kpuzzle.defaultPattern(), pattern)) {
165
+ return false;
166
+ }
167
+ for (const face of "ULFRBD") {
168
+ for (let amount = 1; amount < 4; amount++) {
169
+ const transformation = kpuzzle.moveToTransformation(new Move(face, amount)).toKPattern();
170
+ if (isEquivalentTranformationIgnoringCENTERS(transformation, pattern)) {
171
+ return false;
172
+ }
173
+ }
174
+ }
175
+ return true;
176
+ }
177
+
178
+ // src/cubing/search/inside/solve/puzzles/3x3x3/legacy-sgs.ts
179
+ var sgs3x3x3 = [
180
+ [
181
+ "R U'",
182
+ "R2 B",
183
+ //
184
+ "D2 B2",
185
+ "D' L B'",
186
+ //
187
+ "R' U'",
188
+ "B",
189
+ //
190
+ "D B2",
191
+ "R' B",
192
+ //
193
+ "L' U",
194
+ "L2 B'",
195
+ //
196
+ "B2",
197
+ "D L B'",
198
+ //
199
+ "L U",
200
+ "B'",
201
+ //
202
+ "U'",
203
+ "R B",
204
+ //
205
+ "D' B2",
206
+ "L B'",
207
+ //
208
+ "U2",
209
+ "U L' B'",
210
+ //
211
+ "",
212
+ "U' L' B'",
213
+ //
214
+ "U",
215
+ "L' B'"
216
+ ],
217
+ [
218
+ "F2 L2",
219
+ "F' L'",
220
+ "R' F L2",
221
+ //
222
+ "D' L2",
223
+ "F L2",
224
+ "F2 L'",
225
+ //
226
+ "R' F' L'",
227
+ "R2 F L2",
228
+ "R2 F2 L'",
229
+ //
230
+ "L2",
231
+ "F L'",
232
+ "D' L",
233
+ //
234
+ "D2 L2",
235
+ "R2 F' L'",
236
+ "D L",
237
+ //
238
+ "",
239
+ "L2 F L'",
240
+ "L F' L2",
241
+ //
242
+ "L F L'",
243
+ "F' L2",
244
+ "L'",
245
+ //
246
+ "D L2",
247
+ "D F L'",
248
+ "L"
249
+ ],
250
+ [
251
+ "R B U2 B'",
252
+ "R2 B U' B'",
253
+ //
254
+ "F2 B U B'",
255
+ "F B2 L' B2",
256
+ //
257
+ "B2 L B2",
258
+ "B U' B'",
259
+ //
260
+ "R2 B U2 B'",
261
+ "R' B U' B'",
262
+ //
263
+ "B2 L' B2",
264
+ "F B U B'",
265
+ //
266
+ "B2 U' B2",
267
+ "B' L B",
268
+ //
269
+ "L F' B D' B'",
270
+ "B' U' B2 D B'",
271
+ //
272
+ "B U2 B'",
273
+ "R B U' B'",
274
+ //
275
+ "B2 L2 B2",
276
+ "D' B' L B",
277
+ //
278
+ "B U B'",
279
+ "F' B2 L' B2",
280
+ //
281
+ "",
282
+ "B2 L' B' U' B'"
283
+ ],
284
+ [
285
+ "U F2 L2 U'",
286
+ "F' U L' U'",
287
+ //
288
+ "F2 U L' U'",
289
+ "U F L2 U'",
290
+ //
291
+ "U2 B2 U2",
292
+ "R' U' B U",
293
+ //
294
+ "D2 U L U'",
295
+ "D U2 B' U2",
296
+ //
297
+ "U L2 U'",
298
+ "F U L' U'",
299
+ //
300
+ "D U L U'",
301
+ "U2 B' U2",
302
+ //
303
+ "",
304
+ "U2 B' U' L' U'",
305
+ //
306
+ "U2 L' U2",
307
+ "U' B U",
308
+ //
309
+ "U L U'",
310
+ "D' U2 B' U2",
311
+ //
312
+ "U L' U'",
313
+ "U2 B U2"
314
+ ],
315
+ [
316
+ "R' D' F2",
317
+ "F'",
318
+ //
319
+ "F2",
320
+ "D R F'",
321
+ //
322
+ "R D' F2",
323
+ "R2 F'",
324
+ //
325
+ "D' F2",
326
+ "R F'",
327
+ //
328
+ "F2 R' D' F2",
329
+ "F",
330
+ //
331
+ "D2 F2",
332
+ "D' R F'",
333
+ //
334
+ "R2 D' F2",
335
+ "R' F'",
336
+ //
337
+ "D F2",
338
+ "D2 R F'",
339
+ //
340
+ "",
341
+ "F R' D' F2"
342
+ ],
343
+ [
344
+ "R' D2 F' D F",
345
+ "R F2 R2 F2",
346
+ "R2 F' D2 F",
347
+ //
348
+ "F' R2 D2 F",
349
+ "L D' L'",
350
+ "D F' D2 F",
351
+ //
352
+ "F2 R2 F2",
353
+ "R F' D2 F",
354
+ "F' R2 D' F",
355
+ //
356
+ "F' R' D2 F",
357
+ "F2 R' F2",
358
+ "L D L'",
359
+ //
360
+ "F' R D' F",
361
+ "F2 R F2",
362
+ "F' D2 F",
363
+ //
364
+ "",
365
+ "L D2 R D' L'",
366
+ "F' D2 F' R F2",
367
+ //
368
+ "D2 R2 F2 R2 F2",
369
+ "D F' D' F",
370
+ "F' D F"
371
+ ],
372
+ [
373
+ "U F2 U'",
374
+ "R U F' U'",
375
+ //
376
+ "D R U F2 U'",
377
+ "U F U'",
378
+ //
379
+ "R2 U F2 U'",
380
+ "R' U F' U'",
381
+ //
382
+ "R U F2 U'",
383
+ "R2 U F' U'",
384
+ //
385
+ "",
386
+ "U L D L' F U'",
387
+ //
388
+ "F2 D' R D F2",
389
+ "D2 U F U'",
390
+ //
391
+ "R' U F2 U'",
392
+ "U F' U'",
393
+ //
394
+ "F2 D2 R D2 F2",
395
+ "D U F U'"
396
+ ],
397
+ [
398
+ "R2",
399
+ "R' B' D B",
400
+ //
401
+ "D R'",
402
+ "F' R2 F",
403
+ //
404
+ "",
405
+ "R B' D B",
406
+ //
407
+ "R'",
408
+ "B' D B",
409
+ //
410
+ "D' R'",
411
+ "D2 F' R2 F",
412
+ //
413
+ "R",
414
+ "R2 B' D B",
415
+ //
416
+ "D2 R'",
417
+ "B' D' B"
418
+ ],
419
+ [
420
+ "R2 D' R2",
421
+ "F' R' F R",
422
+ "R D' R2 D R'",
423
+ //
424
+ "D2 R2 D2 R2",
425
+ "R' D' F' R F",
426
+ "U F D F' U'",
427
+ //
428
+ "",
429
+ "R2 D2 B R' B' R'",
430
+ "R' F D' F2 R F",
431
+ //
432
+ "R2 D R2",
433
+ "F2 U F U' F",
434
+ "R' D F' R F",
435
+ //
436
+ "D R2 D2 R2",
437
+ "U F D' F' U'",
438
+ "D R' D2 F' R F",
439
+ //
440
+ "R2 D2 R2",
441
+ "U F D2 F' U'",
442
+ "R' D2 F' R F"
443
+ ],
444
+ [
445
+ "B R B'",
446
+ "F D F' B R2 B'",
447
+ //
448
+ "D B R2 B'",
449
+ "D2 B R' B'",
450
+ //
451
+ "B R2 B'",
452
+ "D B R' B'",
453
+ //
454
+ "D' B R2 B'",
455
+ "B R' B'",
456
+ //
457
+ "",
458
+ "B R2 B' D B R' B'",
459
+ //
460
+ "D2 B R2 B'",
461
+ "D' B R' B'"
462
+ ],
463
+ [
464
+ "",
465
+ "R' D R F D2 F'",
466
+ //
467
+ "R' D R",
468
+ "D F D' F'",
469
+ //
470
+ "R F' R' F",
471
+ "F D' F'",
472
+ //
473
+ "R' D' R",
474
+ "F D2 F'",
475
+ //
476
+ "R' D2 R",
477
+ "F D F'"
478
+ ],
479
+ [
480
+ "",
481
+ "F2 D2 R F' R' D2 F' D2 F'",
482
+ "F2 D2 F' D' F D' F' D2 F'",
483
+ //
484
+ "F2 D F2 D F2 D2 F2",
485
+ "D2 F L D2 L' D2 F'",
486
+ "D F D2 L D2 L' F'",
487
+ //
488
+ "R' D B' D2 B D' R",
489
+ "R' D2 B' D2 B R",
490
+ "F D2 F' D F D F'",
491
+ //
492
+ "F D' L D2 L' D F'",
493
+ "B D' F D B' D' F'",
494
+ "F D2 L D2 L' F'",
495
+ //
496
+ "F D' L D L' D F'",
497
+ "F L D2 L' D2 F'",
498
+ "R' B' D2 B D2 R"
499
+ ],
500
+ [
501
+ "D'",
502
+ "F L D L' D' F'",
503
+ //
504
+ "D2",
505
+ "L B D B' D' L'",
506
+ //
507
+ "D",
508
+ "B' L' D' L D B",
509
+ //
510
+ "",
511
+ "D F L D L' D' F'"
512
+ ],
513
+ [
514
+ "F' D2 F D F' D F",
515
+ "F' D' R' D R F",
516
+ //
517
+ "F' R' D' R D F",
518
+ "B D R D' R' B'",
519
+ //
520
+ "",
521
+ "D B' D' L' D L B"
522
+ ],
523
+ [
524
+ "D F D F' D F D2 F'",
525
+ "F' U2 B' R' B U2 F' L F' L' F'",
526
+ //
527
+ "",
528
+ "D2 L D L2 F L F2 D F"
529
+ ],
530
+ [
531
+ "L B' L' F L B L' F'",
532
+ "F2 U F' D2 F U' F' D2 F'",
533
+ "D' F' D B D' F D B'",
534
+ //
535
+ "F L2 F R2 F' L2 F R2 F2",
536
+ "D B D' F' D B' D' F",
537
+ "R F L F' R' F L' F'",
538
+ //
539
+ "",
540
+ "D2 B L' U2 L B' D2 B L' U2 L B'",
541
+ "D2 F R' U2 R F' D2 F R' U2 R F'",
542
+ //
543
+ "R F L' F' R' F L F'",
544
+ "D F D' B' D F' D' B",
545
+ "L2 F2 L' B2 L F2 L' B2 L'"
546
+ ],
547
+ [
548
+ "L B R' B' L' B R B'",
549
+ "R' B R F' R' B' R F",
550
+ "L D2 L U L' D2 L U' L2",
551
+ //
552
+ "",
553
+ "D2 B' D2 F D' L2 F L2 F' D2 B D' F'",
554
+ "D2 F' R' F R2 B' D2 B D2 R' F D2 F'",
555
+ //
556
+ "L B L' F L B' L' F'",
557
+ "F' D2 F' U' F D2 F' U F2",
558
+ "D' B' D F D' B D F'"
559
+ ],
560
+ ["", "D2 F' L U2 L' F D2 F' L U2 L' F", "D2 B' R U2 R' B D2 B' R U2 R' B"]
561
+ ];
562
+
563
+ // src/cubing/search/inside/solve/puzzles/3x3x3/index.ts
564
+ async function random333Pattern() {
565
+ const kpuzzle = await puzzles["3x3x3"].kpuzzle();
566
+ let pattern = kpuzzle.defaultPattern();
567
+ for (const piece of sgs3x3x3) {
568
+ pattern = pattern.applyAlg(Alg.fromString(randomChoice2(piece)));
569
+ }
570
+ if (!passesFilter(kpuzzle, pattern)) {
571
+ return random333Pattern();
572
+ }
573
+ return pattern;
574
+ }
575
+ async function solve333(s) {
576
+ mustBeInsideWorker();
577
+ return Alg.fromString(
578
+ (await dynamic3x3x3min2phase).solvePattern(toMin2PhasePattern(s))
579
+ );
580
+ }
581
+ async function random333Scramble() {
582
+ return solve333(await random333Pattern());
583
+ }
584
+ async function initialize333() {
585
+ (await dynamic3x3x3min2phase).initialize();
586
+ }
587
+ var randomSuffixes = [
588
+ [null, "Rw", "Rw2", "Rw'", "Fw", "Fw'"],
589
+ [null, "Dw", "Dw2", "Dw'"]
590
+ ];
591
+ async function random333OrientedScramble() {
592
+ return addOrientationSuffix(await random333Scramble(), randomSuffixes);
593
+ }
594
+
595
+ export {
596
+ setIsInsideWorker,
597
+ mustBeInsideWorker,
598
+ addOrientationSuffix,
599
+ random333Pattern,
600
+ solve333,
601
+ random333Scramble,
602
+ initialize333,
603
+ random333OrientedScramble
604
+ };
605
+ //# sourceMappingURL=chunk-5KNIZ2YB.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/cubing/search/inside/solve/puzzles/3x3x3/index.ts", "../../../../src/cubing/search/inside/inside-worker.ts", "../../../../src/cubing/search/inside/solve/addOrientationSuffix.ts", "../../../../src/cubing/search/inside/solve/puzzles/dynamic/3x3x3/index.ts", "../../../../src/cubing/search/inside/solve/puzzles/3x3x3/convert.ts", "../../../../src/cubing/search/inside/solve/puzzles/3x3x3/filter.ts", "../../../../src/cubing/search/inside/solve/puzzles/3x3x3/legacy-sgs.ts"],
4
+ "sourcesContent": ["import { Alg } from \"../../../../../alg\";\nimport type { KPattern } from \"../../../../../kpuzzle/KPattern\";\nimport { puzzles } from \"../../../../../puzzles\";\nimport { randomChoice } from \"random-uint-below\";\nimport { mustBeInsideWorker } from \"../../../inside-worker\";\nimport { addOrientationSuffix } from \"../../addOrientationSuffix\";\nimport { dynamic3x3x3min2phase } from \"../dynamic/3x3x3\";\nimport { toMin2PhasePattern } from \"./convert\";\nimport { passesFilter } from \"./filter\";\nimport { sgs3x3x3 } from \"./legacy-sgs\";\n\nexport async function random333Pattern(): Promise<KPattern> {\n const kpuzzle = await puzzles[\"3x3x3\"].kpuzzle();\n let pattern = kpuzzle.defaultPattern();\n for (const piece of sgs3x3x3) {\n pattern = pattern.applyAlg(Alg.fromString(randomChoice(piece)));\n }\n if (!passesFilter(kpuzzle, pattern)) {\n return random333Pattern();\n }\n return pattern;\n}\n\nexport async function solve333(s: KPattern): Promise<Alg> {\n mustBeInsideWorker();\n return Alg.fromString(\n (await dynamic3x3x3min2phase).solvePattern(toMin2PhasePattern(s)),\n );\n}\n\nexport async function random333Scramble(): Promise<Alg> {\n return solve333(await random333Pattern());\n}\n\nexport async function initialize333(): Promise<void> {\n (await dynamic3x3x3min2phase).initialize();\n}\n\nconst randomSuffixes = [\n [null, \"Rw\", \"Rw2\", \"Rw'\", \"Fw\", \"Fw'\"],\n [null, \"Dw\", \"Dw2\", \"Dw'\"],\n];\n\nexport async function random333OrientedScramble(): Promise<Alg> {\n return addOrientationSuffix(await random333Scramble(), randomSuffixes);\n}\n", "let isInsideWorker = false;\n\nexport function setIsInsideWorker(inside: boolean) {\n isInsideWorker = inside;\n}\n\nexport function mustBeInsideWorker(): void {\n if (!isInsideWorker) {\n throw new Error(\n \"Must be called from inside a worker, to avoid impact on page performance. Try importing from the top level of `cubing/solve`?\",\n );\n }\n}\n", "import { randomChoice } from \"random-uint-below\";\nimport { AlgBuilder, Move, type Alg } from \"../../../alg\";\n\nexport function addOrientationSuffix(\n alg: Alg,\n suffixSpec: (null | string)[][],\n): Alg {\n const algBuilder = new AlgBuilder();\n algBuilder.experimentalPushAlg(alg);\n for (const suffix of suffixSpec) {\n const choice = randomChoice(suffix);\n if (choice !== null) {\n algBuilder.push(Move.fromString(choice));\n }\n }\n return algBuilder.toAlg();\n}\n", "import { from } from \"../../../../../../vendor/mit/p-lazy/p-lazy\";\n\nexport const dynamic3x3x3min2phase = from<\n typeof import(\"./search-dynamic-solve-3x3x3\")\n>(() => import(\"./search-dynamic-solve-3x3x3\"));\n", "/*\n\nFace order:\n\n U\nLFRB\n D\n\n | 0| 1| 2|\n | 3| 4| 5|\n | 6| 7| 8|\n| 9|10|11|18|19|20|27|28|29|36|37|38|\n|12|13|14|21|22|23|30|31|32|39|40|41|\n|15|16|17|24|25|26|33|34|35|42|43|44|\n |45|46|47|\n |48|49|50|\n |51|52|53|\n*/\n\nimport type { KPattern } from \"../../../../../kpuzzle/KPattern\";\n\nconst reidEdgeOrder = \"UF UR UB UL DF DR DB DL FR FL BR BL\".split(\" \");\nconst reidCornerOrder = \"UFR URB UBL ULF DRF DFL DLB DBR\".split(\" \");\nconst centerOrder = \"U L F R B D\".split(\" \");\n\n// const stickers = [reidEdgeOrder, reidCornerOrder, centerOrder];\n\n// /*\n// |1 20|0 20|1 10|\n// |0 30|2 00|0 10|\n// |1 30|0 00|1 00|\n// |1 22|0 31|1 31|1 32|0 01|1 01|1 02|0 11|1 11|1 12|0 21|1 21|\n// |0111|2 10|0 91|0 90|2 20|0 80|0 81|2 30|0101|0100|2 40|0110|\n// |1 61|0 71|1 52|1 51|0 41|1 42|1 41|0 51|1 72|1 71|0 61|1 62|\n// |1 50|0 40|1 40|\n// |0 70|2 50|0 50|\n// |1 60|0 60|1 70|\n// */\n\nconst map: [number, number, number][] = [\n [1, 2, 0],\n [0, 2, 0],\n [1, 1, 0],\n [0, 3, 0],\n [2, 0, 0],\n [0, 1, 0],\n [1, 3, 0],\n [0, 0, 0],\n [1, 0, 0],\n [1, 0, 2],\n [0, 1, 1],\n [1, 1, 1],\n [0, 8, 1],\n [2, 3, 0],\n [0, 10, 1],\n [1, 4, 1],\n [0, 5, 1],\n [1, 7, 2],\n [1, 3, 2],\n [0, 0, 1],\n [1, 0, 1],\n [0, 9, 0],\n [2, 2, 0],\n [0, 8, 0],\n [1, 5, 1],\n [0, 4, 1],\n [1, 4, 2],\n [1, 5, 0],\n [0, 4, 0],\n [1, 4, 0],\n [0, 7, 0],\n [2, 5, 0],\n [0, 5, 0],\n [1, 6, 0],\n [0, 6, 0],\n [1, 7, 0],\n [1, 2, 2],\n [0, 3, 1],\n [1, 3, 1],\n [0, 11, 1],\n [2, 1, 0],\n [0, 9, 1],\n [1, 6, 1],\n [0, 7, 1],\n [1, 5, 2],\n [1, 1, 2],\n [0, 2, 1],\n [1, 2, 1],\n [0, 10, 0],\n [2, 4, 0],\n [0, 11, 0],\n [1, 7, 1],\n [0, 6, 1],\n [1, 6, 2],\n];\n\nfunction rotateLeft(s: string, i: number): string {\n return s.slice(i) + s.slice(0, i);\n}\n\nfunction toReid333Struct(pattern: KPattern): string[][] {\n const output: string[][] = [[], []];\n for (let i = 0; i < 6; i++) {\n if (pattern.patternData[\"CENTERS\"].pieces[i] !== i) {\n throw new Error(\"non-oriented puzzles are not supported\");\n }\n }\n for (let i = 0; i < 12; i++) {\n output[0].push(\n rotateLeft(\n reidEdgeOrder[pattern.patternData[\"EDGES\"].pieces[i]],\n pattern.patternData[\"EDGES\"].orientation[i],\n ),\n );\n }\n for (let i = 0; i < 8; i++) {\n output[1].push(\n rotateLeft(\n reidCornerOrder[pattern.patternData[\"CORNERS\"].pieces[i]],\n pattern.patternData[\"CORNERS\"].orientation[i],\n ),\n );\n }\n output.push(centerOrder);\n return output;\n}\n\n// function toReid333String(state: Transformation): string {\n// return toReid333Struct(state)\n// .map((l) => l.join(\" \"))\n// .join(\" \");\n// }\n\nexport function toMin2PhasePattern(pattern: KPattern): string {\n const reid = toReid333Struct(pattern);\n return map.map(([orbit, perm, ori]) => reid[orbit][perm][ori]).join(\"\");\n}\n", "import { Move } from \"../../../../../alg\";\nimport type { KPuzzle } from \"../../../../../kpuzzle\";\nimport { KPattern } from \"../../../../../kpuzzle\";\n\nexport function isEquivalentTranformationIgnoringCENTERS(\n t1: KPattern,\n t2: KPattern,\n): boolean {\n const t1NoCenterOri = new KPattern(t1.kpuzzle, {\n EDGES: t1.patternData.EDGES,\n CORNERS: t1.patternData.CORNERS,\n CENTERS: {\n pieces: t1.patternData.CENTERS.pieces,\n orientation: new Array(6).fill(0),\n },\n }).experimentalToTransformation()!;\n const t2NoCenterOri = new KPattern(t2.kpuzzle, {\n EDGES: t2.patternData.EDGES,\n CORNERS: t2.patternData.CORNERS,\n CENTERS: {\n pieces: t2.patternData.CENTERS.pieces,\n orientation: new Array(6).fill(0),\n },\n }).experimentalToTransformation()!;\n return t1NoCenterOri.isIdentical(t2NoCenterOri);\n}\n\nexport function passesFilter(kpuzzle: KPuzzle, pattern: KPattern): boolean {\n if (\n isEquivalentTranformationIgnoringCENTERS(kpuzzle.defaultPattern(), pattern)\n ) {\n return false;\n }\n\n for (const face of \"ULFRBD\") {\n for (let amount = 1; amount < 4; amount++) {\n const transformation = kpuzzle\n .moveToTransformation(new Move(face, amount))\n .toKPattern();\n if (isEquivalentTranformationIgnoringCENTERS(transformation, pattern)) {\n return false;\n }\n }\n }\n\n return true;\n}\n// TODO: implement tests\n// {\n// const def = await puzzles[\"3x3x3\"].def();\n// const kpuzzle = new KPuzzle(def);\n// console.log(passesFilter(def, kpuzzle.state));\n// kpuzzle.applyAlg(parse(\"R\"));\n// console.log(passesFilter(def, kpuzzle.state));\n// kpuzzle.applyAlg(parse(\"D\"));\n// console.log(passesFilter(def, kpuzzle.state));\n// kpuzzle.reset();\n// kpuzzle.applyAlg(parse(\"(R' U' R U')5\"));\n// console.log(passesFilter(def, kpuzzle.state));\n// }\n", "// TODO: Verify\nexport const sgs3x3x3: string[][] = [\n [\n \"R U'\",\n \"R2 B\", //\n \"D2 B2\",\n \"D' L B'\", //\n \"R' U'\",\n \"B\", //\n \"D B2\",\n \"R' B\", //\n \"L' U\",\n \"L2 B'\", //\n \"B2\",\n \"D L B'\", //\n \"L U\",\n \"B'\", //\n \"U'\",\n \"R B\", //\n \"D' B2\",\n \"L B'\", //\n \"U2\",\n \"U L' B'\", //\n \"\",\n \"U' L' B'\", //\n \"U\",\n \"L' B'\",\n ],\n [\n \"F2 L2\",\n \"F' L'\",\n \"R' F L2\", //\n \"D' L2\",\n \"F L2\",\n \"F2 L'\", //\n \"R' F' L'\",\n \"R2 F L2\",\n \"R2 F2 L'\", //\n \"L2\",\n \"F L'\",\n \"D' L\", //\n \"D2 L2\",\n \"R2 F' L'\",\n \"D L\", //\n \"\",\n \"L2 F L'\",\n \"L F' L2\", //\n \"L F L'\",\n \"F' L2\",\n \"L'\", //\n \"D L2\",\n \"D F L'\",\n \"L\",\n ],\n [\n \"R B U2 B'\",\n \"R2 B U' B'\", //\n \"F2 B U B'\",\n \"F B2 L' B2\", //\n \"B2 L B2\",\n \"B U' B'\", //\n \"R2 B U2 B'\",\n \"R' B U' B'\", //\n \"B2 L' B2\",\n \"F B U B'\", //\n \"B2 U' B2\",\n \"B' L B\", //\n \"L F' B D' B'\",\n \"B' U' B2 D B'\", //\n \"B U2 B'\",\n \"R B U' B'\", //\n \"B2 L2 B2\",\n \"D' B' L B\", //\n \"B U B'\",\n \"F' B2 L' B2\", //\n \"\",\n \"B2 L' B' U' B'\",\n ],\n [\n \"U F2 L2 U'\",\n \"F' U L' U'\", //\n \"F2 U L' U'\",\n \"U F L2 U'\", //\n \"U2 B2 U2\",\n \"R' U' B U\", //\n \"D2 U L U'\",\n \"D U2 B' U2\", //\n \"U L2 U'\",\n \"F U L' U'\", //\n \"D U L U'\",\n \"U2 B' U2\", //\n \"\",\n \"U2 B' U' L' U'\", //\n \"U2 L' U2\",\n \"U' B U\", //\n \"U L U'\",\n \"D' U2 B' U2\", //\n \"U L' U'\",\n \"U2 B U2\",\n ],\n [\n \"R' D' F2\",\n \"F'\", //\n \"F2\",\n \"D R F'\", //\n \"R D' F2\",\n \"R2 F'\", //\n \"D' F2\",\n \"R F'\", //\n \"F2 R' D' F2\",\n \"F\", //\n \"D2 F2\",\n \"D' R F'\", //\n \"R2 D' F2\",\n \"R' F'\", //\n \"D F2\",\n \"D2 R F'\", //\n \"\",\n \"F R' D' F2\",\n ],\n [\n \"R' D2 F' D F\",\n \"R F2 R2 F2\",\n \"R2 F' D2 F\", //\n \"F' R2 D2 F\",\n \"L D' L'\",\n \"D F' D2 F\", //\n \"F2 R2 F2\",\n \"R F' D2 F\",\n \"F' R2 D' F\", //\n \"F' R' D2 F\",\n \"F2 R' F2\",\n \"L D L'\", //\n \"F' R D' F\",\n \"F2 R F2\",\n \"F' D2 F\", //\n \"\",\n \"L D2 R D' L'\",\n \"F' D2 F' R F2\", //\n \"D2 R2 F2 R2 F2\",\n \"D F' D' F\",\n \"F' D F\",\n ],\n [\n \"U F2 U'\",\n \"R U F' U'\", //\n \"D R U F2 U'\",\n \"U F U'\", //\n \"R2 U F2 U'\",\n \"R' U F' U'\", //\n \"R U F2 U'\",\n \"R2 U F' U'\", //\n \"\",\n \"U L D L' F U'\", //\n \"F2 D' R D F2\",\n \"D2 U F U'\", //\n \"R' U F2 U'\",\n \"U F' U'\", //\n \"F2 D2 R D2 F2\",\n \"D U F U'\",\n ],\n [\n \"R2\",\n \"R' B' D B\", //\n \"D R'\",\n \"F' R2 F\", //\n \"\",\n \"R B' D B\", //\n \"R'\",\n \"B' D B\", //\n \"D' R'\",\n \"D2 F' R2 F\", //\n \"R\",\n \"R2 B' D B\", //\n \"D2 R'\",\n \"B' D' B\",\n ],\n [\n \"R2 D' R2\",\n \"F' R' F R\",\n \"R D' R2 D R'\", //\n \"D2 R2 D2 R2\",\n \"R' D' F' R F\",\n \"U F D F' U'\", //\n \"\",\n \"R2 D2 B R' B' R'\",\n \"R' F D' F2 R F\", //\n \"R2 D R2\",\n \"F2 U F U' F\",\n \"R' D F' R F\", //\n \"D R2 D2 R2\",\n \"U F D' F' U'\",\n \"D R' D2 F' R F\", //\n \"R2 D2 R2\",\n \"U F D2 F' U'\",\n \"R' D2 F' R F\",\n ],\n [\n \"B R B'\",\n \"F D F' B R2 B'\", //\n \"D B R2 B'\",\n \"D2 B R' B'\", //\n \"B R2 B'\",\n \"D B R' B'\", //\n \"D' B R2 B'\",\n \"B R' B'\", //\n \"\",\n \"B R2 B' D B R' B'\", //\n \"D2 B R2 B'\",\n \"D' B R' B'\",\n ],\n [\n \"\",\n \"R' D R F D2 F'\", //\n \"R' D R\",\n \"D F D' F'\", //\n \"R F' R' F\",\n \"F D' F'\", //\n \"R' D' R\",\n \"F D2 F'\", //\n \"R' D2 R\",\n \"F D F'\",\n ],\n [\n \"\",\n \"F2 D2 R F' R' D2 F' D2 F'\",\n \"F2 D2 F' D' F D' F' D2 F'\", //\n \"F2 D F2 D F2 D2 F2\",\n \"D2 F L D2 L' D2 F'\",\n \"D F D2 L D2 L' F'\", //\n \"R' D B' D2 B D' R\",\n \"R' D2 B' D2 B R\",\n \"F D2 F' D F D F'\", //\n \"F D' L D2 L' D F'\",\n \"B D' F D B' D' F'\",\n \"F D2 L D2 L' F'\", //\n \"F D' L D L' D F'\",\n \"F L D2 L' D2 F'\",\n \"R' B' D2 B D2 R\",\n ],\n [\n \"D'\",\n \"F L D L' D' F'\", //\n \"D2\",\n \"L B D B' D' L'\", //\n \"D\",\n \"B' L' D' L D B\", //\n \"\",\n \"D F L D L' D' F'\",\n ],\n [\n \"F' D2 F D F' D F\",\n \"F' D' R' D R F\", //\n \"F' R' D' R D F\",\n \"B D R D' R' B'\", //\n \"\",\n \"D B' D' L' D L B\",\n ],\n [\n \"D F D F' D F D2 F'\",\n \"F' U2 B' R' B U2 F' L F' L' F'\", //\n \"\",\n \"D2 L D L2 F L F2 D F\",\n ],\n [\n \"L B' L' F L B L' F'\",\n \"F2 U F' D2 F U' F' D2 F'\",\n \"D' F' D B D' F D B'\", //\n \"F L2 F R2 F' L2 F R2 F2\",\n \"D B D' F' D B' D' F\",\n \"R F L F' R' F L' F'\", //\n \"\",\n \"D2 B L' U2 L B' D2 B L' U2 L B'\",\n \"D2 F R' U2 R F' D2 F R' U2 R F'\", //\n \"R F L' F' R' F L F'\",\n \"D F D' B' D F' D' B\",\n \"L2 F2 L' B2 L F2 L' B2 L'\",\n ],\n [\n \"L B R' B' L' B R B'\",\n \"R' B R F' R' B' R F\",\n \"L D2 L U L' D2 L U' L2\", //\n \"\",\n \"D2 B' D2 F D' L2 F L2 F' D2 B D' F'\",\n \"D2 F' R' F R2 B' D2 B D2 R' F D2 F'\", //\n \"L B L' F L B' L' F'\",\n \"F' D2 F' U' F D2 F' U F2\",\n \"D' B' D F D' B D F'\",\n ],\n [\"\", \"D2 F' L U2 L' F D2 F' L U2 L' F\", \"D2 B' R U2 R' B D2 B' R U2 R' B\"],\n];\n"],
5
+ "mappings": "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ACA;AAAA,EACF;AAAA,EACA;AAAA,IACE;AAAA,IACA;AAAA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAAA,EACA;AAAA,IACE;AAAA,IACA;AAAA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAAA,EACA;AAAA,IACE;AAAA,IACA;AAAA,IACA;AAAA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAAA,EACA;AAAA,IACE;AAAA,IACA;AAAA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAAA,EACA;AAAA,IACE;AAAA,IACA;AAAA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAAA,EACA;AAAA,IACE;AAAA,IACA;AAAA,IACA;AAAA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAAA,EACA;AAAA,IACE;AAAA,IACA;AAAA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAAA,EACA;AAAA,IACE;AAAA,IACA;AAAA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAAA,EACA;AAAA,IACE;AAAA,IACA;AAAA,IACA;AAAA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAAA,EACA;AAAA,IACE;AAAA,IACA;AAAA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAAA,EACA;AAAA,IACE;AAAA,IACA;AAAA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAAA,EACA;AAAA,IACE;AAAA,IACA;AAAA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAAA,EACA;AAAA,IACE;AAAA,IACA;AAAA,IACA;AAAA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAAA,EACA;AAAA,IACE;AAAA,IACA;AAAA,IACA;AAAA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAAA,EACA,CAAC,IAAI,mCAAmC,iCAAiC;AAC3E;;;ANvRA,eAAsB,mBAAsC;AAC1D,QAAM,UAAU,MAAM,QAAQ,OAAO,EAAE,QAAQ;AAC/C,MAAI,UAAU,QAAQ,eAAe;AACrC,aAAW,SAAS,UAAU;AAC5B,cAAU,QAAQ,SAAS,IAAI,WAAWC,cAAa,KAAK,CAAC,CAAC;AAAA,EAChE;AACA,MAAI,CAAC,aAAa,SAAS,OAAO,GAAG;AACnC,WAAO,iBAAiB;AAAA,EAC1B;AACA,SAAO;AACT;AAEA,eAAsB,SAAS,GAA2B;AACxD,qBAAmB;AACnB,SAAO,IAAI;AAAA,KACR,MAAM,uBAAuB,aAAa,mBAAmB,CAAC,CAAC;AAAA,EAClE;AACF;AAEA,eAAsB,oBAAkC;AACtD,SAAO,SAAS,MAAM,iBAAiB,CAAC;AAC1C;AAEA,eAAsB,gBAA+B;AACnD,GAAC,MAAM,uBAAuB,WAAW;AAC3C;AAEA,IAAM,iBAAiB;AAAA,EACrB,CAAC,MAAM,MAAM,OAAO,OAAO,MAAM,KAAK;AAAA,EACtC,CAAC,MAAM,MAAM,OAAO,KAAK;AAC3B;AAEA,eAAsB,4BAA0C;AAC9D,SAAO,qBAAqB,MAAM,kBAAkB,GAAG,cAAc;AACvE;",
6
+ "names": ["randomChoice", "randomChoice"]
7
+ }