cubing 0.25.2 → 0.25.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 (71) hide show
  1. package/dist/esm/{2x2x2.sgs.json-NUOQFJWU.js → 2x2x2.sgs.json-MMXKAIKZ.js} +2 -2
  2. package/dist/esm/{2x2x2.sgs.json-NUOQFJWU.js.map → 2x2x2.sgs.json-MMXKAIKZ.js.map} +0 -0
  3. package/dist/esm/{3d-dynamic-AKACURPM.js → 3d-dynamic-N4H7XJWX.js} +18 -16
  4. package/dist/esm/{3d-dynamic-AKACURPM.js.map → 3d-dynamic-N4H7XJWX.js.map} +2 -2
  5. package/dist/esm/{444-solver-GNQ5BHCL.js → 444-solver-PV2GUWP2.js} +3 -3
  6. package/dist/esm/{444-solver-GNQ5BHCL.js.map → 444-solver-PV2GUWP2.js.map} +0 -0
  7. package/dist/esm/bluetooth/index.js +1 -1
  8. package/dist/esm/{chunk-FZJDXPAH.js → chunk-5GJ5C7NZ.js} +11 -34
  9. package/dist/esm/chunk-5GJ5C7NZ.js.map +7 -0
  10. package/dist/esm/chunk-BEXHMXCT.js +9 -0
  11. package/dist/esm/chunk-BEXHMXCT.js.map +7 -0
  12. package/dist/esm/{chunk-KRL5KQQK.js → chunk-F5WNHV7V.js} +2 -2
  13. package/dist/esm/{chunk-KRL5KQQK.js.map → chunk-F5WNHV7V.js.map} +2 -2
  14. package/dist/esm/chunk-IVQ4ITE2.js +33 -0
  15. package/dist/esm/chunk-IVQ4ITE2.js.map +7 -0
  16. package/dist/esm/{chunk-T5KQKRR3.js → chunk-KJZNEDOV.js} +2 -2
  17. package/dist/esm/{chunk-T5KQKRR3.js.map → chunk-KJZNEDOV.js.map} +0 -0
  18. package/dist/esm/{chunk-SNWS6JXI.js → chunk-LMZIKLXW.js} +79 -26
  19. package/dist/esm/chunk-LMZIKLXW.js.map +7 -0
  20. package/dist/esm/{chunk-ASJ2DADD.js → chunk-NGA3FW7U.js} +2 -2
  21. package/dist/esm/{chunk-ASJ2DADD.js.map → chunk-NGA3FW7U.js.map} +0 -0
  22. package/dist/esm/{chunk-L3PZ4XAT.js → chunk-OH2FLVZM.js} +7 -2
  23. package/dist/esm/{chunk-L3PZ4XAT.js.map → chunk-OH2FLVZM.js.map} +2 -2
  24. package/dist/esm/{chunk-QMZKTP7F.js → chunk-QEDC2QTN.js} +2 -2
  25. package/dist/esm/{chunk-QMZKTP7F.js.map → chunk-QEDC2QTN.js.map} +0 -0
  26. package/dist/esm/{chunk-CYKV7QC5.js → chunk-UNROETIO.js} +2 -2
  27. package/dist/esm/{chunk-CYKV7QC5.js.map → chunk-UNROETIO.js.map} +0 -0
  28. package/dist/esm/{chunk-5O24MNND.js → chunk-WDJDRVZZ.js} +6 -3
  29. package/dist/esm/chunk-WDJDRVZZ.js.map +7 -0
  30. package/dist/esm/{fto.dynamic-A3AASYQ6.js → fto.dynamic-UHH65HEC.js} +2 -2
  31. package/dist/esm/{fto.dynamic-A3AASYQ6.js.map → fto.dynamic-UHH65HEC.js.map} +0 -0
  32. package/dist/esm/kilominx.kpuzzle.svg-7XJBOKFU.js +83 -0
  33. package/dist/esm/kilominx.kpuzzle.svg-7XJBOKFU.js.map +7 -0
  34. package/dist/esm/{megaminx.sgs.json-KKR4VPHV.js → megaminx.sgs.json-3ZEDZMWF.js} +3 -3
  35. package/dist/esm/{megaminx.sgs.json-KKR4VPHV.js.map → megaminx.sgs.json-3ZEDZMWF.js.map} +0 -0
  36. package/dist/esm/puzzle-geometry/index.js +1 -1
  37. package/dist/esm/puzzles/index.js +3 -1
  38. package/dist/esm/{pyraminx.sgs.json-X37XL7MA.js → pyraminx.sgs.json-5IA2F65U.js} +3 -3
  39. package/dist/esm/{pyraminx.sgs.json-X37XL7MA.js.map → pyraminx.sgs.json-5IA2F65U.js.map} +0 -0
  40. package/dist/esm/scramble/index.js +5 -3
  41. package/dist/esm/search/index.js +5 -3
  42. package/dist/esm/{entry-2KUJYJBJ.js → search-worker-js-entry-AXEFSQVG.js} +21 -17
  43. package/dist/esm/search-worker-js-entry-AXEFSQVG.js.map +7 -0
  44. package/dist/esm/search-worker-ts-entry-OOL7WATY.js +22 -0
  45. package/dist/esm/search-worker-ts-entry-OOL7WATY.js.map +7 -0
  46. package/dist/esm/{skewb.sgs.json-MWONK6HT.js → skewb.sgs.json-6NDFH63U.js} +3 -3
  47. package/dist/esm/{skewb.sgs.json-MWONK6HT.js.map → skewb.sgs.json-6NDFH63U.js.map} +0 -0
  48. package/dist/esm/twisty/index.js +3 -2
  49. package/dist/esm/twisty/index.js.map +2 -2
  50. package/dist/esm/{worker-inside-generated-string-OBSDMXAS.js → worker-inside-generated-string-CSXWVF2Y.js} +99 -24
  51. package/dist/esm/worker-inside-generated-string-CSXWVF2Y.js.map +7 -0
  52. package/dist/types/puzzles/events.d.ts +8 -0
  53. package/dist/types/puzzles/implementations/kilominx/index.d.ts +2 -0
  54. package/dist/types/puzzles/implementations/kilominx/kilominx.kpuzzle.svg.d.ts +1 -0
  55. package/dist/types/puzzles/index.d.ts +6 -11
  56. package/dist/types/search/inside/{entry.d.ts → search-worker-js-entry.d.ts} +0 -0
  57. package/dist/types/search/inside/{search-worker-entry-path-getter.d.ts → search-worker-ts-entry-path-getter.d.ts} +0 -0
  58. package/dist/types/search/inside/{search-worker-entry.d.ts → search-worker-ts-entry.d.ts} +0 -0
  59. package/dist/types/search/inside/worker-guard.d.ts +3 -0
  60. package/dist/types/search/worker-inside-generated-string.d.ts +1 -1
  61. package/dist/types/twisty/model/props/puzzle/structure/PuzzleIDRequestProp.d.ts +1 -0
  62. package/dist/types/vendor/comlink-everywhere/inside/index.d.ts +3 -1
  63. package/package.json +1 -1
  64. package/dist/esm/chunk-5O24MNND.js.map +0 -7
  65. package/dist/esm/chunk-FZJDXPAH.js.map +0 -7
  66. package/dist/esm/chunk-SNWS6JXI.js.map +0 -7
  67. package/dist/esm/entry-2KUJYJBJ.js.map +0 -7
  68. package/dist/esm/search-worker-entry-ZJAXYGSH.js +0 -18
  69. package/dist/esm/search-worker-entry-ZJAXYGSH.js.map +0 -7
  70. package/dist/esm/worker-inside-generated-string-OBSDMXAS.js.map +0 -7
  71. package/dist/types/search/esm-test-worker.d.ts +0 -3
@@ -1,24 +1,24 @@
1
1
  import "./chunk-WO2AXYFE.js";
2
2
 
3
3
  // src/cubing/search/worker-inside-generated-string.js
4
- var workerSource = `var b0=Object.defineProperty;var Ec=e=>b0(e,"__esModule",{value:!0});var b=(e,t)=>()=>(e&&(t=e(e=0)),t);var ye=(e,t)=>{Ec(e);for(var r in t)b0(e,r,{get:t[r],enumerable:!0})};var ta=(e,t,r)=>{if(!t.has(e))throw TypeError("Cannot "+r)};var d=(e,t,r)=>(ta(e,t,"read from private field"),r?r.call(e):t.get(e)),ne=(e,t,r)=>{if(t.has(e))throw TypeError("Cannot add the same private member more than once");t instanceof WeakSet?t.add(e):t.set(e,r)},q=(e,t,r,n)=>(ta(e,t,"write to private field"),n?n.call(e,r):t.set(e,r),r),ra=(e,t,r,n)=>({set _(o){q(e,t,o,r)},get _(){return d(e,t,n)}}),w0=(e,t,r)=>(ta(e,t,"access private method"),r);var _0={};ye(_0,{default:()=>Wc});function Oc(e){let t=new WeakMap;return{postMessage:e.postMessage.bind(e),addEventListener:(r,n)=>{let o=l=>{"handleEvent"in n?n.handleEvent({data:l}):n({data:l})};e.on("message",o),t.set(n,o)},removeEventListener:(r,n)=>{let o=t.get(n);!o||(e.off("message",o),t.delete(n))},start:e.start&&e.start.bind(e)}}var Wc,C0=b(()=>{Wc=Oc});var Vc,ml,Me,Wt=b(()=>{Vc=!1,ml=class{is(t){return this instanceof t}as(t){return this instanceof t?this:null}},Me=class extends ml{constructor(){super();Vc&&Object.defineProperty(this,"_debugStr",{get:()=>this.toString()})}get log(){return console.log.bind(console,this,this.toString())}}});function M0(e,t=!0){if(!t)return e;switch(e){case 1:return-1;case-1:return 1}}function ia(e,t){return t===-1?Array.from(e).reverse():e}function G0(e){return Array.from(e).reverse()}var V,Dt=b(()=>{(function(r){r[r.Forwards=1]="Forwards",r[r.Backwards=-1]="Backwards"})(V||(V={}))});var go,cn,T0,aa=b(()=>{go=2147483647,cn="2^31 - 1",T0=-2147483648});var kr,mt,sa=b(()=>{Kt();mt=class{constructor(){ne(this,kr,[])}push(t){d(this,kr).push(t)}experimentalPushAlg(t){for(let r of t.units())this.push(r)}experimentalNumUnits(){return d(this,kr).length}toAlg(){return new z(d(this,kr))}reset(){q(this,kr,[])}};kr=new WeakMap});var zr,_r,pl,Ge,co=b(()=>{Kt();Wt();Dt();pl=class extends Me{constructor(t,r){super();ne(this,zr,void 0);ne(this,_r,void 0);q(this,zr,ir(t)),q(this,_r,ir(r))}get A(){return d(this,zr)}get B(){return d(this,_r)}isIdentical(t){let r=t.as(pl);return!!(r?.A.isIdentical(this.A)&&r?.B.isIdentical(this.B))}invert(){return new pl(d(this,_r),d(this,zr))}*experimentalExpand(t=V.Forwards,r){r??(r=1/0),r===0?yield t===V.Forwards?this:this.invert():t===V.Forwards?(yield*this.A.experimentalExpand(V.Forwards,r-1),yield*this.B.experimentalExpand(V.Forwards,r-1),yield*this.A.experimentalExpand(V.Backwards,r-1),yield*this.B.experimentalExpand(V.Backwards,r-1)):(yield*this.B.experimentalExpand(V.Forwards,r-1),yield*this.A.experimentalExpand(V.Forwards,r-1),yield*this.B.experimentalExpand(V.Backwards,r-1),yield*this.A.experimentalExpand(V.Backwards,r-1))}toString(){return\`[\${d(this,zr).toString()}, \${d(this,_r).toString()}]\`}},Ge=pl;zr=new WeakMap,_r=new WeakMap});var mn,pn,Ll,Te,mo=b(()=>{Kt();Wt();Dt();Ll=class extends Me{constructor(t,r){super();ne(this,mn,void 0);ne(this,pn,void 0);q(this,mn,ir(t)),q(this,pn,ir(r))}get A(){return d(this,mn)}get B(){return d(this,pn)}isIdentical(t){let r=t.as(Ll);return!!(r?.A.isIdentical(this.A)&&r?.B.isIdentical(this.B))}invert(){return new Ll(d(this,mn),d(this,pn).invert())}*experimentalExpand(t,r){r??(r=1/0),r===0?yield t===V.Forwards?this:this.invert():(yield*this.A.experimentalExpand(V.Forwards,r-1),yield*this.B.experimentalExpand(t,r-1),yield*this.A.experimentalExpand(V.Backwards,r-1))}toString(){return\`[\${this.A}: \${this.B}]\`}},Te=Ll;mn=new WeakMap,pn=new WeakMap});var ar,fa,Ft,po=b(()=>{Wt();Dt();fa=class extends Me{constructor(t){super();ne(this,ar,void 0);if(t.includes(\`
5
- \`)||t.includes("\\r"))throw new Error("LineComment cannot contain newline");q(this,ar,t)}get text(){return d(this,ar)}isIdentical(t){let r=t;return t.is(fa)&&d(this,ar)===d(r,ar)}invert(){return this}*experimentalExpand(t=V.Forwards,r=1/0){yield this}toString(){return\`//\${d(this,ar)}\`}},Ft=fa;ar=new WeakMap});var Ye,Lo=b(()=>{Wt();Dt();Ye=class extends Me{toString(){return\`
6
- \`}isIdentical(t){return t.is(Ye)}invert(){return this}*experimentalExpand(t=V.Forwards,r=1/0){yield this}}});var Ze,Bo=b(()=>{Wt();Dt();Ze=class extends Me{toString(){return"."}isIdentical(t){return t.is(Ze)}invert(){return this}*experimentalExpand(t=V.Forwards,r=1/0){yield this}}});function Bl(e,t){return e?parseInt(e):t}function ua(e){return new Rl().parseAlg(e)}function N0(e){return new Rl().parseMove(e)}function O0(e){return new Rl().parseQuantumMove(e)}function Xe(e,t,r){let n=e;return n.startCharIndex=t,n.endCharIndex=r,n}function W0(e,t){return"startCharIndex"in e&&(t.startCharIndex=e.startCharIndex),"endCharIndex"in e&&(t.endCharIndex=e.endCharIndex),t}var I0,Hc,Yc,Zc,Xc,Jc,nt,N,Rl,ga=b(()=>{Kt();sa();co();mo();dl();po();Qt();Lo();Bo();I0=/^(\\d+)?('?)/,Hc=/^[_\\dA-Za-z]/,Yc=/^((([1-9]\\d*)-)?([1-9]\\d*))?([_A-Za-z]+)?/,Zc=/^[^\\n]*/,Xc=/^(-?\\d+), ?/,Jc=/^(-?\\d+)\\)/;Rl=class{constructor(){ne(this,nt,"");ne(this,N,0)}parseAlg(t){q(this,nt,t),q(this,N,0);let r=this.parseAlgWithStopping([]);return this.mustBeAtEndOfInput(),r}parseMove(t){q(this,nt,t),q(this,N,0);let r=this.parseMoveImpl();return this.mustBeAtEndOfInput(),r}parseQuantumMove(t){q(this,nt,t),q(this,N,0);let r=this.parseQuantumMoveImpl();return this.mustBeAtEndOfInput(),r}mustBeAtEndOfInput(){if(d(this,N)!==d(this,nt).length)throw new Error("parsing unexpectedly ended early")}parseAlgWithStopping(t){let r=d(this,N),n=d(this,N),o=new mt,l=!1,i=a=>{if(l)throw new Error(\`Unexpected character at index \${a}. Are you missing a space?\`)};e:for(;d(this,N)<d(this,nt).length;){let a=d(this,N);if(t.includes(d(this,nt)[d(this,N)]))return Xe(o.toAlg(),r,n);if(this.tryConsumeNext(" ")){l=!1,o.experimentalNumUnits()===0&&(r=d(this,N));continue e}else if(Hc.test(d(this,nt)[d(this,N)])){i(a);let f=this.parseMoveImpl();o.push(f),l=!0,n=d(this,N);continue e}else if(this.tryConsumeNext("(")){i(a);let f=this.tryRegex(Xc);if(f){let s=f[1],g=d(this,N),c=this.parseRegex(Jc),u=Xe(new B(new P("U_SQ_"),parseInt(s)),a+1,a+1+s.length),m=Xe(new B(new P("D_SQ_"),parseInt(c[1])),g,d(this,N)-1),p=Xe(new z([u,m]),a+1,d(this,N)-1);o.push(Xe(new ut(p),a,d(this,N))),l=!0,n=d(this,N);continue e}else{let s=this.parseAlgWithStopping([")"]);this.mustConsumeNext(")");let g=this.parseAmount();o.push(Xe(new ut(s,g),a,d(this,N))),l=!0,n=d(this,N);continue e}}else if(this.tryConsumeNext("[")){i(a);let f=this.parseAlgWithStopping([",",":"]),s=this.popNext(),g=this.parseAlgWithStopping(["]"]);switch(this.mustConsumeNext("]"),s){case":":o.push(Xe(new Te(f,g),a,d(this,N))),l=!0,n=d(this,N);continue e;case",":o.push(Xe(new Ge(f,g),a,d(this,N))),l=!0,n=d(this,N);continue e;default:throw"unexpected parsing error"}}else if(this.tryConsumeNext(\`
7
- \`)){o.push(Xe(new Ye,a,d(this,N))),l=!1,n=d(this,N);continue e}else if(this.tryConsumeNext("/"))if(this.tryConsumeNext("/")){i(a);let[f]=this.parseRegex(Zc);o.push(Xe(new Ft(f),a,d(this,N))),l=!1,n=d(this,N);continue e}else{o.push(Xe(new B("_SLASH_"),a,d(this,N))),l=!0,n=d(this,N);continue e}else if(this.tryConsumeNext(".")){i(a),o.push(Xe(new Ze,a,d(this,N))),l=!0,n=d(this,N);continue e}else throw new Error(\`Unexpected character: \${this.popNext()}\`)}if(d(this,N)!==d(this,nt).length)throw new Error("did not finish parsing?");if(t.length>0)throw new Error("expected stopping");return Xe(o.toAlg(),r,n)}parseQuantumMoveImpl(){let[,,,t,r,n]=this.parseRegex(Yc);return new P(n,Bl(r,void 0),Bl(t,void 0))}parseMoveImpl(){let t=d(this,N);if(this.tryConsumeNext("/"))return Xe(new B("_SLASH_"),t,d(this,N));let r=this.parseQuantumMoveImpl(),[n,o]=this.parseAmountAndTrackEmptyAbsAmount(),l=this.parseMoveSuffix();if(l){if(n<0)throw new Error("uh-oh");if((l==="++"||l==="--")&&n!==1)throw new Error("Pochmann ++ or -- moves cannot have an amount other than 1.");if((l==="++"||l==="--")&&!o)throw new Error("Pochmann ++ or -- moves cannot have an amount written as a number.");if((l==="+"||l==="-")&&o)throw new Error("Clock dial moves must have an amount written as a natural number followed by + or -.");l.startsWith("+")&&(r=r.modified({family:\`\${r.family}_\${l==="+"?"PLUS":"PLUSPLUS"}_\`})),l.startsWith("-")&&(r=r.modified({family:\`\${r.family}_\${l==="-"?"PLUS":"PLUSPLUS"}_\`}),n*=-1)}return Xe(new B(r,n),t,d(this,N))}parseMoveSuffix(){return this.tryConsumeNext("+")?this.tryConsumeNext("+")?"++":"+":this.tryConsumeNext("-")?this.tryConsumeNext("-")?"--":"-":null}parseAmountAndTrackEmptyAbsAmount(){let t=d(this,N),[,r,n]=this.parseRegex(I0);if(r?.startsWith("0")&&r!=="0")throw new Error(\`Error at char index \${t}: An amount can only start with 0 if it's exactly the digit 0.\`);return[Bl(r,1)*(n==="'"?-1:1),!r]}parseAmount(){let t=d(this,N),[,r,n]=this.parseRegex(I0);if(r?.startsWith("0")&&r!=="0")throw new Error(\`Error at char index \${t}: An amount number can only start with 0 if it's exactly the digit 0.\`);return Bl(r,1)*(n==="'"?-1:1)}parseRegex(t){let r=t.exec(this.remaining());if(r===null)throw new Error("internal parsing error");return q(this,N,d(this,N)+r[0].length),r}tryRegex(t){let r=t.exec(this.remaining());return r===null?null:(q(this,N,d(this,N)+r[0].length),r)}remaining(){return d(this,nt).slice(d(this,N))}popNext(){let t=d(this,nt)[d(this,N)];return ra(this,N)._++,t}tryConsumeNext(t){return d(this,nt)[d(this,N)]===t?(ra(this,N)._++,!0):!1}mustConsumeNext(t){let r=this.popNext();if(r!==t)throw new Error(\`expected \\\`\${t}\\\` while parsing, encountered \${r}\`);return r}};nt=new WeakMap,N=new WeakMap});function Dl(e){K0.has(e)||(console.warn(e),K0.add(e))}var K0,ca=b(()=>{K0=new Set});var Ln,ma=b(()=>{Dt();aa();Ln=class{constructor(t,r=1){if(this.quantum=t,this.amount=r,!Number.isInteger(this.amount)||this.amount<T0||this.amount>go)throw new Error(\`Unit amount absolute value must be a non-negative integer from \${cn} to \${cn}.\`)}suffix(){let t="",r=Math.abs(this.amount);return r!==1&&(t+=r),this.amount<0&&(t+="'"),t}isIdentical(t){return this.quantum.isIdentical(t.quantum)&&this.amount===t.amount}*experimentalExpand(t,r){let n=Math.abs(this.amount),o=M0(t,this.amount<0);for(let l=0;l<n;l++)yield*this.quantum.experimentalExpand(o,r)}}});var jt,Ie,Ne,Fl,P,Ee,Bn,B,Qt=b(()=>{Wt();Dt();aa();ga();ca();ma();Fl=class extends ml{constructor(t,r,n){super();ne(this,jt,void 0);ne(this,Ie,void 0);ne(this,Ne,void 0);if(q(this,jt,t),q(this,Ie,r??null),q(this,Ne,n??null),Object.freeze(this),d(this,Ie)!==null&&(!Number.isInteger(d(this,Ie))||d(this,Ie)<1||d(this,Ie)>go))throw new Error(\`QuantumMove inner layer must be a positive integer below \${cn}.\`);if(d(this,Ne)!==null&&(!Number.isInteger(d(this,Ne))||d(this,Ne)<1||d(this,Ne)>go))throw new Error(\`QuantumMove outer layer must be a positive integer below \${cn}.\`);if(d(this,Ne)!==null&&d(this,Ie)!==null&&d(this,Ie)<=d(this,Ne))throw new Error("QuantumMove outer layer must be smaller than inner layer.");if(d(this,Ne)!==null&&d(this,Ie)===null)throw new Error("QuantumMove with an outer layer must have an inner layer")}static fromString(t){return O0(t)}modified(t){return new Fl(t.family??d(this,jt),t.innerLayer??d(this,Ie),t.outerLayer??d(this,Ne))}isIdentical(t){let r=t;return t.is(Fl)&&d(this,jt)===d(r,jt)&&d(this,Ie)===d(r,Ie)&&d(this,Ne)===d(r,Ne)}get family(){return d(this,jt)}get outerLayer(){return d(this,Ne)}get innerLayer(){return d(this,Ie)}experimentalExpand(){throw new Error("experimentalExpand() cannot be called on a \`QuantumMove\` directly.")}toString(){let t=d(this,jt);return d(this,Ie)!==null&&(t=String(d(this,Ie))+t,d(this,Ne)!==null&&(t=String(d(this,Ne))+"-"+t)),t}},P=Fl;jt=new WeakMap,Ie=new WeakMap,Ne=new WeakMap;Bn=class extends Me{constructor(...t){super();ne(this,Ee,void 0);if(typeof t[0]=="string")if(t[1]??null){q(this,Ee,new Ln(P.fromString(t[0]),t[1]));return}else return Bn.fromString(t[0]);q(this,Ee,new Ln(t[0],t[1]))}isIdentical(t){let r=t.as(Bn);return!!r&&d(this,Ee).isIdentical(d(r,Ee))}invert(){return W0(this,new Bn(d(this,Ee).quantum,-this.amount))}*experimentalExpand(t=V.Forwards){t===V.Forwards?yield this:yield this.modified({amount:-this.amount})}get quantum(){return d(this,Ee).quantum}modified(t){return new Bn(d(this,Ee).quantum.modified(t),t.amount??this.amount)}static fromString(t){return N0(t)}get amount(){return d(this,Ee).amount}get type(){return Dl("deprecated: type"),"blockMove"}get family(){return d(this,Ee).quantum.family??void 0}get outerLayer(){return d(this,Ee).quantum.outerLayer??void 0}get innerLayer(){return d(this,Ee).quantum.innerLayer??void 0}toString(){if(this.family==="_SLASH_")return"/";if(this.family.endsWith("_PLUS_"))return d(this,Ee).quantum.toString().slice(0,-6)+Math.abs(this.amount)+(this.amount<0?"-":"+");if(this.family.endsWith("_PLUSPLUS_")){let t=Math.abs(this.amount);return d(this,Ee).quantum.toString().slice(0,-10)+(t===1?"":t)+(this.amount<0?"--":"++")}return d(this,Ee).quantum.toString()+d(this,Ee).suffix()}},B=Bn;Ee=new WeakMap});var Q0,j0,ot,hl,ut,dl=b(()=>{Kt();Wt();Dt();Qt();ma();Q0=class{constructor(){this.quantumU_SQ_=null;this.quantumD_SQ_=null}format(t){let r=this.tuple(t);return r?\`(\${r.map(n=>n.amount).join(", ")})\`:null}tuple(t){this.quantumU_SQ_||(this.quantumU_SQ_=new P("U_SQ_")),this.quantumD_SQ_||(this.quantumD_SQ_=new P("D_SQ_"));let r=t.alg;if(r.experimentalNumUnits()===2){let[n,o]=r.units();if(n.as(B)?.quantum.isIdentical(this.quantumU_SQ_)&&o.as(B)?.quantum.isIdentical(this.quantumD_SQ_)){if(t.amount!==1)throw new Error("Square-1 tuples cannot have an amount other than 1.");return[n,o]}}return null}},j0=new Q0,hl=class extends Me{constructor(t,r){super();ne(this,ot,void 0);let n=ir(t);q(this,ot,new Ln(n,r))}isIdentical(t){let r=t;return t.is(hl)&&d(this,ot).isIdentical(d(r,ot))}get alg(){return d(this,ot).quantum}get amount(){return d(this,ot).amount}get experimentalRepetitionSuffix(){return d(this,ot).suffix()}invert(){return new hl(d(this,ot).quantum,-d(this,ot).amount)}*experimentalExpand(t=V.Forwards,r){r??(r=1/0),r===0?yield t===V.Forwards?this:this.invert():yield*d(this,ot).experimentalExpand(t,r-1)}static fromString(){throw new Error("unimplemented")}toString(){return j0.format(this)??\`(\${d(this,ot).quantum.toString()})\${d(this,ot).suffix()}\`}experimentalAsSquare1Tuple(){return j0.tuple(this)}},ut=hl;ot=new WeakMap});var Al=b(()=>{dl();po();co();mo();Qt();Lo();Bo()});function ht(e,t){return e instanceof t}function q0(e){return ht(e,ut)||ht(e,Ft)||ht(e,Ge)||ht(e,Te)||ht(e,B)||ht(e,Ye)||ht(e,Ze)}var pa=b(()=>{Al()});function V0(e,t,r){if(t.is(ut))return e.traverseGrouping(t,r);if(t.is(B))return e.traverseMove(t,r);if(t.is(Ge))return e.traverseCommutator(t,r);if(t.is(Te))return e.traverseConjugate(t,r);if(t.is(Ze))return e.traversePause(t,r);if(t.is(Ye))return e.traverseNewline(t,r);if(t.is(Ft))return e.traverseLineComment(t,r);throw new Error("unknown unit")}function H0(e){if(e.is(ut)||e.is(B)||e.is(Ge)||e.is(Te)||e.is(Ze)||e.is(Ye)||e.is(Ft))return e;throw"internal error: expected unit"}var Rn,dn,yl,$c,Ba,La,Y0,Z0,Ra=b(()=>{dl();co();Qt();Lo();Bo();mo();po();Rn=class{traverseUnit(t,r){return V0(this,t,r)}traverseIntoUnit(t,r){return H0(this.traverseUnit(t,r))}},dn=class extends Rn{traverseUnit(t){return V0(this,t,void 0)}traverseIntoUnit(t){return H0(this.traverseUnit(t))}},Ba=class extends Rn{*traverseAlg(t,r){if(r.depth===0){yield*t.units();return}let n=[],o=null,l=r?.collapseMoves??!0;function i(s,g){var m;let c=w0(m=Ba,yl,$c).call(m,s,g,r);if(c===0)return!1;let u=new B(s.quantum,c);return n.push(u),o=u,!0}function a(s){l&&o?.is(B)&&s.is(B)&&o.quantum.isIdentical(s.quantum)?(n.pop(),i(o,s.amount)||(o=n.slice(-1)[0])):s.is(B)?i(s,0):(n.push(s),o=s)}let f={depth:r.depth?r.depth-1:null};for(let s of t.units())for(let g of this.traverseUnit(s,f))a(g);for(let s of n)yield s}*traverseGrouping(t,r){if(r.depth===0){yield t;return}let n={depth:r.depth?r.depth-1:null};yield new ut(this.traverseAlg(t.alg,n))}*traverseMove(t,r){yield t}*traverseCommutator(t,r){if(r.depth===0){yield t;return}let n={depth:r.depth?r.depth-1:null};yield new Ge(this.traverseAlg(t.A,n),this.traverseAlg(t.B,n))}*traverseConjugate(t,r){if(r.depth===0){yield t;return}let n={depth:r.depth?r.depth-1:null};yield new Te(this.traverseAlg(t.A,n),this.traverseAlg(t.B,n))}*traversePause(t,r){yield t}*traverseNewline(t,r){yield t}*traverseLineComment(t,r){yield t}},La=Ba;yl=new WeakSet,$c=function(t,r,n){let o=t.amount+r;if(n?.quantumMoveOrder){let l=n.quantumMoveOrder(t.quantum),i=Math.floor(l/2)+1-l;o=(o%l+l-i)%l+i}return o},ne(La,yl);Y0=new La,Z0=Y0.traverseAlg.bind(Y0)});function X0(e){if(!e)return[];if(ht(e,z))return e.units();if(typeof e=="string")return ua(e).units();let t=e;if(typeof t[Symbol.iterator]=="function")return t;throw"Invalid unit"}function ir(e){return ht(e,z)?e:new z(e)}function em(e,t){return e.is(Ye)||t.is(Ye)?"":e.is(Ft)&&!t.is(Ye)?\`
8
- \`:" "}var lt,Cr,z,Kt=b(()=>{Wt();pa();Dt();ga();Ra();po();Qt();Lo();ca();Cr=class extends Me{constructor(t){super();ne(this,lt,void 0);q(this,lt,Array.from(X0(t)));for(let r of d(this,lt))if(!q0(r))throw new Error("An alg can only contain units.")}isIdentical(t){let r=t;if(!t.is(Cr))return!1;let n=Array.from(d(this,lt)),o=Array.from(d(r,lt));if(n.length!==o.length)return!1;for(let l=0;l<n.length;l++)if(!n[l].isIdentical(o[l]))return!1;return!0}invert(){return new Cr(G0(Array.from(d(this,lt)).map(t=>t.invert())))}*experimentalExpand(t=V.Forwards,r){r??(r=1/0);for(let n of ia(d(this,lt),t))yield*n.experimentalExpand(t,r)}expand(t){return new Cr(this.experimentalExpand(V.Forwards,t?.depth??1/0))}*experimentalLeafMoves(){for(let t of this.experimentalExpand())t.is(B)&&(yield t)}concat(t){return new Cr(Array.from(d(this,lt)).concat(Array.from(X0(t))))}experimentalIsEmpty(){for(let t of d(this,lt))return!1;return!0}static fromString(t){return ua(t)}*units(){for(let t of d(this,lt))yield t}experimentalNumUnits(){return Array.from(d(this,lt)).length}get type(){return Dl("deprecated: type"),"sequence"}toString(){let t="",r=null;for(let n of d(this,lt))r&&(t+=em(r,n)),t+=n.toString(),r=n;return t}simplify(t){return new Cr(Z0(this,t??{}))}},z=Cr;lt=new WeakMap});var tm,J0=b(()=>{Kt();Al();co();mo();Qt();Bo();tm={Sune:new z([new B("R",1),new B("U",1),new B("R",-1),new B("U",1),new B("R",1),new B("U",-2),new B("R",-1)]),AntiSune:new z([new B("R",1),new B("U",2),new B("R",-1),new B("U",-1),new B("R",1),new B("U",-1),new B("R",-1)]),SuneCommutator:new z([new Ge(new z([new B("R",1),new B("U",1),new B("R",-2)]),new z([new Te(new z([new B("R",1)]),new z([new B("U",1)]))]))]),Niklas:new z([new B("R",1),new B("U",-1),new B("L",-1),new B("U",1),new B("R",-1),new B("U",-1),new B("L",1),new B("U",1)]),EPerm:new z([new B("x",-1),new Ge(new z([new Te(new z([new B("R",1)]),new z([new B("U",-1)]))]),new z([new B("D",1)])),new Ge(new z([new Te(new z([new B("R",1)]),new z([new B("U",1)]))]),new z([new B("D",1)])),new B("x",1)]),FURURFCompact:new z([new Te(new z([new B("F",1)]),new z([new Ge(new z([new B("U",1)]),new z([new B("R",1)]))]))]),APermCompact:new z([new Te(new z([new B("R",2)]),new z([new Ge(new z([new B("F",2)]),new z([new B("R",-1),new B("B",-1),new B("R",1)]))]))]),FURURFMoves:new z([new B("F",1),new B("U",1),new B("R",1),new B("U",-1),new B("R",-1),new B("F",-1)]),TPerm:new z([new B("R",1),new B("U",1),new B("R",-1),new B("U",-1),new B("R",-1),new B("F",1),new B("R",2),new B("U",-1),new B("R",-1),new B("U",-1),new B("R",1),new B("U",1),new B("R",-1),new B("F",-1)]),HeadlightSwaps:new z([new Te(new z([new B("F",1)]),new z([new ut(new z([new Ge(new z([new B("R",1)]),new z([new B("U",1)]))]),3)]))]),TriplePause:new z([new Ze,new Ze,new Ze])}});var OF,$0=b(()=>{Qt();OF={73:new B("R"),75:new B("R'"),87:new B("B"),79:new B("B'"),83:new B("D"),76:new B("D'"),68:new B("L"),69:new B("L'"),74:new B("U"),70:new B("U'"),72:new B("F"),71:new B("F'"),78:new B("x'"),67:new B("l"),82:new B("l'"),85:new B("r"),77:new B("r'"),88:new B("d"),188:new B("d'"),84:new B("x"),89:new B("x"),66:new B("x'"),186:new B("y"),59:new B("y"),65:new B("y'"),80:new B("z"),81:new B("z'"),90:new B("M'"),190:new B("M'")}});var e2=b(()=>{});var t2=b(()=>{Kt()});var Re=b(()=>{Kt();sa();Ra();J0();$0();Al();Qt();e2();t2();pa();Dt()});function Ro(e,t,r){let n={};for(let o in e.orbits){let l=e.orbits[o],i=t[o],a=r[o];if(Do(l.numOrientations,a))n[o]=i;else if(Do(l.numOrientations,i))n[o]=a;else{let f=new Array(l.numPieces);if(l.numOrientations===1){for(let s=0;s<l.numPieces;s++)f[s]=i.permutation[a.permutation[s]];n[o]={permutation:f,orientation:i.orientation}}else{let s=new Array(l.numPieces);for(let g=0;g<l.numPieces;g++)s[g]=(i.orientation[a.permutation[g]]+a.orientation[g])%l.numOrientations,f[g]=i.permutation[a.permutation[g]];n[o]={permutation:f,orientation:s}}}}return n}function da(e,t,r){let n={};for(let o in e.orbits){let l=e.orbits[o],i=t[o],a=r[o];if(Do(l.numOrientations,a))n[o]=i;else{let f=new Array(l.numPieces);if(l.numOrientations===1){for(let s=0;s<l.numPieces;s++)f[s]=i.pieces[a.permutation[s]];n[o]={pieces:f,orientation:i.orientation}}else{let s=new Array(l.numPieces);for(let g=0;g<l.numPieces;g++)s[g]=(i.orientation[a.permutation[g]]+a.orientation[g])%l.numOrientations,f[g]=i.pieces[a.permutation[g]];n[o]={pieces:f,orientation:s}}}}return n}var Ul=b(()=>{Fo()});function rm(e){let t=n2.get(e);if(t)return t;let r=new Array(e),n=new Array(e);for(let l=0;l<e;l++)r[l]=l,n[l]=0;let o={permutation:r,orientation:n};return r2&&(Object.freeze(r),Object.freeze(n),Object.freeze(o)),n2.set(e,o),o}function o2(e){let t={};for(let[r,n]of Object.entries(e.orbits))t[r]=rm(n.numPieces);return r2&&Object.freeze(t),t}function l2(e,t){let r=t.quantum.toString(),n=e.definition.moves[r];if(n)return sr(e,n,t.amount);let o=e.definition.moves[t.toString()];if(o)return o;let l=e.definition.moves[t.invert().toString()];if(l)return sr(e,l,-1);throw new Error(\`Invalid move for KPuzzle (\${e.name()}): \${t}\`)}var r2,n2,Da=b(()=>{Fo();r2=!1,n2=new Map});var pe,bl=b(()=>{Ul();ho();pe=class{constructor(t,r){this.kpuzzle=t;this.stateData=r}static fromTransformation(t){let r=da(t.kpuzzle.definition,t.kpuzzle.definition.startStateData,t.transformationData);return new pe(t.kpuzzle,r)}apply(t){return this.applyTransformation(this.kpuzzle.toTransformation(t))}applyTransformation(t){if(t.isIdentityTransformation())return new pe(this.kpuzzle,this.stateData);let r=da(this.kpuzzle.definition,this.stateData,t.transformationData);return new pe(this.kpuzzle,r)}applyMove(t){return this.applyTransformation(this.kpuzzle.moveToTransformation(t))}applyAlg(t){return this.applyTransformation(this.kpuzzle.algToTransformation(t))}experimentalToTransformation(){if(!this.kpuzzle.canConvertStateToUniqueTransformation())return null;let t={};for(let[r,n]of Object.entries(this.stateData)){let o={permutation:n.pieces,orientation:n.orientation};t[r]=o}return new At(this.kpuzzle,t)}}});var Pr,fr,At,ho=b(()=>{Fo();Ul();Da();bl();fr=class{constructor(t,r){this.kpuzzle=t;this.transformationData=r;ne(this,Pr,void 0)}invert(){return new fr(this.kpuzzle,Fa(this.kpuzzle,this.transformationData))}isIdentityTransformation(){return d(this,Pr)??q(this,Pr,this.isIdentical(this.kpuzzle.identityTransformation()))}static experimentalConstructIdentity(t){let r=new fr(t,o2(t.definition));return q(r,Pr,!0),r}isIdentical(t){return i2(this.kpuzzle,this.transformationData,t.transformationData)}apply(t){return this.applyTransformation(this.kpuzzle.toTransformation(t))}applyTransformation(t){if(this.kpuzzle!==t.kpuzzle)throw new Error(\`Tried to apply a transformation for a KPuzzle (\${t.kpuzzle.name()}) to a different KPuzzle (\${this.kpuzzle.name()}).\`);return d(this,Pr)?new fr(this.kpuzzle,t.transformationData):d(t,Pr)?new fr(this.kpuzzle,this.transformationData):new fr(this.kpuzzle,Ro(this.kpuzzle.definition,this.transformationData,t.transformationData))}applyMove(t){return this.applyTransformation(this.kpuzzle.moveToTransformation(t))}applyAlg(t){return this.applyTransformation(this.kpuzzle.algToTransformation(t))}toKState(){return pe.fromTransformation(this)}repetitionOrder(){return a2(this.kpuzzle.definition,this)}selfMultiply(t){return new fr(this.kpuzzle,sr(this.kpuzzle,this.transformationData,t))}},At=fr;Pr=new WeakMap});function Do(e,t){let{permutation:r}=t,n=r.length;for(let o=0;o<n;o++)if(r[o]!==o)return!1;if(e>1){let{orientation:o}=t;for(let l=0;l<n;l++)if(o[l]!==0)return!1}return!0}function nm(e,t,r,n={}){for(let o=0;o<e.numPieces;o++)if(!n?.ignoreOrientation&&t.orientation[o]!==r.orientation[o]||!n?.ignorePermutation&&t.permutation[o]!==r.permutation[o])return!1;return!0}function i2(e,t,r){for(let[n,o]of Object.entries(e.definition.orbits))if(!nm(o,t[n],r[n]))return!1;return!0}function Fa(e,t){let r={};for(let n in e.definition.orbits){let o=e.definition.orbits[n],l=t[n];if(Do(o.numOrientations,l))r[n]=l;else if(o.numOrientations===1){let i=new Array(o.numPieces);for(let a=0;a<o.numPieces;a++)i[l.permutation[a]]=a;r[n]={permutation:i,orientation:l.orientation}}else{let i=new Array(o.numPieces),a=new Array(o.numPieces);for(let f=0;f<o.numPieces;f++){let s=l.permutation[f];i[s]=f,a[s]=(o.numOrientations-l.orientation[f]+o.numOrientations)%o.numOrientations}r[n]={permutation:i,orientation:a}}}return r}function sr(e,t,r){if(r===1)return t;if(r<0)return sr(e,Fa(e,t),-r);if(r===0){let{transformationData:l}=e.identityTransformation();return l}let n=t;r!==2&&(n=sr(e,t,Math.floor(r/2)));let o=Ro(e.definition,n,n);return r%2==0?o:Ro(e.definition,t,o)}function ha(e,t){return t?ha(t,e%t):e}function a2(e,t){let r=1;for(let n in e.orbits){let o=e.orbits[n],l=t.transformationData[n],i=new Array(o.numPieces);for(let a=0;a<o.numPieces;a++)if(!i[a]){let f=a,s=0,g=0;for(;i[f]=!0,s=s+l.orientation[f],g=g+1,f=l.permutation[f],f!==a;);s!==0&&(g=g*o.numOrientations/ha(o.numOrientations,s)),r=r*g/ha(r,g)}}return r}var s2,f2,u2,Fo=b(()=>{Re();Ul();ho();s2=class extends Rn{traverseAlg(t,r){let n=null;for(let o of t.units())n?n=n.applyTransformation(this.traverseUnit(o,r)):n=this.traverseUnit(o,r);return n??r.identityTransformation()}traverseGrouping(t,r){let n=this.traverseAlg(t.alg,r);return new At(r,sr(r,n.transformationData,t.amount))}traverseMove(t,r){return r.moveToTransformation(t)}traverseCommutator(t,r){let n=this.traverseAlg(t.A,r),o=this.traverseAlg(t.B,r);return n.applyTransformation(o).applyTransformation(n.invert()).applyTransformation(o.invert())}traverseConjugate(t,r){let n=this.traverseAlg(t.A,r),o=this.traverseAlg(t.B,r);return n.applyTransformation(o).applyTransformation(n.invert())}traversePause(t,r){return r.identityTransformation()}traverseNewline(t,r){return r.identityTransformation()}traverseLineComment(t,r){return r.identityTransformation()}},f2=new s2,u2=f2.traverseAlg.bind(f2)});var Dn,wl,Oe,Aa=b(()=>{Re();Fo();Da();bl();ho();Oe=class{constructor(t,r){this.definition=t;ne(this,Dn,new Map);ne(this,wl,void 0);this.experimentalPGNotation=r?.experimentalPGNotation}name(){return this.definition.name}identityTransformation(){return At.experimentalConstructIdentity(this)}moveToTransformation(t){typeof t=="string"&&(t=new B(t));let r=t.toString(),n=d(this,Dn).get(r);if(n)return new At(this,n);if(this.experimentalPGNotation){let l=this.experimentalPGNotation.lookupMove(t);if(!l)throw new Error(\`could not map to internal move: \${t}\`);return d(this,Dn).set(r,l),new At(this,l)}let o=l2(this,t);return d(this,Dn).set(r,o),new At(this,o)}algToTransformation(t){return typeof t=="string"&&(t=new z(t)),u2(t,this)}toTransformation(t){return typeof t=="string"?this.algToTransformation(t):t?.is?.(z)?this.algToTransformation(t):t?.is?.(B)?this.moveToTransformation(t):t}startState(){return new pe(this,this.definition.startStateData)}canConvertStateToUniqueTransformation(){return d(this,wl)??q(this,wl,(()=>{for(let[t,r]of Object.entries(this.definition.orbits)){let n=new Array(r.numPieces).fill(!1);for(let o of this.definition.startStateData[t].pieces)n[o]=!0;for(let o of n)if(!o)return!1}return!0})())}get state(){throw new Error("KPuzzle is now a different (stateless) class.")}reset(){throw new Error("KPuzzle is now a different (stateless) class.")}applyMove(t){throw new Error("KPuzzle is now a different class. Try \`.moveToTransformation()\` to get the transformation for a move.")}applyAlg(t){throw new Error("KPuzzle is now a different class. Try \`.algToTransformation()\` to get the transformation for an alg.")}};Dn=new WeakMap,wl=new WeakMap});var de,g2=b(()=>{de={name:"3x3x3",orbits:{EDGES:{numPieces:12,numOrientations:2},CORNERS:{numPieces:8,numOrientations:3},CENTERS:{numPieces:6,numOrientations:4}},startStateData:{EDGES:{pieces:[0,1,2,3,4,5,6,7,8,9,10,11],orientation:[0,0,0,0,0,0,0,0,0,0,0,0]},CORNERS:{pieces:[0,1,2,3,4,5,6,7],orientation:[0,0,0,0,0,0,0,0]},CENTERS:{pieces:[0,1,2,3,4,5],orientation:[0,0,0,0,0,0]}},moves:{U:{EDGES:{permutation:[1,2,3,0,4,5,6,7,8,9,10,11],orientation:[0,0,0,0,0,0,0,0,0,0,0,0]},CORNERS:{permutation:[1,2,3,0,4,5,6,7],orientation:[0,0,0,0,0,0,0,0]},CENTERS:{permutation:[0,1,2,3,4,5],orientation:[1,0,0,0,0,0]}},y:{EDGES:{permutation:[1,2,3,0,5,6,7,4,10,8,11,9],orientation:[0,0,0,0,0,0,0,0,1,1,1,1]},CORNERS:{permutation:[1,2,3,0,7,4,5,6],orientation:[0,0,0,0,0,0,0,0]},CENTERS:{permutation:[0,2,3,4,1,5],orientation:[1,0,0,0,0,3]}},x:{EDGES:{permutation:[4,8,0,9,6,10,2,11,5,7,1,3],orientation:[1,0,1,0,1,0,1,0,0,0,0,0]},CORNERS:{permutation:[4,0,3,5,7,6,2,1],orientation:[2,1,2,1,1,2,1,2]},CENTERS:{permutation:[2,1,5,3,0,4],orientation:[0,3,0,1,2,2]}},L:{EDGES:{permutation:[0,1,2,11,4,5,6,9,8,3,10,7],orientation:[0,0,0,0,0,0,0,0,0,0,0,0]},CORNERS:{permutation:[0,1,6,2,4,3,5,7],orientation:[0,0,2,1,0,2,1,0]},CENTERS:{permutation:[0,1,2,3,4,5],orientation:[0,1,0,0,0,0]}},F:{EDGES:{permutation:[9,1,2,3,8,5,6,7,0,4,10,11],orientation:[1,0,0,0,1,0,0,0,1,1,0,0]},CORNERS:{permutation:[3,1,2,5,0,4,6,7],orientation:[1,0,0,2,2,1,0,0]},CENTERS:{permutation:[0,1,2,3,4,5],orientation:[0,0,1,0,0,0]}},R:{EDGES:{permutation:[0,8,2,3,4,10,6,7,5,9,1,11],orientation:[0,0,0,0,0,0,0,0,0,0,0,0]},CORNERS:{permutation:[4,0,2,3,7,5,6,1],orientation:[2,1,0,0,1,0,0,2]},CENTERS:{permutation:[0,1,2,3,4,5],orientation:[0,0,0,1,0,0]}},B:{EDGES:{permutation:[0,1,10,3,4,5,11,7,8,9,6,2],orientation:[0,0,1,0,0,0,1,0,0,0,1,1]},CORNERS:{permutation:[0,7,1,3,4,5,2,6],orientation:[0,2,1,0,0,0,2,1]},CENTERS:{permutation:[0,1,2,3,4,5],orientation:[0,0,0,0,1,0]}},D:{EDGES:{permutation:[0,1,2,3,7,4,5,6,8,9,10,11],orientation:[0,0,0,0,0,0,0,0,0,0,0,0]},CORNERS:{permutation:[0,1,2,3,5,6,7,4],orientation:[0,0,0,0,0,0,0,0]},CENTERS:{permutation:[0,1,2,3,4,5],orientation:[0,0,0,0,0,1]}},z:{EDGES:{permutation:[9,3,11,7,8,1,10,5,0,4,2,6],orientation:[1,1,1,1,1,1,1,1,1,1,1,1]},CORNERS:{permutation:[3,2,6,5,0,4,7,1],orientation:[1,2,1,2,2,1,2,1]},CENTERS:{permutation:[1,5,2,0,4,3],orientation:[1,1,1,1,3,1]}},M:{EDGES:{permutation:[2,1,6,3,0,5,4,7,8,9,10,11],orientation:[1,0,1,0,1,0,1,0,0,0,0,0]},CORNERS:{permutation:[0,1,2,3,4,5,6,7],orientation:[0,0,0,0,0,0,0,0]},CENTERS:{permutation:[4,1,0,3,5,2],orientation:[2,0,0,0,2,0]}},E:{EDGES:{permutation:[0,1,2,3,4,5,6,7,9,11,8,10],orientation:[0,0,0,0,0,0,0,0,1,1,1,1]},CORNERS:{permutation:[0,1,2,3,4,5,6,7],orientation:[0,0,0,0,0,0,0,0]},CENTERS:{permutation:[0,4,1,2,3,5],orientation:[0,0,0,0,0,0]}},S:{EDGES:{permutation:[0,3,2,7,4,1,6,5,8,9,10,11],orientation:[0,1,0,1,0,1,0,1,0,0,0,0]},CORNERS:{permutation:[0,1,2,3,4,5,6,7],orientation:[0,0,0,0,0,0,0,0]},CENTERS:{permutation:[1,5,2,0,4,3],orientation:[1,1,0,1,0,1]}},u:{EDGES:{permutation:[1,2,3,0,4,5,6,7,10,8,11,9],orientation:[0,0,0,0,0,0,0,0,1,1,1,1]},CORNERS:{permutation:[1,2,3,0,4,5,6,7],orientation:[0,0,0,0,0,0,0,0]},CENTERS:{permutation:[0,2,3,4,1,5],orientation:[1,0,0,0,0,0]}},l:{EDGES:{permutation:[2,1,6,11,0,5,4,9,8,3,10,7],orientation:[1,0,1,0,1,0,1,0,0,0,0,0]},CORNERS:{permutation:[0,1,6,2,4,3,5,7],orientation:[0,0,2,1,0,2,1,0]},CENTERS:{permutation:[4,1,0,3,5,2],orientation:[2,1,0,0,2,0]}},f:{EDGES:{permutation:[9,3,2,7,8,1,6,5,0,4,10,11],orientation:[1,1,0,1,1,1,0,1,1,1,0,0]},CORNERS:{permutation:[3,1,2,5,0,4,6,7],orientation:[1,0,0,2,2,1,0,0]},CENTERS:{permutation:[1,5,2,0,4,3],orientation:[1,1,1,1,0,1]}},r:{EDGES:{permutation:[4,8,0,3,6,10,2,7,5,9,1,11],orientation:[1,0,1,0,1,0,1,0,0,0,0,0]},CORNERS:{permutation:[4,0,2,3,7,5,6,1],orientation:[2,1,0,0,1,0,0,2]},CENTERS:{permutation:[2,1,5,3,0,4],orientation:[0,0,0,1,2,2]}},b:{EDGES:{permutation:[0,5,10,1,4,7,11,3,8,9,6,2],orientation:[0,1,1,1,0,1,1,1,0,0,1,1]},CORNERS:{permutation:[0,7,1,3,4,5,2,6],orientation:[0,2,1,0,0,0,2,1]},CENTERS:{permutation:[3,0,2,5,4,1],orientation:[3,3,0,3,1,3]}},d:{EDGES:{permutation:[0,1,2,3,7,4,5,6,9,11,8,10],orientation:[0,0,0,0,0,0,0,0,1,1,1,1]},CORNERS:{permutation:[0,1,2,3,5,6,7,4],orientation:[0,0,0,0,0,0,0,0]},CENTERS:{permutation:[0,4,1,2,3,5],orientation:[0,0,0,0,0,1]}}}};de.moves.Uw=de.moves.u;de.moves.Lw=de.moves.l;de.moves.Fw=de.moves.f;de.moves.Rw=de.moves.r;de.moves.Bw=de.moves.b;de.moves.Dw=de.moves.d;de.moves.Rv=de.moves.x;de.moves.Uv=de.moves.y;de.moves.Fv=de.moves.z;de.moves.Lv={EDGES:{permutation:[2,10,6,11,0,8,4,9,1,3,5,7],orientation:[1,0,1,0,1,0,1,0,0,0,0,0]},CORNERS:{permutation:[1,7,6,2,0,3,5,4],orientation:[2,1,2,1,1,2,1,2]},CENTERS:{permutation:[4,1,0,3,5,2],orientation:[2,1,0,3,2,0]}};de.moves.Dv={EDGES:{permutation:[3,0,1,2,7,4,5,6,9,11,8,10],orientation:[0,0,0,0,0,0,0,0,1,1,1,1]},CORNERS:{permutation:[3,0,1,2,5,6,7,4],orientation:[0,0,0,0,0,0,0,0]},CENTERS:{permutation:[0,4,1,2,3,5],orientation:[3,0,0,0,0,1]}};de.moves.Bv={EDGES:{permutation:[8,5,10,1,9,7,11,3,4,0,6,2],orientation:[1,1,1,1,1,1,1,1,1,1,1,1]},CORNERS:{permutation:[4,7,1,0,5,3,2,6],orientation:[1,2,1,2,2,1,2,1]},CENTERS:{permutation:[3,0,2,5,4,1],orientation:[3,3,3,3,1,3]}}});var ya,Je=b(()=>{Aa();bl();ho();g2();Aa();ya=new Oe(de)});var c2=b(()=>{Je()});function mm(e){switch(e){case w.Regular:return om;case w.Dim:return um;case w.Ignored:return lm;case w.OrientationStickers:return im;case w.Invisible:return am;case w.IgnoreNonPrimary:return sm;case w.PermuteNonPrimary:return fm;case w.Ignoriented:return gm;case w.OrientationWithoutPermutation:return cm}}var w,Fn,zt,We,hn,xl,Mr,om,lm,im,am,sm,fm,um,gm,cm,Ao,yo,Uo=b(()=>{(function(s){s.Regular="Regular",s.Dim="Dim",s.Ignored="Ignored",s.OrientationStickers="OrientationStickers",s.Invisible="Invisible",s.Ignoriented="Ignoriented",s.IgnoreNonPrimary="IgnoreNonPrimary",s.PermuteNonPrimary="PermuteNonPrimary",s.OrientationWithoutPermutation="OrientationWithoutPermutation"})(w||(w={}));Fn=class{constructor(t,r){this.stickerings=new Map;for(let[n,o]of Object.entries(t.definition.orbits))this.stickerings.set(n,new Array(o.numPieces).fill(r))}},zt="regular",We="ignored",hn="oriented",xl="invisible",Mr="dim",om={facelets:[zt,zt,zt,zt,zt]},lm={facelets:[We,We,We,We,We]},im={facelets:[hn,hn,hn,hn,hn]},am={facelets:[xl,xl,xl,xl]},sm={facelets:[zt,We,We,We,We]},fm={facelets:[Mr,zt,zt,zt,zt]},um={facelets:[Mr,Mr,Mr,Mr,Mr]},gm={facelets:[Mr,We,We,We,We]},cm={facelets:[hn,We,We,We,We]};Ao=class extends Fn{constructor(t){super(t,w.Regular)}set(t,r){for(let[n,o]of this.stickerings.entries())for(let l=0;l<o.length;l++)t.stickerings.get(n)[l]&&(o[l]=r);return this}toAppearance(){let t={orbits:{}};for(let[r,n]of this.stickerings.entries()){let o=[],l={pieces:o};t.orbits[r]=l;for(let i of n)o.push(mm(i))}return t}},yo=class{constructor(t){this.kpuzzle=t}and(t){let r=new Fn(this.kpuzzle,!1);for(let[n,o]of Object.entries(this.kpuzzle.definition.orbits)){e:for(let l=0;l<o.numPieces;l++){r.stickerings.get(n)[l]=!0;for(let i of t)if(!i.stickerings.get(n)[l]){r.stickerings.get(n)[l]=!1;continue e}}}return r}or(t){let r=new Fn(this.kpuzzle,!1);for(let[n,o]of Object.entries(this.kpuzzle.definition.orbits)){e:for(let l=0;l<o.numPieces;l++){r.stickerings.get(n)[l]=!1;for(let i of t)if(i.stickerings.get(n)[l]){r.stickerings.get(n)[l]=!0;continue e}}}return r}not(t){let r=new Fn(this.kpuzzle,!1);for(let[n,o]of Object.entries(this.kpuzzle.definition.orbits))for(let l=0;l<o.numPieces;l++)r.stickerings.get(n)[l]=!t.stickerings.get(n)[l];return r}all(){return this.and(this.moves([]))}move(t){let r=this.kpuzzle.moveToTransformation(t),n=new Fn(this.kpuzzle,!1);for(let[o,l]of Object.entries(this.kpuzzle.definition.orbits))for(let i=0;i<l.numPieces;i++)(r.transformationData[o].permutation[i]!==i||r.transformationData[o].orientation[i]!==0)&&(n.stickerings.get(o)[i]=!0);return n}moves(t){return t.map(r=>this.move(r))}}});function pm(e){(async()=>{m2=e;let t=Array.from(document.body.querySelectorAll("twisty-player"));console.log(\`Setting the custom stickering for \${t.length} players!\`);let r=[];for(let n of t)r.push((async()=>{let o=await n.experimentalModel.stickering.get();n.experimentalStickering=o==="experimental-global-custom-1"?"experimental-global-custom-2":"experimental-global-custom-1"})());await Promise.all(r),console.log("Success!")})()}function p2(e,t){m2(e,t)}var m2,L2=b(()=>{Uo();m2=()=>{};globalThis.location&&new URL(location.href).searchParams.get("global-custom-stickerer")==="true"&&(window.setGlobalCustomStickerer=pm,window.PieceStickering=w,console.log("Global custom stickerer enabled! (using: global-custom-stickerer=true)"),console.log("Look here for inspiration:","https://github.com/cubing/cubing.js/blob/81b5cab3e27d8defb39dd1e0a10bc9e8ba894d26/src/cubing/puzzles/stickerings/cube-stickerings.ts#L67"))});async function _t(e,t){let r=await e.kpuzzle(),n=new Ao(r),o=new yo(r),l=()=>o.move("U"),i=()=>o.or(o.moves(["U","D"])),a=()=>o.not(i()),f=()=>o.or(o.moves(["L","R"])),s=()=>o.not(f()),g=()=>o.or(o.moves(["F","B"])),c=()=>o.not(g()),u=()=>o.not(l()),m=()=>o.and([l(),s(),c()]),p=()=>o.and([o.and(o.moves(["F","R"])),o.not(i())]),L=()=>o.and(o.moves(["D","R","F"])),R=()=>o.or([L(),p()]),D=()=>o.or([o.and([s(),a()]),o.and([s(),c()]),o.and([a(),c()])]),A=()=>o.or([o.and([s(),i(),g()]),o.and([a(),f(),g()]),o.and([c(),i(),f()])]),y=()=>o.not(o.or([D(),A()])),k=()=>o.or([s(),o.and([l(),A()])]);function E(){n.set(u(),w.Dim)}function Q(){n.set(l(),w.PermuteNonPrimary),n.set(m(),w.Dim)}function $(){n.set(l(),w.IgnoreNonPrimary),n.set(m(),w.Regular)}function G(){n.set(l(),w.Ignoriented),n.set(m(),w.Dim)}switch(t){case"full":break;case"PLL":E(),Q();break;case"CLS":E(),n.set(o.and(o.moves(["D","R","F"])),w.Regular),n.set(l(),w.Ignoriented),n.set(o.and([l(),s(),c()]),w.Dim),n.set(o.and([l(),y()]),w.IgnoreNonPrimary);break;case"OLL":E(),$();break;case"COLL":E(),Q(),n.set(o.and([l(),y()]),w.Regular);break;case"OCLL":E(),G(),n.set(o.and([l(),y()]),w.IgnoreNonPrimary);break;case"CLL":E(),n.set(o.not(o.and([y(),l()])),w.Dim);break;case"ELL":E(),n.set(l(),w.Dim),n.set(o.and([l(),A()]),w.Regular);break;case"ELS":E(),$(),n.set(o.and([l(),y()]),w.Ignored),n.set(p(),w.Regular),n.set(L(),w.Ignored);break;case"LL":E();break;case"F2L":n.set(l(),w.Ignored);break;case"ZBLL":E(),n.set(l(),w.PermuteNonPrimary),n.set(m(),w.Dim),n.set(o.and([l(),y()]),w.Regular);break;case"ZBLS":E(),n.set(R(),w.Regular),$(),n.set(o.and([l(),y()]),w.Ignored);break;case"WVLS":case"VLS":E(),n.set(R(),w.Regular),$();break;case"LS":E(),n.set(R(),w.Regular),n.set(l(),w.Ignored),n.set(m(),w.Dim);break;case"EO":n.set(y(),w.Ignored),n.set(A(),w.OrientationWithoutPermutation);break;case"EOline":n.set(y(),w.Ignored),n.set(A(),w.OrientationWithoutPermutation),n.set(o.and(o.moves(["D","M"])),w.Regular);break;case"EOcross":n.set(A(),w.OrientationWithoutPermutation),n.set(o.move("D"),w.Regular),n.set(y(),w.Ignored);break;case"CMLL":n.set(u(),w.Dim),n.set(k(),w.Ignored),n.set(o.and([l(),y()]),w.Regular);break;case"L6E":n.set(o.not(k()),w.Dim);break;case"L6EO":n.set(o.not(k()),w.Dim),n.set(k(),w.OrientationWithoutPermutation),n.set(o.and([D(),i()]),w.OrientationStickers);break;case"Daisy":n.set(o.all(),w.Ignored),n.set(D(),w.Dim),n.set(o.and([o.move("D"),D()]),w.Regular),n.set(o.and([o.move("U"),A()]),w.IgnoreNonPrimary);break;case"Cross":n.set(o.all(),w.Ignored),n.set(D(),w.Dim),n.set(o.and([o.move("D"),D()]),w.Regular),n.set(o.and([o.move("D"),A()]),w.Regular);break;case"2x2x2":n.set(o.or(o.moves(["U","F","R"])),w.Ignored),n.set(o.and([o.or(o.moves(["U","F","R"])),D()]),w.Dim);break;case"2x2x3":n.set(o.all(),w.Dim),n.set(o.or(o.moves(["U","F","R"])),w.Ignored),n.set(o.and([o.or(o.moves(["U","F","R"])),D()]),w.Dim),n.set(o.and([o.move("F"),o.not(o.or(o.moves(["U","R"])))]),w.Regular);break;case"Void Cube":n.set(D(),w.Invisible);break;case"picture":case"invisible":n.set(o.all(),w.Invisible);break;case"centers-only":n.set(o.not(D()),w.Ignored);break;case"experimental-global-custom-1":case"experimental-global-custom-2":p2(n,o);break;default:console.warn(\`Unsupported stickering for \${e.id}: \${t}. Setting all pieces to dim.\`),n.set(o.and(o.moves([])),w.Dim)}return n.toAppearance()}async function An(){return["full","PLL","CLS","OLL","COLL","OCLL","ELL","ELS","LL","F2L","ZBLL","ZBLS","WVLS","VLS","LS","EO","EOline","EOcross","CMLL","L6E","L6EO","Daisy","Cross","2x2x2","2x2x3","Void Cube","picture","invisible","centers-only"]}var yn=b(()=>{Uo();L2()});function Ke(e){let t=null;return()=>t??(t=e())}var Gr=b(()=>{});var bo,B2=b(()=>{bo=class{constructor(t,r){this.facenames=t;this.prefixFree=!0;this.gripnames=[];r&&(this.gripnames=r);for(let n=0;this.prefixFree&&n<t.length;n++)for(let o=0;this.prefixFree&&o<t.length;o++)n!==o&&t[n].startsWith(t[o])&&(this.prefixFree=!1)}setGripNames(t){this.gripnames=t}splitByFaceNames(t){let r=[],n=0;for(;n<t.length;){n>0&&n<t.length&&t[n]==="_"&&n++;let o=-1;for(let l=0;l<this.facenames.length;l++)t.substr(n).startsWith(this.facenames[l])&&(o<0||this.facenames[l].length>this.facenames[o].length)&&(o=l);if(o>=0)r.push(o),n+=this.facenames[o].length;else throw new Error("Could not split "+t+" into face names.")}return r}joinByFaceIndices(t){let r="",n=[];for(let o=0;o<t.length;o++)n.push(r),n.push(this.facenames[t[o]]),this.prefixFree||(r="_");return n.join("")}spinmatch(t,r){if(t===r)return!0;try{let n=this.splitByFaceNames(t),o=this.splitByFaceNames(r);if(n.length!==o.length&&n.length<3)return!1;for(let l=0;l<n.length;l++){for(let a=0;a<l;a++)if(n[l]===n[a])return!1;let i=!1;for(let a=0;a<o.length;a++)if(n[l]===o[a]){i=!0;break}if(!i)return!1}return!0}catch(n){return!1}}spinmatchv(t,r){return t.endsWith("v")&&r.endsWith("v")?this.spinmatch(t.slice(0,t.length-1),r.slice(0,r.length-1)):this.spinmatch(t,r)}unswizzle(t){(t.endsWith("v")||t.endsWith("w"))&&t[0]<="Z"&&(t=t.slice(0,t.length-1));let r=t.toUpperCase();for(let n=0;n<this.gripnames.length;n++){let o=this.gripnames[n];if(this.spinmatch(r,o))return o}return t}}});var Un,R2=b(()=>{Un=class{notationToInternal(t){return t}notationToExternal(t){return t}}});var Sl,d2=b(()=>{Re();Sl=class{constructor(t,r){this.child=t;this.sw=r}notationToInternal(t){return t.family==="T"&&t.innerLayer===void 0&&t.outerLayer===void 0?new B(new P("FLRv",t.innerLayer,t.outerLayer),t.amount):this.child.notationToInternal(t)}notationToExternal(t){let r=t.family;return r.length>0&&r[r.length-1]==="v"&&(r=r.substring(0,r.length-1)),this.sw.spinmatch(r,"FLUR")?new B(new P("T",t.innerLayer,t.outerLayer),t.amount):this.child.notationToExternal(t)}}});var wo,D2=b(()=>{Re();wo=class{constructor(t,r){this.internalNames=t;this.externalNames=r}convertString(t,r,n){let o="";(t.endsWith("v")||t.endsWith("v"))&&t<="_"&&(o=t.slice(t.length-1),t=t.slice(0,t.length-1));let l=t.toUpperCase(),i=!1;return t!==l&&(i=!0,t=l),t=n.joinByFaceIndices(r.splitByFaceNames(t)),i&&(t=t.toLowerCase()),t+o}convert(t,r,n){let o=t.family,l=this.convertString(o,r,n);return o===l?t:new B(new P(l,t.innerLayer,t.outerLayer),t.amount)}notationToInternal(t){return this.convert(t,this.externalNames,this.internalNames)}notationToExternal(t){return this.convert(t,this.internalNames,this.externalNames)}}});var vl,F2=b(()=>{Re();vl=class{constructor(t){this.child=t}notationToInternal(t){if(t.innerLayer===void 0&&t.outerLayer===void 0){if(Math.abs(t.amount)===1){if(t.family==="R++")return new B(new P("L",3,2),-2*t.amount);if(t.family==="R--")return new B(new P("L",3,2),2*t.amount);if(t.family==="D++")return new B(new P("U",3,2),-2*t.amount);if(t.family==="D--")return new B(new P("U",3,2),2*t.amount);if(t.family==="R_PLUSPLUS_")return new B(new P("L",3,2),-2*t.amount);if(t.family==="D_PLUSPLUS_")return new B(new P("U",3,2),-2*t.amount)}if(t.family==="y")return new B("Uv",t.amount)}return this.child.notationToInternal(t)}notationToExternal(t){return t.family==="Uv"?new B(new P("y",t.innerLayer,t.outerLayer),t.amount):t.family==="Dv"?new B("y",-t.amount):this.child.notationToExternal(t)}}});var El,h2=b(()=>{Re();El=class{constructor(t){this.slices=t}notationToInternal(t){let r=t.family;return!t.innerLayer&&!t.outerLayer&&(r==="x"?t=new B("Rv",t.amount):r==="y"?t=new B("Uv",t.amount):r==="z"&&(t=new B("Fv",t.amount)),(this.slices&1)==1&&(r==="E"?t=new B(new P("D",(this.slices+1)/2),t.amount):r==="M"?t=new B(new P("L",(this.slices+1)/2),t.amount):r==="S"&&(t=new B(new P("F",(this.slices+1)/2),t.amount))),this.slices>2&&(r==="e"?t=new B(new P("D",this.slices-1,2),t.amount):r==="m"?t=new B(new P("L",this.slices-1,2),t.amount):r==="s"&&(t=new B(new P("F",this.slices-1,2),t.amount)))),t}notationToExternal(t){let r=t.family;if(!t.innerLayer&&!t.outerLayer){if(r==="Rv")return new B("x",t.amount);if(r==="Uv")return new B("y",t.amount);if(r==="Fv")return new B("z",t.amount);if(r==="Lv")return new B("x",-t.amount);if(r==="Dv")return new B("y",-t.amount);if(r==="Bv")return new B("z",-t.amount)}return t}}});var Lm,Bm,A2,y2,U2,xo,kl,b2=b(()=>{Re();Lm={U:"frl",L:"fld",R:"fdr",B:"dlr",u:"FRL",l:"FLD",r:"FDR",b:"DLR",Uv:"FRLv",Lv:"FLDv",Rv:"FDRv",Bv:"DLRv",D:"D",F:"F",BL:"L",BR:"R"},Bm={U:"FRL",L:"FLD",R:"FDR",B:"DLR",u:"frl",l:"fld",r:"fdr",b:"dlr",Uv:"FRLv",Lv:"FLDv",Rv:"FDRv",Bv:"DLRv",D:"D",F:"F",BL:"L",BR:"R",d:"d",f:"f",bl:"l",br:"r"},A2={U:"FRL",L:"FLD",R:"FDR",B:"DLR"},y2=new P("y"),U2=new P("Dv"),xo=class{constructor(t){this.child=t;this.wcaHack=!1;this.map=Lm}notationToInternal(t){if(this.wcaHack&&t.innerLayer===2&&t.outerLayer===null){let n=A2[t.family];if(n)return new B(new P(n,t.innerLayer,t.outerLayer),t.amount)}let r=this.map[t.family];return r?new B(new P(r,t.innerLayer,t.outerLayer),t.amount):y2.isIdentical(t.quantum)?new B(U2,-t.amount):null}notationToExternal(t){if(this.wcaHack&&t.innerLayer===2&&t.outerLayer===null){for(let[r,n]of Object.entries(A2))if(this.child.spinmatch(t.family,n))return new B(new P(r,t.innerLayer,t.outerLayer),t.amount)}for(let[r,n]of Object.entries(this.map))if(this.child.spinmatch(t.family,n))return new B(new P(r,t.innerLayer,t.outerLayer),t.amount);return U2.isIdentical(t.quantum)?new B(y2,-t.amount):null}},kl=class extends xo{constructor(t){super(t);this.map=Bm}}});var w2,Ua,x2,Rm,ba,S2,dm,wa,v2,Dm,zl,E2=b(()=>{Re();w2={U:"UBL",UL:"ULF",F:"UFR",UR:"URB",B:"DBL",D:"DFR",L:"DLF",R:"DRB",Uv:"UBLv",ULv:"ULFv",Fv:"UFRv",URv:"URBv",Bv:"DBLv",Dv:"DFRv",Lv:"DLFv",Rv:"DRBv"},Ua=new P("x"),x2=new P("Rv"),Rm=new P("Lv"),ba=new P("y"),S2=new P("Uv"),dm=new P("Dv"),wa=new P("z"),v2=new P("Fv"),Dm=new P("Bv"),zl=class{constructor(t){this.child=t}notationToInternal(t){if(t.innerLayer||t.outerLayer)return null;let r=w2[t.family];return r?new B(new P(r,t.outerLayer,t.innerLayer),t.amount):Ua.isIdentical(t.quantum)?new B(x2,t.amount):ba.isIdentical(t.quantum)?new B(S2,t.amount):wa.isIdentical(t.quantum)?new B(v2,t.amount):null}notationToExternal(t){for(let[r,n]of Object.entries(w2))if(this.child.spinmatchv(t.family,n))return new B(new P(r,t.innerLayer,t.outerLayer),t.amount);return x2.isIdentical(t.quantum)?new B(Ua,t.amount):Rm.isIdentical(t.quantum)?new B(Ua,-t.amount):S2.isIdentical(t.quantum)?new B(ba,t.amount):dm.isIdentical(t.quantum)?new B(ba,-t.amount):v2.isIdentical(t.quantum)?new B(wa,t.amount):Dm.isIdentical(t.quantum)?new B(wa,-t.amount):null}}});var xa=b(()=>{R2();d2();D2();F2();h2();b2();E2()});function k2(e){let t=0,r={};for(;t<e.length&&e[t][0]==="-";){let o=e[t++];if(o==="--rotations")r.addRotations=!0;else if(o==="--allmoves")r.allMoves=!0;else if(o==="--outerblockmoves")r.outerBlockMoves=!0;else if(o==="--vertexmoves")r.vertexMoves=!0;else if(o==="--nocorners")r.includeCornerOrbits=!1;else if(o==="--noedges")r.includeEdgeOrbits=!1;else if(o==="--noorientation")r.fixedOrientation=!0;else if(o==="--nocenters")r.includeCenterOrbits=!1;else if(o==="--omit")r.excludeOrbits=e[t].split(","),t++;else if(o==="--moves")r.moveList=e[t].split(","),t++;else if(o==="--optimize")r.optimizeOrbits=!0;else if(o==="--scramble")r.scrambleAmount=100;else if(o==="--fixcorner")r.fixedPieceType="v";else if(o==="--fixedge")r.fixedPieceType="e";else if(o==="--fixcenter")r.fixedPieceType="f";else if(o==="--orientcenters")r.orientCenters=!0;else if(o==="--puzzleorientation")r.puzzleOrientation=JSON.parse(e[t]),t++;else throw new Error("Bad option: "+o)}return{puzzleDescription:So(e.slice(t).join(" ")),options:r}}var Sa,va=b(()=>{_l();Sa=class{constructor(t={}){this.verbosity=0;this.allMoves=!1;this.vertexMoves=!1;this.addRotations=!1;this.moveList=null;this.fixedOrientation=!1;this.fixedPieceType=null;this.orientCenters=!1;this.includeCornerOrbits=!0;this.includeCenterOrbits=!0;this.includeEdgeOrbits=!0;this.excludeOrbits=[];this.optimizeOrbits=!1;this.grayCorners=!1;this.grayCenters=!1;this.grayEdges=!1;this.puzzleOrientation=null;this.puzzleOrientations=null;this.scrambleAmount=0;Object.assign(this,t)}}});function ur(e){if(!Ea[e]){let t=Array(e);for(let r=0;r<e;r++)t[r]=0;Ea[e]=t}return Ea[e]}function Ct(e){if(!ka[e]){let t=Array(e);for(let r=0;r<e;r++)t[r]=r;ka[e]=t}return ka[e]}function z2(e){return new pt(Ct(e))}function _2(e){let t=1;for(;e>1;)t*=e,e--;return t}function Fm(e,t){if(e>t){let r=e;e=t,t=r}for(;e>0;){let r=t%e;t=e,e=r}return t}function za(e,t){return e/Fm(e,t)*t}var Ea,ka,pt,Cl=b(()=>{Ea=[],ka=[];pt=class{constructor(t){this.n=t.length,this.p=t}toString(){return"Perm["+this.p.join(" ")+"]"}mul(t){let r=Array(this.n);for(let n=0;n<this.n;n++)r[n]=t.p[this.p[n]];return new pt(r)}rmul(t){let r=Array(this.n);for(let n=0;n<this.n;n++)r[n]=this.p[t.p[n]];return new pt(r)}inv(){let t=Array(this.n);for(let r=0;r<this.n;r++)t[this.p[r]]=r;return new pt(t)}compareTo(t){for(let r=0;r<this.n;r++)if(this.p[r]!==t.p[r])return this.p[r]-t.p[r];return 0}toGap(){let t=new Array,r=new Array(this.n);for(let n=0;n<this.p.length;n++){if(r[n]||this.p[n]===n)continue;let o=new Array;for(let l=n;!r[l];l=this.p[l])o.push(1+l),r[l]=!0;t.push("("+o.join(",")+")")}return t.join("")}order(){let t=1,r=new Array(this.n);for(let n=0;n<this.p.length;n++){if(r[n]||this.p[n]===n)continue;let o=0;for(let l=n;!r[l];l=this.p[l])o++,r[l]=!0;t=za(t,o)}return t}}});function _a(e,t){let r=B.fromString(t),n=e.notationToExternal(r);return n===null||r===n?t:n.toString()}function C2(e,t){let r=e.moveops.length;if(r>30)throw new Error("Canon info too big for bitmask");let n=[],o=[];for(let i=0;i<r;i++){let a=e.moveops[i];n.push(a.order());let f=0;for(let s=0;s<r;s++){if(s===i)continue;let g=e.moveops[s];a.mul(g).equal(g.mul(a))&&(f|=1<<s)}o.push(f)}let l={};l[0]=1;for(let i=0;i<100;i++){let a=0,f={},s=0;for(let g in l){let c=+g,u=l[c];a+=u,s++;for(let m=0;m<n.length;m++)if((c>>m&1)==0&&(c&o[m]&(1<<m)-1)==0){let p=c&o[m]|1<<m;f[p]===void 0&&(f[p]=0),f[p]+=(n[m]-1)*u}}t(\`\${i}: canonseq \${a} states \${s}\`),l=f}}var vo,hm,bn,yt,qt,Ca,gr,wn,Pa,P2=b(()=>{Re();xa();Cl();vo=class{constructor(t,r){this.size=t;this.mod=r}reassemblySize(){return _2(this.size)*Math.pow(this.mod,this.size)}},hm=0;bn=class{constructor(t,r,n,o,l){this.orbitnames=t;this.orbitdefs=r;this.solved=n;this.movenames=o;this.moveops=l}transformToKTransformationData(t){let r={};for(let n=0;n<this.orbitnames.length;n++)r[this.orbitnames[n]]=t.orbits[n].toKPuzzle();return r}static transformToKTransformationData(t,r){let n={};for(let o=0;o<t.length;o++)n[t[o]]=r.orbits[o].toKPuzzle();return n}toKsolve(t,r=new Un){let n=[];n.push("Name "+t),n.push("");for(let o=0;o<this.orbitnames.length;o++)n.push(\`Set \${this.orbitnames[o]} \${this.orbitdefs[o].size} \${this.orbitdefs[o].mod}\`);n.push(""),n.push("Solved");for(let o=0;o<this.orbitnames.length;o++)this.solved.orbits[o].appendDefinition(n,this.orbitnames[o],!1,!1);n.push("End");for(let o=0;o<this.movenames.length;o++){n.push("");let l=_a(r,this.movenames[o]),i=!1;l[l.length-1]==="'"&&(i=!0,l=l.substring(0,l.length-1)),n.push("Move "+l);for(let a=0;a<this.orbitnames.length;a++)i?this.moveops[o].orbits[a].inv().appendDefinition(n,this.orbitnames[a],!0):this.moveops[o].orbits[a].appendDefinition(n,this.orbitnames[a],!0);n.push("End")}return n}toKPuzzleDefinition(t){let r={},n={};for(let l=0;l<this.orbitnames.length;l++){r[this.orbitnames[l]]={numPieces:this.orbitdefs[l].size,numOrientations:this.orbitdefs[l].mod};let i=this.solved.orbits[l].toKPuzzle();n[this.orbitnames[l]]={pieces:i.permutation,orientation:i.orientation}}let o={};if(t)for(let l=0;l<this.movenames.length;l++)o[this.movenames[l]]=this.transformToKTransformationData(this.moveops[l]);return{name:\`PG3D #\${++hm}\`,orbits:r,startStateData:n,moves:o}}optimize(){let t=[],r=[],n=[],o=[];for(let l=0;l<this.moveops.length;l++)o.push([]);for(let l=0;l<this.orbitdefs.length;l++){let i=this.orbitdefs[l].mod,a=this.orbitdefs[l].size,f=new Pa(a),s=new Array(this.orbitdefs[l].size);for(let m=0;m<a;m++)s[m]=!1;for(let m=0;m<this.moveops.length;m++)for(let p=0;p<a;p++)(this.moveops[m].orbits[l].perm[p]!==p||this.moveops[m].orbits[l].ori[p]!==0)&&(s[p]=!0,f.union(p,this.moveops[m].orbits[l].perm[p]));let g=!0;if(i>1){g=!1;let m=new Pa(this.orbitdefs[l].size*i);for(let p=0;p<this.moveops.length;p++)for(let L=0;L<a;L++)if(this.moveops[p].orbits[l].perm[L]!==L||this.moveops[p].orbits[l].ori[L]!==0)for(let R=0;R<i;R++)m.union(L*i+R,this.moveops[p].orbits[l].perm[L]*i+(R+this.moveops[p].orbits[l].ori[L])%i);for(let p=0;!g&&p<a;p++)for(let L=1;L<i;L++)m.find(p*i)===m.find(p*i+L)&&(g=!0);for(let p=0;!g&&p<a;p++)for(let L=0;L<p;L++)this.solved.orbits[l].perm[p]===this.solved.orbits[l].perm[L]&&(g=!0)}let c=-1,u=!1;for(let m=0;m<this.orbitdefs[l].size;m++)if(s[m]){let p=f.find(m);c<0?c=p:c!==p&&(u=!0)}for(let m=0;m<this.orbitdefs[l].size;m++){if(!s[m]||f.find(m)!==m)continue;let L=[],R=[],D=0;for(let A=0;A<this.orbitdefs[l].size;A++)f.find(A)===m&&(L[D]=A,R[A]=D,D++);if(u?t.push(\`\${this.orbitnames[l]}_p\${m}\`):t.push(this.orbitnames[l]),g){r.push(new vo(D,this.orbitdefs[l].mod)),n.push(this.solved.orbits[l].remapVS(L,D));for(let A=0;A<this.moveops.length;A++)o[A].push(this.moveops[A].orbits[l].remap(L,R,D))}else{r.push(new vo(D,1)),n.push(this.solved.orbits[l].remapVS(L,D).killOri());for(let A=0;A<this.moveops.length;A++)o[A].push(this.moveops[A].orbits[l].remap(L,R,D).killOri())}}}return new bn(t,r,new wn(n),this.movenames,o.map(l=>new gr(l)))}scramble(t){this.solved=this.solved.mul(this.getScrambleTransformation(t))}getScrambleTransformation(t){t<100&&(t=100);let r=[];for(let o=0;o<this.moveops.length;o++)r[o]=this.moveops[o];for(let o=0;o<r.length;o++){let l=Math.floor(Math.random()*r.length),i=r[o];r[o]=r[l],r[l]=i}t<r.length&&(t=r.length);for(let o=0;o<t;o++){let l=Math.floor(Math.random()*r.length),i=Math.floor(Math.random()*r.length),a=Math.floor(Math.random()*this.moveops.length);r[l]=r[l].mul(r[i]).mul(this.moveops[a]),Math.random()<.1&&(r[l]=r[l].mul(this.moveops[a]))}let n=r[0];for(let o=1;o<r.length;o++)n=n.mul(r[o]);return n}reassemblySize(){let t=1;for(let r=0;r<this.orbitdefs.length;r++)t*=this.orbitdefs[r].reassemblySize();return t}},yt=class{constructor(t,r,n){this.perm=t;this.ori=r;this.orimod=n}static e(t,r){return new yt(Ct(t),ur(t),r)}mul(t){let r=this.perm.length,n=new Array(r);if(this.orimod===1){for(let o=0;o<r;o++)n[o]=this.perm[t.perm[o]];return new yt(n,this.ori,this.orimod)}else{let o=new Array(r);for(let l=0;l<r;l++)n[l]=this.perm[t.perm[l]],o[l]=(this.ori[t.perm[l]]+t.ori[l])%this.orimod;return new yt(n,o,this.orimod)}}inv(){let t=this.perm.length,r=new Array(t),n=new Array(t);for(let o=0;o<t;o++)r[this.perm[o]]=o,n[this.perm[o]]=(this.orimod-this.ori[o])%this.orimod;return new yt(r,n,this.orimod)}equal(t){let r=this.perm.length;for(let n=0;n<r;n++)if(this.perm[n]!==t.perm[n]||this.ori[n]!==t.ori[n])return!1;return!0}killOri(){let t=this.perm.length;for(let r=0;r<t;r++)this.ori[r]=0;return this.orimod=1,this}toPerm(){let t=this.orimod;if(t===1)return new pt(this.perm);let r=this.perm.length,n=new Array(r*t);for(let o=0;o<r;o++)for(let l=0;l<t;l++)n[o*t+l]=t*this.perm[o]+(this.ori[o]+l)%t;return new pt(n)}identicalPieces(){let t=[],r=this.perm.length,n=[];for(let o=0;o<r;o++){let l=this.perm[o];if(t[l]===void 0){let i=[o];t[l]=!0;for(let a=o+1;a<r;a++)this.perm[a]===l&&i.push(a);n.push(i)}}return n}order(){return this.toPerm().order()}isIdentity(){let t=this.perm.length;if(this.perm===Ct(t)&&this.ori===ur(t))return!0;for(let r=0;r<t;r++)if(this.perm[r]!==r||this.ori[r]!==0)return!1;return!0}zeroOris(){let t=this.perm.length;if(this.ori===ur(t))return!0;for(let r=0;r<t;r++)if(this.ori[r]!==0)return!1;return!0}remap(t,r,n){let o=new Array(n),l=new Array(n);for(let i=0;i<n;i++)o[i]=r[this.perm[t[i]]],l[i]=this.ori[t[i]];return new yt(o,l,this.orimod)}remapVS(t,r){let n=new Array(r),o=new Array(r),l=0,i=[];for(let a=0;a<r;a++){let f=this.perm[t[a]];i[f]===void 0&&(i[f]=l++),n[a]=i[f],o[a]=this.ori[t[a]]}return new yt(n,o,this.orimod)}appendDefinition(t,r,n,o=!0){if(!(o&&this.isIdentity())&&(t.push(r),t.push(this.perm.map(l=>l+1).join(" ")),!this.zeroOris()))if(n){let l=new Array(this.ori.length);for(let i=0;i<l.length;i++)l[this.perm[i]]=this.ori[i];t.push(l.join(" "))}else t.push(this.ori.join(" "))}toKPuzzle(){let t=this.perm.length;return this.isIdentity()?(yt.kcache[t]||(yt.kcache[t]={permutation:Ct(t),orientation:ur(t)}),yt.kcache[t]):{permutation:this.perm,orientation:this.ori}}},qt=yt;qt.kcache=[];Ca=class{constructor(t){this.orbits=t}internalMul(t){let r=[];for(let n=0;n<this.orbits.length;n++)r.push(this.orbits[n].mul(t.orbits[n]));return r}internalInv(){let t=[];for(let r of this.orbits)t.push(r.inv());return t}equal(t){for(let r=0;r<this.orbits.length;r++)if(!this.orbits[r].equal(t.orbits[r]))return!1;return!0}killOri(){for(let t of this.orbits)t.killOri();return this}toPerm(){let t=new Array,r=0;for(let o of this.orbits){let l=o.toPerm();t.push(l),r+=l.n}let n=new Array(r);r=0;for(let o of t){for(let l=0;l<o.n;l++)n[r+l]=r+o.p[l];r+=o.n}return new pt(n)}identicalPieces(){let t=[],r=0;for(let n of this.orbits){let o=n.orimod,l=n.identicalPieces();for(let i=0;i<l.length;i++)t.push(l[i].map(a=>a*o+r));r+=o*n.perm.length}return t}order(){let t=1;for(let r of this.orbits)t=za(t,r.order());return t}},gr=class extends Ca{constructor(t){super(t)}mul(t){return new gr(this.internalMul(t))}mulScalar(t){if(t===0)return this.e();let r=this;for(t<0&&(r=r.inv(),t=-t);(t&1)==0;)r=r.mul(r),t>>=1;if(t===1)return r;let n=r,o=this.e();for(;t>0;)t&1&&(o=o.mul(n)),t>1&&(n=n.mul(n)),t>>=1;return o}inv(){return new gr(this.internalInv())}e(){return new gr(this.orbits.map(t=>qt.e(t.perm.length,t.orimod)))}},wn=class extends Ca{constructor(t){super(t)}mul(t){return new wn(this.internalMul(t))}},Pa=class{constructor(t){this.n=t;this.heads=new Array(t);for(let r=0;r<t;r++)this.heads[r]=r}find(t){let r=this.heads[t];return this.heads[r]===r||(r=this.find(this.heads[r]),this.heads[t]=r),r}union(t,r){let n=this.find(t),o=this.find(r);n<o?this.heads[o]=n:n>o&&(this.heads[n]=o)}}});var Pl,M2=b(()=>{Pl={"2x2x2":"c f 0","3x3x3":"c f 0.333333333333333","4x4x4":"c f 0.5 f 0","5x5x5":"c f 0.6 f 0.2","6x6x6":"c f 0.666666666666667 f 0.333333333333333 f 0","7x7x7":"c f 0.714285714285714 f 0.428571428571429 f 0.142857142857143","8x8x8":"c f 0.75 f 0.5 f 0.25 f 0","9x9x9":"c f 0.777777777777778 f 0.555555555555556 f 0.333333333333333 f 0.111111111111111","10x10x10":"c f 0.8 f 0.6 f 0.4 f 0.2 f 0","11x11x11":"c f 0.818181818181818 f 0.636363636363636 f 0.454545454545455 f 0.272727272727273 f 0.0909090909090909","12x12x12":"c f 0.833333333333333 f 0.666666666666667 f 0.5 f 0.333333333333333 f 0.166666666666667 f 0","13x13x13":"c f 0.846153846153846 f 0.692307692307692 f 0.538461538461538 f 0.384615384615385 f 0.230769230769231 f 0.0769230769230769","20x20x20":"c f 0 f .1 f .2 f .3 f .4 f .5 f .6 f .7 f .8 f .9","30x30x30":"c f 0 f .066667 f .133333 f .2 f .266667 f .333333 f .4 f .466667 f .533333 f .6 f .666667 f .733333 f .8 f .866667 f .933333","40x40x40":"c f 0 f .05 f .1 f .15 f .2 f .25 f .3 f .35 f .4 f .45 f .5 f .55 f .6 f .65 f .7 f .75 f .8 f .85 f .9 f .95",skewb:"c v 0","master skewb":"c v 0.275","professor skewb":"c v 0 v 0.38","compy cube":"c v 0.915641442663986",helicopter:"c e 0.707106781186547","curvy copter":"c e 0.83",dino:"c v 0.577350269189626","little chop":"c e 0",pyramorphix:"t e 0",mastermorphix:"t e 0.346184634065199",pyraminx:"t v 0.333333333333333 v 1.66666666666667",tetraminx:"t v 0.333333333333333","master pyraminx":"t v 0 v 1 v 2","master tetraminx":"t v 0 v 1","professor pyraminx":"t v -0.2 v 0.6 v 1.4 v 2.2","professor tetraminx":"t v -0.2 v 0.6 v 1.4","Jing pyraminx":"t f 0","master pyramorphix":"t e 0.866025403784437",megaminx:"d f 0.7",gigaminx:"d f 0.64 f 0.82",teraminx:"d f 0.64 f 0.76 f 0.88",petaminx:"d f 0.64 f 0.73 f 0.82 f 0.91",examinx:"d f 0.64 f 0.712 f 0.784 f 0.856 f 0.928",zetaminx:"d f 0.64 f 0.7 f 0.76 f 0.82 f 0.88 f 0.94",yottaminx:"d f 0.64 f 0.6914 f 0.7429 f 0.7943 f 0.8457 f 0.8971 f 0.9486",pentultimate:"d f 0","master pentultimate":"d f 0.1","elite pentultimate":"d f 0 f 0.145905",starminx:"d v 0.937962370425399","starminx 2":"d f 0.23606797749979","pyraminx crystal":"d f 0.447213595499989",chopasaurus:"d v 0","big chop":"d e 0","skewb diamond":"o f 0",FTO:"o f 0.333333333333333","master FTO":"o f 0.5 f 0","Christopher's jewel":"o v 0.577350269189626",octastar:"o e 0","Trajber's octahedron":"o v 0.433012701892219","radio chop":"i f 0",icosamate:"i v 0","icosahedron 2":"i v 0.18759247376021","icosahedron 3":"i v 0.18759247376021 e 0","icosahedron static faces":"i v 0.84","icosahedron moving faces":"i v 0.73","Eitan's star":"i f 0.61803398874989","2x2x2 + dino":"c f 0 v 0.577350269189626","2x2x2 + little chop":"c f 0 e 0","dino + little chop":"c v 0.577350269189626 e 0","2x2x2 + dino + little chop":"c f 0 v 0.577350269189626 e 0","megaminx + chopasaurus":"d f 0.61803398875 v 0","starminx combo":"d f 0.23606797749979 v 0.937962370425399"}});function Ml(e){let t=new O(0,0,0,0);for(let r=0;r<e.length;r++)t=t.sum(e[r]);return t.smul(1/e.length)}function G2(e,t,r,n){let o=n[e].intersect3(n[t],n[r]);if(!o)return o;for(let l=0;l<n.length;l++)if(l!==e&&l!==t&&l!==r){let i=n[l].b*o.b+n[l].c*o.c+n[l].d*o.d;if(n[l].a>0&&i>n[l].a||n[l].a<0&&i<n[l].a)return!1}return o}var Tr,O,Gl=b(()=>{Tr=1e-9;O=class{constructor(t,r,n,o){this.a=t;this.b=r;this.c=n;this.d=o}mul(t){return new O(this.a*t.a-this.b*t.b-this.c*t.c-this.d*t.d,this.a*t.b+this.b*t.a+this.c*t.d-this.d*t.c,this.a*t.c-this.b*t.d+this.c*t.a+this.d*t.b,this.a*t.d+this.b*t.c-this.c*t.b+this.d*t.a)}toString(){return\`Q[\${this.a},\${this.b},\${this.c},\${this.d}]\`}dist(t){return Math.hypot(this.a-t.a,this.b-t.b,this.c-t.c,this.d-t.d)}len(){return Math.hypot(this.a,this.b,this.c,this.d)}cross(t){return new O(0,this.c*t.d-this.d*t.c,this.d*t.b-this.b*t.d,this.b*t.c-this.c*t.b)}dot(t){return this.b*t.b+this.c*t.c+this.d*t.d}normalize(){let t=Math.sqrt(this.dot(this));return new O(this.a/t,this.b/t,this.c/t,this.d/t)}makenormal(){return new O(0,this.b,this.c,this.d).normalize()}normalizeplane(){let t=Math.hypot(this.b,this.c,this.d);return new O(this.a/t,this.b/t,this.c/t,this.d/t)}smul(t){return new O(this.a*t,this.b*t,this.c*t,this.d*t)}sum(t){return new O(this.a+t.a,this.b+t.b,this.c+t.c,this.d+t.d)}sub(t){return new O(this.a-t.a,this.b-t.b,this.c-t.c,this.d-t.d)}angle(){return 2*Math.acos(this.a)}invrot(){return new O(this.a,-this.b,-this.c,-this.d)}det3x3(t,r,n,o,l,i,a,f,s){return t*(l*s-i*f)+r*(i*a-o*s)+n*(o*f-l*a)}rotateplane(t){let r=t.mul(new O(0,this.b,this.c,this.d)).mul(t.invrot());return r.a=this.a,r}orthogonal(){let t=Math.abs(this.b),r=Math.abs(this.c),n=Math.abs(this.d);return t<r&&t<n?this.cross(new O(0,1,0,0)).normalize():r<t&&r<n?this.cross(new O(0,0,1,0)).normalize():this.cross(new O(0,0,0,1)).normalize()}pointrotation(t){let r=this.normalize();if(t=t.normalize(),r.sub(t).len()<Tr)return new O(1,0,0,0);let n=r.sum(t);n.len()<Tr?n=n.orthogonal():n=n.normalize();let o=r.cross(n);return o.a=r.dot(n),o}unproject(t){return this.sum(t.smul(-this.dot(t)/(this.len()*t.len())))}rotatepoint(t){return t.mul(this).mul(t.invrot())}rotateface(t){return t.map(r=>r.rotatepoint(this))}intersect3(t,r){let n=this.det3x3(this.b,this.c,this.d,t.b,t.c,t.d,r.b,r.c,r.d);return Math.abs(n)<Tr?!1:new O(0,this.det3x3(this.a,this.c,this.d,t.a,t.c,t.d,r.a,r.c,r.d)/n,this.det3x3(this.b,this.a,this.d,t.b,t.a,t.d,r.b,r.a,r.d)/n,this.det3x3(this.b,this.c,this.a,t.b,t.c,t.a,r.b,r.c,r.a)/n)}side(t){return t>Tr?1:t<-Tr?-1:0}cutface(t){let r=this.a,n=0,o=null;for(let l=0;l<t.length;l++)n|=1<<this.side(t[l].dot(this)-r)+1;if((n&5)==5){o=[];let l=t.map(i=>this.side(i.dot(this)-r));for(let i=-1;i<=1;i+=2){let a=[];for(let f=0;f<t.length;f++){(l[f]===i||l[f]===0)&&a.push(t[f]);let s=(f+1)%t.length;if(l[f]+l[s]===0&&l[f]!==0){let g=t[f].dot(this)-r,c=t[s].dot(this)-r,u=g/(g-c),m=t[f].smul(1-u).sum(t[s].smul(u));a.push(m)}}o.push(a)}}return o}cutfaces(t){let r=[];for(let n=0;n<t.length;n++){let o=t[n],l=this.cutface(o);l?(r.push(l[0]),r.push(l[1])):r.push(o)}return r}faceside(t){let r=this.a;for(let n=0;n<t.length;n++){let o=this.side(t[n].dot(this)-r);if(o!==0)return o}throw new Error("Could not determine side of plane in faceside")}sameplane(t){let r=this.normalize(),n=t.normalize();return r.dist(n)<Tr||r.dist(n.smul(-1))<Tr}makecut(t){return new O(t,this.b,this.c,this.d)}}});function T2(){let e=Math.sqrt(.5);return[new O(e,e,0,0),new O(e,0,e,0)]}function I2(){return[new O(.5,.5,.5,.5),new O(.5,.5,.5,-.5)]}function N2(){let e=2*Math.PI/10,t=.5+.3*Math.sqrt(5),r=.5+.1*Math.sqrt(5),n=Math.sqrt(t*t+r*r);return t/=n,r/=n,[new O(Math.cos(e),t*Math.sin(e),r*Math.sin(e),0),new O(.5,.5,.5,.5)]}function O2(){let e=1/6+Math.sqrt(5)/6,t=2/3+Math.sqrt(5)/3,r=Math.sqrt(e*e+t*t);e/=r,t/=r;let n=2*Math.PI/6;return[new O(Math.cos(n),e*Math.sin(n),t*Math.sin(n),0),new O(Math.cos(n),-e*Math.sin(n),t*Math.sin(n),0)]}function W2(){let e=Math.sqrt(.5);return[new O(.5,.5,.5,.5),new O(e,0,0,e)]}function K2(e){let t=[new O(1,0,0,0)];for(let r=0;r<t.length;r++)for(let n=0;n<e.length;n++){let o=e[n].mul(t[r]),l=o.smul(-1),i=!1;for(let a=0;a<t.length;a++)if(o.dist(t[a])<Tl||l.dist(t[a])<Tl){i=!0;break}i||t.push(o)}return t}function Ma(e,t){let r=[],n=[];for(let o=0;o<t.length;o++){let l=e.rotateplane(t[o]),i=!1;for(let a=0;a<r.length;a++)if(l.dist(r[a])<Tl){i=!0;break}i||(r.push(l),n.push(t[o]))}return n}function Ga(e){let t=[];for(let r=1;r<e.length;r++)for(let n=r+1;n<e.length;n++){let o=G2(0,r,n,e);if(o){let l=!1;for(let i=0;i<t.length;i++)if(o.dist(t[i])<Tl){l=!0;break}l||t.push(o)}}for(;;){let r=!1;for(let n=0;n<t.length;n++){let o=(n+1)%t.length;if(e[0].dot(t[n].cross(t[o]))<0){let l=t[n];t[n]=t[o],t[o]=l,r=!0}}if(!r)break}return t}var Tl,Q2=b(()=>{Gl();Tl=1e-9});function Il(e,t){let r=e[0].p.length,n=z2(r),o=[],l=[],i=[],a=[],f=[];function s(m){for(let p=m.p.length-1;p>=0;p--){let L=m.p[p];if(L!==p){if(!o[p][L])return!1;m=m.mul(l[p][L])}}return!0}function g(m,p,L){a[m].push(p),f[m].push(L);for(let R=0;R<o[m].length;R++)o[m][R]&&c(m,o[m][R].mul(p),L+i[m][R])}function c(m,p,L){let R=p.p[m];if(!o[m][R]){o[m][R]=p,l[m][R]=p.inv(),i[m][R]=L;for(let A=0;A<a[m].length;A++)c(m,p.mul(a[m][A]),L+f[m][A]);return}let D=p.mul(l[m][R]);s(D)||g(m-1,D,L+i[m][R])}function u(){o=[],l=[],a=[],i=[],f=[];for(let L=0;L<r;L++)o.push([]),l.push([]),i.push([]),a.push([]),f.push([]),o[L][L]=n,l[L][L]=n,i[L][L]=0;let m=0,p=1;for(let L=0;L<e.length;L++){g(r-1,e[L],1),p=1;let R=0,D=0,A=[],y=new j2;for(let k=0;k<r;k++){let E=0,Q=0;for(let G=0;G<r;G++)o[k][G]&&(E++,Q+=i[k][G],k!==G&&m++);R+=a[k].length,p*=E,E>1&&y.multiply(E);let $=Q/E;A.push($),D+=$}t(\`\${L}: sz \${p} T \${R} sol \${D} none \${m} mults \${y.toString()}\`)}return p}return u()}var j2,Ta=b(()=>{Cl();j2=class{constructor(){this.mult=[]}multiply(t){for(let r=2;r*r<=t;r++)for(;t%r==0;)this.mult[r]!==void 0?this.mult[r]++:this.mult[r]=1,t/=r;t>1&&(this.mult[t]!==void 0?this.mult[t]++:this.mult[t]=1)}toString(){let t="";for(let r=0;r<this.mult.length;r++)this.mult[r]!==void 0&&(t!==""&&(t+="*"),t+=r,this.mult[r]>1&&(t+=\`^\${this.mult[r]}\`));return t}}});function Ia(e){return e}function Na(e){}function Am(e,t){let r=[];for(let n of e)for(let o of t)r.push(o.rotate(n));return r}function bm(){return{4:[["F","D","L","R"]],6:[["F","D","L","U","R"],["R","F","","B",""]],8:[["F","D","L","R"],["D","F","BR",""],["BR","D","","BB"],["BB","BR","U","BL"]],12:[["U","F","","","",""],["F","U","R","C","A","L"],["R","F","","","E",""],["E","R","","BF","",""],["BF","E","BR","BL","I","D"]],20:[["R","C","F","E"],["F","R","L","U"],["L","F","A",""],["E","R","G","I"],["I","E","S","H"],["S","I","J","B"],["B","S","K","D"],["K","B","M","O"],["O","K","P","N"],["P","O","Q",""]]}}function wm(){return{4:{F:"#00ff00",D:"#ffff00",L:"#ff0000",R:"#0000ff"},6:{U:"#ffffff",F:"#00ff00",R:"#ff0000",D:"#ffff00",B:"#0000ff",L:"#ff8000"},8:{U:"#ffffff",F:"#ff0000",R:"#00bb00",D:"#ffff00",BB:"#1122ff",L:"#9524c5",BL:"#ff8800",BR:"#aaaaaa"},12:{U:"#ffffff",F:"#006633",R:"#ff0000",C:"#ffffd0",A:"#3399ff",L:"#660099",E:"#ff66cc",BF:"#99ff00",BR:"#0000ff",BL:"#ffff00",I:"#ff6633",D:"#999999"},20:{R:"#db69f0",C:"#178fde",F:"#23238b",E:"#9cc726",L:"#2c212d",U:"#177fa7",A:"#e0de7f",G:"#2b57c0",I:"#41126b",S:"#4b8c28",H:"#7c098d",J:"#7fe7b4",B:"#85fb74",K:"#3f4bc3",D:"#0ff555",M:"#f1c2c8",O:"#58d340",P:"#c514f2",N:"#14494e",Q:"#8b1be1"}}}function xm(){return{4:["F","D","L","R"],6:["U","D","F","B","L","R"],8:["F","BB","D","U","BR","L","R","BL"],12:["L","E","F","BF","R","I","U","D","BR","A","BL","C"],20:["L","S","E","O","F","B","I","P","R","K","U","D","J","A","Q","H","G","N","M","C"]}}function Sm(){return{4:[["FLR",[0,1,0]],["F",[0,0,1]]],6:[["U",[0,1,0]],["F",[0,0,1]]],8:[["U",[0,1,0]],["F",[0,0,1]]],12:[["U",[0,1,0]],["F",[0,0,1]]],20:[["GUQMJ",[0,1,0]],["F",[0,0,1]]]}}function Nl(e,t){for(let r=0;r<e.length;r++)if(e[r][0].dist(t)<we)return r;throw new Error("Element not found")}function q2(){return Pl}function V2(e){return Pl[e]}function So(e){let t=e.split(/ /).filter(Boolean);if(t.length%2==0)return null;let r=t[0];if(r!=="o"&&r!=="c"&&r!=="i"&&r!=="d"&&r!=="t")return null;let n=[];for(let o=1;o<t.length;o+=2){if(t[o]!=="f"&&t[o]!=="v"&&t[o]!=="e")return null;n.push({cutType:t[o],distance:parseFloat(t[o+1])})}return{shape:r,cuts:n}}function Oa(e,t={}){let r=So(e);if(r===null)throw new Error("Could not parse the puzzle description");let n=new Wl(r,Object.assign({},{allMoves:!0},t));return n.allstickers(),n.genperms(),n}function Sn(e,t){return Oa(Pl[e],t)}function vm(e,t,r){let n=!1;r-t[1]<t[0]&&(e=[e[2],e[3],e[0],e[1]],t=[r-t[1],r-t[0]],n=!0);let o=e[0],l="";if(t[0]===0&&t[1]===r)o=o+"v";else if(t[0]===t[1])t[1]>0&&(l=String(t[1]+1));else if(t[0]===0)o=o.toLowerCase(),t[1]>1&&(l=String(t[1]+1));else throw\`We only support slice and outer block moves right now. \${t}\`;return[l+o,n]}function Em(e,t){let r=[],n=0;for(;n<e.length;){n>0&&n<e.length&&e[n]==="_"&&n++;let o="";for(let l of t)e.substr(n).startsWith(l[1])&&l[1].length>o.length&&(o=l[1]);if(o!=="")r.push(o),n+=o.length;else throw new Error("Could not split "+e+" into face names.")}return r}function Ol(e,t){return[e.b/t,-e.c/t,e.d/t]}function Wa(e,t){let r=[],n=e.length;for(let o=0;o<n;o++){let l=Ol(e.get(n-o-1),t);r[3*o]=l[0],r[3*o+1]=l[1],r[3*o+2]=l[2]}return r}var xn,Eo,we,ym,Um,Wl,Ir,_l=b(()=>{Re();B2();xa();va();Cl();P2();M2();Q2();Gl();Ta();xn=class{constructor(t){this.coords=new Array(t.length*3);for(let r=0;r<t.length;r++)this.coords[3*r]=t[r].b,this.coords[3*r+1]=t[r].c,this.coords[3*r+2]=t[r].d;this.length=t.length}get(t){return new O(0,this.coords[3*t],this.coords[3*t+1],this.coords[3*t+2])}centermass(){let t=0,r=0,n=0;for(let o=0;o<this.length;o++)t+=this.coords[3*o],r+=this.coords[3*o+1],n+=this.coords[3*o+2];return new O(0,t/this.length,r/this.length,n/this.length)}rotate(t){let r=[];for(let n=0;n<this.length;n++)r.push(this.get(n).rotatepoint(t));return new xn(r)}rotateforward(){let t=[];for(let r=1;r<this.length;r++)t.push(this.get(r));return t.push(this.get(0)),new xn(t)}},Eo=class{constructor(t,r,n){this.face=t;this.left=r;this.right=n}split(t){let r=t.cutface(this.face);return r!==null&&(this.left===void 0?(this.left=new Eo(r[0]),this.right=new Eo(r[1])):(this.left=this.left?.split(t),this.right=this.right?.split(t))),this}collect(t,r){return this.left===void 0?t.push(new xn(this.face)):r?(this.left?.collect(t,!1),this.right?.collect(t,!0)):(this.right?.collect(t,!1),this.left?.collect(t,!0)),t}};we=1e-9,ym="PuzzleGeometry 0.1 Copyright 2018 Tomas Rokicki.",Um=!1;Wl=class{constructor(t,r){this.puzzleDescription=t;this.cmovesbyslice=[];this.duplicatedFaces=[];this.duplicatedCubies=[];this.fixedCubie=-1;this.net=[];this.colors=[];this.faceorder=[];this.faceprecedence=[];this.notationMapper=new Un;this.addNotationMapper="";this.setReidOrder=!1;let n=Ia("genperms");this.options=new Sa(r),this.options.verbosity>0&&console.log(this.header("# ")),this.create(t),Na(n)}create(t){let{shape:r,cuts:n}=t;this.moveplanes=[],this.moveplanes2=[],this.faces=[],this.cubies=[];let o=null;switch(r){case"c":o=T2();break;case"o":o=W2();break;case"i":o=O2();break;case"t":o=I2();break;case"d":o=N2();break;default:throw new Error("Bad shape argument: "+r)}this.rotations=K2(o),this.options.verbosity&&console.log("# Rotations: "+this.rotations.length);let l=o[0];this.baseplanerot=Ma(l,this.rotations);let i=this.baseplanerot.map(h=>l.rotateplane(h));this.baseplanes=i,this.baseFaceCount=i.length;let a=bm()[i.length];this.net=a,this.colors=wm()[i.length],this.faceorder=xm()[i.length],this.options.verbosity>0&&console.log("# Base planes: "+i.length);let f=Ga(i),s=new O(0,0,0,0);this.options.verbosity>0&&console.log("# Face vertices: "+f.length);let g=i[0].makenormal(),c=f[0].sum(f[1]).makenormal(),u=f[0].makenormal(),m=new O(1,g.b,g.c,g.d);this.options.verbosity>0&&console.log("# Boundary is "+m);let L=Ma(m,this.rotations).map(h=>m.rotateplane(h)),R=Ga(L);this.edgedistance=R[0].sum(R[1]).smul(.5).dist(s),this.vertexdistance=R[0].dist(s);let D=[],A=[],y=!1,k=!1,E=!1;for(let h of n){let v=null,I=0;switch(h.cutType){case"f":v=g,I=1,y=!0;break;case"v":v=u,I=this.vertexdistance,E=!0;break;case"e":v=c,I=this.edgedistance,k=!0;break;default:throw new Error("Bad cut argument: "+h.cutType)}D.push(v.makecut(h.distance)),A.push(h.distance<I)}this.options.addRotations&&(y||D.push(g.makecut(10)),E||D.push(u.makecut(10)),k||D.push(c.makecut(10))),this.basefaces=[];for(let h of this.baseplanerot){let v=h.rotateface(R);this.basefaces.push(new xn(v))}let Q=[],$=[],G=[],oe=[],U=R.length;function _(h,v,I){for(let K of h)if(K[0].dist(v)<we){K.push(I);return}h.push([v,I])}for(let h=0;h<this.baseplanerot.length;h++){let v=this.baseplanerot[h].rotateface(R);for(let I=0;I<v.length;I++){let K=(I+1)%v.length,le=v[I].sum(v[K]).smul(.5);_(oe,le,h)}}let M=[];for(let h=0;h<this.baseplanerot.length;h++){let v=this.baseplanerot[h].rotateface(R),I=[];for(let K=0;K<v.length;K++){let le=(K+1)%v.length,qe=v[K].sum(v[le]).smul(.5),ft=oe[Nl(oe,qe)];if(h===ft[1])I.push(ft[2]);else if(h===ft[2])I.push(ft[1]);else throw new Error("Could not find edge")}M.push(I)}let x={},S=[];S.push(a[0][0]),x[a[0][0]]=0,S[M[0][0]]=a[0][1],x[a[0][1]]=M[0][0];for(let h of a){let v=h[0],I=x[v];if(I===void 0)throw new Error("Bad edge description; first edge not connected");let K=-1;for(let le=0;le<M[I].length;le++){let qe=S[M[I][le]];if(qe!==void 0&&qe===h[1]){K=le;break}}if(K<0)throw new Error("First element of a net not known");for(let le=2;le<h.length;le++){if(h[le]==="")continue;let qe=M[I][(le+K-1)%U],ft=S[qe];if(ft!==void 0&&ft!==h[le])throw new Error("Face mismatch in net");S[qe]=h[le],x[h[le]]=qe}}for(let h=0;h<S.length;h++){let v=!1;for(let I=0;I<this.faceorder.length;I++)if(S[h]===this.faceorder[I]){this.faceprecedence[h]=I,v=!0;break}if(!v)throw new Error("Could not find face "+S[h]+" in face order list "+this.faceorder)}for(let h=0;h<this.baseplanerot.length;h++){let v=this.baseplanerot[h].rotateface(R),I=m.rotateplane(this.baseplanerot[h]),K=S[h];Q.push([v,K]),$.push([I,K])}for(let h=0;h<this.baseplanerot.length;h++){let v=this.baseplanerot[h].rotateface(R),I=S[h];for(let K=0;K<v.length;K++){let le=(K+1)%v.length,qe=v[K].sum(v[le]).smul(.5),ft=(K+2)%v.length,xc=v[le].sum(v[ft]).smul(.5),Sc=Nl(oe,qe),vc=Nl(oe,xc);_(G,v[le],[I,vc,Sc])}}this.swizzler=new bo(Q.map(h=>h[1]));let C=this.swizzler.prefixFree?"":"_";for(let h=0;h<oe.length;h++){if(oe[h].length!==3)throw new Error("Bad length in edge names "+oe[h]);let v=S[oe[h][1]],I=S[oe[h][2]];this.faceprecedence[oe[h][1]]<this.faceprecedence[oe[h][2]]?v=v+C+I:v=I+C+v,oe[h]=[oe[h][0],v]}for(let h=0;h<G.length;h++){if(G[h].length<4)throw new Error("Bad length in vertex names");let v=1;for(let K=2;K<G[h].length;K++)this.faceprecedence[x[G[h][K][0]]]<this.faceprecedence[x[G[h][v][0]]]&&(v=K);let I="";for(let K=1;K<G[h].length;K++){K===1?I=G[h][v][0]:I=I+C+G[h][v][0];for(let le=1;le<G[h].length;le++)if(G[h][v][1]===G[h][le][2]){v=le;break}}G[h]=[G[h][0],I]}this.options.verbosity>1&&(console.log("# Face precedence list: "+this.faceorder.join(" ")),console.log("# Face names: "+Q.map(h=>h[1]).join(" ")),console.log("# Edge names: "+oe.map(h=>h[1]).join(" ")),console.log("# Vertex names: "+G.map(h=>h[1]).join(" ")));let j=[];for(let h of $)j.push([h[0].makenormal(),h[1],"f"]);for(let h of oe)j.push([h[0].makenormal(),h[1],"e"]);for(let h of G)j.push([h[0].makenormal(),h[1],"v"]);this.facenames=Q,this.faceplanes=$,this.edgenames=oe,this.vertexnames=G,this.geonormals=j;let Z=j.map(h=>h[1]);this.swizzler.setGripNames(Z),this.options.verbosity>0&&console.log("# Distances: face "+1+" edge "+this.edgedistance+" vertex "+this.vertexdistance);for(let h=0;h<D.length;h++)for(let v of this.rotations){let I=D[h].rotateplane(v),K=!1;for(let le of this.moveplanes)if(I.sameplane(le)){K=!0;break}K||(this.moveplanes.push(I),A[h]&&this.moveplanes2.push(I))}let ce=new Eo(R),Le=this.moveplanes2.slice(),Ae=31;for(let h=0;h<Le.length;h++){let v=h+Math.floor((Le.length-h)*(Ae/65536));ce=ce.split(Le[v]),Le[v]=Le[h],Ae=(Ae*1657+101)%65536}let be=ce.collect([],!0);this.faces=be,this.options.verbosity>0&&console.log("# Faces is now "+be.length),this.stickersperface=be.length;let kt=[],Pe=Ml(R);for(let h of this.rotations){let v=h.rotateface(R);Pe.dist(Ml(v))<we&&kt.push(h)}let rt=new Array(be.length),Se=[];for(let h=0;h<be.length;h++){let v=be[h].centermass();Se.push([Pe.dist(v),v,h])}Se.sort((h,v)=>h[0]-v[0]);for(let h=0;h<be.length;h++){let v=Se[h][2];if(!rt[v]){rt[v]=!0;for(let I of kt){let K=be[v].rotate(I),le=K.centermass();for(let qe=h+1;qe<be.length&&!(Se[qe][0]-Se[h][0]>we);qe++){let ft=Se[qe][2];if(!rt[ft]&&le.dist(Se[qe][1])<we){rt[ft]=!0,be[ft]=K;break}}}}}this.shortedge=1e99;for(let h of be)for(let v=0;v<h.length;v++){let I=(v+1)%h.length,K=h.get(v).dist(h.get(I));K<this.shortedge&&(this.shortedge=K)}this.options.verbosity>0&&console.log("# Short edge is "+this.shortedge),r==="c"&&y&&!k&&!E&&(this.addNotationMapper="NxNxNCubeMapper",this.setReidOrder=!0),r==="c"&&E&&!y&&!k&&(this.addNotationMapper="SkewbMapper"),r==="t"&&(E||y)&&!k&&(this.addNotationMapper="PyraminxOrTetraminxMapper"),r==="o"&&y&&(this.notationMapper=new wo(this.swizzler,new bo(["F","D","L","BL","R","U","BR","B"])),!k&&!E&&(this.addNotationMapper="FTOMapper")),r==="d"&&y&&(this.addNotationMapper="MegaminxMapper",this.notationMapper=new wo(this.swizzler,new bo(["U","F","L","BL","BR","R","FR","FL","DL","B","DR","D"])))}keyface(t){return this.keyface2(t.centermass())}keyface2(t){let r="",n=String.fromCharCode;for(let o of this.moveplanesets)if(o.length>0){let l=t.dot(o[0]),i=0,a=1;for(;a*2<=o.length;)a*=2;for(;a>0;a>>=1)i+a<=o.length&&l>o[i+a-1].a&&(i+=a);if(i<47)r=r+n(33+i);else if(i<47+47*47)r=r+n(33+47+Math.floor(i/47)-1)+n(33+i%47);else if(i<47+47*47+47*47*47)r=r+n(33+47+Math.floor((i-47)/(47*47)-1))+n(33+47+Math.floor((i-47)/47)%47)+n(33+i%47);else throw Error("Too many slices for cubie encoding")}return r}keyface3(t){let r=t.centermass(),n=[];for(let o of this.moveplanesets)if(o.length>0){let l=r.dot(o[0]),i=0,a=1;for(;a*2<=o.length;)a*=2;for(;a>0;a>>=1)i+a<=o.length&&l>o[i+a-1].a&&(i+=a);n.push(i)}return n}findface(t){let r=this.keyface2(t),n=this.facelisthash.get(r);if(n.length===1)return n[0];for(let o=0;o+1<n.length;o++){let l=this.facelisthash.get(r)[o];if(Math.abs(t.dist(this.facecentermass[l]))<we)return l}return n[n.length-1]}project2d(t,r,n){let o=this.facenames[t][0],l=(r+1)%o.length,i=this.baseplanes[t],a=o[l].sub(o[r]),f=a.len();a=a.normalize();let s=a.cross(i).normalize(),g=n[1].sub(n[0]),c=g.len()/f;g=g.normalize();let u=g.b,m=g.c,p=a.smul(u).sub(s.smul(m)).smul(c),L=s.smul(u).sum(a.smul(m)).smul(c),R=new O(0,n[0].b-p.dot(o[r]),n[0].c-L.dot(o[r]),0);return[p,L,R]}allstickers(){let t=Ia("allstickers");this.faces=Am(this.baseplanerot,this.faces),this.options.verbosity>0&&console.log("# Total stickers is now "+this.faces.length),this.facecentermass=new Array(this.faces.length);for(let U=0;U<this.faces.length;U++)this.facecentermass[U]=this.faces[U].centermass();let r=[],n=[];for(let U of this.moveplanes){let _=U.makenormal(),M=!1;for(let x of n)_.sameplane(x.makenormal())&&(M=!0);M||(n.push(_),r.push([]))}for(let U of this.moveplanes2){let _=U.makenormal();for(let M=0;M<n.length;M++)if(_.sameplane(n[M])){r[M].push(U);break}}for(let U=0;U<r.length;U++){let _=r[U].map(x=>x.normalizeplane()),M=n[U];for(let x=0;x<_.length;x++)_[x].makenormal().dist(M)>we&&(_[x]=_[x].smul(-1));_.sort((x,S)=>x.a-S.a),r[U]=_}this.moveplanesets=r,this.moveplanenormals=n;let o=r.map(U=>U.length);this.options.verbosity>0&&console.log("# Move plane sets: "+o);let l=[];for(let U=0;U<r.length;U++)l.push([]);for(let U of this.rotations){if(Math.abs(Math.abs(U.a)-1)<we)continue;let _=U.makenormal();for(let M=0;M<r.length;M++)if(_.sameplane(n[M])){l[M].push(U);break}}this.moverotations=l;for(let U=0;U<l.length;U++){let _=l[U],M=_[0].makenormal();for(let x=0;x<_.length;x++)M.dist(_[x].makenormal())>we&&(_[x]=_[x].smul(-1));_.sort((x,S)=>x.angle()-S.angle()),l[U][0].dot(n[U])<0&&_.reverse()}let i=l.map(U=>1+U.length);this.movesetorders=i;let a=[],f="?";for(let U=0;U<r.length;U++){let _=n[U],M=null,x=null;for(let S of this.geonormals){let C=_.dot(S[0]);Math.abs(C-1)<we?(x=[S[1],S[2]],f=S[2]):Math.abs(C+1)<we&&(M=[S[1],S[2]],f=S[2])}if(x===null||M===null)throw new Error("Saw positive or negative sides as null");a.push([x[0],x[1],M[0],M[1],1+r[U].length]),this.addNotationMapper==="NxNxNCubeMapper"&&f==="f"&&(this.notationMapper=new El(1+r[U].length),this.addNotationMapper=""),this.addNotationMapper==="SkewbMapper"&&r[0].length===1&&(this.notationMapper=new zl(this.swizzler),this.addNotationMapper=""),this.addNotationMapper==="PyraminxOrTetraminxMapper"&&(r[0].length===2&&r[0][0].a===.333333333333333&&r[0][1].a===1.66666666666667?(this.notationMapper=new xo(this.swizzler),this.addNotationMapper=""):(this.notationMapper=new kl(this.swizzler),this.addNotationMapper="")),this.addNotationMapper==="MegaminxMapper"&&f==="f"&&(1+r[U].length===3&&(this.notationMapper=new vl(this.notationMapper)),this.addNotationMapper=""),this.addNotationMapper==="FTOMapper"&&f==="f"&&(1+r[U].length===3&&(this.notationMapper=new Sl(this.notationMapper,this.swizzler)),this.addNotationMapper="")}this.movesetgeos=a;let s=new Map,g=this.faces;for(let U=0;U<g.length;U++){let _=g[U],M=this.keyface(_);if(!s.get(M))s.set(M,[U]);else{let x=s.get(M);if(x.push(U),x.length===this.baseFaceCount){this.options.verbosity>0&&console.log("# Splitting core.");for(let S=0;S<x.length;S++){let C=M+" "+S;s.set(C,[x[S]])}}}}this.facelisthash=s,this.options.verbosity>0&&console.log("# Cubies: "+s.size);let c=[],u=[],m=[];for(let U of s.values())if(U.length!==this.baseFaceCount){if(U.length>1){let _=U.map(C=>g[C].centermass()),M=Ml(_);for(let C=0;U.length>2;C++){let j=!1;for(let Z=0;Z<U.length;Z++){let ce=(Z+1)%U.length;if(M.dot(_[Z].cross(_[ce]))<0){let Le=_[Z];_[Z]=_[ce],_[ce]=Le;let Ae=U[Z];U[Z]=U[ce],U[ce]=Ae,j=!0}}if(!j)break;if(C>1e3)throw new Error("Bad epsilon math; too close to border")}let x=0,S=U[x];for(let C=1;C<U.length;C++){let j=U[C];this.faceprecedence[this.getfaceindex(j)]<this.faceprecedence[this.getfaceindex(S)]&&(x=C,S=j)}if(x!==0){let C=U.slice();for(let j=0;j<U.length;j++)U[j]=C[(x+j)%U.length]}}for(let _=0;_<U.length;_++){let M=U[_];u[M]=c.length,m[M]=_}c.push(U)}this.cubies=c,this.facetocubie=u,this.facetoord=m;let p=["?","CENTERS","EDGES","CORNERS","C4RNER","C5RNER"],L=[],R=[0,0,0,0,0,0],D=[],A=[],y=0,k=[],E=[],Q=[],$=[],G=U=>c[U].map(_=>this.getfaceindex(_)).join(" "),oe=[];for(let U=0;U<c.length;U++){if(A[U])continue;let _=c[U];if(_.length===0)continue;let M={},x=0;Q.push(0),oe.push([]);let S=_.length,C=R[S]++,j=p[S];(j===void 0||S===this.baseFaceCount)&&(j="CORE"),j=j+(C===0?"":C+1),L[y]=j,D[y]=S;let Z=[U],ce=0;for(A[U]=!0;ce<Z.length;){let Le=Z[ce++],Ae=G(Le);if((_.length>1||M[Ae]===void 0)&&(M[Ae]=x++),$[Le]=M[Ae],k[Le]=y,oe[y].push(Le),E[Le]=Q[y]++,Z.length<this.rotations.length){let be=this.facecentermass[c[Le][0]];for(let kt of l){let Pe=this.facetocubie[this.findface(be.rotatepoint(kt[0]))];A[Pe]||(Z.push(Pe),A[Pe]=!0)}}}y++}if(this.setReidOrder&&4<=this.stickersperface&&this.stickersperface<=9){let U=[["UF","UR","UB","UL","DF","DR","DB","DL","FR","FL","BR","BL"],["UFR","URB","UBL","ULF","DRF","DFL","DLB","DBR"],["U","L","F","R","B","D"]],_={};for(let M of U)for(let x=0;x<M.length;x++){let S=0;for(let C=0;C<M[x].length;C++)S|=1<<M[x].charCodeAt(C)-65;_[S]=x}for(let M of oe)for(let x of M){let S=0;for(let C of c[x])S|=1<<this.facenames[this.getfaceindex(C)][1].charCodeAt(0)-65;E[x]=_[S]}}if(this.cubiesetnums=k,this.cubieordnums=E,this.cubiesetnames=L,this.cubieords=Q,this.orbitoris=D,this.cubievaluemap=$,this.cubiesetcubies=oe,this.options.fixedPieceType!==null){for(let U=0;U<c.length;U++)if(this.options.fixedPieceType==="v"&&c[U].length>2||this.options.fixedPieceType==="e"&&c[U].length===2||this.options.fixedPieceType==="f"&&c[U].length===1){this.fixedCubie=U;break}if(this.fixedCubie<0)throw new Error("Could not find a cubie of type "+this.options.fixedPieceType+" to fix.")}this.options.verbosity>0&&console.log("# Cubie orbit sizes "+Q),Na(t)}unswizzle(t){let r=this.notationMapper.notationToInternal(t);return r===null?"":this.swizzler.unswizzle(r.family)}stringToBlockMove(t){let r=RegExp("^(([0-9]+)-)?([0-9]+)?([^0-9]+)([0-9]+'?)?$"),n=t.match(r);if(n===null)throw new Error("Bad move passed "+t);let o=n[4],l,i;if(n[2]!==void 0){if(n[3]===void 0)throw new Error("Missing second number in range");l=parseInt(n[2],10)}n[3]!==void 0&&(i=parseInt(n[3],10));let a="1",f=1;return n[5]!==void 0&&(a=n[5],a[0]==="'"&&(a="-"+a.substring(1)),f=parseInt(a,10)),new B(new P(o,i,l),f)}parseMove(t){let r=this.notationMapper.notationToInternal(t);if(r===null)throw new Error("Bad move "+t.family);t=r;let n=t.family,o=!1;if(n.endsWith("v")&&n[0]<="Z"){if(t.innerLayer!==void 0||t.outerLayer!==void 0)throw new Error("Cannot use a prefix with full cube rotations");n=n.slice(0,-1),o=!0}n.endsWith("w")&&n[0]<="Z"&&(n=n.slice(0,-1).toLowerCase());let l,i=-1,a=this.swizzler.unswizzle(n),f=!1;for(let c=0;c<this.movesetgeos.length;c++){let u=this.movesetgeos[c];a===u[0]&&(f=!0,l=u,i=c),a===u[2]&&(f=!1,l=u,i=c)}let s=1,g=1;if(n.toUpperCase()!==n&&(g=2),l===void 0)throw new Error("Bad grip in move "+t.family);if(t.outerLayer!==void 0&&(s=t.outerLayer),t.innerLayer!==void 0&&(t.outerLayer===void 0?(g=t.innerLayer,n<="Z"?s=g:s=1):g=t.innerLayer),s--,g--,o&&(s=0,g=this.moveplanesets[i].length),s<0||s>this.moveplanesets[i].length||g<0||g>this.moveplanesets[i].length)throw new Error("Bad slice spec "+s+" "+g+" vs "+this.moveplanesets[i].length);if(!Um&&s===0&&g===this.moveplanesets[i].length&&!o)throw new Error("! full puzzle rotations must be specified with v suffix.");return[void 0,i,s,g,f,t.amount]}parsemove(t){let r=this.parseMove(this.stringToBlockMove(t));return r[0]=t,r}genperms(){let t=Ia("genperms");if(this.cmovesbyslice.length>0)return;let r=[];if(this.options.orientCenters){for(let n=0;n<this.cubies.length;n++)if(this.cubies[n].length===1){let o=this.cubies[n][0],l=this.getfaceindex(o);if(this.basefaces[l].centermass().dist(this.facecentermass[o])<we){let i=this.basefaces[l].length;for(let a=1;a<i;a++)this.cubies[n].push(this.cubies[n][a-1]);this.duplicatedFaces[o]=i,this.duplicatedCubies[n]=i,this.orbitoris[this.cubiesetnums[n]]=i}}}for(let n=0;n<this.moveplanesets.length;n++){let o=this.moveplanesets[n],l=[],i=[o.length+1,0],a=1;for(;a*2<=o.length;)a*=2;for(let g=0;g<this.faces.length;g++){let c=0;if(o.length>0){let u=this.facecentermass[g].dot(o[0]);for(let m=a;m>0;m>>=1)c+m<=o.length&&u>o[c+m-1].a&&(c+=m);c=o.length-c}for(l.push(c);i.length<=c;)i.push(0);i[c]++}let f=new Array(i.length);for(let g=0;g<i.length;g++)f[g]=[];let s=[];for(let g=0;g<this.faces.length;g++){if(l[g]<0)continue;let c=[this.facetocubie[g],this.facetoord[g]],u=this.facecentermass[g],m=u,p=g,L=l[p];for(;;){l[p]=-1;let R=u.rotatepoint(this.moverotations[n][0]);if(R.dist(m)<we)break;p=this.findface(R),c.push(this.facetocubie[p],this.facetoord[p]),u=R}if(c.length>2&&this.options.orientCenters&&(this.cubies[c[0]].length===1||this.duplicatedCubies[c[0]]>1)&&this.facecentermass[g].dist(this.basefaces[this.getfaceindex(g)].centermass())<we){let R=this.faces[this.cubies[c[0]][0]];for(let D=0;D<c.length;D+=2){let A=this.faces[this.cubies[c[D]][0]],y=-1;for(let k=0;k<R.length;k++)if(A.get(k).dist(R.get(0))<we){y=k;break}if(y<0)throw new Error("Couldn't find rotation of center faces; ignoring for now.");c[D+1]=y,R=R.rotate(this.moverotations[n][0])}}if(c.length===2&&this.options.orientCenters)for(let R=1;R<this.movesetorders[n];R++)L===0?c.push(c[0],R):c.push(c[0],(this.movesetorders[n]-R)%this.movesetorders[n]);if(c.length>2&&!s[c[0]]){if(c.length!==2*this.movesetorders[n])throw new Error("Bad length in perm gen");for(let R of c)f[L].push(R)}for(let R=0;R<c.length;R+=2)s[c[R]]=!0}for(let g=0;g<f.length;g++)f[g]=f[g].slice();r.push(f)}if(this.cmovesbyslice=r,this.options.moveList){let n=[];for(let o of this.options.moveList)n.push(this.parsemove(o));this.parsedmovelist=n}this.facelisthash.clear(),this.facecentermass=[],Na(t)}getboundarygeometry(){return{baseplanes:this.baseplanes,facenames:this.facenames,faceplanes:this.faceplanes,vertexnames:this.vertexnames,edgenames:this.edgenames,geonormals:this.geonormals}}getmovesets(t){let r=this.moveplanesets[t].length,n=[];if(this.parsedmovelist!==void 0)for(let o of this.parsedmovelist)o[1]===t&&(o[4]?n.push([o[2],o[3]]):n.push([r-o[3],r-o[2]]),n.push(o[5]));else if(this.options.vertexMoves&&!this.options.allMoves){let o=this.movesetgeos[t];if(o[1]!==o[3])for(let l=0;l<r;l++)o[1]!=="v"?(this.options.outerBlockMoves?n.push([l+1,r]):n.push([l+1]),n.push(1)):(this.options.outerBlockMoves?n.push([0,l]):n.push([l,l]),n.push(1))}else for(let o=0;o<=r;o++)!this.options.allMoves&&o+o===r||(this.options.outerBlockMoves?o+o>r?n.push([o,r]):n.push([0,o]):n.push([o,o]),n.push(1));if(this.fixedCubie>=0){let o=this.keyface3(this.faces[this.cubies[this.fixedCubie][0]])[t],l=[];for(let i=0;i<n.length;i+=2){let a=n[i];if(o>=a[0]&&o<=a[1])if(a[0]===0)a=[a[1]+1,r];else if(r===a[1])a=[0,a[0]-1];else throw Error("fixed cubie option would disconnect move");let f=!1;for(let s=0;s<l.length;s+=2)if(l[s][0]===a[0]&&l[s][1]===a[1]&&l[s+1]===n[i+1]){f=!0;break}f||(l.push(a),l.push(n[i+1]))}n=l}return n}graybyori(t){let r=this.cubies[t].length;return this.duplicatedCubies[t]&&(r=1),r===1&&(this.options.grayCenters||!this.options.includeCenterOrbits)||r===2&&(this.options.grayEdges||!this.options.includeEdgeOrbits)||r>2&&(this.options.grayCorners||!this.options.includeCornerOrbits)}skipbyori(t){let r=this.cubies[t].length;return this.duplicatedCubies[t]&&(r=1),r===1&&!this.options.includeCenterOrbits||r===2&&!this.options.includeEdgeOrbits||r>2&&!this.options.includeCornerOrbits}skipcubie(t){return this.skipbyori(t)}header(t){return t+ym+\`
4
+ var workerSource = `var b2=Object.defineProperty;var Cc=e=>b2(e,"__esModule",{value:!0});var U=(e,t)=>()=>(e&&(t=e(e=0)),t);var ye=(e,t)=>{Cc(e);for(var r in t)b2(e,r,{get:t[r],enumerable:!0})};var rs=(e,t,r)=>{if(!t.has(e))throw TypeError("Cannot "+r)};var d=(e,t,r)=>(rs(e,t,"read from private field"),r?r.call(e):t.get(e)),ne=(e,t,r)=>{if(t.has(e))throw TypeError("Cannot add the same private member more than once");t instanceof WeakSet?t.add(e):t.set(e,r)},q=(e,t,r,n)=>(rs(e,t,"write to private field"),n?n.call(e,r):t.set(e,r),r),ns=(e,t,r,n)=>({set _(o){q(e,t,o,r)},get _(){return d(e,t,n)}}),S2=(e,t,r)=>(rs(e,t,"access private method"),r);var Zc,pl,Te,Kt=U(()=>{Zc=!1,pl=class{is(t){return this instanceof t}as(t){return this instanceof t?this:null}},Te=class extends pl{constructor(){super();Zc&&Object.defineProperty(this,"_debugStr",{get:()=>this.toString()})}get log(){return console.log.bind(console,this,this.toString())}}});function P2(e,t=!0){if(!t)return e;switch(e){case 1:return-1;case-1:return 1}}function ss(e,t){return t===-1?Array.from(e).reverse():e}function M2(e){return Array.from(e).reverse()}var V,Dt=U(()=>{(function(r){r[r.Forwards=1]="Forwards",r[r.Backwards=-1]="Backwards"})(V||(V={}))});var po,pn,N2,as=U(()=>{po=2147483647,pn="2^31 - 1",N2=-2147483648});var _r,pt,fs=U(()=>{Qt();pt=class{constructor(){ne(this,_r,[])}push(t){d(this,_r).push(t)}experimentalPushAlg(t){for(let r of t.units())this.push(r)}experimentalNumUnits(){return d(this,_r).length}toAlg(){return new z(d(this,_r))}reset(){q(this,_r,[])}};_r=new WeakMap});var Cr,Pr,ml,Ge,mo=U(()=>{Qt();Kt();Dt();ml=class extends Te{constructor(t,r){super();ne(this,Cr,void 0);ne(this,Pr,void 0);q(this,Cr,ir(t)),q(this,Pr,ir(r))}get A(){return d(this,Cr)}get B(){return d(this,Pr)}isIdentical(t){let r=t.as(ml);return!!(r?.A.isIdentical(this.A)&&r?.B.isIdentical(this.B))}invert(){return new ml(d(this,Pr),d(this,Cr))}*experimentalExpand(t=V.Forwards,r){r??(r=1/0),r===0?yield t===V.Forwards?this:this.invert():t===V.Forwards?(yield*this.A.experimentalExpand(V.Forwards,r-1),yield*this.B.experimentalExpand(V.Forwards,r-1),yield*this.A.experimentalExpand(V.Backwards,r-1),yield*this.B.experimentalExpand(V.Backwards,r-1)):(yield*this.B.experimentalExpand(V.Forwards,r-1),yield*this.A.experimentalExpand(V.Forwards,r-1),yield*this.B.experimentalExpand(V.Backwards,r-1),yield*this.A.experimentalExpand(V.Backwards,r-1))}toString(){return\`[\${d(this,Cr).toString()}, \${d(this,Pr).toString()}]\`}},Ge=ml;Cr=new WeakMap,Pr=new WeakMap});var mn,Ln,Ll,Oe,Lo=U(()=>{Qt();Kt();Dt();Ll=class extends Te{constructor(t,r){super();ne(this,mn,void 0);ne(this,Ln,void 0);q(this,mn,ir(t)),q(this,Ln,ir(r))}get A(){return d(this,mn)}get B(){return d(this,Ln)}isIdentical(t){let r=t.as(Ll);return!!(r?.A.isIdentical(this.A)&&r?.B.isIdentical(this.B))}invert(){return new Ll(d(this,mn),d(this,Ln).invert())}*experimentalExpand(t,r){r??(r=1/0),r===0?yield t===V.Forwards?this:this.invert():(yield*this.A.experimentalExpand(V.Forwards,r-1),yield*this.B.experimentalExpand(t,r-1),yield*this.A.experimentalExpand(V.Backwards,r-1))}toString(){return\`[\${this.A}: \${this.B}]\`}},Oe=Ll;mn=new WeakMap,Ln=new WeakMap});var sr,us,Ft,Bo=U(()=>{Kt();Dt();us=class extends Te{constructor(t){super();ne(this,sr,void 0);if(t.includes(\`
5
+ \`)||t.includes("\\r"))throw new Error("LineComment cannot contain newline");q(this,sr,t)}get text(){return d(this,sr)}isIdentical(t){let r=t;return t.is(us)&&d(this,sr)===d(r,sr)}invert(){return this}*experimentalExpand(t=V.Forwards,r=1/0){yield this}toString(){return\`//\${d(this,sr)}\`}},Ft=us;sr=new WeakMap});var Je,Ro=U(()=>{Kt();Dt();Je=class extends Te{toString(){return\`
6
+ \`}isIdentical(t){return t.is(Je)}invert(){return this}*experimentalExpand(t=V.Forwards,r=1/0){yield this}}});var Xe,Do=U(()=>{Kt();Dt();Xe=class extends Te{toString(){return"."}isIdentical(t){return t.is(Xe)}invert(){return this}*experimentalExpand(t=V.Forwards,r=1/0){yield this}}});function Bl(e,t){return e?parseInt(e):t}function gs(e){return new Rl().parseAlg(e)}function G2(e){return new Rl().parseMove(e)}function O2(e){return new Rl().parseQuantumMove(e)}function $e(e,t,r){let n=e;return n.startCharIndex=t,n.endCharIndex=r,n}function I2(e,t){return"startCharIndex"in e&&(t.startCharIndex=e.startCharIndex),"endCharIndex"in e&&(t.endCharIndex=e.endCharIndex),t}var T2,Jc,Xc,$c,ep,tp,ot,O,Rl,cs=U(()=>{Qt();fs();mo();Lo();dl();Bo();jt();Ro();Do();T2=/^(\\d+)?('?)/,Jc=/^[_\\dA-Za-z]/,Xc=/^((([1-9]\\d*)-)?([1-9]\\d*))?([_A-Za-z]+)?/,$c=/^[^\\n]*/,ep=/^(-?\\d+), ?/,tp=/^(-?\\d+)\\)/;Rl=class{constructor(){ne(this,ot,"");ne(this,O,0)}parseAlg(t){q(this,ot,t),q(this,O,0);let r=this.parseAlgWithStopping([]);return this.mustBeAtEndOfInput(),r}parseMove(t){q(this,ot,t),q(this,O,0);let r=this.parseMoveImpl();return this.mustBeAtEndOfInput(),r}parseQuantumMove(t){q(this,ot,t),q(this,O,0);let r=this.parseQuantumMoveImpl();return this.mustBeAtEndOfInput(),r}mustBeAtEndOfInput(){if(d(this,O)!==d(this,ot).length)throw new Error("parsing unexpectedly ended early")}parseAlgWithStopping(t){let r=d(this,O),n=d(this,O),o=new pt,l=!1,i=s=>{if(l)throw new Error(\`Unexpected character at index \${s}. Are you missing a space?\`)};e:for(;d(this,O)<d(this,ot).length;){let s=d(this,O);if(t.includes(d(this,ot)[d(this,O)]))return $e(o.toAlg(),r,n);if(this.tryConsumeNext(" ")){l=!1,o.experimentalNumUnits()===0&&(r=d(this,O));continue e}else if(Jc.test(d(this,ot)[d(this,O)])){i(s);let f=this.parseMoveImpl();o.push(f),l=!0,n=d(this,O);continue e}else if(this.tryConsumeNext("(")){i(s);let f=this.tryRegex(ep);if(f){let a=f[1],g=d(this,O),c=this.parseRegex(tp),u=$e(new B(new P("U_SQ_"),parseInt(a)),s+1,s+1+a.length),p=$e(new B(new P("D_SQ_"),parseInt(c[1])),g,d(this,O)-1),m=$e(new z([u,p]),s+1,d(this,O)-1);o.push($e(new gt(m),s,d(this,O))),l=!0,n=d(this,O);continue e}else{let a=this.parseAlgWithStopping([")"]);this.mustConsumeNext(")");let g=this.parseAmount();o.push($e(new gt(a,g),s,d(this,O))),l=!0,n=d(this,O);continue e}}else if(this.tryConsumeNext("[")){i(s);let f=this.parseAlgWithStopping([",",":"]),a=this.popNext(),g=this.parseAlgWithStopping(["]"]);switch(this.mustConsumeNext("]"),a){case":":o.push($e(new Oe(f,g),s,d(this,O))),l=!0,n=d(this,O);continue e;case",":o.push($e(new Ge(f,g),s,d(this,O))),l=!0,n=d(this,O);continue e;default:throw"unexpected parsing error"}}else if(this.tryConsumeNext(\`
7
+ \`)){o.push($e(new Je,s,d(this,O))),l=!1,n=d(this,O);continue e}else if(this.tryConsumeNext("/"))if(this.tryConsumeNext("/")){i(s);let[f]=this.parseRegex($c);o.push($e(new Ft(f),s,d(this,O))),l=!1,n=d(this,O);continue e}else{o.push($e(new B("_SLASH_"),s,d(this,O))),l=!0,n=d(this,O);continue e}else if(this.tryConsumeNext(".")){i(s),o.push($e(new Xe,s,d(this,O))),l=!0,n=d(this,O);continue e}else throw new Error(\`Unexpected character: \${this.popNext()}\`)}if(d(this,O)!==d(this,ot).length)throw new Error("did not finish parsing?");if(t.length>0)throw new Error("expected stopping");return $e(o.toAlg(),r,n)}parseQuantumMoveImpl(){let[,,,t,r,n]=this.parseRegex(Xc);return new P(n,Bl(r,void 0),Bl(t,void 0))}parseMoveImpl(){let t=d(this,O);if(this.tryConsumeNext("/"))return $e(new B("_SLASH_"),t,d(this,O));let r=this.parseQuantumMoveImpl(),[n,o]=this.parseAmountAndTrackEmptyAbsAmount(),l=this.parseMoveSuffix();if(l){if(n<0)throw new Error("uh-oh");if((l==="++"||l==="--")&&n!==1)throw new Error("Pochmann ++ or -- moves cannot have an amount other than 1.");if((l==="++"||l==="--")&&!o)throw new Error("Pochmann ++ or -- moves cannot have an amount written as a number.");if((l==="+"||l==="-")&&o)throw new Error("Clock dial moves must have an amount written as a natural number followed by + or -.");l.startsWith("+")&&(r=r.modified({family:\`\${r.family}_\${l==="+"?"PLUS":"PLUSPLUS"}_\`})),l.startsWith("-")&&(r=r.modified({family:\`\${r.family}_\${l==="-"?"PLUS":"PLUSPLUS"}_\`}),n*=-1)}return $e(new B(r,n),t,d(this,O))}parseMoveSuffix(){return this.tryConsumeNext("+")?this.tryConsumeNext("+")?"++":"+":this.tryConsumeNext("-")?this.tryConsumeNext("-")?"--":"-":null}parseAmountAndTrackEmptyAbsAmount(){let t=d(this,O),[,r,n]=this.parseRegex(T2);if(r?.startsWith("0")&&r!=="0")throw new Error(\`Error at char index \${t}: An amount can only start with 0 if it's exactly the digit 0.\`);return[Bl(r,1)*(n==="'"?-1:1),!r]}parseAmount(){let t=d(this,O),[,r,n]=this.parseRegex(T2);if(r?.startsWith("0")&&r!=="0")throw new Error(\`Error at char index \${t}: An amount number can only start with 0 if it's exactly the digit 0.\`);return Bl(r,1)*(n==="'"?-1:1)}parseRegex(t){let r=t.exec(this.remaining());if(r===null)throw new Error("internal parsing error");return q(this,O,d(this,O)+r[0].length),r}tryRegex(t){let r=t.exec(this.remaining());return r===null?null:(q(this,O,d(this,O)+r[0].length),r)}remaining(){return d(this,ot).slice(d(this,O))}popNext(){let t=d(this,ot)[d(this,O)];return ns(this,O)._++,t}tryConsumeNext(t){return d(this,ot)[d(this,O)]===t?(ns(this,O)._++,!0):!1}mustConsumeNext(t){let r=this.popNext();if(r!==t)throw new Error(\`expected \\\`\${t}\\\` while parsing, encountered \${r}\`);return r}};ot=new WeakMap,O=new WeakMap});function Dl(e){W2.has(e)||(console.warn(e),W2.add(e))}var W2,ps=U(()=>{W2=new Set});var Bn,ms=U(()=>{Dt();as();Bn=class{constructor(t,r=1){if(this.quantum=t,this.amount=r,!Number.isInteger(this.amount)||this.amount<N2||this.amount>po)throw new Error(\`Unit amount absolute value must be a non-negative integer from \${pn} to \${pn}.\`)}suffix(){let t="",r=Math.abs(this.amount);return r!==1&&(t+=r),this.amount<0&&(t+="'"),t}isIdentical(t){return this.quantum.isIdentical(t.quantum)&&this.amount===t.amount}*experimentalExpand(t,r){let n=Math.abs(this.amount),o=P2(t,this.amount<0);for(let l=0;l<n;l++)yield*this.quantum.experimentalExpand(o,r)}}});var qt,Ie,We,Fl,P,ze,Rn,B,jt=U(()=>{Kt();Dt();as();cs();ps();ms();Fl=class extends pl{constructor(t,r,n){super();ne(this,qt,void 0);ne(this,Ie,void 0);ne(this,We,void 0);if(q(this,qt,t),q(this,Ie,r??null),q(this,We,n??null),Object.freeze(this),d(this,Ie)!==null&&(!Number.isInteger(d(this,Ie))||d(this,Ie)<1||d(this,Ie)>po))throw new Error(\`QuantumMove inner layer must be a positive integer below \${pn}.\`);if(d(this,We)!==null&&(!Number.isInteger(d(this,We))||d(this,We)<1||d(this,We)>po))throw new Error(\`QuantumMove outer layer must be a positive integer below \${pn}.\`);if(d(this,We)!==null&&d(this,Ie)!==null&&d(this,Ie)<=d(this,We))throw new Error("QuantumMove outer layer must be smaller than inner layer.");if(d(this,We)!==null&&d(this,Ie)===null)throw new Error("QuantumMove with an outer layer must have an inner layer")}static fromString(t){return O2(t)}modified(t){return new Fl(t.family??d(this,qt),t.innerLayer??d(this,Ie),t.outerLayer??d(this,We))}isIdentical(t){let r=t;return t.is(Fl)&&d(this,qt)===d(r,qt)&&d(this,Ie)===d(r,Ie)&&d(this,We)===d(r,We)}get family(){return d(this,qt)}get outerLayer(){return d(this,We)}get innerLayer(){return d(this,Ie)}experimentalExpand(){throw new Error("experimentalExpand() cannot be called on a \`QuantumMove\` directly.")}toString(){let t=d(this,qt);return d(this,Ie)!==null&&(t=String(d(this,Ie))+t,d(this,We)!==null&&(t=String(d(this,We))+"-"+t)),t}},P=Fl;qt=new WeakMap,Ie=new WeakMap,We=new WeakMap;Rn=class extends Te{constructor(...t){super();ne(this,ze,void 0);if(typeof t[0]=="string")if(t[1]??null){q(this,ze,new Bn(P.fromString(t[0]),t[1]));return}else return Rn.fromString(t[0]);q(this,ze,new Bn(t[0],t[1]))}isIdentical(t){let r=t.as(Rn);return!!r&&d(this,ze).isIdentical(d(r,ze))}invert(){return I2(this,new Rn(d(this,ze).quantum,-this.amount))}*experimentalExpand(t=V.Forwards){t===V.Forwards?yield this:yield this.modified({amount:-this.amount})}get quantum(){return d(this,ze).quantum}modified(t){return new Rn(d(this,ze).quantum.modified(t),t.amount??this.amount)}static fromString(t){return G2(t)}get amount(){return d(this,ze).amount}get type(){return Dl("deprecated: type"),"blockMove"}get family(){return d(this,ze).quantum.family??void 0}get outerLayer(){return d(this,ze).quantum.outerLayer??void 0}get innerLayer(){return d(this,ze).quantum.innerLayer??void 0}toString(){if(this.family==="_SLASH_")return"/";if(this.family.endsWith("_PLUS_"))return d(this,ze).quantum.toString().slice(0,-6)+Math.abs(this.amount)+(this.amount<0?"-":"+");if(this.family.endsWith("_PLUSPLUS_")){let t=Math.abs(this.amount);return d(this,ze).quantum.toString().slice(0,-10)+(t===1?"":t)+(this.amount<0?"--":"++")}return d(this,ze).quantum.toString()+d(this,ze).suffix()}},B=Rn;ze=new WeakMap});var K2,Q2,lt,hl,gt,dl=U(()=>{Qt();Kt();Dt();jt();ms();K2=class{constructor(){this.quantumU_SQ_=null;this.quantumD_SQ_=null}format(t){let r=this.tuple(t);return r?\`(\${r.map(n=>n.amount).join(", ")})\`:null}tuple(t){this.quantumU_SQ_||(this.quantumU_SQ_=new P("U_SQ_")),this.quantumD_SQ_||(this.quantumD_SQ_=new P("D_SQ_"));let r=t.alg;if(r.experimentalNumUnits()===2){let[n,o]=r.units();if(n.as(B)?.quantum.isIdentical(this.quantumU_SQ_)&&o.as(B)?.quantum.isIdentical(this.quantumD_SQ_)){if(t.amount!==1)throw new Error("Square-1 tuples cannot have an amount other than 1.");return[n,o]}}return null}},Q2=new K2,hl=class extends Te{constructor(t,r){super();ne(this,lt,void 0);let n=ir(t);q(this,lt,new Bn(n,r))}isIdentical(t){let r=t;return t.is(hl)&&d(this,lt).isIdentical(d(r,lt))}get alg(){return d(this,lt).quantum}get amount(){return d(this,lt).amount}get experimentalRepetitionSuffix(){return d(this,lt).suffix()}invert(){return new hl(d(this,lt).quantum,-d(this,lt).amount)}*experimentalExpand(t=V.Forwards,r){r??(r=1/0),r===0?yield t===V.Forwards?this:this.invert():yield*d(this,lt).experimentalExpand(t,r-1)}static fromString(){throw new Error("unimplemented")}toString(){return Q2.format(this)??\`(\${d(this,lt).quantum.toString()})\${d(this,lt).suffix()}\`}experimentalAsSquare1Tuple(){return Q2.tuple(this)}},gt=hl;lt=new WeakMap});var Al=U(()=>{dl();Bo();mo();Lo();jt();Ro();Do()});function ht(e,t){return e instanceof t}function j2(e){return ht(e,gt)||ht(e,Ft)||ht(e,Ge)||ht(e,Oe)||ht(e,B)||ht(e,Je)||ht(e,Xe)}var Ls=U(()=>{Al()});function q2(e,t,r){if(t.is(gt))return e.traverseGrouping(t,r);if(t.is(B))return e.traverseMove(t,r);if(t.is(Ge))return e.traverseCommutator(t,r);if(t.is(Oe))return e.traverseConjugate(t,r);if(t.is(Xe))return e.traversePause(t,r);if(t.is(Je))return e.traverseNewline(t,r);if(t.is(Ft))return e.traverseLineComment(t,r);throw new Error("unknown unit")}function V2(e){if(e.is(gt)||e.is(B)||e.is(Ge)||e.is(Oe)||e.is(Xe)||e.is(Je)||e.is(Ft))return e;throw"internal error: expected unit"}var dn,Dn,yl,rp,Rs,Bs,H2,Y2,ds=U(()=>{dl();mo();jt();Ro();Do();Lo();Bo();dn=class{traverseUnit(t,r){return q2(this,t,r)}traverseIntoUnit(t,r){return V2(this.traverseUnit(t,r))}},Dn=class extends dn{traverseUnit(t){return q2(this,t,void 0)}traverseIntoUnit(t){return V2(this.traverseUnit(t))}},Rs=class extends dn{*traverseAlg(t,r){if(r.depth===0){yield*t.units();return}let n=[],o=null,l=r?.collapseMoves??!0;function i(a,g){var p;let c=S2(p=Rs,yl,rp).call(p,a,g,r);if(c===0)return!1;let u=new B(a.quantum,c);return n.push(u),o=u,!0}function s(a){l&&o?.is(B)&&a.is(B)&&o.quantum.isIdentical(a.quantum)?(n.pop(),i(o,a.amount)||(o=n.slice(-1)[0])):a.is(B)?i(a,0):(n.push(a),o=a)}let f={depth:r.depth?r.depth-1:null};for(let a of t.units())for(let g of this.traverseUnit(a,f))s(g);for(let a of n)yield a}*traverseGrouping(t,r){if(r.depth===0){yield t;return}let n={depth:r.depth?r.depth-1:null};yield new gt(this.traverseAlg(t.alg,n))}*traverseMove(t,r){yield t}*traverseCommutator(t,r){if(r.depth===0){yield t;return}let n={depth:r.depth?r.depth-1:null};yield new Ge(this.traverseAlg(t.A,n),this.traverseAlg(t.B,n))}*traverseConjugate(t,r){if(r.depth===0){yield t;return}let n={depth:r.depth?r.depth-1:null};yield new Oe(this.traverseAlg(t.A,n),this.traverseAlg(t.B,n))}*traversePause(t,r){yield t}*traverseNewline(t,r){yield t}*traverseLineComment(t,r){yield t}},Bs=Rs;yl=new WeakSet,rp=function(t,r,n){let o=t.amount+r;if(n?.quantumMoveOrder){let l=n.quantumMoveOrder(t.quantum),i=Math.floor(l/2)+1-l;o=(o%l+l-i)%l+i}return o},ne(Bs,yl);H2=new Bs,Y2=H2.traverseAlg.bind(H2)});function Z2(e){if(!e)return[];if(ht(e,z))return e.units();if(typeof e=="string")return gs(e).units();let t=e;if(typeof t[Symbol.iterator]=="function")return t;throw"Invalid unit"}function ir(e){return ht(e,z)?e:new z(e)}function np(e,t){return e.is(Je)||t.is(Je)?"":e.is(Ft)&&!t.is(Je)?\`
8
+ \`:" "}var it,Mr,z,Qt=U(()=>{Kt();Ls();Dt();cs();ds();Bo();jt();Ro();ps();Mr=class extends Te{constructor(t){super();ne(this,it,void 0);q(this,it,Array.from(Z2(t)));for(let r of d(this,it))if(!j2(r))throw new Error("An alg can only contain units.")}isIdentical(t){let r=t;if(!t.is(Mr))return!1;let n=Array.from(d(this,it)),o=Array.from(d(r,it));if(n.length!==o.length)return!1;for(let l=0;l<n.length;l++)if(!n[l].isIdentical(o[l]))return!1;return!0}invert(){return new Mr(M2(Array.from(d(this,it)).map(t=>t.invert())))}*experimentalExpand(t=V.Forwards,r){r??(r=1/0);for(let n of ss(d(this,it),t))yield*n.experimentalExpand(t,r)}expand(t){return new Mr(this.experimentalExpand(V.Forwards,t?.depth??1/0))}*experimentalLeafMoves(){for(let t of this.experimentalExpand())t.is(B)&&(yield t)}concat(t){return new Mr(Array.from(d(this,it)).concat(Array.from(Z2(t))))}experimentalIsEmpty(){for(let t of d(this,it))return!1;return!0}static fromString(t){return gs(t)}*units(){for(let t of d(this,it))yield t}experimentalNumUnits(){return Array.from(d(this,it)).length}get type(){return Dl("deprecated: type"),"sequence"}toString(){let t="",r=null;for(let n of d(this,it))r&&(t+=np(r,n)),t+=n.toString(),r=n;return t}simplify(t){return new Mr(Y2(this,t??{}))}},z=Mr;it=new WeakMap});var op,J2=U(()=>{Qt();Al();mo();Lo();jt();Do();op={Sune:new z([new B("R",1),new B("U",1),new B("R",-1),new B("U",1),new B("R",1),new B("U",-2),new B("R",-1)]),AntiSune:new z([new B("R",1),new B("U",2),new B("R",-1),new B("U",-1),new B("R",1),new B("U",-1),new B("R",-1)]),SuneCommutator:new z([new Ge(new z([new B("R",1),new B("U",1),new B("R",-2)]),new z([new Oe(new z([new B("R",1)]),new z([new B("U",1)]))]))]),Niklas:new z([new B("R",1),new B("U",-1),new B("L",-1),new B("U",1),new B("R",-1),new B("U",-1),new B("L",1),new B("U",1)]),EPerm:new z([new B("x",-1),new Ge(new z([new Oe(new z([new B("R",1)]),new z([new B("U",-1)]))]),new z([new B("D",1)])),new Ge(new z([new Oe(new z([new B("R",1)]),new z([new B("U",1)]))]),new z([new B("D",1)])),new B("x",1)]),FURURFCompact:new z([new Oe(new z([new B("F",1)]),new z([new Ge(new z([new B("U",1)]),new z([new B("R",1)]))]))]),APermCompact:new z([new Oe(new z([new B("R",2)]),new z([new Ge(new z([new B("F",2)]),new z([new B("R",-1),new B("B",-1),new B("R",1)]))]))]),FURURFMoves:new z([new B("F",1),new B("U",1),new B("R",1),new B("U",-1),new B("R",-1),new B("F",-1)]),TPerm:new z([new B("R",1),new B("U",1),new B("R",-1),new B("U",-1),new B("R",-1),new B("F",1),new B("R",2),new B("U",-1),new B("R",-1),new B("U",-1),new B("R",1),new B("U",1),new B("R",-1),new B("F",-1)]),HeadlightSwaps:new z([new Oe(new z([new B("F",1)]),new z([new gt(new z([new Ge(new z([new B("R",1)]),new z([new B("U",1)]))]),3)]))]),TriplePause:new z([new Xe,new Xe,new Xe])}});var HF,X2=U(()=>{jt();HF={73:new B("R"),75:new B("R'"),87:new B("B"),79:new B("B'"),83:new B("D"),76:new B("D'"),68:new B("L"),69:new B("L'"),74:new B("U"),70:new B("U'"),72:new B("F"),71:new B("F'"),78:new B("x'"),67:new B("l"),82:new B("l'"),85:new B("r"),77:new B("r'"),88:new B("d"),188:new B("d'"),84:new B("x"),89:new B("x"),66:new B("x'"),186:new B("y"),59:new B("y"),65:new B("y'"),80:new B("z"),81:new B("z'"),90:new B("M'"),190:new B("M'")}});var $2=U(()=>{});var e0=U(()=>{Qt()});var Re=U(()=>{Qt();fs();ds();J2();X2();Al();jt();$2();e0();Ls();Dt()});function Fo(e,t,r){let n={};for(let o in e.orbits){let l=e.orbits[o],i=t[o],s=r[o];if(ho(l.numOrientations,s))n[o]=i;else if(ho(l.numOrientations,i))n[o]=s;else{let f=new Array(l.numPieces);if(l.numOrientations===1){for(let a=0;a<l.numPieces;a++)f[a]=i.permutation[s.permutation[a]];n[o]={permutation:f,orientation:i.orientation}}else{let a=new Array(l.numPieces);for(let g=0;g<l.numPieces;g++)a[g]=(i.orientation[s.permutation[g]]+s.orientation[g])%l.numOrientations,f[g]=i.permutation[s.permutation[g]];n[o]={permutation:f,orientation:a}}}}return n}function Ds(e,t,r){let n={};for(let o in e.orbits){let l=e.orbits[o],i=t[o],s=r[o];if(ho(l.numOrientations,s))n[o]=i;else{let f=new Array(l.numPieces);if(l.numOrientations===1){for(let a=0;a<l.numPieces;a++)f[a]=i.pieces[s.permutation[a]];n[o]={pieces:f,orientation:i.orientation}}else{let a=new Array(l.numPieces);for(let g=0;g<l.numPieces;g++)a[g]=(i.orientation[s.permutation[g]]+s.orientation[g])%l.numOrientations,f[g]=i.pieces[s.permutation[g]];n[o]={pieces:f,orientation:a}}}}return n}var Ul=U(()=>{Ao()});function lp(e){let t=r0.get(e);if(t)return t;let r=new Array(e),n=new Array(e);for(let l=0;l<e;l++)r[l]=l,n[l]=0;let o={permutation:r,orientation:n};return t0&&(Object.freeze(r),Object.freeze(n),Object.freeze(o)),r0.set(e,o),o}function n0(e){let t={};for(let[r,n]of Object.entries(e.orbits))t[r]=lp(n.numPieces);return t0&&Object.freeze(t),t}function o0(e,t){let r=t.quantum.toString(),n=e.definition.moves[r];if(n)return ar(e,n,t.amount);let o=e.definition.moves[t.toString()];if(o)return o;let l=e.definition.moves[t.invert().toString()];if(l)return ar(e,l,-1);throw new Error(\`Invalid move for KPuzzle (\${e.name()}): \${t}\`)}var t0,r0,Fs=U(()=>{Ao();t0=!1,r0=new Map});var me,bl=U(()=>{Ul();yo();me=class{constructor(t,r){this.kpuzzle=t;this.stateData=r}static fromTransformation(t){let r=Ds(t.kpuzzle.definition,t.kpuzzle.definition.startStateData,t.transformationData);return new me(t.kpuzzle,r)}apply(t){return this.applyTransformation(this.kpuzzle.toTransformation(t))}applyTransformation(t){if(t.isIdentityTransformation())return new me(this.kpuzzle,this.stateData);let r=Ds(this.kpuzzle.definition,this.stateData,t.transformationData);return new me(this.kpuzzle,r)}applyMove(t){return this.applyTransformation(this.kpuzzle.moveToTransformation(t))}applyAlg(t){return this.applyTransformation(this.kpuzzle.algToTransformation(t))}experimentalToTransformation(){if(!this.kpuzzle.canConvertStateToUniqueTransformation())return null;let t={};for(let[r,n]of Object.entries(this.stateData)){let o={permutation:n.pieces,orientation:n.orientation};t[r]=o}return new At(this.kpuzzle,t)}}});var Nr,fr,At,yo=U(()=>{Ao();Ul();Fs();bl();fr=class{constructor(t,r){this.kpuzzle=t;this.transformationData=r;ne(this,Nr,void 0)}invert(){return new fr(this.kpuzzle,hs(this.kpuzzle,this.transformationData))}isIdentityTransformation(){return d(this,Nr)??q(this,Nr,this.isIdentical(this.kpuzzle.identityTransformation()))}static experimentalConstructIdentity(t){let r=new fr(t,n0(t.definition));return q(r,Nr,!0),r}isIdentical(t){return l0(this.kpuzzle,this.transformationData,t.transformationData)}apply(t){return this.applyTransformation(this.kpuzzle.toTransformation(t))}applyTransformation(t){if(this.kpuzzle!==t.kpuzzle)throw new Error(\`Tried to apply a transformation for a KPuzzle (\${t.kpuzzle.name()}) to a different KPuzzle (\${this.kpuzzle.name()}).\`);return d(this,Nr)?new fr(this.kpuzzle,t.transformationData):d(t,Nr)?new fr(this.kpuzzle,this.transformationData):new fr(this.kpuzzle,Fo(this.kpuzzle.definition,this.transformationData,t.transformationData))}applyMove(t){return this.applyTransformation(this.kpuzzle.moveToTransformation(t))}applyAlg(t){return this.applyTransformation(this.kpuzzle.algToTransformation(t))}toKState(){return me.fromTransformation(this)}repetitionOrder(){return i0(this.kpuzzle.definition,this)}selfMultiply(t){return new fr(this.kpuzzle,ar(this.kpuzzle,this.transformationData,t))}},At=fr;Nr=new WeakMap});function ho(e,t){let{permutation:r}=t,n=r.length;for(let o=0;o<n;o++)if(r[o]!==o)return!1;if(e>1){let{orientation:o}=t;for(let l=0;l<n;l++)if(o[l]!==0)return!1}return!0}function ip(e,t,r,n={}){for(let o=0;o<e.numPieces;o++)if(!n?.ignoreOrientation&&t.orientation[o]!==r.orientation[o]||!n?.ignorePermutation&&t.permutation[o]!==r.permutation[o])return!1;return!0}function l0(e,t,r){for(let[n,o]of Object.entries(e.definition.orbits))if(!ip(o,t[n],r[n]))return!1;return!0}function hs(e,t){let r={};for(let n in e.definition.orbits){let o=e.definition.orbits[n],l=t[n];if(ho(o.numOrientations,l))r[n]=l;else if(o.numOrientations===1){let i=new Array(o.numPieces);for(let s=0;s<o.numPieces;s++)i[l.permutation[s]]=s;r[n]={permutation:i,orientation:l.orientation}}else{let i=new Array(o.numPieces),s=new Array(o.numPieces);for(let f=0;f<o.numPieces;f++){let a=l.permutation[f];i[a]=f,s[a]=(o.numOrientations-l.orientation[f]+o.numOrientations)%o.numOrientations}r[n]={permutation:i,orientation:s}}}return r}function ar(e,t,r){if(r===1)return t;if(r<0)return ar(e,hs(e,t),-r);if(r===0){let{transformationData:l}=e.identityTransformation();return l}let n=t;r!==2&&(n=ar(e,t,Math.floor(r/2)));let o=Fo(e.definition,n,n);return r%2==0?o:Fo(e.definition,t,o)}function As(e,t){return t?As(t,e%t):e}function i0(e,t){let r=1;for(let n in e.orbits){let o=e.orbits[n],l=t.transformationData[n],i=new Array(o.numPieces);for(let s=0;s<o.numPieces;s++)if(!i[s]){let f=s,a=0,g=0;for(;i[f]=!0,a=a+l.orientation[f],g=g+1,f=l.permutation[f],f!==s;);a!==0&&(g=g*o.numOrientations/As(o.numOrientations,a)),r=r*g/As(r,g)}}return r}var s0,a0,f0,Ao=U(()=>{Re();Ul();yo();s0=class extends dn{traverseAlg(t,r){let n=null;for(let o of t.units())n?n=n.applyTransformation(this.traverseUnit(o,r)):n=this.traverseUnit(o,r);return n??r.identityTransformation()}traverseGrouping(t,r){let n=this.traverseAlg(t.alg,r);return new At(r,ar(r,n.transformationData,t.amount))}traverseMove(t,r){return r.moveToTransformation(t)}traverseCommutator(t,r){let n=this.traverseAlg(t.A,r),o=this.traverseAlg(t.B,r);return n.applyTransformation(o).applyTransformation(n.invert()).applyTransformation(o.invert())}traverseConjugate(t,r){let n=this.traverseAlg(t.A,r),o=this.traverseAlg(t.B,r);return n.applyTransformation(o).applyTransformation(n.invert())}traversePause(t,r){return r.identityTransformation()}traverseNewline(t,r){return r.identityTransformation()}traverseLineComment(t,r){return r.identityTransformation()}},a0=new s0,f0=a0.traverseAlg.bind(a0)});var Fn,Sl,Ee,ys=U(()=>{Re();Ao();Fs();bl();yo();Ee=class{constructor(t,r){this.definition=t;ne(this,Fn,new Map);ne(this,Sl,void 0);this.experimentalPGNotation=r?.experimentalPGNotation}name(){return this.definition.name}identityTransformation(){return At.experimentalConstructIdentity(this)}moveToTransformation(t){typeof t=="string"&&(t=new B(t));let r=t.toString(),n=d(this,Fn).get(r);if(n)return new At(this,n);if(this.experimentalPGNotation){let l=this.experimentalPGNotation.lookupMove(t);if(!l)throw new Error(\`could not map to internal move: \${t}\`);return d(this,Fn).set(r,l),new At(this,l)}let o=o0(this,t);return d(this,Fn).set(r,o),new At(this,o)}algToTransformation(t){return typeof t=="string"&&(t=new z(t)),f0(t,this)}toTransformation(t){return typeof t=="string"?this.algToTransformation(t):t?.is?.(z)?this.algToTransformation(t):t?.is?.(B)?this.moveToTransformation(t):t}startState(){return new me(this,this.definition.startStateData)}canConvertStateToUniqueTransformation(){return d(this,Sl)??q(this,Sl,(()=>{for(let[t,r]of Object.entries(this.definition.orbits)){let n=new Array(r.numPieces).fill(!1);for(let o of this.definition.startStateData[t].pieces)n[o]=!0;for(let o of n)if(!o)return!1}return!0})())}get state(){throw new Error("KPuzzle is now a different (stateless) class.")}reset(){throw new Error("KPuzzle is now a different (stateless) class.")}applyMove(t){throw new Error("KPuzzle is now a different class. Try \`.moveToTransformation()\` to get the transformation for a move.")}applyAlg(t){throw new Error("KPuzzle is now a different class. Try \`.algToTransformation()\` to get the transformation for an alg.")}};Fn=new WeakMap,Sl=new WeakMap});var de,u0=U(()=>{de={name:"3x3x3",orbits:{EDGES:{numPieces:12,numOrientations:2},CORNERS:{numPieces:8,numOrientations:3},CENTERS:{numPieces:6,numOrientations:4}},startStateData:{EDGES:{pieces:[0,1,2,3,4,5,6,7,8,9,10,11],orientation:[0,0,0,0,0,0,0,0,0,0,0,0]},CORNERS:{pieces:[0,1,2,3,4,5,6,7],orientation:[0,0,0,0,0,0,0,0]},CENTERS:{pieces:[0,1,2,3,4,5],orientation:[0,0,0,0,0,0]}},moves:{U:{EDGES:{permutation:[1,2,3,0,4,5,6,7,8,9,10,11],orientation:[0,0,0,0,0,0,0,0,0,0,0,0]},CORNERS:{permutation:[1,2,3,0,4,5,6,7],orientation:[0,0,0,0,0,0,0,0]},CENTERS:{permutation:[0,1,2,3,4,5],orientation:[1,0,0,0,0,0]}},y:{EDGES:{permutation:[1,2,3,0,5,6,7,4,10,8,11,9],orientation:[0,0,0,0,0,0,0,0,1,1,1,1]},CORNERS:{permutation:[1,2,3,0,7,4,5,6],orientation:[0,0,0,0,0,0,0,0]},CENTERS:{permutation:[0,2,3,4,1,5],orientation:[1,0,0,0,0,3]}},x:{EDGES:{permutation:[4,8,0,9,6,10,2,11,5,7,1,3],orientation:[1,0,1,0,1,0,1,0,0,0,0,0]},CORNERS:{permutation:[4,0,3,5,7,6,2,1],orientation:[2,1,2,1,1,2,1,2]},CENTERS:{permutation:[2,1,5,3,0,4],orientation:[0,3,0,1,2,2]}},L:{EDGES:{permutation:[0,1,2,11,4,5,6,9,8,3,10,7],orientation:[0,0,0,0,0,0,0,0,0,0,0,0]},CORNERS:{permutation:[0,1,6,2,4,3,5,7],orientation:[0,0,2,1,0,2,1,0]},CENTERS:{permutation:[0,1,2,3,4,5],orientation:[0,1,0,0,0,0]}},F:{EDGES:{permutation:[9,1,2,3,8,5,6,7,0,4,10,11],orientation:[1,0,0,0,1,0,0,0,1,1,0,0]},CORNERS:{permutation:[3,1,2,5,0,4,6,7],orientation:[1,0,0,2,2,1,0,0]},CENTERS:{permutation:[0,1,2,3,4,5],orientation:[0,0,1,0,0,0]}},R:{EDGES:{permutation:[0,8,2,3,4,10,6,7,5,9,1,11],orientation:[0,0,0,0,0,0,0,0,0,0,0,0]},CORNERS:{permutation:[4,0,2,3,7,5,6,1],orientation:[2,1,0,0,1,0,0,2]},CENTERS:{permutation:[0,1,2,3,4,5],orientation:[0,0,0,1,0,0]}},B:{EDGES:{permutation:[0,1,10,3,4,5,11,7,8,9,6,2],orientation:[0,0,1,0,0,0,1,0,0,0,1,1]},CORNERS:{permutation:[0,7,1,3,4,5,2,6],orientation:[0,2,1,0,0,0,2,1]},CENTERS:{permutation:[0,1,2,3,4,5],orientation:[0,0,0,0,1,0]}},D:{EDGES:{permutation:[0,1,2,3,7,4,5,6,8,9,10,11],orientation:[0,0,0,0,0,0,0,0,0,0,0,0]},CORNERS:{permutation:[0,1,2,3,5,6,7,4],orientation:[0,0,0,0,0,0,0,0]},CENTERS:{permutation:[0,1,2,3,4,5],orientation:[0,0,0,0,0,1]}},z:{EDGES:{permutation:[9,3,11,7,8,1,10,5,0,4,2,6],orientation:[1,1,1,1,1,1,1,1,1,1,1,1]},CORNERS:{permutation:[3,2,6,5,0,4,7,1],orientation:[1,2,1,2,2,1,2,1]},CENTERS:{permutation:[1,5,2,0,4,3],orientation:[1,1,1,1,3,1]}},M:{EDGES:{permutation:[2,1,6,3,0,5,4,7,8,9,10,11],orientation:[1,0,1,0,1,0,1,0,0,0,0,0]},CORNERS:{permutation:[0,1,2,3,4,5,6,7],orientation:[0,0,0,0,0,0,0,0]},CENTERS:{permutation:[4,1,0,3,5,2],orientation:[2,0,0,0,2,0]}},E:{EDGES:{permutation:[0,1,2,3,4,5,6,7,9,11,8,10],orientation:[0,0,0,0,0,0,0,0,1,1,1,1]},CORNERS:{permutation:[0,1,2,3,4,5,6,7],orientation:[0,0,0,0,0,0,0,0]},CENTERS:{permutation:[0,4,1,2,3,5],orientation:[0,0,0,0,0,0]}},S:{EDGES:{permutation:[0,3,2,7,4,1,6,5,8,9,10,11],orientation:[0,1,0,1,0,1,0,1,0,0,0,0]},CORNERS:{permutation:[0,1,2,3,4,5,6,7],orientation:[0,0,0,0,0,0,0,0]},CENTERS:{permutation:[1,5,2,0,4,3],orientation:[1,1,0,1,0,1]}},u:{EDGES:{permutation:[1,2,3,0,4,5,6,7,10,8,11,9],orientation:[0,0,0,0,0,0,0,0,1,1,1,1]},CORNERS:{permutation:[1,2,3,0,4,5,6,7],orientation:[0,0,0,0,0,0,0,0]},CENTERS:{permutation:[0,2,3,4,1,5],orientation:[1,0,0,0,0,0]}},l:{EDGES:{permutation:[2,1,6,11,0,5,4,9,8,3,10,7],orientation:[1,0,1,0,1,0,1,0,0,0,0,0]},CORNERS:{permutation:[0,1,6,2,4,3,5,7],orientation:[0,0,2,1,0,2,1,0]},CENTERS:{permutation:[4,1,0,3,5,2],orientation:[2,1,0,0,2,0]}},f:{EDGES:{permutation:[9,3,2,7,8,1,6,5,0,4,10,11],orientation:[1,1,0,1,1,1,0,1,1,1,0,0]},CORNERS:{permutation:[3,1,2,5,0,4,6,7],orientation:[1,0,0,2,2,1,0,0]},CENTERS:{permutation:[1,5,2,0,4,3],orientation:[1,1,1,1,0,1]}},r:{EDGES:{permutation:[4,8,0,3,6,10,2,7,5,9,1,11],orientation:[1,0,1,0,1,0,1,0,0,0,0,0]},CORNERS:{permutation:[4,0,2,3,7,5,6,1],orientation:[2,1,0,0,1,0,0,2]},CENTERS:{permutation:[2,1,5,3,0,4],orientation:[0,0,0,1,2,2]}},b:{EDGES:{permutation:[0,5,10,1,4,7,11,3,8,9,6,2],orientation:[0,1,1,1,0,1,1,1,0,0,1,1]},CORNERS:{permutation:[0,7,1,3,4,5,2,6],orientation:[0,2,1,0,0,0,2,1]},CENTERS:{permutation:[3,0,2,5,4,1],orientation:[3,3,0,3,1,3]}},d:{EDGES:{permutation:[0,1,2,3,7,4,5,6,9,11,8,10],orientation:[0,0,0,0,0,0,0,0,1,1,1,1]},CORNERS:{permutation:[0,1,2,3,5,6,7,4],orientation:[0,0,0,0,0,0,0,0]},CENTERS:{permutation:[0,4,1,2,3,5],orientation:[0,0,0,0,0,1]}}}};de.moves.Uw=de.moves.u;de.moves.Lw=de.moves.l;de.moves.Fw=de.moves.f;de.moves.Rw=de.moves.r;de.moves.Bw=de.moves.b;de.moves.Dw=de.moves.d;de.moves.Rv=de.moves.x;de.moves.Uv=de.moves.y;de.moves.Fv=de.moves.z;de.moves.Lv={EDGES:{permutation:[2,10,6,11,0,8,4,9,1,3,5,7],orientation:[1,0,1,0,1,0,1,0,0,0,0,0]},CORNERS:{permutation:[1,7,6,2,0,3,5,4],orientation:[2,1,2,1,1,2,1,2]},CENTERS:{permutation:[4,1,0,3,5,2],orientation:[2,1,0,3,2,0]}};de.moves.Dv={EDGES:{permutation:[3,0,1,2,7,4,5,6,9,11,8,10],orientation:[0,0,0,0,0,0,0,0,1,1,1,1]},CORNERS:{permutation:[3,0,1,2,5,6,7,4],orientation:[0,0,0,0,0,0,0,0]},CENTERS:{permutation:[0,4,1,2,3,5],orientation:[3,0,0,0,0,1]}};de.moves.Bv={EDGES:{permutation:[8,5,10,1,9,7,11,3,4,0,6,2],orientation:[1,1,1,1,1,1,1,1,1,1,1,1]},CORNERS:{permutation:[4,7,1,0,5,3,2,6],orientation:[1,2,1,2,2,1,2,1]},CENTERS:{permutation:[3,0,2,5,4,1],orientation:[3,3,3,3,1,3]}}});var Us,He=U(()=>{ys();bl();yo();u0();ys();Us=new Ee(de)});var g0=U(()=>{He()});var sp,rA,c0=U(()=>{sp={"333":{puzzleID:"3x3x3",eventName:"3x3x3 Cube"},"222":{puzzleID:"2x2x2",eventName:"2x2x2 Cube"},"444":{puzzleID:"4x4x4",eventName:"4x4x4 Cube"},"555":{puzzleID:"5x5x5",eventName:"5x5x5 Cube"},"666":{puzzleID:"6x6x6",eventName:"6x6x6 Cube"},"777":{puzzleID:"7x7x7",eventName:"7x7x7 Cube"},"333bf":{puzzleID:"3x3x3",eventName:"3x3x3 Blindfolded"},"333fm":{puzzleID:"3x3x3",eventName:"3x3x3 Fewest Moves"},"333oh":{puzzleID:"3x3x3",eventName:"3x3x3 One-Handed"},clock:{puzzleID:"clock",eventName:"Clock"},minx:{puzzleID:"megaminx",eventName:"Megaminx"},pyram:{puzzleID:"pyraminx",eventName:"Pyraminx"},skewb:{puzzleID:"skewb",eventName:"Skewb"},sq1:{puzzleID:"square1",eventName:"Square-1"},"444bf":{puzzleID:"4x4x4",eventName:"4x4x4 Blindfolded"},"555bf":{puzzleID:"5x5x5",eventName:"5x5x5 Blindfolded"},"333mb":{puzzleID:"3x3x3",eventName:"3x3x3 Multi-Blind"}},rA={...sp,fto:{puzzleID:"fto",eventName:"Face-Turning Octahedron"},master_tetraminx:{puzzleID:"master_tetraminx",eventName:"Master Tetraminx"}}});function Rp(e){switch(e){case S.Regular:return ap;case S.Dim:return mp;case S.Ignored:return fp;case S.OrientationStickers:return up;case S.Invisible:return gp;case S.IgnoreNonPrimary:return cp;case S.PermuteNonPrimary:return pp;case S.Ignoriented:return Lp;case S.OrientationWithoutPermutation:return Bp}}var S,hn,zt,Ke,An,xl,Tr,ap,fp,up,gp,cp,pp,mp,Lp,Bp,Uo,bo,So=U(()=>{(function(a){a.Regular="Regular",a.Dim="Dim",a.Ignored="Ignored",a.OrientationStickers="OrientationStickers",a.Invisible="Invisible",a.Ignoriented="Ignoriented",a.IgnoreNonPrimary="IgnoreNonPrimary",a.PermuteNonPrimary="PermuteNonPrimary",a.OrientationWithoutPermutation="OrientationWithoutPermutation"})(S||(S={}));hn=class{constructor(t,r){this.stickerings=new Map;for(let[n,o]of Object.entries(t.definition.orbits))this.stickerings.set(n,new Array(o.numPieces).fill(r))}},zt="regular",Ke="ignored",An="oriented",xl="invisible",Tr="dim",ap={facelets:[zt,zt,zt,zt,zt]},fp={facelets:[Ke,Ke,Ke,Ke,Ke]},up={facelets:[An,An,An,An,An]},gp={facelets:[xl,xl,xl,xl]},cp={facelets:[zt,Ke,Ke,Ke,Ke]},pp={facelets:[Tr,zt,zt,zt,zt]},mp={facelets:[Tr,Tr,Tr,Tr,Tr]},Lp={facelets:[Tr,Ke,Ke,Ke,Ke]},Bp={facelets:[An,Ke,Ke,Ke,Ke]};Uo=class extends hn{constructor(t){super(t,S.Regular)}set(t,r){for(let[n,o]of this.stickerings.entries())for(let l=0;l<o.length;l++)t.stickerings.get(n)[l]&&(o[l]=r);return this}toAppearance(){let t={orbits:{}};for(let[r,n]of this.stickerings.entries()){let o=[],l={pieces:o};t.orbits[r]=l;for(let i of n)o.push(Rp(i))}return t}},bo=class{constructor(t){this.kpuzzle=t}and(t){let r=new hn(this.kpuzzle,!1);for(let[n,o]of Object.entries(this.kpuzzle.definition.orbits)){e:for(let l=0;l<o.numPieces;l++){r.stickerings.get(n)[l]=!0;for(let i of t)if(!i.stickerings.get(n)[l]){r.stickerings.get(n)[l]=!1;continue e}}}return r}or(t){let r=new hn(this.kpuzzle,!1);for(let[n,o]of Object.entries(this.kpuzzle.definition.orbits)){e:for(let l=0;l<o.numPieces;l++){r.stickerings.get(n)[l]=!1;for(let i of t)if(i.stickerings.get(n)[l]){r.stickerings.get(n)[l]=!0;continue e}}}return r}not(t){let r=new hn(this.kpuzzle,!1);for(let[n,o]of Object.entries(this.kpuzzle.definition.orbits))for(let l=0;l<o.numPieces;l++)r.stickerings.get(n)[l]=!t.stickerings.get(n)[l];return r}all(){return this.and(this.moves([]))}move(t){let r=this.kpuzzle.moveToTransformation(t),n=new hn(this.kpuzzle,!1);for(let[o,l]of Object.entries(this.kpuzzle.definition.orbits))for(let i=0;i<l.numPieces;i++)(r.transformationData[o].permutation[i]!==i||r.transformationData[o].orientation[i]!==0)&&(n.stickerings.get(o)[i]=!0);return n}moves(t){return t.map(r=>this.move(r))}}});function dp(e){(async()=>{p0=e;let t=Array.from(document.body.querySelectorAll("twisty-player"));console.log(\`Setting the custom stickering for \${t.length} players!\`);let r=[];for(let n of t)r.push((async()=>{let o=await n.experimentalModel.stickering.get();n.experimentalStickering=o==="experimental-global-custom-1"?"experimental-global-custom-2":"experimental-global-custom-1"})());await Promise.all(r),console.log("Success!")})()}function m0(e,t){p0(e,t)}var p0,L0=U(()=>{So();p0=()=>{};globalThis.location&&new URL(location.href).searchParams.get("global-custom-stickerer")==="true"&&(window.setGlobalCustomStickerer=dp,window.PieceStickering=S,console.log("Global custom stickerer enabled! (using: global-custom-stickerer=true)"),console.log("Look here for inspiration:","https://github.com/cubing/cubing.js/blob/81b5cab3e27d8defb39dd1e0a10bc9e8ba894d26/src/cubing/puzzles/stickerings/cube-stickerings.ts#L67"))});async function _t(e,t){let r=await e.kpuzzle(),n=new Uo(r),o=new bo(r),l=()=>o.move("U"),i=()=>o.or(o.moves(["U","D"])),s=()=>o.not(i()),f=()=>o.or(o.moves(["L","R"])),a=()=>o.not(f()),g=()=>o.or(o.moves(["F","B"])),c=()=>o.not(g()),u=()=>o.not(l()),p=()=>o.and([l(),a(),c()]),m=()=>o.and([o.and(o.moves(["F","R"])),o.not(i())]),L=()=>o.and(o.moves(["D","R","F"])),R=()=>o.or([L(),m()]),D=()=>o.or([o.and([a(),s()]),o.and([a(),c()]),o.and([s(),c()])]),A=()=>o.or([o.and([a(),i(),g()]),o.and([s(),f(),g()]),o.and([c(),i(),f()])]),y=()=>o.not(o.or([D(),A()])),k=()=>o.or([a(),o.and([l(),A()])]);function E(){n.set(u(),S.Dim)}function Q(){n.set(l(),S.PermuteNonPrimary),n.set(p(),S.Dim)}function $(){n.set(l(),S.IgnoreNonPrimary),n.set(p(),S.Regular)}function N(){n.set(l(),S.Ignoriented),n.set(p(),S.Dim)}switch(t){case"full":break;case"PLL":E(),Q();break;case"CLS":E(),n.set(o.and(o.moves(["D","R","F"])),S.Regular),n.set(l(),S.Ignoriented),n.set(o.and([l(),a(),c()]),S.Dim),n.set(o.and([l(),y()]),S.IgnoreNonPrimary);break;case"OLL":E(),$();break;case"COLL":E(),Q(),n.set(o.and([l(),y()]),S.Regular);break;case"OCLL":E(),N(),n.set(o.and([l(),y()]),S.IgnoreNonPrimary);break;case"CLL":E(),n.set(o.not(o.and([y(),l()])),S.Dim);break;case"ELL":E(),n.set(l(),S.Dim),n.set(o.and([l(),A()]),S.Regular);break;case"ELS":E(),$(),n.set(o.and([l(),y()]),S.Ignored),n.set(m(),S.Regular),n.set(L(),S.Ignored);break;case"LL":E();break;case"F2L":n.set(l(),S.Ignored);break;case"ZBLL":E(),n.set(l(),S.PermuteNonPrimary),n.set(p(),S.Dim),n.set(o.and([l(),y()]),S.Regular);break;case"ZBLS":E(),n.set(R(),S.Regular),$(),n.set(o.and([l(),y()]),S.Ignored);break;case"WVLS":case"VLS":E(),n.set(R(),S.Regular),$();break;case"LS":E(),n.set(R(),S.Regular),n.set(l(),S.Ignored),n.set(p(),S.Dim);break;case"EO":n.set(y(),S.Ignored),n.set(A(),S.OrientationWithoutPermutation);break;case"EOline":n.set(y(),S.Ignored),n.set(A(),S.OrientationWithoutPermutation),n.set(o.and(o.moves(["D","M"])),S.Regular);break;case"EOcross":n.set(A(),S.OrientationWithoutPermutation),n.set(o.move("D"),S.Regular),n.set(y(),S.Ignored);break;case"CMLL":n.set(u(),S.Dim),n.set(k(),S.Ignored),n.set(o.and([l(),y()]),S.Regular);break;case"L6E":n.set(o.not(k()),S.Dim);break;case"L6EO":n.set(o.not(k()),S.Dim),n.set(k(),S.OrientationWithoutPermutation),n.set(o.and([D(),i()]),S.OrientationStickers);break;case"Daisy":n.set(o.all(),S.Ignored),n.set(D(),S.Dim),n.set(o.and([o.move("D"),D()]),S.Regular),n.set(o.and([o.move("U"),A()]),S.IgnoreNonPrimary);break;case"Cross":n.set(o.all(),S.Ignored),n.set(D(),S.Dim),n.set(o.and([o.move("D"),D()]),S.Regular),n.set(o.and([o.move("D"),A()]),S.Regular);break;case"2x2x2":n.set(o.or(o.moves(["U","F","R"])),S.Ignored),n.set(o.and([o.or(o.moves(["U","F","R"])),D()]),S.Dim);break;case"2x2x3":n.set(o.all(),S.Dim),n.set(o.or(o.moves(["U","F","R"])),S.Ignored),n.set(o.and([o.or(o.moves(["U","F","R"])),D()]),S.Dim),n.set(o.and([o.move("F"),o.not(o.or(o.moves(["U","R"])))]),S.Regular);break;case"Void Cube":n.set(D(),S.Invisible);break;case"picture":case"invisible":n.set(o.all(),S.Invisible);break;case"centers-only":n.set(o.not(D()),S.Ignored);break;case"experimental-global-custom-1":case"experimental-global-custom-2":m0(n,o);break;default:console.warn(\`Unsupported stickering for \${e.id}: \${t}. Setting all pieces to dim.\`),n.set(o.and(o.moves([])),S.Dim)}return n.toAppearance()}async function yn(){return["full","PLL","CLS","OLL","COLL","OCLL","ELL","ELS","LL","F2L","ZBLL","ZBLS","WVLS","VLS","LS","EO","EOline","EOcross","CMLL","L6E","L6EO","Daisy","Cross","2x2x2","2x2x3","Void Cube","picture","invisible","centers-only"]}var Un=U(()=>{So();L0()});function Se(e){let t=null;return()=>t??(t=e())}var ur=U(()=>{});var xo,B0=U(()=>{xo=class{constructor(t,r){this.facenames=t;this.prefixFree=!0;this.gripnames=[];r&&(this.gripnames=r);for(let n=0;this.prefixFree&&n<t.length;n++)for(let o=0;this.prefixFree&&o<t.length;o++)n!==o&&t[n].startsWith(t[o])&&(this.prefixFree=!1)}setGripNames(t){this.gripnames=t}splitByFaceNames(t){let r=[],n=0;for(;n<t.length;){n>0&&n<t.length&&t[n]==="_"&&n++;let o=-1;for(let l=0;l<this.facenames.length;l++)t.substr(n).startsWith(this.facenames[l])&&(o<0||this.facenames[l].length>this.facenames[o].length)&&(o=l);if(o>=0)r.push(o),n+=this.facenames[o].length;else throw new Error("Could not split "+t+" into face names.")}return r}joinByFaceIndices(t){let r="",n=[];for(let o=0;o<t.length;o++)n.push(r),n.push(this.facenames[t[o]]),this.prefixFree||(r="_");return n.join("")}spinmatch(t,r){if(t===r)return!0;try{let n=this.splitByFaceNames(t),o=this.splitByFaceNames(r);if(n.length!==o.length&&n.length<3)return!1;for(let l=0;l<n.length;l++){for(let s=0;s<l;s++)if(n[l]===n[s])return!1;let i=!1;for(let s=0;s<o.length;s++)if(n[l]===o[s]){i=!0;break}if(!i)return!1}return!0}catch(n){return!1}}spinmatchv(t,r){return t.endsWith("v")&&r.endsWith("v")?this.spinmatch(t.slice(0,t.length-1),r.slice(0,r.length-1)):this.spinmatch(t,r)}unswizzle(t){(t.endsWith("v")||t.endsWith("w"))&&t[0]<="Z"&&(t=t.slice(0,t.length-1));let r=t.toUpperCase();for(let n=0;n<this.gripnames.length;n++){let o=this.gripnames[n];if(this.spinmatch(r,o))return o}return t}}});var bn,R0=U(()=>{bn=class{notationToInternal(t){return t}notationToExternal(t){return t}}});var wl,d0=U(()=>{Re();wl=class{constructor(t,r){this.child=t;this.sw=r}notationToInternal(t){return t.family==="T"&&t.innerLayer===void 0&&t.outerLayer===void 0?new B(new P("FLRv",t.innerLayer,t.outerLayer),t.amount):this.child.notationToInternal(t)}notationToExternal(t){let r=t.family;return r.length>0&&r[r.length-1]==="v"&&(r=r.substring(0,r.length-1)),this.sw.spinmatch(r,"FLUR")?new B(new P("T",t.innerLayer,t.outerLayer),t.amount):this.child.notationToExternal(t)}}});var wo,D0=U(()=>{Re();wo=class{constructor(t,r){this.internalNames=t;this.externalNames=r}convertString(t,r,n){let o="";(t.endsWith("v")||t.endsWith("v"))&&t<="_"&&(o=t.slice(t.length-1),t=t.slice(0,t.length-1));let l=t.toUpperCase(),i=!1;return t!==l&&(i=!0,t=l),t=n.joinByFaceIndices(r.splitByFaceNames(t)),i&&(t=t.toLowerCase()),t+o}convert(t,r,n){let o=t.family,l=this.convertString(o,r,n);return o===l?t:new B(new P(l,t.innerLayer,t.outerLayer),t.amount)}notationToInternal(t){return this.convert(t,this.externalNames,this.internalNames)}notationToExternal(t){return this.convert(t,this.internalNames,this.externalNames)}}});var vl,F0=U(()=>{Re();vl=class{constructor(t){this.child=t}notationToInternal(t){if(t.innerLayer===void 0&&t.outerLayer===void 0){if(Math.abs(t.amount)===1){if(t.family==="R++")return new B(new P("L",3,2),-2*t.amount);if(t.family==="R--")return new B(new P("L",3,2),2*t.amount);if(t.family==="D++")return new B(new P("U",3,2),-2*t.amount);if(t.family==="D--")return new B(new P("U",3,2),2*t.amount);if(t.family==="R_PLUSPLUS_")return new B(new P("L",3,2),-2*t.amount);if(t.family==="D_PLUSPLUS_")return new B(new P("U",3,2),-2*t.amount)}if(t.family==="y")return new B("Uv",t.amount)}return this.child.notationToInternal(t)}notationToExternal(t){return t.family==="Uv"?new B(new P("y",t.innerLayer,t.outerLayer),t.amount):t.family==="Dv"?new B("y",-t.amount):this.child.notationToExternal(t)}}});var El,h0=U(()=>{Re();El=class{constructor(t){this.slices=t}notationToInternal(t){let r=t.family;return!t.innerLayer&&!t.outerLayer&&(r==="x"?t=new B("Rv",t.amount):r==="y"?t=new B("Uv",t.amount):r==="z"&&(t=new B("Fv",t.amount)),(this.slices&1)==1&&(r==="E"?t=new B(new P("D",(this.slices+1)/2),t.amount):r==="M"?t=new B(new P("L",(this.slices+1)/2),t.amount):r==="S"&&(t=new B(new P("F",(this.slices+1)/2),t.amount))),this.slices>2&&(r==="e"?t=new B(new P("D",this.slices-1,2),t.amount):r==="m"?t=new B(new P("L",this.slices-1,2),t.amount):r==="s"&&(t=new B(new P("F",this.slices-1,2),t.amount)))),t}notationToExternal(t){let r=t.family;if(!t.innerLayer&&!t.outerLayer){if(r==="Rv")return new B("x",t.amount);if(r==="Uv")return new B("y",t.amount);if(r==="Fv")return new B("z",t.amount);if(r==="Lv")return new B("x",-t.amount);if(r==="Dv")return new B("y",-t.amount);if(r==="Bv")return new B("z",-t.amount)}return t}}});var Dp,Fp,A0,y0,U0,vo,kl,b0=U(()=>{Re();Dp={U:"frl",L:"fld",R:"fdr",B:"dlr",u:"FRL",l:"FLD",r:"FDR",b:"DLR",Uv:"FRLv",Lv:"FLDv",Rv:"FDRv",Bv:"DLRv",D:"D",F:"F",BL:"L",BR:"R"},Fp={U:"FRL",L:"FLD",R:"FDR",B:"DLR",u:"frl",l:"fld",r:"fdr",b:"dlr",Uv:"FRLv",Lv:"FLDv",Rv:"FDRv",Bv:"DLRv",D:"D",F:"F",BL:"L",BR:"R",d:"d",f:"f",bl:"l",br:"r"},A0={U:"FRL",L:"FLD",R:"FDR",B:"DLR"},y0=new P("y"),U0=new P("Dv"),vo=class{constructor(t){this.child=t;this.wcaHack=!1;this.map=Dp}notationToInternal(t){if(this.wcaHack&&t.innerLayer===2&&t.outerLayer===null){let n=A0[t.family];if(n)return new B(new P(n,t.innerLayer,t.outerLayer),t.amount)}let r=this.map[t.family];return r?new B(new P(r,t.innerLayer,t.outerLayer),t.amount):y0.isIdentical(t.quantum)?new B(U0,-t.amount):null}notationToExternal(t){if(this.wcaHack&&t.innerLayer===2&&t.outerLayer===null){for(let[r,n]of Object.entries(A0))if(this.child.spinmatch(t.family,n))return new B(new P(r,t.innerLayer,t.outerLayer),t.amount)}for(let[r,n]of Object.entries(this.map))if(this.child.spinmatch(t.family,n))return new B(new P(r,t.innerLayer,t.outerLayer),t.amount);return U0.isIdentical(t.quantum)?new B(y0,-t.amount):null}},kl=class extends vo{constructor(t){super(t);this.map=Fp}}});var S0,bs,x0,hp,Ss,w0,Ap,xs,v0,yp,zl,E0=U(()=>{Re();S0={U:"UBL",UL:"ULF",F:"UFR",UR:"URB",B:"DBL",D:"DFR",L:"DLF",R:"DRB",Uv:"UBLv",ULv:"ULFv",Fv:"UFRv",URv:"URBv",Bv:"DBLv",Dv:"DFRv",Lv:"DLFv",Rv:"DRBv"},bs=new P("x"),x0=new P("Rv"),hp=new P("Lv"),Ss=new P("y"),w0=new P("Uv"),Ap=new P("Dv"),xs=new P("z"),v0=new P("Fv"),yp=new P("Bv"),zl=class{constructor(t){this.child=t}notationToInternal(t){if(t.innerLayer||t.outerLayer)return null;let r=S0[t.family];return r?new B(new P(r,t.outerLayer,t.innerLayer),t.amount):bs.isIdentical(t.quantum)?new B(x0,t.amount):Ss.isIdentical(t.quantum)?new B(w0,t.amount):xs.isIdentical(t.quantum)?new B(v0,t.amount):null}notationToExternal(t){for(let[r,n]of Object.entries(S0))if(this.child.spinmatchv(t.family,n))return new B(new P(r,t.innerLayer,t.outerLayer),t.amount);return x0.isIdentical(t.quantum)?new B(bs,t.amount):hp.isIdentical(t.quantum)?new B(bs,-t.amount):w0.isIdentical(t.quantum)?new B(Ss,t.amount):Ap.isIdentical(t.quantum)?new B(Ss,-t.amount):v0.isIdentical(t.quantum)?new B(xs,t.amount):yp.isIdentical(t.quantum)?new B(xs,-t.amount):null}}});var ws=U(()=>{R0();d0();D0();F0();h0();b0();E0()});function k0(e){let t=0,r={};for(;t<e.length&&e[t][0]==="-";){let o=e[t++];if(o==="--rotations")r.addRotations=!0;else if(o==="--allmoves")r.allMoves=!0;else if(o==="--outerblockmoves")r.outerBlockMoves=!0;else if(o==="--vertexmoves")r.vertexMoves=!0;else if(o==="--nocorners")r.includeCornerOrbits=!1;else if(o==="--noedges")r.includeEdgeOrbits=!1;else if(o==="--noorientation")r.fixedOrientation=!0;else if(o==="--nocenters")r.includeCenterOrbits=!1;else if(o==="--omit")r.excludeOrbits=e[t].split(","),t++;else if(o==="--moves")r.moveList=e[t].split(","),t++;else if(o==="--optimize")r.optimizeOrbits=!0;else if(o==="--scramble")r.scrambleAmount=100;else if(o==="--fixcorner")r.fixedPieceType="v";else if(o==="--fixedge")r.fixedPieceType="e";else if(o==="--fixcenter")r.fixedPieceType="f";else if(o==="--orientcenters")r.orientCenters=!0;else if(o==="--puzzleorientation")r.puzzleOrientation=JSON.parse(e[t]),t++;else throw new Error("Bad option: "+o)}return{puzzleDescription:Eo(e.slice(t).join(" ")),options:r}}var vs,Es=U(()=>{_l();vs=class{constructor(t={}){this.verbosity=0;this.allMoves=!1;this.vertexMoves=!1;this.addRotations=!1;this.moveList=null;this.fixedOrientation=!1;this.fixedPieceType=null;this.orientCenters=!1;this.includeCornerOrbits=!0;this.includeCenterOrbits=!0;this.includeEdgeOrbits=!0;this.excludeOrbits=[];this.optimizeOrbits=!1;this.grayCorners=!1;this.grayCenters=!1;this.grayEdges=!1;this.puzzleOrientation=null;this.puzzleOrientations=null;this.scrambleAmount=0;Object.assign(this,t)}}});function gr(e){if(!ks[e]){let t=Array(e);for(let r=0;r<e;r++)t[r]=0;ks[e]=t}return ks[e]}function Ct(e){if(!zs[e]){let t=Array(e);for(let r=0;r<e;r++)t[r]=r;zs[e]=t}return zs[e]}function z0(e){return new mt(Ct(e))}function _0(e){let t=1;for(;e>1;)t*=e,e--;return t}function Up(e,t){if(e>t){let r=e;e=t,t=r}for(;e>0;){let r=t%e;t=e,e=r}return t}function _s(e,t){return e/Up(e,t)*t}var ks,zs,mt,Cl=U(()=>{ks=[],zs=[];mt=class{constructor(t){this.n=t.length,this.p=t}toString(){return"Perm["+this.p.join(" ")+"]"}mul(t){let r=Array(this.n);for(let n=0;n<this.n;n++)r[n]=t.p[this.p[n]];return new mt(r)}rmul(t){let r=Array(this.n);for(let n=0;n<this.n;n++)r[n]=this.p[t.p[n]];return new mt(r)}inv(){let t=Array(this.n);for(let r=0;r<this.n;r++)t[this.p[r]]=r;return new mt(t)}compareTo(t){for(let r=0;r<this.n;r++)if(this.p[r]!==t.p[r])return this.p[r]-t.p[r];return 0}toGap(){let t=new Array,r=new Array(this.n);for(let n=0;n<this.p.length;n++){if(r[n]||this.p[n]===n)continue;let o=new Array;for(let l=n;!r[l];l=this.p[l])o.push(1+l),r[l]=!0;t.push("("+o.join(",")+")")}return t.join("")}order(){let t=1,r=new Array(this.n);for(let n=0;n<this.p.length;n++){if(r[n]||this.p[n]===n)continue;let o=0;for(let l=n;!r[l];l=this.p[l])o++,r[l]=!0;t=_s(t,o)}return t}}});function Cs(e,t){let r=B.fromString(t),n=e.notationToExternal(r);return n===null||r===n?t:n.toString()}function C0(e,t){let r=e.moveops.length;if(r>30)throw new Error("Canon info too big for bitmask");let n=[],o=[];for(let i=0;i<r;i++){let s=e.moveops[i];n.push(s.order());let f=0;for(let a=0;a<r;a++){if(a===i)continue;let g=e.moveops[a];s.mul(g).equal(g.mul(s))&&(f|=1<<a)}o.push(f)}let l={};l[0]=1;for(let i=0;i<100;i++){let s=0,f={},a=0;for(let g in l){let c=+g,u=l[c];s+=u,a++;for(let p=0;p<n.length;p++)if((c>>p&1)==0&&(c&o[p]&(1<<p)-1)==0){let m=c&o[p]|1<<p;f[m]===void 0&&(f[m]=0),f[m]+=(n[p]-1)*u}}t(\`\${i}: canonseq \${s} states \${a}\`),l=f}}var ko,bp,Sn,yt,Vt,Ps,cr,xn,Ms,P0=U(()=>{Re();ws();Cl();ko=class{constructor(t,r){this.size=t;this.mod=r}reassemblySize(){return _0(this.size)*Math.pow(this.mod,this.size)}},bp=0;Sn=class{constructor(t,r,n,o,l){this.orbitnames=t;this.orbitdefs=r;this.solved=n;this.movenames=o;this.moveops=l}transformToKTransformationData(t){let r={};for(let n=0;n<this.orbitnames.length;n++)r[this.orbitnames[n]]=t.orbits[n].toKPuzzle();return r}static transformToKTransformationData(t,r){let n={};for(let o=0;o<t.length;o++)n[t[o]]=r.orbits[o].toKPuzzle();return n}toKsolve(t,r=new bn){let n=[];n.push("Name "+t),n.push("");for(let o=0;o<this.orbitnames.length;o++)n.push(\`Set \${this.orbitnames[o]} \${this.orbitdefs[o].size} \${this.orbitdefs[o].mod}\`);n.push(""),n.push("Solved");for(let o=0;o<this.orbitnames.length;o++)this.solved.orbits[o].appendDefinition(n,this.orbitnames[o],!1,!1);n.push("End");for(let o=0;o<this.movenames.length;o++){n.push("");let l=Cs(r,this.movenames[o]),i=!1;l[l.length-1]==="'"&&(i=!0,l=l.substring(0,l.length-1)),n.push("Move "+l);for(let s=0;s<this.orbitnames.length;s++)i?this.moveops[o].orbits[s].inv().appendDefinition(n,this.orbitnames[s],!0):this.moveops[o].orbits[s].appendDefinition(n,this.orbitnames[s],!0);n.push("End")}return n}toKPuzzleDefinition(t){let r={},n={};for(let l=0;l<this.orbitnames.length;l++){r[this.orbitnames[l]]={numPieces:this.orbitdefs[l].size,numOrientations:this.orbitdefs[l].mod};let i=this.solved.orbits[l].toKPuzzle();n[this.orbitnames[l]]={pieces:i.permutation,orientation:i.orientation}}let o={};if(t)for(let l=0;l<this.movenames.length;l++)o[this.movenames[l]]=this.transformToKTransformationData(this.moveops[l]);return{name:\`PG3D #\${++bp}\`,orbits:r,startStateData:n,moves:o}}optimize(){let t=[],r=[],n=[],o=[];for(let l=0;l<this.moveops.length;l++)o.push([]);for(let l=0;l<this.orbitdefs.length;l++){let i=this.orbitdefs[l].mod,s=this.orbitdefs[l].size,f=new Ms(s),a=new Array(this.orbitdefs[l].size);for(let p=0;p<s;p++)a[p]=!1;for(let p=0;p<this.moveops.length;p++)for(let m=0;m<s;m++)(this.moveops[p].orbits[l].perm[m]!==m||this.moveops[p].orbits[l].ori[m]!==0)&&(a[m]=!0,f.union(m,this.moveops[p].orbits[l].perm[m]));let g=!0;if(i>1){g=!1;let p=new Ms(this.orbitdefs[l].size*i);for(let m=0;m<this.moveops.length;m++)for(let L=0;L<s;L++)if(this.moveops[m].orbits[l].perm[L]!==L||this.moveops[m].orbits[l].ori[L]!==0)for(let R=0;R<i;R++)p.union(L*i+R,this.moveops[m].orbits[l].perm[L]*i+(R+this.moveops[m].orbits[l].ori[L])%i);for(let m=0;!g&&m<s;m++)for(let L=1;L<i;L++)p.find(m*i)===p.find(m*i+L)&&(g=!0);for(let m=0;!g&&m<s;m++)for(let L=0;L<m;L++)this.solved.orbits[l].perm[m]===this.solved.orbits[l].perm[L]&&(g=!0)}let c=-1,u=!1;for(let p=0;p<this.orbitdefs[l].size;p++)if(a[p]){let m=f.find(p);c<0?c=m:c!==m&&(u=!0)}for(let p=0;p<this.orbitdefs[l].size;p++){if(!a[p]||f.find(p)!==p)continue;let L=[],R=[],D=0;for(let A=0;A<this.orbitdefs[l].size;A++)f.find(A)===p&&(L[D]=A,R[A]=D,D++);if(u?t.push(\`\${this.orbitnames[l]}_p\${p}\`):t.push(this.orbitnames[l]),g){r.push(new ko(D,this.orbitdefs[l].mod)),n.push(this.solved.orbits[l].remapVS(L,D));for(let A=0;A<this.moveops.length;A++)o[A].push(this.moveops[A].orbits[l].remap(L,R,D))}else{r.push(new ko(D,1)),n.push(this.solved.orbits[l].remapVS(L,D).killOri());for(let A=0;A<this.moveops.length;A++)o[A].push(this.moveops[A].orbits[l].remap(L,R,D).killOri())}}}return new Sn(t,r,new xn(n),this.movenames,o.map(l=>new cr(l)))}scramble(t){this.solved=this.solved.mul(this.getScrambleTransformation(t))}getScrambleTransformation(t){t<100&&(t=100);let r=[];for(let o=0;o<this.moveops.length;o++)r[o]=this.moveops[o];for(let o=0;o<r.length;o++){let l=Math.floor(Math.random()*r.length),i=r[o];r[o]=r[l],r[l]=i}t<r.length&&(t=r.length);for(let o=0;o<t;o++){let l=Math.floor(Math.random()*r.length),i=Math.floor(Math.random()*r.length),s=Math.floor(Math.random()*this.moveops.length);r[l]=r[l].mul(r[i]).mul(this.moveops[s]),Math.random()<.1&&(r[l]=r[l].mul(this.moveops[s]))}let n=r[0];for(let o=1;o<r.length;o++)n=n.mul(r[o]);return n}reassemblySize(){let t=1;for(let r=0;r<this.orbitdefs.length;r++)t*=this.orbitdefs[r].reassemblySize();return t}},yt=class{constructor(t,r,n){this.perm=t;this.ori=r;this.orimod=n}static e(t,r){return new yt(Ct(t),gr(t),r)}mul(t){let r=this.perm.length,n=new Array(r);if(this.orimod===1){for(let o=0;o<r;o++)n[o]=this.perm[t.perm[o]];return new yt(n,this.ori,this.orimod)}else{let o=new Array(r);for(let l=0;l<r;l++)n[l]=this.perm[t.perm[l]],o[l]=(this.ori[t.perm[l]]+t.ori[l])%this.orimod;return new yt(n,o,this.orimod)}}inv(){let t=this.perm.length,r=new Array(t),n=new Array(t);for(let o=0;o<t;o++)r[this.perm[o]]=o,n[this.perm[o]]=(this.orimod-this.ori[o])%this.orimod;return new yt(r,n,this.orimod)}equal(t){let r=this.perm.length;for(let n=0;n<r;n++)if(this.perm[n]!==t.perm[n]||this.ori[n]!==t.ori[n])return!1;return!0}killOri(){let t=this.perm.length;for(let r=0;r<t;r++)this.ori[r]=0;return this.orimod=1,this}toPerm(){let t=this.orimod;if(t===1)return new mt(this.perm);let r=this.perm.length,n=new Array(r*t);for(let o=0;o<r;o++)for(let l=0;l<t;l++)n[o*t+l]=t*this.perm[o]+(this.ori[o]+l)%t;return new mt(n)}identicalPieces(){let t=[],r=this.perm.length,n=[];for(let o=0;o<r;o++){let l=this.perm[o];if(t[l]===void 0){let i=[o];t[l]=!0;for(let s=o+1;s<r;s++)this.perm[s]===l&&i.push(s);n.push(i)}}return n}order(){return this.toPerm().order()}isIdentity(){let t=this.perm.length;if(this.perm===Ct(t)&&this.ori===gr(t))return!0;for(let r=0;r<t;r++)if(this.perm[r]!==r||this.ori[r]!==0)return!1;return!0}zeroOris(){let t=this.perm.length;if(this.ori===gr(t))return!0;for(let r=0;r<t;r++)if(this.ori[r]!==0)return!1;return!0}remap(t,r,n){let o=new Array(n),l=new Array(n);for(let i=0;i<n;i++)o[i]=r[this.perm[t[i]]],l[i]=this.ori[t[i]];return new yt(o,l,this.orimod)}remapVS(t,r){let n=new Array(r),o=new Array(r),l=0,i=[];for(let s=0;s<r;s++){let f=this.perm[t[s]];i[f]===void 0&&(i[f]=l++),n[s]=i[f],o[s]=this.ori[t[s]]}return new yt(n,o,this.orimod)}appendDefinition(t,r,n,o=!0){if(!(o&&this.isIdentity())&&(t.push(r),t.push(this.perm.map(l=>l+1).join(" ")),!this.zeroOris()))if(n){let l=new Array(this.ori.length);for(let i=0;i<l.length;i++)l[this.perm[i]]=this.ori[i];t.push(l.join(" "))}else t.push(this.ori.join(" "))}toKPuzzle(){let t=this.perm.length;return this.isIdentity()?(yt.kcache[t]||(yt.kcache[t]={permutation:Ct(t),orientation:gr(t)}),yt.kcache[t]):{permutation:this.perm,orientation:this.ori}}},Vt=yt;Vt.kcache=[];Ps=class{constructor(t){this.orbits=t}internalMul(t){let r=[];for(let n=0;n<this.orbits.length;n++)r.push(this.orbits[n].mul(t.orbits[n]));return r}internalInv(){let t=[];for(let r of this.orbits)t.push(r.inv());return t}equal(t){for(let r=0;r<this.orbits.length;r++)if(!this.orbits[r].equal(t.orbits[r]))return!1;return!0}killOri(){for(let t of this.orbits)t.killOri();return this}toPerm(){let t=new Array,r=0;for(let o of this.orbits){let l=o.toPerm();t.push(l),r+=l.n}let n=new Array(r);r=0;for(let o of t){for(let l=0;l<o.n;l++)n[r+l]=r+o.p[l];r+=o.n}return new mt(n)}identicalPieces(){let t=[],r=0;for(let n of this.orbits){let o=n.orimod,l=n.identicalPieces();for(let i=0;i<l.length;i++)t.push(l[i].map(s=>s*o+r));r+=o*n.perm.length}return t}order(){let t=1;for(let r of this.orbits)t=_s(t,r.order());return t}},cr=class extends Ps{constructor(t){super(t)}mul(t){return new cr(this.internalMul(t))}mulScalar(t){if(t===0)return this.e();let r=this;for(t<0&&(r=r.inv(),t=-t);(t&1)==0;)r=r.mul(r),t>>=1;if(t===1)return r;let n=r,o=this.e();for(;t>0;)t&1&&(o=o.mul(n)),t>1&&(n=n.mul(n)),t>>=1;return o}inv(){return new cr(this.internalInv())}e(){return new cr(this.orbits.map(t=>Vt.e(t.perm.length,t.orimod)))}},xn=class extends Ps{constructor(t){super(t)}mul(t){return new xn(this.internalMul(t))}},Ms=class{constructor(t){this.n=t;this.heads=new Array(t);for(let r=0;r<t;r++)this.heads[r]=r}find(t){let r=this.heads[t];return this.heads[r]===r||(r=this.find(this.heads[r]),this.heads[t]=r),r}union(t,r){let n=this.find(t),o=this.find(r);n<o?this.heads[o]=n:n>o&&(this.heads[n]=o)}}});var Pl,M0=U(()=>{Pl={"2x2x2":"c f 0","3x3x3":"c f 0.333333333333333","4x4x4":"c f 0.5 f 0","5x5x5":"c f 0.6 f 0.2","6x6x6":"c f 0.666666666666667 f 0.333333333333333 f 0","7x7x7":"c f 0.714285714285714 f 0.428571428571429 f 0.142857142857143","8x8x8":"c f 0.75 f 0.5 f 0.25 f 0","9x9x9":"c f 0.777777777777778 f 0.555555555555556 f 0.333333333333333 f 0.111111111111111","10x10x10":"c f 0.8 f 0.6 f 0.4 f 0.2 f 0","11x11x11":"c f 0.818181818181818 f 0.636363636363636 f 0.454545454545455 f 0.272727272727273 f 0.0909090909090909","12x12x12":"c f 0.833333333333333 f 0.666666666666667 f 0.5 f 0.333333333333333 f 0.166666666666667 f 0","13x13x13":"c f 0.846153846153846 f 0.692307692307692 f 0.538461538461538 f 0.384615384615385 f 0.230769230769231 f 0.0769230769230769","20x20x20":"c f 0 f .1 f .2 f .3 f .4 f .5 f .6 f .7 f .8 f .9","30x30x30":"c f 0 f .066667 f .133333 f .2 f .266667 f .333333 f .4 f .466667 f .533333 f .6 f .666667 f .733333 f .8 f .866667 f .933333","40x40x40":"c f 0 f .05 f .1 f .15 f .2 f .25 f .3 f .35 f .4 f .45 f .5 f .55 f .6 f .65 f .7 f .75 f .8 f .85 f .9 f .95",skewb:"c v 0","master skewb":"c v 0.275","professor skewb":"c v 0 v 0.38","compy cube":"c v 0.915641442663986",helicopter:"c e 0.707106781186547","curvy copter":"c e 0.83",dino:"c v 0.577350269189626","little chop":"c e 0",pyramorphix:"t e 0",mastermorphix:"t e 0.346184634065199",pyraminx:"t v 0.333333333333333 v 1.66666666666667",tetraminx:"t v 0.333333333333333","master pyraminx":"t v 0 v 1 v 2","master tetraminx":"t v 0 v 1","professor pyraminx":"t v -0.2 v 0.6 v 1.4 v 2.2","professor tetraminx":"t v -0.2 v 0.6 v 1.4","Jing pyraminx":"t f 0","master pyramorphix":"t e 0.866025403784437",megaminx:"d f 0.7",gigaminx:"d f 0.64 f 0.82",teraminx:"d f 0.64 f 0.76 f 0.88",petaminx:"d f 0.64 f 0.73 f 0.82 f 0.91",examinx:"d f 0.64 f 0.712 f 0.784 f 0.856 f 0.928",zetaminx:"d f 0.64 f 0.7 f 0.76 f 0.82 f 0.88 f 0.94",yottaminx:"d f 0.64 f 0.6914 f 0.7429 f 0.7943 f 0.8457 f 0.8971 f 0.9486",pentultimate:"d f 0","master pentultimate":"d f 0.1","elite pentultimate":"d f 0 f 0.145905",starminx:"d v 0.937962370425399","starminx 2":"d f 0.23606797749979","pyraminx crystal":"d f 0.447213595499989",chopasaurus:"d v 0","big chop":"d e 0","skewb diamond":"o f 0",FTO:"o f 0.333333333333333","master FTO":"o f 0.5 f 0","Christopher's jewel":"o v 0.577350269189626",octastar:"o e 0","Trajber's octahedron":"o v 0.433012701892219","radio chop":"i f 0",icosamate:"i v 0","icosahedron 2":"i v 0.18759247376021","icosahedron 3":"i v 0.18759247376021 e 0","icosahedron static faces":"i v 0.84","icosahedron moving faces":"i v 0.73","Eitan's star":"i f 0.61803398874989","2x2x2 + dino":"c f 0 v 0.577350269189626","2x2x2 + little chop":"c f 0 e 0","dino + little chop":"c v 0.577350269189626 e 0","2x2x2 + dino + little chop":"c f 0 v 0.577350269189626 e 0","megaminx + chopasaurus":"d f 0.61803398875 v 0","starminx combo":"d f 0.23606797749979 v 0.937962370425399"}});function Ml(e){let t=new I(0,0,0,0);for(let r=0;r<e.length;r++)t=t.sum(e[r]);return t.smul(1/e.length)}function N0(e,t,r,n){let o=n[e].intersect3(n[t],n[r]);if(!o)return o;for(let l=0;l<n.length;l++)if(l!==e&&l!==t&&l!==r){let i=n[l].b*o.b+n[l].c*o.c+n[l].d*o.d;if(n[l].a>0&&i>n[l].a||n[l].a<0&&i<n[l].a)return!1}return o}var Gr,I,Nl=U(()=>{Gr=1e-9;I=class{constructor(t,r,n,o){this.a=t;this.b=r;this.c=n;this.d=o}mul(t){return new I(this.a*t.a-this.b*t.b-this.c*t.c-this.d*t.d,this.a*t.b+this.b*t.a+this.c*t.d-this.d*t.c,this.a*t.c-this.b*t.d+this.c*t.a+this.d*t.b,this.a*t.d+this.b*t.c-this.c*t.b+this.d*t.a)}toString(){return\`Q[\${this.a},\${this.b},\${this.c},\${this.d}]\`}dist(t){return Math.hypot(this.a-t.a,this.b-t.b,this.c-t.c,this.d-t.d)}len(){return Math.hypot(this.a,this.b,this.c,this.d)}cross(t){return new I(0,this.c*t.d-this.d*t.c,this.d*t.b-this.b*t.d,this.b*t.c-this.c*t.b)}dot(t){return this.b*t.b+this.c*t.c+this.d*t.d}normalize(){let t=Math.sqrt(this.dot(this));return new I(this.a/t,this.b/t,this.c/t,this.d/t)}makenormal(){return new I(0,this.b,this.c,this.d).normalize()}normalizeplane(){let t=Math.hypot(this.b,this.c,this.d);return new I(this.a/t,this.b/t,this.c/t,this.d/t)}smul(t){return new I(this.a*t,this.b*t,this.c*t,this.d*t)}sum(t){return new I(this.a+t.a,this.b+t.b,this.c+t.c,this.d+t.d)}sub(t){return new I(this.a-t.a,this.b-t.b,this.c-t.c,this.d-t.d)}angle(){return 2*Math.acos(this.a)}invrot(){return new I(this.a,-this.b,-this.c,-this.d)}det3x3(t,r,n,o,l,i,s,f,a){return t*(l*a-i*f)+r*(i*s-o*a)+n*(o*f-l*s)}rotateplane(t){let r=t.mul(new I(0,this.b,this.c,this.d)).mul(t.invrot());return r.a=this.a,r}orthogonal(){let t=Math.abs(this.b),r=Math.abs(this.c),n=Math.abs(this.d);return t<r&&t<n?this.cross(new I(0,1,0,0)).normalize():r<t&&r<n?this.cross(new I(0,0,1,0)).normalize():this.cross(new I(0,0,0,1)).normalize()}pointrotation(t){let r=this.normalize();if(t=t.normalize(),r.sub(t).len()<Gr)return new I(1,0,0,0);let n=r.sum(t);n.len()<Gr?n=n.orthogonal():n=n.normalize();let o=r.cross(n);return o.a=r.dot(n),o}unproject(t){return this.sum(t.smul(-this.dot(t)/(this.len()*t.len())))}rotatepoint(t){return t.mul(this).mul(t.invrot())}rotateface(t){return t.map(r=>r.rotatepoint(this))}intersect3(t,r){let n=this.det3x3(this.b,this.c,this.d,t.b,t.c,t.d,r.b,r.c,r.d);return Math.abs(n)<Gr?!1:new I(0,this.det3x3(this.a,this.c,this.d,t.a,t.c,t.d,r.a,r.c,r.d)/n,this.det3x3(this.b,this.a,this.d,t.b,t.a,t.d,r.b,r.a,r.d)/n,this.det3x3(this.b,this.c,this.a,t.b,t.c,t.a,r.b,r.c,r.a)/n)}side(t){return t>Gr?1:t<-Gr?-1:0}cutface(t){let r=this.a,n=0,o=null;for(let l=0;l<t.length;l++)n|=1<<this.side(t[l].dot(this)-r)+1;if((n&5)==5){o=[];let l=t.map(i=>this.side(i.dot(this)-r));for(let i=-1;i<=1;i+=2){let s=[];for(let f=0;f<t.length;f++){(l[f]===i||l[f]===0)&&s.push(t[f]);let a=(f+1)%t.length;if(l[f]+l[a]===0&&l[f]!==0){let g=t[f].dot(this)-r,c=t[a].dot(this)-r,u=g/(g-c),p=t[f].smul(1-u).sum(t[a].smul(u));s.push(p)}}o.push(s)}}return o}cutfaces(t){let r=[];for(let n=0;n<t.length;n++){let o=t[n],l=this.cutface(o);l?(r.push(l[0]),r.push(l[1])):r.push(o)}return r}faceside(t){let r=this.a;for(let n=0;n<t.length;n++){let o=this.side(t[n].dot(this)-r);if(o!==0)return o}throw new Error("Could not determine side of plane in faceside")}sameplane(t){let r=this.normalize(),n=t.normalize();return r.dist(n)<Gr||r.dist(n.smul(-1))<Gr}makecut(t){return new I(t,this.b,this.c,this.d)}}});function T0(){let e=Math.sqrt(.5);return[new I(e,e,0,0),new I(e,0,e,0)]}function G0(){return[new I(.5,.5,.5,.5),new I(.5,.5,.5,-.5)]}function O0(){let e=2*Math.PI/10,t=.5+.3*Math.sqrt(5),r=.5+.1*Math.sqrt(5),n=Math.sqrt(t*t+r*r);return t/=n,r/=n,[new I(Math.cos(e),t*Math.sin(e),r*Math.sin(e),0),new I(.5,.5,.5,.5)]}function I0(){let e=1/6+Math.sqrt(5)/6,t=2/3+Math.sqrt(5)/3,r=Math.sqrt(e*e+t*t);e/=r,t/=r;let n=2*Math.PI/6;return[new I(Math.cos(n),e*Math.sin(n),t*Math.sin(n),0),new I(Math.cos(n),-e*Math.sin(n),t*Math.sin(n),0)]}function W0(){let e=Math.sqrt(.5);return[new I(.5,.5,.5,.5),new I(e,0,0,e)]}function K0(e){let t=[new I(1,0,0,0)];for(let r=0;r<t.length;r++)for(let n=0;n<e.length;n++){let o=e[n].mul(t[r]),l=o.smul(-1),i=!1;for(let s=0;s<t.length;s++)if(o.dist(t[s])<Tl||l.dist(t[s])<Tl){i=!0;break}i||t.push(o)}return t}function Ns(e,t){let r=[],n=[];for(let o=0;o<t.length;o++){let l=e.rotateplane(t[o]),i=!1;for(let s=0;s<r.length;s++)if(l.dist(r[s])<Tl){i=!0;break}i||(r.push(l),n.push(t[o]))}return n}function Ts(e){let t=[];for(let r=1;r<e.length;r++)for(let n=r+1;n<e.length;n++){let o=N0(0,r,n,e);if(o){let l=!1;for(let i=0;i<t.length;i++)if(o.dist(t[i])<Tl){l=!0;break}l||t.push(o)}}for(;;){let r=!1;for(let n=0;n<t.length;n++){let o=(n+1)%t.length;if(e[0].dot(t[n].cross(t[o]))<0){let l=t[n];t[n]=t[o],t[o]=l,r=!0}}if(!r)break}return t}var Tl,Q0=U(()=>{Nl();Tl=1e-9});function Gl(e,t){let r=e[0].p.length,n=z0(r),o=[],l=[],i=[],s=[],f=[];function a(p){for(let m=p.p.length-1;m>=0;m--){let L=p.p[m];if(L!==m){if(!o[m][L])return!1;p=p.mul(l[m][L])}}return!0}function g(p,m,L){s[p].push(m),f[p].push(L);for(let R=0;R<o[p].length;R++)o[p][R]&&c(p,o[p][R].mul(m),L+i[p][R])}function c(p,m,L){let R=m.p[p];if(!o[p][R]){o[p][R]=m,l[p][R]=m.inv(),i[p][R]=L;for(let A=0;A<s[p].length;A++)c(p,m.mul(s[p][A]),L+f[p][A]);return}let D=m.mul(l[p][R]);a(D)||g(p-1,D,L+i[p][R])}function u(){o=[],l=[],s=[],i=[],f=[];for(let L=0;L<r;L++)o.push([]),l.push([]),i.push([]),s.push([]),f.push([]),o[L][L]=n,l[L][L]=n,i[L][L]=0;let p=0,m=1;for(let L=0;L<e.length;L++){g(r-1,e[L],1),m=1;let R=0,D=0,A=[],y=new j0;for(let k=0;k<r;k++){let E=0,Q=0;for(let N=0;N<r;N++)o[k][N]&&(E++,Q+=i[k][N],k!==N&&p++);R+=s[k].length,m*=E,E>1&&y.multiply(E);let $=Q/E;A.push($),D+=$}t(\`\${L}: sz \${m} T \${R} sol \${D} none \${p} mults \${y.toString()}\`)}return m}return u()}var j0,Gs=U(()=>{Cl();j0=class{constructor(){this.mult=[]}multiply(t){for(let r=2;r*r<=t;r++)for(;t%r==0;)this.mult[r]!==void 0?this.mult[r]++:this.mult[r]=1,t/=r;t>1&&(this.mult[t]!==void 0?this.mult[t]++:this.mult[t]=1)}toString(){let t="";for(let r=0;r<this.mult.length;r++)this.mult[r]!==void 0&&(t!==""&&(t+="*"),t+=r,this.mult[r]>1&&(t+=\`^\${this.mult[r]}\`));return t}}});function Os(e){return e}function Is(e){}function Sp(e,t){let r=[];for(let n of e)for(let o of t)r.push(o.rotate(n));return r}function vp(){return{4:[["F","D","L","R"]],6:[["F","D","L","U","R"],["R","F","","B",""]],8:[["F","D","L","R"],["D","F","BR",""],["BR","D","","BB"],["BB","BR","U","BL"]],12:[["U","F","","","",""],["F","U","R","C","A","L"],["R","F","","","E",""],["E","R","","BF","",""],["BF","E","BR","BL","I","D"]],20:[["R","C","F","E"],["F","R","L","U"],["L","F","A",""],["E","R","G","I"],["I","E","S","H"],["S","I","J","B"],["B","S","K","D"],["K","B","M","O"],["O","K","P","N"],["P","O","Q",""]]}}function Ep(){return{4:{F:"#00ff00",D:"#ffff00",L:"#ff0000",R:"#0000ff"},6:{U:"#ffffff",F:"#00ff00",R:"#ff0000",D:"#ffff00",B:"#0000ff",L:"#ff8000"},8:{U:"#ffffff",F:"#ff0000",R:"#00bb00",D:"#ffff00",BB:"#1122ff",L:"#9524c5",BL:"#ff8800",BR:"#aaaaaa"},12:{U:"#ffffff",F:"#006633",R:"#ff0000",C:"#ffffd0",A:"#3399ff",L:"#660099",E:"#ff66cc",BF:"#99ff00",BR:"#0000ff",BL:"#ffff00",I:"#ff6633",D:"#999999"},20:{R:"#db69f0",C:"#178fde",F:"#23238b",E:"#9cc726",L:"#2c212d",U:"#177fa7",A:"#e0de7f",G:"#2b57c0",I:"#41126b",S:"#4b8c28",H:"#7c098d",J:"#7fe7b4",B:"#85fb74",K:"#3f4bc3",D:"#0ff555",M:"#f1c2c8",O:"#58d340",P:"#c514f2",N:"#14494e",Q:"#8b1be1"}}}function kp(){return{4:["F","D","L","R"],6:["U","D","F","B","L","R"],8:["F","BB","D","U","BR","L","R","BL"],12:["L","E","F","BF","R","I","U","D","BR","A","BL","C"],20:["L","S","E","O","F","B","I","P","R","K","U","D","J","A","Q","H","G","N","M","C"]}}function zp(){return{4:[["FLR",[0,1,0]],["F",[0,0,1]]],6:[["U",[0,1,0]],["F",[0,0,1]]],8:[["U",[0,1,0]],["F",[0,0,1]]],12:[["U",[0,1,0]],["F",[0,0,1]]],20:[["GUQMJ",[0,1,0]],["F",[0,0,1]]]}}function Ol(e,t){for(let r=0;r<e.length;r++)if(e[r][0].dist(t)<xe)return r;throw new Error("Element not found")}function q0(){return Pl}function V0(e){return Pl[e]}function Eo(e){let t=e.split(/ /).filter(Boolean);if(t.length%2==0)return null;let r=t[0];if(r!=="o"&&r!=="c"&&r!=="i"&&r!=="d"&&r!=="t")return null;let n=[];for(let o=1;o<t.length;o+=2){if(t[o]!=="f"&&t[o]!=="v"&&t[o]!=="e")return null;n.push({cutType:t[o],distance:parseFloat(t[o+1])})}return{shape:r,cuts:n}}function Ws(e,t={}){let r=Eo(e);if(r===null)throw new Error("Could not parse the puzzle description");let n=new Wl(r,Object.assign({},{allMoves:!0},t));return n.allstickers(),n.genperms(),n}function vn(e,t){return Ws(Pl[e],t)}function _p(e,t,r){let n=!1;r-t[1]<t[0]&&(e=[e[2],e[3],e[0],e[1]],t=[r-t[1],r-t[0]],n=!0);let o=e[0],l="";if(t[0]===0&&t[1]===r)o=o+"v";else if(t[0]===t[1])t[1]>0&&(l=String(t[1]+1));else if(t[0]===0)o=o.toLowerCase(),t[1]>1&&(l=String(t[1]+1));else throw\`We only support slice and outer block moves right now. \${t}\`;return[l+o,n]}function Cp(e,t){let r=[],n=0;for(;n<e.length;){n>0&&n<e.length&&e[n]==="_"&&n++;let o="";for(let l of t)e.substr(n).startsWith(l[1])&&l[1].length>o.length&&(o=l[1]);if(o!=="")r.push(o),n+=o.length;else throw new Error("Could not split "+e+" into face names.")}return r}function Il(e,t){return[e.b/t,-e.c/t,e.d/t]}function Ks(e,t){let r=[],n=e.length;for(let o=0;o<n;o++){let l=Il(e.get(n-o-1),t);r[3*o]=l[0],r[3*o+1]=l[1],r[3*o+2]=l[2]}return r}var wn,zo,xe,xp,wp,Wl,Or,_l=U(()=>{Re();B0();ws();Es();Cl();P0();M0();Q0();Nl();Gs();wn=class{constructor(t){this.coords=new Array(t.length*3);for(let r=0;r<t.length;r++)this.coords[3*r]=t[r].b,this.coords[3*r+1]=t[r].c,this.coords[3*r+2]=t[r].d;this.length=t.length}get(t){return new I(0,this.coords[3*t],this.coords[3*t+1],this.coords[3*t+2])}centermass(){let t=0,r=0,n=0;for(let o=0;o<this.length;o++)t+=this.coords[3*o],r+=this.coords[3*o+1],n+=this.coords[3*o+2];return new I(0,t/this.length,r/this.length,n/this.length)}rotate(t){let r=[];for(let n=0;n<this.length;n++)r.push(this.get(n).rotatepoint(t));return new wn(r)}rotateforward(){let t=[];for(let r=1;r<this.length;r++)t.push(this.get(r));return t.push(this.get(0)),new wn(t)}},zo=class{constructor(t,r,n){this.face=t;this.left=r;this.right=n}split(t){let r=t.cutface(this.face);return r!==null&&(this.left===void 0?(this.left=new zo(r[0]),this.right=new zo(r[1])):(this.left=this.left?.split(t),this.right=this.right?.split(t))),this}collect(t,r){return this.left===void 0?t.push(new wn(this.face)):r?(this.left?.collect(t,!1),this.right?.collect(t,!0)):(this.right?.collect(t,!1),this.left?.collect(t,!0)),t}};xe=1e-9,xp="PuzzleGeometry 0.1 Copyright 2018 Tomas Rokicki.",wp=!1;Wl=class{constructor(t,r){this.puzzleDescription=t;this.cmovesbyslice=[];this.duplicatedFaces=[];this.duplicatedCubies=[];this.fixedCubie=-1;this.net=[];this.colors=[];this.faceorder=[];this.faceprecedence=[];this.notationMapper=new bn;this.addNotationMapper="";this.setReidOrder=!1;let n=Os("genperms");this.options=new vs(r),this.options.verbosity>0&&console.log(this.header("# ")),this.create(t),Is(n)}create(t){let{shape:r,cuts:n}=t;this.moveplanes=[],this.moveplanes2=[],this.faces=[],this.cubies=[];let o=null;switch(r){case"c":o=T0();break;case"o":o=W0();break;case"i":o=I0();break;case"t":o=G0();break;case"d":o=O0();break;default:throw new Error("Bad shape argument: "+r)}this.rotations=K0(o),this.options.verbosity&&console.log("# Rotations: "+this.rotations.length);let l=o[0];this.baseplanerot=Ns(l,this.rotations);let i=this.baseplanerot.map(h=>l.rotateplane(h));this.baseplanes=i,this.baseFaceCount=i.length;let s=vp()[i.length];this.net=s,this.colors=Ep()[i.length],this.faceorder=kp()[i.length],this.options.verbosity>0&&console.log("# Base planes: "+i.length);let f=Ts(i),a=new I(0,0,0,0);this.options.verbosity>0&&console.log("# Face vertices: "+f.length);let g=i[0].makenormal(),c=f[0].sum(f[1]).makenormal(),u=f[0].makenormal(),p=new I(1,g.b,g.c,g.d);this.options.verbosity>0&&console.log("# Boundary is "+p);let L=Ns(p,this.rotations).map(h=>p.rotateplane(h)),R=Ts(L);this.edgedistance=R[0].sum(R[1]).smul(.5).dist(a),this.vertexdistance=R[0].dist(a);let D=[],A=[],y=!1,k=!1,E=!1;for(let h of n){let v=null,G=0;switch(h.cutType){case"f":v=g,G=1,y=!0;break;case"v":v=u,G=this.vertexdistance,E=!0;break;case"e":v=c,G=this.edgedistance,k=!0;break;default:throw new Error("Bad cut argument: "+h.cutType)}D.push(v.makecut(h.distance)),A.push(h.distance<G)}this.options.addRotations&&(y||D.push(g.makecut(10)),E||D.push(u.makecut(10)),k||D.push(c.makecut(10))),this.basefaces=[];for(let h of this.baseplanerot){let v=h.rotateface(R);this.basefaces.push(new wn(v))}let Q=[],$=[],N=[],oe=[],b=R.length;function _(h,v,G){for(let K of h)if(K[0].dist(v)<xe){K.push(G);return}h.push([v,G])}for(let h=0;h<this.baseplanerot.length;h++){let v=this.baseplanerot[h].rotateface(R);for(let G=0;G<v.length;G++){let K=(G+1)%v.length,le=v[G].sum(v[K]).smul(.5);_(oe,le,h)}}let M=[];for(let h=0;h<this.baseplanerot.length;h++){let v=this.baseplanerot[h].rotateface(R),G=[];for(let K=0;K<v.length;K++){let le=(K+1)%v.length,Ve=v[K].sum(v[le]).smul(.5),ut=oe[Ol(oe,Ve)];if(h===ut[1])G.push(ut[2]);else if(h===ut[2])G.push(ut[1]);else throw new Error("Could not find edge")}M.push(G)}let x={},w=[];w.push(s[0][0]),x[s[0][0]]=0,w[M[0][0]]=s[0][1],x[s[0][1]]=M[0][0];for(let h of s){let v=h[0],G=x[v];if(G===void 0)throw new Error("Bad edge description; first edge not connected");let K=-1;for(let le=0;le<M[G].length;le++){let Ve=w[M[G][le]];if(Ve!==void 0&&Ve===h[1]){K=le;break}}if(K<0)throw new Error("First element of a net not known");for(let le=2;le<h.length;le++){if(h[le]==="")continue;let Ve=M[G][(le+K-1)%b],ut=w[Ve];if(ut!==void 0&&ut!==h[le])throw new Error("Face mismatch in net");w[Ve]=h[le],x[h[le]]=Ve}}for(let h=0;h<w.length;h++){let v=!1;for(let G=0;G<this.faceorder.length;G++)if(w[h]===this.faceorder[G]){this.faceprecedence[h]=G,v=!0;break}if(!v)throw new Error("Could not find face "+w[h]+" in face order list "+this.faceorder)}for(let h=0;h<this.baseplanerot.length;h++){let v=this.baseplanerot[h].rotateface(R),G=p.rotateplane(this.baseplanerot[h]),K=w[h];Q.push([v,K]),$.push([G,K])}for(let h=0;h<this.baseplanerot.length;h++){let v=this.baseplanerot[h].rotateface(R),G=w[h];for(let K=0;K<v.length;K++){let le=(K+1)%v.length,Ve=v[K].sum(v[le]).smul(.5),ut=(K+2)%v.length,kc=v[le].sum(v[ut]).smul(.5),zc=Ol(oe,Ve),_c=Ol(oe,kc);_(N,v[le],[G,_c,zc])}}this.swizzler=new xo(Q.map(h=>h[1]));let C=this.swizzler.prefixFree?"":"_";for(let h=0;h<oe.length;h++){if(oe[h].length!==3)throw new Error("Bad length in edge names "+oe[h]);let v=w[oe[h][1]],G=w[oe[h][2]];this.faceprecedence[oe[h][1]]<this.faceprecedence[oe[h][2]]?v=v+C+G:v=G+C+v,oe[h]=[oe[h][0],v]}for(let h=0;h<N.length;h++){if(N[h].length<4)throw new Error("Bad length in vertex names");let v=1;for(let K=2;K<N[h].length;K++)this.faceprecedence[x[N[h][K][0]]]<this.faceprecedence[x[N[h][v][0]]]&&(v=K);let G="";for(let K=1;K<N[h].length;K++){K===1?G=N[h][v][0]:G=G+C+N[h][v][0];for(let le=1;le<N[h].length;le++)if(N[h][v][1]===N[h][le][2]){v=le;break}}N[h]=[N[h][0],G]}this.options.verbosity>1&&(console.log("# Face precedence list: "+this.faceorder.join(" ")),console.log("# Face names: "+Q.map(h=>h[1]).join(" ")),console.log("# Edge names: "+oe.map(h=>h[1]).join(" ")),console.log("# Vertex names: "+N.map(h=>h[1]).join(" ")));let j=[];for(let h of $)j.push([h[0].makenormal(),h[1],"f"]);for(let h of oe)j.push([h[0].makenormal(),h[1],"e"]);for(let h of N)j.push([h[0].makenormal(),h[1],"v"]);this.facenames=Q,this.faceplanes=$,this.edgenames=oe,this.vertexnames=N,this.geonormals=j;let Z=j.map(h=>h[1]);this.swizzler.setGripNames(Z),this.options.verbosity>0&&console.log("# Distances: face "+1+" edge "+this.edgedistance+" vertex "+this.vertexdistance);for(let h=0;h<D.length;h++)for(let v of this.rotations){let G=D[h].rotateplane(v),K=!1;for(let le of this.moveplanes)if(G.sameplane(le)){K=!0;break}K||(this.moveplanes.push(G),A[h]&&this.moveplanes2.push(G))}let ce=new zo(R),Le=this.moveplanes2.slice(),Ae=31;for(let h=0;h<Le.length;h++){let v=h+Math.floor((Le.length-h)*(Ae/65536));ce=ce.split(Le[v]),Le[v]=Le[h],Ae=(Ae*1657+101)%65536}let be=ce.collect([],!0);this.faces=be,this.options.verbosity>0&&console.log("# Faces is now "+be.length),this.stickersperface=be.length;let kt=[],Ne=Ml(R);for(let h of this.rotations){let v=h.rotateface(R);Ne.dist(Ml(v))<xe&&kt.push(h)}let nt=new Array(be.length),ve=[];for(let h=0;h<be.length;h++){let v=be[h].centermass();ve.push([Ne.dist(v),v,h])}ve.sort((h,v)=>h[0]-v[0]);for(let h=0;h<be.length;h++){let v=ve[h][2];if(!nt[v]){nt[v]=!0;for(let G of kt){let K=be[v].rotate(G),le=K.centermass();for(let Ve=h+1;Ve<be.length&&!(ve[Ve][0]-ve[h][0]>xe);Ve++){let ut=ve[Ve][2];if(!nt[ut]&&le.dist(ve[Ve][1])<xe){nt[ut]=!0,be[ut]=K;break}}}}}this.shortedge=1e99;for(let h of be)for(let v=0;v<h.length;v++){let G=(v+1)%h.length,K=h.get(v).dist(h.get(G));K<this.shortedge&&(this.shortedge=K)}this.options.verbosity>0&&console.log("# Short edge is "+this.shortedge),r==="c"&&y&&!k&&!E&&(this.addNotationMapper="NxNxNCubeMapper",this.setReidOrder=!0),r==="c"&&E&&!y&&!k&&(this.addNotationMapper="SkewbMapper"),r==="t"&&(E||y)&&!k&&(this.addNotationMapper="PyraminxOrTetraminxMapper"),r==="o"&&y&&(this.notationMapper=new wo(this.swizzler,new xo(["F","D","L","BL","R","U","BR","B"])),!k&&!E&&(this.addNotationMapper="FTOMapper")),r==="d"&&y&&(this.addNotationMapper="MegaminxMapper",this.notationMapper=new wo(this.swizzler,new xo(["U","F","L","BL","BR","R","FR","FL","DL","B","DR","D"])))}keyface(t){return this.keyface2(t.centermass())}keyface2(t){let r="",n=String.fromCharCode;for(let o of this.moveplanesets)if(o.length>0){let l=t.dot(o[0]),i=0,s=1;for(;s*2<=o.length;)s*=2;for(;s>0;s>>=1)i+s<=o.length&&l>o[i+s-1].a&&(i+=s);if(i<47)r=r+n(33+i);else if(i<47+47*47)r=r+n(33+47+Math.floor(i/47)-1)+n(33+i%47);else if(i<47+47*47+47*47*47)r=r+n(33+47+Math.floor((i-47)/(47*47)-1))+n(33+47+Math.floor((i-47)/47)%47)+n(33+i%47);else throw Error("Too many slices for cubie encoding")}return r}keyface3(t){let r=t.centermass(),n=[];for(let o of this.moveplanesets)if(o.length>0){let l=r.dot(o[0]),i=0,s=1;for(;s*2<=o.length;)s*=2;for(;s>0;s>>=1)i+s<=o.length&&l>o[i+s-1].a&&(i+=s);n.push(i)}return n}findface(t){let r=this.keyface2(t),n=this.facelisthash.get(r);if(n.length===1)return n[0];for(let o=0;o+1<n.length;o++){let l=this.facelisthash.get(r)[o];if(Math.abs(t.dist(this.facecentermass[l]))<xe)return l}return n[n.length-1]}project2d(t,r,n){let o=this.facenames[t][0],l=(r+1)%o.length,i=this.baseplanes[t],s=o[l].sub(o[r]),f=s.len();s=s.normalize();let a=s.cross(i).normalize(),g=n[1].sub(n[0]),c=g.len()/f;g=g.normalize();let u=g.b,p=g.c,m=s.smul(u).sub(a.smul(p)).smul(c),L=a.smul(u).sum(s.smul(p)).smul(c),R=new I(0,n[0].b-m.dot(o[r]),n[0].c-L.dot(o[r]),0);return[m,L,R]}allstickers(){let t=Os("allstickers");this.faces=Sp(this.baseplanerot,this.faces),this.options.verbosity>0&&console.log("# Total stickers is now "+this.faces.length),this.facecentermass=new Array(this.faces.length);for(let b=0;b<this.faces.length;b++)this.facecentermass[b]=this.faces[b].centermass();let r=[],n=[];for(let b of this.moveplanes){let _=b.makenormal(),M=!1;for(let x of n)_.sameplane(x.makenormal())&&(M=!0);M||(n.push(_),r.push([]))}for(let b of this.moveplanes2){let _=b.makenormal();for(let M=0;M<n.length;M++)if(_.sameplane(n[M])){r[M].push(b);break}}for(let b=0;b<r.length;b++){let _=r[b].map(x=>x.normalizeplane()),M=n[b];for(let x=0;x<_.length;x++)_[x].makenormal().dist(M)>xe&&(_[x]=_[x].smul(-1));_.sort((x,w)=>x.a-w.a),r[b]=_}this.moveplanesets=r,this.moveplanenormals=n;let o=r.map(b=>b.length);this.options.verbosity>0&&console.log("# Move plane sets: "+o);let l=[];for(let b=0;b<r.length;b++)l.push([]);for(let b of this.rotations){if(Math.abs(Math.abs(b.a)-1)<xe)continue;let _=b.makenormal();for(let M=0;M<r.length;M++)if(_.sameplane(n[M])){l[M].push(b);break}}this.moverotations=l;for(let b=0;b<l.length;b++){let _=l[b],M=_[0].makenormal();for(let x=0;x<_.length;x++)M.dist(_[x].makenormal())>xe&&(_[x]=_[x].smul(-1));_.sort((x,w)=>x.angle()-w.angle()),l[b][0].dot(n[b])<0&&_.reverse()}let i=l.map(b=>1+b.length);this.movesetorders=i;let s=[],f="?";for(let b=0;b<r.length;b++){let _=n[b],M=null,x=null;for(let w of this.geonormals){let C=_.dot(w[0]);Math.abs(C-1)<xe?(x=[w[1],w[2]],f=w[2]):Math.abs(C+1)<xe&&(M=[w[1],w[2]],f=w[2])}if(x===null||M===null)throw new Error("Saw positive or negative sides as null");s.push([x[0],x[1],M[0],M[1],1+r[b].length]),this.addNotationMapper==="NxNxNCubeMapper"&&f==="f"&&(this.notationMapper=new El(1+r[b].length),this.addNotationMapper=""),this.addNotationMapper==="SkewbMapper"&&r[0].length===1&&(this.notationMapper=new zl(this.swizzler),this.addNotationMapper=""),this.addNotationMapper==="PyraminxOrTetraminxMapper"&&(r[0].length===2&&r[0][0].a===.333333333333333&&r[0][1].a===1.66666666666667?(this.notationMapper=new vo(this.swizzler),this.addNotationMapper=""):(this.notationMapper=new kl(this.swizzler),this.addNotationMapper="")),this.addNotationMapper==="MegaminxMapper"&&f==="f"&&(1+r[b].length===3&&(this.notationMapper=new vl(this.notationMapper)),this.addNotationMapper=""),this.addNotationMapper==="FTOMapper"&&f==="f"&&(1+r[b].length===3&&(this.notationMapper=new wl(this.notationMapper,this.swizzler)),this.addNotationMapper="")}this.movesetgeos=s;let a=new Map,g=this.faces;for(let b=0;b<g.length;b++){let _=g[b],M=this.keyface(_);if(!a.get(M))a.set(M,[b]);else{let x=a.get(M);if(x.push(b),x.length===this.baseFaceCount){this.options.verbosity>0&&console.log("# Splitting core.");for(let w=0;w<x.length;w++){let C=M+" "+w;a.set(C,[x[w]])}}}}this.facelisthash=a,this.options.verbosity>0&&console.log("# Cubies: "+a.size);let c=[],u=[],p=[];for(let b of a.values())if(b.length!==this.baseFaceCount){if(b.length>1){let _=b.map(C=>g[C].centermass()),M=Ml(_);for(let C=0;b.length>2;C++){let j=!1;for(let Z=0;Z<b.length;Z++){let ce=(Z+1)%b.length;if(M.dot(_[Z].cross(_[ce]))<0){let Le=_[Z];_[Z]=_[ce],_[ce]=Le;let Ae=b[Z];b[Z]=b[ce],b[ce]=Ae,j=!0}}if(!j)break;if(C>1e3)throw new Error("Bad epsilon math; too close to border")}let x=0,w=b[x];for(let C=1;C<b.length;C++){let j=b[C];this.faceprecedence[this.getfaceindex(j)]<this.faceprecedence[this.getfaceindex(w)]&&(x=C,w=j)}if(x!==0){let C=b.slice();for(let j=0;j<b.length;j++)b[j]=C[(x+j)%b.length]}}for(let _=0;_<b.length;_++){let M=b[_];u[M]=c.length,p[M]=_}c.push(b)}this.cubies=c,this.facetocubie=u,this.facetoord=p;let m=["?","CENTERS","EDGES","CORNERS","C4RNER","C5RNER"],L=[],R=[0,0,0,0,0,0],D=[],A=[],y=0,k=[],E=[],Q=[],$=[],N=b=>c[b].map(_=>this.getfaceindex(_)).join(" "),oe=[];for(let b=0;b<c.length;b++){if(A[b])continue;let _=c[b];if(_.length===0)continue;let M={},x=0;Q.push(0),oe.push([]);let w=_.length,C=R[w]++,j=m[w];(j===void 0||w===this.baseFaceCount)&&(j="CORE"),j=j+(C===0?"":C+1),L[y]=j,D[y]=w;let Z=[b],ce=0;for(A[b]=!0;ce<Z.length;){let Le=Z[ce++],Ae=N(Le);if((_.length>1||M[Ae]===void 0)&&(M[Ae]=x++),$[Le]=M[Ae],k[Le]=y,oe[y].push(Le),E[Le]=Q[y]++,Z.length<this.rotations.length){let be=this.facecentermass[c[Le][0]];for(let kt of l){let Ne=this.facetocubie[this.findface(be.rotatepoint(kt[0]))];A[Ne]||(Z.push(Ne),A[Ne]=!0)}}}y++}if(this.setReidOrder&&4<=this.stickersperface&&this.stickersperface<=9){let b=[["UF","UR","UB","UL","DF","DR","DB","DL","FR","FL","BR","BL"],["UFR","URB","UBL","ULF","DRF","DFL","DLB","DBR"],["U","L","F","R","B","D"]],_={};for(let M of b)for(let x=0;x<M.length;x++){let w=0;for(let C=0;C<M[x].length;C++)w|=1<<M[x].charCodeAt(C)-65;_[w]=x}for(let M of oe)for(let x of M){let w=0;for(let C of c[x])w|=1<<this.facenames[this.getfaceindex(C)][1].charCodeAt(0)-65;E[x]=_[w]}}if(this.cubiesetnums=k,this.cubieordnums=E,this.cubiesetnames=L,this.cubieords=Q,this.orbitoris=D,this.cubievaluemap=$,this.cubiesetcubies=oe,this.options.fixedPieceType!==null){for(let b=0;b<c.length;b++)if(this.options.fixedPieceType==="v"&&c[b].length>2||this.options.fixedPieceType==="e"&&c[b].length===2||this.options.fixedPieceType==="f"&&c[b].length===1){this.fixedCubie=b;break}if(this.fixedCubie<0)throw new Error("Could not find a cubie of type "+this.options.fixedPieceType+" to fix.")}this.options.verbosity>0&&console.log("# Cubie orbit sizes "+Q),Is(t)}unswizzle(t){let r=this.notationMapper.notationToInternal(t);return r===null?"":this.swizzler.unswizzle(r.family)}stringToBlockMove(t){let r=RegExp("^(([0-9]+)-)?([0-9]+)?([^0-9]+)([0-9]+'?)?$"),n=t.match(r);if(n===null)throw new Error("Bad move passed "+t);let o=n[4],l,i;if(n[2]!==void 0){if(n[3]===void 0)throw new Error("Missing second number in range");l=parseInt(n[2],10)}n[3]!==void 0&&(i=parseInt(n[3],10));let s="1",f=1;return n[5]!==void 0&&(s=n[5],s[0]==="'"&&(s="-"+s.substring(1)),f=parseInt(s,10)),new B(new P(o,i,l),f)}parseMove(t){let r=this.notationMapper.notationToInternal(t);if(r===null)throw new Error("Bad move "+t.family);t=r;let n=t.family,o=!1;if(n.endsWith("v")&&n[0]<="Z"){if(t.innerLayer!==void 0||t.outerLayer!==void 0)throw new Error("Cannot use a prefix with full cube rotations");n=n.slice(0,-1),o=!0}n.endsWith("w")&&n[0]<="Z"&&(n=n.slice(0,-1).toLowerCase());let l,i=-1,s=this.swizzler.unswizzle(n),f=!1;for(let c=0;c<this.movesetgeos.length;c++){let u=this.movesetgeos[c];s===u[0]&&(f=!0,l=u,i=c),s===u[2]&&(f=!1,l=u,i=c)}let a=1,g=1;if(n.toUpperCase()!==n&&(g=2),l===void 0)throw new Error("Bad grip in move "+t.family);if(t.outerLayer!==void 0&&(a=t.outerLayer),t.innerLayer!==void 0&&(t.outerLayer===void 0?(g=t.innerLayer,n<="Z"?a=g:a=1):g=t.innerLayer),a--,g--,o&&(a=0,g=this.moveplanesets[i].length),a<0||a>this.moveplanesets[i].length||g<0||g>this.moveplanesets[i].length)throw new Error("Bad slice spec "+a+" "+g+" vs "+this.moveplanesets[i].length);if(!wp&&a===0&&g===this.moveplanesets[i].length&&!o)throw new Error("! full puzzle rotations must be specified with v suffix.");return[void 0,i,a,g,f,t.amount]}parsemove(t){let r=this.parseMove(this.stringToBlockMove(t));return r[0]=t,r}genperms(){let t=Os("genperms");if(this.cmovesbyslice.length>0)return;let r=[];if(this.options.orientCenters){for(let n=0;n<this.cubies.length;n++)if(this.cubies[n].length===1){let o=this.cubies[n][0],l=this.getfaceindex(o);if(this.basefaces[l].centermass().dist(this.facecentermass[o])<xe){let i=this.basefaces[l].length;for(let s=1;s<i;s++)this.cubies[n].push(this.cubies[n][s-1]);this.duplicatedFaces[o]=i,this.duplicatedCubies[n]=i,this.orbitoris[this.cubiesetnums[n]]=i}}}for(let n=0;n<this.moveplanesets.length;n++){let o=this.moveplanesets[n],l=[],i=[o.length+1,0],s=1;for(;s*2<=o.length;)s*=2;for(let g=0;g<this.faces.length;g++){let c=0;if(o.length>0){let u=this.facecentermass[g].dot(o[0]);for(let p=s;p>0;p>>=1)c+p<=o.length&&u>o[c+p-1].a&&(c+=p);c=o.length-c}for(l.push(c);i.length<=c;)i.push(0);i[c]++}let f=new Array(i.length);for(let g=0;g<i.length;g++)f[g]=[];let a=[];for(let g=0;g<this.faces.length;g++){if(l[g]<0)continue;let c=[this.facetocubie[g],this.facetoord[g]],u=this.facecentermass[g],p=u,m=g,L=l[m];for(;;){l[m]=-1;let R=u.rotatepoint(this.moverotations[n][0]);if(R.dist(p)<xe)break;m=this.findface(R),c.push(this.facetocubie[m],this.facetoord[m]),u=R}if(c.length>2&&this.options.orientCenters&&(this.cubies[c[0]].length===1||this.duplicatedCubies[c[0]]>1)&&this.facecentermass[g].dist(this.basefaces[this.getfaceindex(g)].centermass())<xe){let R=this.faces[this.cubies[c[0]][0]];for(let D=0;D<c.length;D+=2){let A=this.faces[this.cubies[c[D]][0]],y=-1;for(let k=0;k<R.length;k++)if(A.get(k).dist(R.get(0))<xe){y=k;break}if(y<0)throw new Error("Couldn't find rotation of center faces; ignoring for now.");c[D+1]=y,R=R.rotate(this.moverotations[n][0])}}if(c.length===2&&this.options.orientCenters)for(let R=1;R<this.movesetorders[n];R++)L===0?c.push(c[0],R):c.push(c[0],(this.movesetorders[n]-R)%this.movesetorders[n]);if(c.length>2&&!a[c[0]]){if(c.length!==2*this.movesetorders[n])throw new Error("Bad length in perm gen");for(let R of c)f[L].push(R)}for(let R=0;R<c.length;R+=2)a[c[R]]=!0}for(let g=0;g<f.length;g++)f[g]=f[g].slice();r.push(f)}if(this.cmovesbyslice=r,this.options.moveList){let n=[];for(let o of this.options.moveList)n.push(this.parsemove(o));this.parsedmovelist=n}this.facelisthash.clear(),this.facecentermass=[],Is(t)}getboundarygeometry(){return{baseplanes:this.baseplanes,facenames:this.facenames,faceplanes:this.faceplanes,vertexnames:this.vertexnames,edgenames:this.edgenames,geonormals:this.geonormals}}getmovesets(t){let r=this.moveplanesets[t].length,n=[];if(this.parsedmovelist!==void 0)for(let o of this.parsedmovelist)o[1]===t&&(o[4]?n.push([o[2],o[3]]):n.push([r-o[3],r-o[2]]),n.push(o[5]));else if(this.options.vertexMoves&&!this.options.allMoves){let o=this.movesetgeos[t];if(o[1]!==o[3])for(let l=0;l<r;l++)o[1]!=="v"?(this.options.outerBlockMoves?n.push([l+1,r]):n.push([l+1]),n.push(1)):(this.options.outerBlockMoves?n.push([0,l]):n.push([l,l]),n.push(1))}else for(let o=0;o<=r;o++)!this.options.allMoves&&o+o===r||(this.options.outerBlockMoves?o+o>r?n.push([o,r]):n.push([0,o]):n.push([o,o]),n.push(1));if(this.fixedCubie>=0){let o=this.keyface3(this.faces[this.cubies[this.fixedCubie][0]])[t],l=[];for(let i=0;i<n.length;i+=2){let s=n[i];if(o>=s[0]&&o<=s[1])if(s[0]===0)s=[s[1]+1,r];else if(r===s[1])s=[0,s[0]-1];else throw Error("fixed cubie option would disconnect move");let f=!1;for(let a=0;a<l.length;a+=2)if(l[a][0]===s[0]&&l[a][1]===s[1]&&l[a+1]===n[i+1]){f=!0;break}f||(l.push(s),l.push(n[i+1]))}n=l}return n}graybyori(t){let r=this.cubies[t].length;return this.duplicatedCubies[t]&&(r=1),r===1&&(this.options.grayCenters||!this.options.includeCenterOrbits)||r===2&&(this.options.grayEdges||!this.options.includeEdgeOrbits)||r>2&&(this.options.grayCorners||!this.options.includeCornerOrbits)}skipbyori(t){let r=this.cubies[t].length;return this.duplicatedCubies[t]&&(r=1),r===1&&!this.options.includeCenterOrbits||r===2&&!this.options.includeEdgeOrbits||r>2&&!this.options.includeCornerOrbits}skipcubie(t){return this.skipbyori(t)}header(t){return t+xp+\`
9
9
  \`+t+\`
10
- \`}writegap(){let t=this.getOrbitsDef(!1),r=[],n=[];for(let l=0;l<t.moveops.length;l++){let i="M_"+_a(this.notationMapper,t.movenames[l]),a=!1;i[i.length-1]==="'"&&(i=i.substring(0,i.length-1),a=!0),n.push(i),a?r.push(i+":="+t.moveops[l].toPerm().inv().toGap()+";"):r.push(i+":="+t.moveops[l].toPerm().toGap()+";")}r.push("Gen:=["),r.push(n.join(",")),r.push("];");let o=t.solved.identicalPieces();return r.push("ip:=["+o.map(l=>"["+l.map(i=>i+1).join(",")+"]").join(",")+"];"),r.push("# Size(Group(Gen));"),r.push("# Size(Stabilizer(Group(Gen), ip, OnTuplesSets));"),r.push(""),this.header("# ")+r.join(\`
10
+ \`}writegap(){let t=this.getOrbitsDef(!1),r=[],n=[];for(let l=0;l<t.moveops.length;l++){let i="M_"+Cs(this.notationMapper,t.movenames[l]),s=!1;i[i.length-1]==="'"&&(i=i.substring(0,i.length-1),s=!0),n.push(i),s?r.push(i+":="+t.moveops[l].toPerm().inv().toGap()+";"):r.push(i+":="+t.moveops[l].toPerm().toGap()+";")}r.push("Gen:=["),r.push(n.join(",")),r.push("];");let o=t.solved.identicalPieces();return r.push("ip:=["+o.map(l=>"["+l.map(i=>i+1).join(",")+"]").join(",")+"];"),r.push("# Size(Group(Gen));"),r.push("# Size(Stabilizer(Group(Gen), ip, OnTuplesSets));"),r.push(""),this.header("# ")+r.join(\`
11
11
  \`)}writeksolve(t="PuzzleGeometryPuzzle"){let r=this.getOrbitsDef(!1);return this.header("# ")+r.toKsolve(t,this.notationMapper).join(\`
12
- \`)}getKPuzzleDefinition(t=!0,r=!0){let o=this.getOrbitsDef(t,r).toKPuzzleDefinition(r);if(o.exprimentalPuzzleDescription=this.puzzleDescription,!o)throw new Error("Missing definition!");return o}getMoveFromBits(t,r,n,o,l,i){let a=[],f=[],s=[];for(let u of this.cubieords)f.push(Ct(u)),s.push(ur(u));for(let u=t[0];u<=t[1];u++){let m=o[u];for(let p=0;p<m.length;p+=2*i){let L=m.slice(p,p+2*i),R=this.cubiesetnums[L[0]];for(let y=0;y<L.length;y+=2)L[y]=this.cubieordnums[L[y]];let D=2,A=3;n&&(D=L.length-2,A=L.length-1),f[R]===Ct(this.cubieords[R])&&(f[R]=f[R].slice(),this.orbitoris[R]>1&&!this.options.fixedOrientation&&(s[R]=s[R].slice()));for(let y=0;y<L.length;y+=2)f[R][L[(y+D)%L.length]]=L[y],this.orbitoris[R]>1&&!this.options.fixedOrientation&&(s[R][L[y]]=(L[(y+A)%L.length]-L[(y+1)%L.length]+2*this.orbitoris[R])%this.orbitoris[R])}}let g=new qt(Ct(24),ur(24),1);for(let u=0;u<this.cubiesetnames.length;u++)if(!(l&&!l[u]))if(this.orbitoris[u]===1||this.options.fixedOrientation)f[u]===Ct(g.perm.length)?(f[u]!==g.perm&&(g=new qt(f[u],s[u],1)),a.push(g)):a.push(new qt(f[u],s[u],1));else{let m=new Array(s[u].length);for(let p=0;p<f[u].length;p++)m[p]=s[u][f[u][p]];a.push(new qt(f[u],m,this.orbitoris[u]))}let c=new gr(a);return r!==1&&(c=c.mulScalar(r)),c}omitSet(t){for(let r of this.options.excludeOrbits)if(r===t)return!0;return!1}diffmvsets(t,r,n,o){for(let l=0;l<t.length;l+=2){let i=!1;for(let a=0;!i&&a<r.length;a+=2)o?t[l][0]+r[a][1]===n&&t[l][1]+r[a][0]===n&&t[l+1]===r[a+1]&&(i=!0):t[l][0]===r[a][0]&&t[l][1]===r[a][1]&&t[l+1]===r[a+1]&&(i=!0);if(!i)return!0}return!1}getOrbitsDef(t,r=!0){let n=[];if(t)for(let u=0;u<this.cubiesetnames.length;u++)n.push(1);let o=[],l=[],i=[],a=[];for(let u=0;u<this.moveplanesets.length;u++){let m=this.getmovesets(u);i.push(m),this.options.addRotations?a.push(1):a.push(0)}if(this.options.moveList&&this.options.addRotations){for(let u=0;u<this.moverotations.length;u++)a[u]=0;for(let u=0;u<this.moveplanesets.length;u++)for(let m=0;m<this.moverotations.length;m++){let p=this.moveplanenormals[u];for(let L=1;L*2<=this.movesetorders[m];L++){if(p=p.rotatepoint(this.moverotations[m][0]),a[m]&L)continue;let R=-1,D=!1;for(let y=0;y<this.moveplanenormals.length;y++)if(p.dist(this.moveplanenormals[y])<we){R=y;break}else if(p.dist(this.moveplanenormals[y].smul(-1))<we){R=y,D=!0;break}if(R<0)throw new Error("Could not find rotation");let A=i[R];(A.length!==i[u].length||this.moveplanesets[u].length!==this.moveplanesets[R].length||this.diffmvsets(A,i[u],this.moveplanesets[R].length,D))&&(a[m]|=L)}}for(let u=0;u<this.moverotations.length;u++)if(a[u]===0)a[u]=1;else if(a[u]===1)this.movesetorders[u]>3?a[u]=2:a[u]=0;else if(a[u]===3)a[u]=0;else throw new Error("Impossible addrot val")}for(let u=0;u<this.moveplanesets.length;u++)a[u]!==0&&(i[u].push([0,this.moveplanesets[u].length]),i[u].push(a[u]));for(let u=0;u<this.moveplanesets.length;u++){let m=i[u],p=this.movesetorders[u];for(let D=0;D<m.length;D+=2)for(let A=0;A<D;A+=2)if(m[D]===m[A]&&m[D+1]===m[A+1])throw new Error("Redundant moves in moveset.");let L=[];for(let D=0;D<m.length;D+=2)for(let A=m[D][0];A<=m[D][1];A++)L[A]=1;let R=this.cmovesbyslice[u];for(let D=0;D<R.length;D++){if(L[D]!==1)continue;let A=R[D];for(let y=0;y<A.length;y+=2*p){if(this.skipcubie(A[y]))continue;let k=this.cubiesetnums[A[y]];n[k]=1}}}for(let u=0;u<this.cubiesetnames.length;u++)if(!!n[u]){if(this.omitSet(this.cubiesetnames[u])){n[u]=0;continue}o.push(this.cubiesetnames[u]),l.push(new vo(this.cubieords[u],this.options.fixedOrientation?1:this.orbitoris[u]))}let f=[];for(let u=0;u<this.cubiesetnames.length;u++){if(!n[u]||this.omitSet(this.cubiesetnames[u]))continue;let m=[],p=[];for(let L=0;L<this.cubieords[u];L++){if(t)m.push(L);else{let R=this.cubiesetcubies[u][L];m.push(this.cubievaluemap[R])}p.push(0)}f.push(new qt(m,p,this.options.fixedOrientation?1:this.orbitoris[u]))}let s=[],g=[];if(r)for(let u=0;u<this.moveplanesets.length;u++){let p=this.moveplanesets[u].length,L=i[u],R=this.movesetgeos[u];for(let D=0;D<L.length;D+=2){let A=L[D],y=vm(R,A,p),k=y[0],E=y[1];L[D+1]===1?s.push(k):s.push(k+L[D+1]);let Q=this.getMoveFromBits(A,L[D+1],E,this.cmovesbyslice[u],n,this.movesetorders[u]);g.push(Q)}}let c=new bn(o,l,new wn(f),s,g);return this.options.optimizeOrbits&&(c=c.optimize()),this.options.scrambleAmount!==0&&c.scramble(this.options.scrambleAmount),c}getScramble(t=0){let r=this.getOrbitsDef(!1);return r.transformToKTransformationData(r.getScrambleTransformation(t))}getMovesAsPerms(){return this.getOrbitsDef(!1).moveops.map(t=>t.toPerm())}showcanon(t){C2(this.getOrbitsDef(!1),t)}getsolved(){let t=[];for(let r=0;r<this.baseFaceCount;r++)for(let n=0;n<this.stickersperface;n++)t.push(r);return new pt(t)}getOrientationRotation(t){let[r,[n,o,l]]=t[0],i=new O(0,n,-o,l),[a,[f,s,g]]=t[1],c=new O(0,f,-s,g),u=null,m=null,p=this.swizzler.unswizzle(r),L=this.swizzler.unswizzle(a);for(let y of this.geonormals)p===y[1]&&(u=y[0]),L===y[1]&&(m=y[0]);if(!u)throw new Error("Could not find feature "+r);if(!m)throw new Error("Could not find feature "+a);let R=u.pointrotation(i);return m.rotatepoint(R).unproject(i).pointrotation(c.unproject(i)).mul(R)}getInitial3DRotation(){let t=this.baseFaceCount,r=null;if(this.options.puzzleOrientation?r=this.options.puzzleOrientation:this.options.puzzleOrientations&&(r=this.options.puzzleOrientations[t]),r||(r=Sm()[t]),!r)throw new Error("No default orientation?");return this.getOrientationRotation(r)}generate2dmapping(t=800,r=500,n=10,o=!1,l=.92){t-=2*n,r-=2*n;function i(x,S){let C=x[1][0]-x[0][0],j=x[1][1]-x[0][1],Z=2*Math.PI/S,ce=Math.cos(Z),Le=Math.sin(Z);for(let Ae=2;Ae<S;Ae++){let be=C*ce+j*Le;j=j*ce-C*Le,C=be,x.push([x[Ae-1][0]+C,x[Ae-1][1]+j])}}this.genperms();let s=this.getboundarygeometry().facenames[0][0].length,g=this.net;if(g===null)throw new Error("No net?");let c={},u=0,m=0,p=1,L=0;c[g[0][0]]=[[1,0],[0,0]],i(c[g[0][0]],s);for(let x of g){let S=x[0];if(!c[S])throw new Error("Bad edge description; first edge not connected.");for(let C=1;C<x.length;C++){let j=x[C];j===""||c[j]||(c[j]=[c[S][C%s],c[S][(C+s-1)%s]],i(c[j],s))}}for(let x in c){let S=c[x];for(let C of S)u=Math.min(u,C[0]),p=Math.max(p,C[0]),m=Math.min(m,C[1]),L=Math.max(L,C[1])}let R=Math.min(t/(p-u),r/(L-m)),D=.5*(t-R*(p+u)),A=.5*(r-R*(L+m)),y={},k=this.getboundarygeometry(),E={},Q=[[R+D,A],[D,A]];E[g[0][0]]=Q,i(E[g[0][0]],s),y[this.facenames[0][1]]=this.project2d(0,0,[new O(0,Q[0][0],Q[0][1],0),new O(0,Q[1][0],Q[1][1],0)]);let $=[];$[0]=0;for(let x of g){let S=x[0];if(!E[S])throw new Error("Bad edge description; first edge not connected.");let C=-1;for(let Z=0;Z<k.facenames.length;Z++)if(S===k.facenames[Z][1]){C=Z;break}if(C<0)throw new Error("Could not find first face name "+S);let j=k.facenames[C][0];for(let Z=1;Z<x.length;Z++){let ce=x[Z];if(ce===""||E[ce])continue;E[ce]=[E[S][Z%s],E[S][(Z+s-1)%s]],i(E[ce],s);let Le=$[C],Ae=j[(Le+Z)%s].sum(j[(Le+Z+s-1)%s]).smul(.5),be=Nl(k.edgenames,Ae),kt=k.edgenames[be][1],Pe=Em(kt,this.facenames),rt=Pe[S===Pe[0]?1:0],Se=-1;for(let v=0;v<k.facenames.length;v++)if(rt===k.facenames[v][1]){Se=v;break}if(Se<0)throw new Error("Could not find second face name");let h=k.facenames[Se][0];for(let v=0;v<h.length;v++)if(h[v].sum(h[(v+1)%s]).smul(.5).dist(Ae)<=we){let K=E[S][(Z+s-1)%s],le=E[S][Z%s];$[Se]=v,y[rt]=this.project2d(Se,v,[new O(0,le[0],le[1],0),new O(0,K[0],K[1],0)]);break}}}let G=0,oe=0,U=this.getInitial3DRotation();for(let x of this.faces){o&&(x=x.rotate(U));for(let S=0;S<x.length;S++)G=Math.max(G,Math.abs(x.get(S).b)),oe=Math.max(oe,Math.abs(x.get(S).c))}let _=Math.min(r/oe/2,(t-n)/G/4);return(x,S)=>{if(o){S=S.rotatepoint(U);let C=.5*n+.25*t,j=this.baseplanes[x].rotateplane(U).d<0?1:-1;return[n+t*.5+j*(C-S.b*_),n+r*.5+S.c*_]}else{let C=y[this.facenames[x][1]];return[n+l*S.dot(C[0])+C[2].b,n+r-l*S.dot(C[1])-C[2].c]}}}generatesvg(t=800,r=500,n=10,o=!1){let l=this.generate2dmapping(t,r,n,o);function i(u,m,p){return'<polygon id="'+u+'" class="sticker" style="fill: '+p+'" points="'+m.map(L=>L[0]+" "+L[1]).join(" ")+\`"/>
13
- \`}let a=this.getsolved(),f=[],s=[];for(let u=0;u<this.baseFaceCount;u++)f[u]=this.colors[this.facenames[u][1]];for(let u=0;u<this.faces.length;u++){let m=this.faces[u],p=Math.floor(u/this.stickersperface),L=[];for(let R=0;R<m.length;R++)L.push(l(p,m.get(R)));s.push(L)}let g=[];for(let u=0;u<this.baseFaceCount;u++){g.push("<g>"),g.push("<title>"+this.facenames[u][1]+\`</title>
14
- \`);for(let m=0;m<this.stickersperface;m++){let p=u*this.stickersperface+m,L=this.facetocubie[p],R=this.facetoord[p],D=this.cubiesetnums[L],A=this.cubieordnums[L],y=this.graybyori(L)?"#808080":f[a.p[p]],k=this.cubiesetnames[D]+"-l"+A+"-o"+R;if(g.push(i(k,s[p],y)),this.duplicatedFaces[p])for(let E=1;E<this.duplicatedFaces[p];E++)k=this.cubiesetnames[D]+"-l"+A+"-o"+E,g.push(i(k,s[p],y))}g.push("</g>")}return\`<svg id="svg" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 800 500">
12
+ \`)}getKPuzzleDefinition(t=!0,r=!0){let o=this.getOrbitsDef(t,r).toKPuzzleDefinition(r);if(o.experimentalPuzzleDescription=this.puzzleDescription,!o)throw new Error("Missing definition!");return o}getMoveFromBits(t,r,n,o,l,i){let s=[],f=[],a=[];for(let u of this.cubieords)f.push(Ct(u)),a.push(gr(u));for(let u=t[0];u<=t[1];u++){let p=o[u];for(let m=0;m<p.length;m+=2*i){let L=p.slice(m,m+2*i),R=this.cubiesetnums[L[0]];for(let y=0;y<L.length;y+=2)L[y]=this.cubieordnums[L[y]];let D=2,A=3;n&&(D=L.length-2,A=L.length-1),f[R]===Ct(this.cubieords[R])&&(f[R]=f[R].slice(),this.orbitoris[R]>1&&!this.options.fixedOrientation&&(a[R]=a[R].slice()));for(let y=0;y<L.length;y+=2)f[R][L[(y+D)%L.length]]=L[y],this.orbitoris[R]>1&&!this.options.fixedOrientation&&(a[R][L[y]]=(L[(y+A)%L.length]-L[(y+1)%L.length]+2*this.orbitoris[R])%this.orbitoris[R])}}let g=new Vt(Ct(24),gr(24),1);for(let u=0;u<this.cubiesetnames.length;u++)if(!(l&&!l[u]))if(this.orbitoris[u]===1||this.options.fixedOrientation)f[u]===Ct(g.perm.length)?(f[u]!==g.perm&&(g=new Vt(f[u],a[u],1)),s.push(g)):s.push(new Vt(f[u],a[u],1));else{let p=new Array(a[u].length);for(let m=0;m<f[u].length;m++)p[m]=a[u][f[u][m]];s.push(new Vt(f[u],p,this.orbitoris[u]))}let c=new cr(s);return r!==1&&(c=c.mulScalar(r)),c}omitSet(t){for(let r of this.options.excludeOrbits)if(r===t)return!0;return!1}diffmvsets(t,r,n,o){for(let l=0;l<t.length;l+=2){let i=!1;for(let s=0;!i&&s<r.length;s+=2)o?t[l][0]+r[s][1]===n&&t[l][1]+r[s][0]===n&&t[l+1]===r[s+1]&&(i=!0):t[l][0]===r[s][0]&&t[l][1]===r[s][1]&&t[l+1]===r[s+1]&&(i=!0);if(!i)return!0}return!1}getOrbitsDef(t,r=!0){let n=[];if(t)for(let u=0;u<this.cubiesetnames.length;u++)n.push(1);let o=[],l=[],i=[],s=[];for(let u=0;u<this.moveplanesets.length;u++){let p=this.getmovesets(u);i.push(p),this.options.addRotations?s.push(1):s.push(0)}if(this.options.moveList&&this.options.addRotations){for(let u=0;u<this.moverotations.length;u++)s[u]=0;for(let u=0;u<this.moveplanesets.length;u++)for(let p=0;p<this.moverotations.length;p++){let m=this.moveplanenormals[u];for(let L=1;L*2<=this.movesetorders[p];L++){if(m=m.rotatepoint(this.moverotations[p][0]),s[p]&L)continue;let R=-1,D=!1;for(let y=0;y<this.moveplanenormals.length;y++)if(m.dist(this.moveplanenormals[y])<xe){R=y;break}else if(m.dist(this.moveplanenormals[y].smul(-1))<xe){R=y,D=!0;break}if(R<0)throw new Error("Could not find rotation");let A=i[R];(A.length!==i[u].length||this.moveplanesets[u].length!==this.moveplanesets[R].length||this.diffmvsets(A,i[u],this.moveplanesets[R].length,D))&&(s[p]|=L)}}for(let u=0;u<this.moverotations.length;u++)if(s[u]===0)s[u]=1;else if(s[u]===1)this.movesetorders[u]>3?s[u]=2:s[u]=0;else if(s[u]===3)s[u]=0;else throw new Error("Impossible addrot val")}for(let u=0;u<this.moveplanesets.length;u++)s[u]!==0&&(i[u].push([0,this.moveplanesets[u].length]),i[u].push(s[u]));for(let u=0;u<this.moveplanesets.length;u++){let p=i[u],m=this.movesetorders[u];for(let D=0;D<p.length;D+=2)for(let A=0;A<D;A+=2)if(p[D]===p[A]&&p[D+1]===p[A+1])throw new Error("Redundant moves in moveset.");let L=[];for(let D=0;D<p.length;D+=2)for(let A=p[D][0];A<=p[D][1];A++)L[A]=1;let R=this.cmovesbyslice[u];for(let D=0;D<R.length;D++){if(L[D]!==1)continue;let A=R[D];for(let y=0;y<A.length;y+=2*m){if(this.skipcubie(A[y]))continue;let k=this.cubiesetnums[A[y]];n[k]=1}}}for(let u=0;u<this.cubiesetnames.length;u++)if(!!n[u]){if(this.omitSet(this.cubiesetnames[u])){n[u]=0;continue}o.push(this.cubiesetnames[u]),l.push(new ko(this.cubieords[u],this.options.fixedOrientation?1:this.orbitoris[u]))}let f=[];for(let u=0;u<this.cubiesetnames.length;u++){if(!n[u]||this.omitSet(this.cubiesetnames[u]))continue;let p=[],m=[];for(let L=0;L<this.cubieords[u];L++){if(t)p.push(L);else{let R=this.cubiesetcubies[u][L];p.push(this.cubievaluemap[R])}m.push(0)}f.push(new Vt(p,m,this.options.fixedOrientation?1:this.orbitoris[u]))}let a=[],g=[];if(r)for(let u=0;u<this.moveplanesets.length;u++){let m=this.moveplanesets[u].length,L=i[u],R=this.movesetgeos[u];for(let D=0;D<L.length;D+=2){let A=L[D],y=_p(R,A,m),k=y[0],E=y[1];L[D+1]===1?a.push(k):a.push(k+L[D+1]);let Q=this.getMoveFromBits(A,L[D+1],E,this.cmovesbyslice[u],n,this.movesetorders[u]);g.push(Q)}}let c=new Sn(o,l,new xn(f),a,g);return this.options.optimizeOrbits&&(c=c.optimize()),this.options.scrambleAmount!==0&&c.scramble(this.options.scrambleAmount),c}getScramble(t=0){let r=this.getOrbitsDef(!1);return r.transformToKTransformationData(r.getScrambleTransformation(t))}getMovesAsPerms(){return this.getOrbitsDef(!1).moveops.map(t=>t.toPerm())}showcanon(t){C0(this.getOrbitsDef(!1),t)}getsolved(){let t=[];for(let r=0;r<this.baseFaceCount;r++)for(let n=0;n<this.stickersperface;n++)t.push(r);return new mt(t)}getOrientationRotation(t){let[r,[n,o,l]]=t[0],i=new I(0,n,-o,l),[s,[f,a,g]]=t[1],c=new I(0,f,-a,g),u=null,p=null,m=this.swizzler.unswizzle(r),L=this.swizzler.unswizzle(s);for(let y of this.geonormals)m===y[1]&&(u=y[0]),L===y[1]&&(p=y[0]);if(!u)throw new Error("Could not find feature "+r);if(!p)throw new Error("Could not find feature "+s);let R=u.pointrotation(i);return p.rotatepoint(R).unproject(i).pointrotation(c.unproject(i)).mul(R)}getInitial3DRotation(){let t=this.baseFaceCount,r=null;if(this.options.puzzleOrientation?r=this.options.puzzleOrientation:this.options.puzzleOrientations&&(r=this.options.puzzleOrientations[t]),r||(r=zp()[t]),!r)throw new Error("No default orientation?");return this.getOrientationRotation(r)}generate2dmapping(t=800,r=500,n=10,o=!1,l=.92){t-=2*n,r-=2*n;function i(x,w){let C=x[1][0]-x[0][0],j=x[1][1]-x[0][1],Z=2*Math.PI/w,ce=Math.cos(Z),Le=Math.sin(Z);for(let Ae=2;Ae<w;Ae++){let be=C*ce+j*Le;j=j*ce-C*Le,C=be,x.push([x[Ae-1][0]+C,x[Ae-1][1]+j])}}this.genperms();let a=this.getboundarygeometry().facenames[0][0].length,g=this.net;if(g===null)throw new Error("No net?");let c={},u=0,p=0,m=1,L=0;c[g[0][0]]=[[1,0],[0,0]],i(c[g[0][0]],a);for(let x of g){let w=x[0];if(!c[w])throw new Error("Bad edge description; first edge not connected.");for(let C=1;C<x.length;C++){let j=x[C];j===""||c[j]||(c[j]=[c[w][C%a],c[w][(C+a-1)%a]],i(c[j],a))}}for(let x in c){let w=c[x];for(let C of w)u=Math.min(u,C[0]),m=Math.max(m,C[0]),p=Math.min(p,C[1]),L=Math.max(L,C[1])}let R=Math.min(t/(m-u),r/(L-p)),D=.5*(t-R*(m+u)),A=.5*(r-R*(L+p)),y={},k=this.getboundarygeometry(),E={},Q=[[R+D,A],[D,A]];E[g[0][0]]=Q,i(E[g[0][0]],a),y[this.facenames[0][1]]=this.project2d(0,0,[new I(0,Q[0][0],Q[0][1],0),new I(0,Q[1][0],Q[1][1],0)]);let $=[];$[0]=0;for(let x of g){let w=x[0];if(!E[w])throw new Error("Bad edge description; first edge not connected.");let C=-1;for(let Z=0;Z<k.facenames.length;Z++)if(w===k.facenames[Z][1]){C=Z;break}if(C<0)throw new Error("Could not find first face name "+w);let j=k.facenames[C][0];for(let Z=1;Z<x.length;Z++){let ce=x[Z];if(ce===""||E[ce])continue;E[ce]=[E[w][Z%a],E[w][(Z+a-1)%a]],i(E[ce],a);let Le=$[C],Ae=j[(Le+Z)%a].sum(j[(Le+Z+a-1)%a]).smul(.5),be=Ol(k.edgenames,Ae),kt=k.edgenames[be][1],Ne=Cp(kt,this.facenames),nt=Ne[w===Ne[0]?1:0],ve=-1;for(let v=0;v<k.facenames.length;v++)if(nt===k.facenames[v][1]){ve=v;break}if(ve<0)throw new Error("Could not find second face name");let h=k.facenames[ve][0];for(let v=0;v<h.length;v++)if(h[v].sum(h[(v+1)%a]).smul(.5).dist(Ae)<=xe){let K=E[w][(Z+a-1)%a],le=E[w][Z%a];$[ve]=v,y[nt]=this.project2d(ve,v,[new I(0,le[0],le[1],0),new I(0,K[0],K[1],0)]);break}}}let N=0,oe=0,b=this.getInitial3DRotation();for(let x of this.faces){o&&(x=x.rotate(b));for(let w=0;w<x.length;w++)N=Math.max(N,Math.abs(x.get(w).b)),oe=Math.max(oe,Math.abs(x.get(w).c))}let _=Math.min(r/oe/2,(t-n)/N/4);return(x,w)=>{if(o){w=w.rotatepoint(b);let C=.5*n+.25*t,j=this.baseplanes[x].rotateplane(b).d<0?1:-1;return[n+t*.5+j*(C-w.b*_),n+r*.5+w.c*_]}else{let C=y[this.facenames[x][1]];return[n+l*w.dot(C[0])+C[2].b,n+r-l*w.dot(C[1])-C[2].c]}}}generatesvg(t=800,r=500,n=10,o=!1){let l=this.generate2dmapping(t,r,n,o);function i(u,p,m){return'<polygon id="'+u+'" class="sticker" style="fill: '+m+'" points="'+p.map(L=>L[0]+" "+L[1]).join(" ")+\`"/>
13
+ \`}let s=this.getsolved(),f=[],a=[];for(let u=0;u<this.baseFaceCount;u++)f[u]=this.colors[this.facenames[u][1]];for(let u=0;u<this.faces.length;u++){let p=this.faces[u],m=Math.floor(u/this.stickersperface),L=[];for(let R=0;R<p.length;R++)L.push(l(m,p.get(R)));a.push(L)}let g=[];for(let u=0;u<this.baseFaceCount;u++){g.push("<g>"),g.push("<title>"+this.facenames[u][1]+\`</title>
14
+ \`);for(let p=0;p<this.stickersperface;p++){let m=u*this.stickersperface+p,L=this.facetocubie[m],R=this.facetoord[m],D=this.cubiesetnums[L],A=this.cubieordnums[L],y=this.graybyori(L)?"#808080":f[s.p[m]],k=this.cubiesetnames[D]+"-l"+A+"-o"+R;if(g.push(i(k,a[m],y)),this.duplicatedFaces[m])for(let E=1;E<this.duplicatedFaces[m];E++)k=this.cubiesetnames[D]+"-l"+A+"-o"+E,g.push(i(k,a[m],y))}g.push("</g>")}return\`<svg id="svg" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 800 500">
15
15
  <style type="text/css"><![CDATA[.sticker { stroke: #000000; stroke-width: 1px; }]]></style>
16
- \`+g.join("")+"</svg>"}get3d(t){let r=[],n=this.getInitial3DRotation(),o=[],l=.52*this.basefaces[0].get(0).len();for(let s=0;s<this.basefaces.length;s++){let g=this.basefaces[s].rotate(n),c=this.facenames[s][1];o.push({coords:Wa(g,l),name:c})}for(let s=0;s<this.faces.length;s++){let g=Math.floor(s/this.stickersperface),c=this.facetocubie[s],u=this.facetoord[s],m=this.cubiesetnums[c],p=this.cubieordnums[c],L=this.graybyori(c)?"#808080":this.colors[this.facenames[g][1]];t?.stickerColors&&(L=t.stickerColors[s]);let R=this.faces[s].rotate(n);r.push({coords:Wa(R,l),color:L,orbit:this.cubiesetnames[m],ord:p,ori:u,face:g});let D=R;if(this.duplicatedFaces[s]){let A=D.length/this.duplicatedFaces[s];for(let y=1;y<this.duplicatedFaces[s];y++){for(let k=0;k<A;k++)D=D.rotateforward();r.push({coords:Wa(D,l),color:L,orbit:this.cubiesetnames[m],ord:p,ori:y,face:g,isDup:!0})}}}let i=[];for(let s=0;s<this.movesetgeos.length;s++){let g=this.movesetgeos[s],c=this.movesetorders[s];for(let u of this.geonormals)g[0]===u[1]&&g[1]===u[2]&&(i.push({coordinates:Ol(u[0].rotatepoint(n),1),quantumMove:new B(g[0]),order:c}),i.push({coordinates:Ol(u[0].rotatepoint(n).smul(-1),1),quantumMove:new B(g[2]),order:c}))}let a=this.generate2dmapping(2880,2160,0,!1,1),f=function(){let s=n.invrot();return function(g,c){let u=new O(0,c[0]*l,-c[1]*l,c[2]*l);u=u.rotatepoint(s);let m=a(g,u);return m[0]/=2880,m[1]=1-m[1]/2160,m}}().bind(this);return{stickers:r,faces:o,axis:i,unswizzle:this.unswizzle.bind(this),notationMapper:this.notationMapper,textureMapper:{getuv:f}}}getGeoNormal(t){let r=this.getInitial3DRotation(),n=this.swizzler.unswizzle(t);for(let o of this.geonormals)if(n===o[1]){let l=Ol(o[0].rotatepoint(r),1);return Math.abs(l[0])<we&&Math.abs(l[2])<we&&(l[0]=0,l[2]=1e-6),l}}getfaceindex(t){let r=this.stickersperface;return Math.floor(t/r)}textForTwizzleExplorer(){return\`Faces \${this.baseplanerot.length}
16
+ \`+g.join("")+"</svg>"}get3d(t){let r=[],n=this.getInitial3DRotation(),o=[],l=.52*this.basefaces[0].get(0).len();for(let a=0;a<this.basefaces.length;a++){let g=this.basefaces[a].rotate(n),c=this.facenames[a][1];o.push({coords:Ks(g,l),name:c})}for(let a=0;a<this.faces.length;a++){let g=Math.floor(a/this.stickersperface),c=this.facetocubie[a],u=this.facetoord[a],p=this.cubiesetnums[c],m=this.cubieordnums[c],L=this.graybyori(c)?"#808080":this.colors[this.facenames[g][1]];t?.stickerColors&&(L=t.stickerColors[a]);let R=this.faces[a].rotate(n);r.push({coords:Ks(R,l),color:L,orbit:this.cubiesetnames[p],ord:m,ori:u,face:g});let D=R;if(this.duplicatedFaces[a]){let A=D.length/this.duplicatedFaces[a];for(let y=1;y<this.duplicatedFaces[a];y++){for(let k=0;k<A;k++)D=D.rotateforward();r.push({coords:Ks(D,l),color:L,orbit:this.cubiesetnames[p],ord:m,ori:y,face:g,isDup:!0})}}}let i=[];for(let a=0;a<this.movesetgeos.length;a++){let g=this.movesetgeos[a],c=this.movesetorders[a];for(let u of this.geonormals)g[0]===u[1]&&g[1]===u[2]&&(i.push({coordinates:Il(u[0].rotatepoint(n),1),quantumMove:new B(g[0]),order:c}),i.push({coordinates:Il(u[0].rotatepoint(n).smul(-1),1),quantumMove:new B(g[2]),order:c}))}let s=this.generate2dmapping(2880,2160,0,!1,1),f=function(){let a=n.invrot();return function(g,c){let u=new I(0,c[0]*l,-c[1]*l,c[2]*l);u=u.rotatepoint(a);let p=s(g,u);return p[0]/=2880,p[1]=1-p[1]/2160,p}}().bind(this);return{stickers:r,faces:o,axis:i,unswizzle:this.unswizzle.bind(this),notationMapper:this.notationMapper,textureMapper:{getuv:f}}}getGeoNormal(t){let r=this.getInitial3DRotation(),n=this.swizzler.unswizzle(t);for(let o of this.geonormals)if(n===o[1]){let l=Il(o[0].rotatepoint(r),1);return Math.abs(l[0])<xe&&Math.abs(l[2])<xe&&(l[0]=0,l[2]=1e-6),l}}getfaceindex(t){let r=this.stickersperface;return Math.floor(t/r)}textForTwizzleExplorer(){return\`Faces \${this.baseplanerot.length}
17
17
  Stickers per face \${this.stickersperface}
18
18
  Short edge \${this.shortedge}
19
19
  Cubies \${this.cubies.length}
20
20
  Edge distance \${this.edgedistance}
21
- Vertex distance \${this.vertexdistance}\`}writeSchreierSims(t){let n=this.getOrbitsDef(!1).reassemblySize();t(\`Reassembly size is \${n}\`);let o=Il(this.getMovesAsPerms(),t),l=n/o;t(\`Ratio is \${l}\`)}},Ir=class{constructor(t,r){this.pg=t;this.orbitNames=r.orbitnames}lookupMove(t){let r=this.pg.parseMove(t);if(this.pg.parsedmovelist){let i=!1;for(let a of this.pg.parsedmovelist)a[1]===r[1]&&a[2]===r[2]&&a[3]===r[3]&&a[4]===r[4]&&(i=!0);if(!i)return null}let n=[r[2],r[3]];if(!r[4]){let i=this.pg.moveplanesets[r[1]].length;n=[i-r[3],i-r[2]]}let o=this.pg.getMoveFromBits(n,r[5],!r[4],this.pg.cmovesbyslice[r[1]],void 0,this.pg.movesetorders[r[1]]);return bn.transformToKTransformationData(this.orbitNames,o)}}});var Ka={};ye(Ka,{ExperimentalPGNotation:()=>Ir,PuzzleGeometry:()=>Wl,Quat:()=>O,getPG3DNamedPuzzles:()=>q2,getPuzzleDescriptionString:()=>V2,getPuzzleGeometryByDesc:()=>Oa,getPuzzleGeometryByName:()=>Sn,parseOptions:()=>k2,parsePuzzleDescription:()=>So,schreierSims:()=>Il});var ko=b(()=>{_l();va();Gl();Ta();_l()});async function zo(e){return(await Promise.resolve().then(()=>(ko(),Ka))).getPuzzleGeometryByName(e,{allMoves:!0,orientCenters:!0,addRotations:!0})}async function km(e,t){let r=await e,n=r.getKPuzzleDefinition(!0);n.name=t;let o=await Promise.resolve().then(()=>(ko(),Ka)),l=new o.ExperimentalPGNotation(r,r.getOrbitsDef(!0));return new Oe(n,{experimentalPGNotation:l})}var Kl,Ql,jl,Lt,Nr,Or=b(()=>{Je();yn();Gr();Lt=class{constructor(t){ne(this,Kl,void 0);ne(this,Ql,void 0);ne(this,jl,void 0);this.pgId=t.pgID,this.id=t.id,this.fullName=t.fullName,this.inventedBy=t.inventedBy,this.inventionYear=t.inventionYear}pg(){return d(this,Kl)??q(this,Kl,zo(this.pgId??this.id))}kpuzzle(){return d(this,Ql)??q(this,Ql,km(this.pg(),this.id))}svg(){return d(this,jl)??q(this,jl,(async()=>(await this.pg()).generatesvg())())}};Kl=new WeakMap,Ql=new WeakMap,jl=new WeakMap;Nr=class extends Lt{constructor(){super(...arguments);this.stickerings=An}appearance(t){return _t(this,t)}}});var H2={};ye(H2,{cube2x2x2KPuzzleDefinition:()=>Pt});var Pt,Y2=b(()=>{Pt={name:"2x2x2",orbits:{CORNERS:{numPieces:8,numOrientations:3}},startStateData:{CORNERS:{pieces:[0,1,2,3,4,5,6,7],orientation:[0,0,0,0,0,0,0,0]}},moves:{U:{CORNERS:{permutation:[1,2,3,0,4,5,6,7],orientation:[0,0,0,0,0,0,0,0]}},y:{CORNERS:{permutation:[1,2,3,0,7,4,5,6],orientation:[0,0,0,0,0,0,0,0]}},x:{CORNERS:{permutation:[4,0,3,5,7,6,2,1],orientation:[2,1,2,1,1,2,1,2]}},L:{CORNERS:{permutation:[0,1,6,2,4,3,5,7],orientation:[0,0,2,1,0,2,1,0]}},F:{CORNERS:{permutation:[3,1,2,5,0,4,6,7],orientation:[1,0,0,2,2,1,0,0]}},R:{CORNERS:{permutation:[4,0,2,3,7,5,6,1],orientation:[2,1,0,0,1,0,0,2]}},B:{CORNERS:{permutation:[0,7,1,3,4,5,2,6],orientation:[0,2,1,0,0,0,2,1]}},D:{CORNERS:{permutation:[0,1,2,3,5,6,7,4],orientation:[0,0,0,0,0,0,0,0]}},z:{CORNERS:{permutation:[3,2,6,5,0,4,7,1],orientation:[1,2,1,2,2,1,2,1]}}}};Pt.moves.Rv=Pt.moves.x;Pt.moves.Uv=Pt.moves.y;Pt.moves.Fv=Pt.moves.z;Pt.moves.Lv={CORNERS:{permutation:[1,7,6,2,0,3,5,4],orientation:[2,1,2,1,1,2,1,2]}};Pt.moves.Dv={CORNERS:{permutation:[3,0,1,2,5,6,7,4],orientation:[0,0,0,0,0,0,0,0]}};Pt.moves.Bv={CORNERS:{permutation:[4,7,1,0,5,3,2,6],orientation:[1,2,1,2,2,1,2,1]}}});var Z2={};ye(Z2,{default:()=>zm});var zm,X2=b(()=>{zm=\`<?xml version="1.0" encoding="UTF-8"?>
21
+ Vertex distance \${this.vertexdistance}\`}writeSchreierSims(t){let n=this.getOrbitsDef(!1).reassemblySize();t(\`Reassembly size is \${n}\`);let o=Gl(this.getMovesAsPerms(),t),l=n/o;t(\`Ratio is \${l}\`)}},Or=class{constructor(t,r){this.pg=t;this.orbitNames=r.orbitnames}lookupMove(t){let r=this.pg.parseMove(t);if(this.pg.parsedmovelist){let i=!1;for(let s of this.pg.parsedmovelist)s[1]===r[1]&&s[2]===r[2]&&s[3]===r[3]&&s[4]===r[4]&&(i=!0);if(!i)return null}let n=[r[2],r[3]];if(!r[4]){let i=this.pg.moveplanesets[r[1]].length;n=[i-r[3],i-r[2]]}let o=this.pg.getMoveFromBits(n,r[5],!r[4],this.pg.cmovesbyslice[r[1]],void 0,this.pg.movesetorders[r[1]]);return Sn.transformToKTransformationData(this.orbitNames,o)}}});var Kl={};ye(Kl,{ExperimentalPGNotation:()=>Or,PuzzleGeometry:()=>Wl,Quat:()=>I,getPG3DNamedPuzzles:()=>q0,getPuzzleDescriptionString:()=>V0,getPuzzleGeometryByDesc:()=>Ws,getPuzzleGeometryByName:()=>vn,parseOptions:()=>k0,parsePuzzleDescription:()=>Eo,schreierSims:()=>Gl});var En=U(()=>{_l();Es();Nl();Gs();_l()});async function Ir(e){return(await Promise.resolve().then(()=>(En(),Kl))).getPuzzleGeometryByName(e,{allMoves:!0,orientCenters:!0,addRotations:!0})}async function Pp(e,t){let r=await e,n=r.getKPuzzleDefinition(!0);n.name=t;let o=await Promise.resolve().then(()=>(En(),Kl)),l=new o.ExperimentalPGNotation(r,r.getOrbitsDef(!0));return new Ee(n,{experimentalPGNotation:l})}var Ql,jl,ql,Lt,Wr,pr=U(()=>{He();Un();ur();Lt=class{constructor(t){ne(this,Ql,void 0);ne(this,jl,void 0);ne(this,ql,void 0);this.pgId=t.pgID,this.id=t.id,this.fullName=t.fullName,this.inventedBy=t.inventedBy,this.inventionYear=t.inventionYear}pg(){return d(this,Ql)??q(this,Ql,Ir(this.pgId??this.id))}kpuzzle(){return d(this,jl)??q(this,jl,Pp(this.pg(),this.id))}svg(){return d(this,ql)??q(this,ql,(async()=>(await this.pg()).generatesvg())())}};Ql=new WeakMap,jl=new WeakMap,ql=new WeakMap;Wr=class extends Lt{constructor(){super(...arguments);this.stickerings=yn}appearance(t){return _t(this,t)}}});var H0={};ye(H0,{cube2x2x2KPuzzleDefinition:()=>Pt});var Pt,Y0=U(()=>{Pt={name:"2x2x2",orbits:{CORNERS:{numPieces:8,numOrientations:3}},startStateData:{CORNERS:{pieces:[0,1,2,3,4,5,6,7],orientation:[0,0,0,0,0,0,0,0]}},moves:{U:{CORNERS:{permutation:[1,2,3,0,4,5,6,7],orientation:[0,0,0,0,0,0,0,0]}},y:{CORNERS:{permutation:[1,2,3,0,7,4,5,6],orientation:[0,0,0,0,0,0,0,0]}},x:{CORNERS:{permutation:[4,0,3,5,7,6,2,1],orientation:[2,1,2,1,1,2,1,2]}},L:{CORNERS:{permutation:[0,1,6,2,4,3,5,7],orientation:[0,0,2,1,0,2,1,0]}},F:{CORNERS:{permutation:[3,1,2,5,0,4,6,7],orientation:[1,0,0,2,2,1,0,0]}},R:{CORNERS:{permutation:[4,0,2,3,7,5,6,1],orientation:[2,1,0,0,1,0,0,2]}},B:{CORNERS:{permutation:[0,7,1,3,4,5,2,6],orientation:[0,2,1,0,0,0,2,1]}},D:{CORNERS:{permutation:[0,1,2,3,5,6,7,4],orientation:[0,0,0,0,0,0,0,0]}},z:{CORNERS:{permutation:[3,2,6,5,0,4,7,1],orientation:[1,2,1,2,2,1,2,1]}}}};Pt.moves.Rv=Pt.moves.x;Pt.moves.Uv=Pt.moves.y;Pt.moves.Fv=Pt.moves.z;Pt.moves.Lv={CORNERS:{permutation:[1,7,6,2,0,3,5,4],orientation:[2,1,2,1,1,2,1,2]}};Pt.moves.Dv={CORNERS:{permutation:[3,0,1,2,5,6,7,4],orientation:[0,0,0,0,0,0,0,0]}};Pt.moves.Bv={CORNERS:{permutation:[4,7,1,0,5,3,2,6],orientation:[1,2,1,2,2,1,2,1]}}});var Z0={};ye(Z0,{default:()=>Mp});var Mp,J0=U(()=>{Mp=\`<?xml version="1.0" encoding="UTF-8"?>
22
22
  <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN"
23
23
  "http://www.w3.org/TR/2001/REC-SVG-20050904/DTD/svg11.dtd">
24
24
  <svg xmlns="http://www.w3.org/2000/svg" version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 520 394" preserveAspectRatio="xMidYMid meet">
@@ -62,7 +62,7 @@ Vertex distance \${this.vertexdistance}\`}writeSchreierSims(t){let n=this.getOrb
62
62
  <use id="CORNERS-l7-o2" xlink:href="#sticker" transform="translate(6.6, 3.2)" style="fill: #26f"/>
63
63
  </g>
64
64
 
65
- </svg>\`});var _o,J2=b(()=>{Je();Or();Gr();yn();_o={id:"2x2x2",fullName:"2\\xD72\\xD72 Cube",kpuzzle:Ke(async()=>new Oe((await Promise.resolve().then(()=>(Y2(),H2))).cube2x2x2KPuzzleDefinition)),svg:async()=>(await Promise.resolve().then(()=>(X2(),Z2))).default,pg:Ke(async()=>zo("2x2x2")),appearance:e=>_t(_o,e),stickerings:An}});var $2={};ye($2,{default:()=>_m});var _m,ef=b(()=>{_m=\`<?xml version="1.0" encoding="UTF-8"?>
65
+ </svg>\`});var _o,X0=U(()=>{He();pr();ur();Un();_o={id:"2x2x2",fullName:"2\\xD72\\xD72 Cube",kpuzzle:Se(async()=>new Ee((await Promise.resolve().then(()=>(Y0(),H0))).cube2x2x2KPuzzleDefinition)),svg:async()=>(await Promise.resolve().then(()=>(J0(),Z0))).default,pg:Se(async()=>Ir("2x2x2")),appearance:e=>_t(_o,e),stickerings:yn}});var $0={};ye($0,{default:()=>Np});var Np,ef=U(()=>{Np=\`<?xml version="1.0" encoding="UTF-8"?>
66
66
  <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN"
67
67
  "http://www.w3.org/TR/2001/REC-SVG-20050904/DTD/svg11.dtd">
68
68
  <svg xmlns="http://www.w3.org/2000/svg" version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 518 392" preserveAspectRatio="xMidYMid meet">
@@ -189,7 +189,7 @@ Vertex distance \${this.vertexdistance}\`}writeSchreierSims(t){let n=this.getOrb
189
189
  <use id="CENTERS-l5-o3" xlink:href="#sticker" transform="translate(4.3,7.5)" style="fill: yellow"/>
190
190
  </g>
191
191
 
192
- </svg>\`});var tf={};ye(tf,{default:()=>Cm});var Cm,rf=b(()=>{Cm=\`<?xml version="1.0" encoding="UTF-8"?>
192
+ </svg>\`});var tf={};ye(tf,{default:()=>Tp});var Tp,rf=U(()=>{Tp=\`<?xml version="1.0" encoding="UTF-8"?>
193
193
  <svg width="288px" height="288px" viewBox="-16 -16 288 288" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
194
194
  <title>3x3x3 LL</title>
195
195
  <defs>
@@ -296,7 +296,7 @@ Vertex distance \${this.vertexdistance}\`}writeSchreierSims(t){let n=this.getOrb
296
296
  <use id="CENTERS-l5-o2" xlink:href="#sticker" style="fill: yellow"/>
297
297
  <use id="CENTERS-l5-o3" xlink:href="#sticker" style="fill: yellow"/>
298
298
  </g>
299
- </svg>\`});var Qa,nf=b(()=>{Je();Or();Gr();yn();Qa={id:"3x3x3",fullName:"3\\xD73\\xD73 Cube",inventedBy:["Ern\\u0151 Rubik"],inventionYear:1974,kpuzzle:Ke(async()=>ya),svg:Ke(async()=>(await Promise.resolve().then(()=>(ef(),$2))).default),llSVG:Ke(async()=>(await Promise.resolve().then(()=>(rf(),tf))).default),pg:Ke(async()=>zo("3x3x3")),appearance:e=>_t(Qa,e),stickerings:An}});var of={};ye(of,{clockKPuzzleDefinition:()=>Pm});var Pm,lf=b(()=>{Pm={name:"Clock",orbits:{DIALS:{numPieces:18,numOrientations:12},FACES:{numPieces:18,numOrientations:1},FRAME:{numPieces:1,numOrientations:2}},startStateData:{DIALS:{pieces:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17],orientation:[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},FACES:{pieces:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17],orientation:[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},FRAME:{pieces:[0],orientation:[0]}},moves:{UR_PLUS_:{DIALS:{permutation:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17],orientation:[0,1,1,0,1,1,0,0,0,-1,0,0,0,0,0,0,0,0]},FACES:{permutation:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17],orientation:[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},FRAME:{permutation:[0],orientation:[0]}},DR_PLUS_:{DIALS:{permutation:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17],orientation:[0,0,0,0,1,1,0,1,1,0,0,0,0,0,0,-1,0,0]},FACES:{permutation:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17],orientation:[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},FRAME:{permutation:[0],orientation:[0]}},DL_PLUS_:{DIALS:{permutation:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17],orientation:[0,0,0,1,1,0,1,1,0,0,0,0,0,0,0,0,0,-1]},FACES:{permutation:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17],orientation:[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},FRAME:{permutation:[0],orientation:[0]}},UL_PLUS_:{DIALS:{permutation:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17],orientation:[1,1,0,1,1,0,0,0,0,0,0,-1,0,0,0,0,0,0]},FACES:{permutation:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17],orientation:[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},FRAME:{permutation:[0],orientation:[0]}},U_PLUS_:{DIALS:{permutation:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17],orientation:[1,1,1,1,1,1,0,0,0,-1,0,-1,0,0,0,0,0,0]},FACES:{permutation:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17],orientation:[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},FRAME:{permutation:[0],orientation:[0]}},R_PLUS_:{DIALS:{permutation:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17],orientation:[0,1,1,0,1,1,0,1,1,-1,0,0,0,0,0,-1,0,0]},FACES:{permutation:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17],orientation:[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},FRAME:{permutation:[0],orientation:[0]}},D_PLUS_:{DIALS:{permutation:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17],orientation:[0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,-1,0,-1]},FACES:{permutation:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17],orientation:[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},FRAME:{permutation:[0],orientation:[0]}},L_PLUS_:{DIALS:{permutation:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17],orientation:[1,1,0,1,1,0,1,1,0,0,0,-1,0,0,0,0,0,-1]},FACES:{permutation:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17],orientation:[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},FRAME:{permutation:[0],orientation:[0]}},ALL_PLUS_:{DIALS:{permutation:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17],orientation:[1,1,1,1,1,1,1,1,1,-1,0,-1,0,0,0,-1,0,-1]},FACES:{permutation:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17],orientation:[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},FRAME:{permutation:[0],orientation:[0]}},y2:{DIALS:{permutation:[9,10,11,12,13,14,15,16,17,0,1,2,3,4,5,6,7,8],orientation:[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},FACES:{permutation:[9,10,11,12,13,14,15,16,17,0,1,2,3,4,5,6,7,8],orientation:[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},FRAME:{permutation:[0],orientation:[1]}},UL:{DIALS:{permutation:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17],orientation:[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},FACES:{permutation:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17],orientation:[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},FRAME:{permutation:[0],orientation:[0]}},UR:{DIALS:{permutation:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17],orientation:[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},FACES:{permutation:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17],orientation:[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},FRAME:{permutation:[0],orientation:[0]}},DL:{DIALS:{permutation:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17],orientation:[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},FACES:{permutation:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17],orientation:[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},FRAME:{permutation:[0],orientation:[0]}},DR:{DIALS:{permutation:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17],orientation:[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},FACES:{permutation:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17],orientation:[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},FRAME:{permutation:[0],orientation:[0]}}}}});var af={};ye(af,{default:()=>Mm});var Mm,sf=b(()=>{Mm=\`<?xml version="1.0" encoding="UTF-8"?>
299
+ </svg>\`});var Qs,nf=U(()=>{He();pr();ur();Un();Qs={id:"3x3x3",fullName:"3\\xD73\\xD73 Cube",inventedBy:["Ern\\u0151 Rubik"],inventionYear:1974,kpuzzle:Se(async()=>Us),svg:Se(async()=>(await Promise.resolve().then(()=>(ef(),$0))).default),llSVG:Se(async()=>(await Promise.resolve().then(()=>(rf(),tf))).default),pg:Se(async()=>Ir("3x3x3")),appearance:e=>_t(Qs,e),stickerings:yn}});var of={};ye(of,{clockKPuzzleDefinition:()=>Gp});var Gp,lf=U(()=>{Gp={name:"Clock",orbits:{DIALS:{numPieces:18,numOrientations:12},FACES:{numPieces:18,numOrientations:1},FRAME:{numPieces:1,numOrientations:2}},startStateData:{DIALS:{pieces:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17],orientation:[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},FACES:{pieces:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17],orientation:[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},FRAME:{pieces:[0],orientation:[0]}},moves:{UR_PLUS_:{DIALS:{permutation:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17],orientation:[0,1,1,0,1,1,0,0,0,-1,0,0,0,0,0,0,0,0]},FACES:{permutation:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17],orientation:[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},FRAME:{permutation:[0],orientation:[0]}},DR_PLUS_:{DIALS:{permutation:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17],orientation:[0,0,0,0,1,1,0,1,1,0,0,0,0,0,0,-1,0,0]},FACES:{permutation:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17],orientation:[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},FRAME:{permutation:[0],orientation:[0]}},DL_PLUS_:{DIALS:{permutation:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17],orientation:[0,0,0,1,1,0,1,1,0,0,0,0,0,0,0,0,0,-1]},FACES:{permutation:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17],orientation:[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},FRAME:{permutation:[0],orientation:[0]}},UL_PLUS_:{DIALS:{permutation:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17],orientation:[1,1,0,1,1,0,0,0,0,0,0,-1,0,0,0,0,0,0]},FACES:{permutation:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17],orientation:[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},FRAME:{permutation:[0],orientation:[0]}},U_PLUS_:{DIALS:{permutation:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17],orientation:[1,1,1,1,1,1,0,0,0,-1,0,-1,0,0,0,0,0,0]},FACES:{permutation:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17],orientation:[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},FRAME:{permutation:[0],orientation:[0]}},R_PLUS_:{DIALS:{permutation:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17],orientation:[0,1,1,0,1,1,0,1,1,-1,0,0,0,0,0,-1,0,0]},FACES:{permutation:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17],orientation:[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},FRAME:{permutation:[0],orientation:[0]}},D_PLUS_:{DIALS:{permutation:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17],orientation:[0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,-1,0,-1]},FACES:{permutation:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17],orientation:[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},FRAME:{permutation:[0],orientation:[0]}},L_PLUS_:{DIALS:{permutation:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17],orientation:[1,1,0,1,1,0,1,1,0,0,0,-1,0,0,0,0,0,-1]},FACES:{permutation:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17],orientation:[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},FRAME:{permutation:[0],orientation:[0]}},ALL_PLUS_:{DIALS:{permutation:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17],orientation:[1,1,1,1,1,1,1,1,1,-1,0,-1,0,0,0,-1,0,-1]},FACES:{permutation:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17],orientation:[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},FRAME:{permutation:[0],orientation:[0]}},y2:{DIALS:{permutation:[9,10,11,12,13,14,15,16,17,0,1,2,3,4,5,6,7,8],orientation:[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},FACES:{permutation:[9,10,11,12,13,14,15,16,17,0,1,2,3,4,5,6,7,8],orientation:[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},FRAME:{permutation:[0],orientation:[1]}},UL:{DIALS:{permutation:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17],orientation:[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},FACES:{permutation:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17],orientation:[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},FRAME:{permutation:[0],orientation:[0]}},UR:{DIALS:{permutation:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17],orientation:[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},FACES:{permutation:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17],orientation:[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},FRAME:{permutation:[0],orientation:[0]}},DL:{DIALS:{permutation:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17],orientation:[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},FACES:{permutation:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17],orientation:[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},FRAME:{permutation:[0],orientation:[0]}},DR:{DIALS:{permutation:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17],orientation:[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},FACES:{permutation:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17],orientation:[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},FRAME:{permutation:[0],orientation:[0]}}}}});var sf={};ye(sf,{default:()=>Op});var Op,af=U(()=>{Op=\`<?xml version="1.0" encoding="UTF-8"?>
300
300
  <svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 480 240" preserveAspectRatio="xMidYMid meet">
301
301
  <title>clock</title>
302
302
  <defs>
@@ -664,7 +664,7 @@ Vertex distance \${this.vertexdistance}\`}writeSchreierSims(t){let n=this.getOrb
664
664
  </g>
665
665
  </g>
666
666
  </g>
667
- </svg>\`});var ff,uf=b(()=>{Je();Gr();ff={id:"clock",fullName:"Clock",inventedBy:["Christopher C. Wiggs","Christopher J. Taylor"],inventionYear:1988,kpuzzle:Ke(async()=>new Oe((await Promise.resolve().then(()=>(lf(),of))).clockKPuzzleDefinition)),svg:Ke(async()=>(await Promise.resolve().then(()=>(sf(),af))).default)}});async function gf(e,t){let r=await e.kpuzzle(),n=new Ao(r),o=new yo(r),l=()=>o.and([o.move("U"),o.not(o.or(o.moves(["F","BL","BR"])))]),i=()=>o.and([o.move("U"),o.not(o.move("F"))]),a=()=>o.or([i(),o.and([o.move("F"),o.not(o.or(o.moves(["U","BL","BR"])))])]),f=()=>o.not(o.or([o.and([o.move("U"),o.move("F")]),o.and([o.move("F"),o.move("BL")]),o.and([o.move("F"),o.move("BR")]),o.and([o.move("BL"),o.move("BR")])])),s=()=>o.not(o.or([o.and([o.move("F"),o.move("BL")]),o.and([o.move("F"),o.move("BR")]),o.and([o.move("BL"),o.move("BR")])]));switch(t){case"full":break;case"experimental-fto-fc":n.set(o.not(l()),w.Ignored);break;case"experimental-fto-f2t":n.set(o.not(i()),w.Ignored),n.set(l(),w.Dim);break;case"experimental-fto-sc":n.set(o.not(a()),w.Ignored),n.set(i(),w.Dim);break;case"experimental-fto-l2c":n.set(o.not(f()),w.Ignored),n.set(a(),w.Dim);break;case"experimental-fto-lbt":n.set(o.not(s()),w.Ignored),n.set(f(),w.Dim);break;case"experimental-fto-l3t":n.set(s(),w.Dim);break;default:console.warn(\`Unsupported stickering for \${e.id}: \${t}. Setting all pieces to dim.\`),n.set(o.and(o.moves([])),w.Dim)}return n.toAppearance()}async function cf(){return["full","experimental-fto-fc","experimental-fto-f2t","experimental-fto-sc","experimental-fto-l2c","experimental-fto-lbt","experimental-fto-l3t"]}var mf=b(()=>{Uo()});var pf,Lf,Bf=b(()=>{Or();mf();pf=class extends Lt{constructor(){super({pgID:"FTO",id:"fto",fullName:"Face-Turning Octahedron",inventedBy:["Karl Rohrbach","David Pitcher"],inventionYear:1983});this.stickerings=cf}appearance(t){return gf(this,t)}},Lf=new pf});async function Rf(e,t){switch(t){case"full":case"F2L":case"LL":return _t(e,t);default:console.warn(\`Unsupported stickering for \${e.id}: \${t}. Setting all pieces to dim.\`)}return _t(e,"full")}async function df(){return["full","F2L","LL"]}var Df=b(()=>{yn()});var Ff,hf,Af=b(()=>{Or();Df();Ff=class extends Lt{constructor(){super({id:"megaminx",fullName:"Megaminx",inventionYear:1981});this.stickerings=df}appearance(t){return Rf(this,t)}},hf=new Ff});var yf={};ye(yf,{default:()=>Gm});var Gm,Uf=b(()=>{Gm=\`<?xml version="1.0" encoding="UTF-8"?>
667
+ </svg>\`});var ff,uf=U(()=>{He();ur();ff={id:"clock",fullName:"Clock",inventedBy:["Christopher C. Wiggs","Christopher J. Taylor"],inventionYear:1988,kpuzzle:Se(async()=>new Ee((await Promise.resolve().then(()=>(lf(),of))).clockKPuzzleDefinition)),svg:Se(async()=>(await Promise.resolve().then(()=>(af(),sf))).default)}});async function gf(e,t){let r=await e.kpuzzle(),n=new Uo(r),o=new bo(r),l=()=>o.and([o.move("U"),o.not(o.or(o.moves(["F","BL","BR"])))]),i=()=>o.and([o.move("U"),o.not(o.move("F"))]),s=()=>o.or([i(),o.and([o.move("F"),o.not(o.or(o.moves(["U","BL","BR"])))])]),f=()=>o.not(o.or([o.and([o.move("U"),o.move("F")]),o.and([o.move("F"),o.move("BL")]),o.and([o.move("F"),o.move("BR")]),o.and([o.move("BL"),o.move("BR")])])),a=()=>o.not(o.or([o.and([o.move("F"),o.move("BL")]),o.and([o.move("F"),o.move("BR")]),o.and([o.move("BL"),o.move("BR")])]));switch(t){case"full":break;case"experimental-fto-fc":n.set(o.not(l()),S.Ignored);break;case"experimental-fto-f2t":n.set(o.not(i()),S.Ignored),n.set(l(),S.Dim);break;case"experimental-fto-sc":n.set(o.not(s()),S.Ignored),n.set(i(),S.Dim);break;case"experimental-fto-l2c":n.set(o.not(f()),S.Ignored),n.set(s(),S.Dim);break;case"experimental-fto-lbt":n.set(o.not(a()),S.Ignored),n.set(f(),S.Dim);break;case"experimental-fto-l3t":n.set(a(),S.Dim);break;default:console.warn(\`Unsupported stickering for \${e.id}: \${t}. Setting all pieces to dim.\`),n.set(o.and(o.moves([])),S.Dim)}return n.toAppearance()}async function cf(){return["full","experimental-fto-fc","experimental-fto-f2t","experimental-fto-sc","experimental-fto-l2c","experimental-fto-lbt","experimental-fto-l3t"]}var pf=U(()=>{So()});var mf,Lf,Bf=U(()=>{pr();pf();mf=class extends Lt{constructor(){super({pgID:"FTO",id:"fto",fullName:"Face-Turning Octahedron",inventedBy:["Karl Rohrbach","David Pitcher"],inventionYear:1983});this.stickerings=cf}appearance(t){return gf(this,t)}},Lf=new mf});async function Rf(e,t){switch(t){case"full":case"F2L":case"LL":return _t(e,t);default:console.warn(\`Unsupported stickering for \${e.id}: \${t}. Setting all pieces to dim.\`)}return _t(e,"full")}async function df(){return["full","F2L","LL"]}var Df=U(()=>{Un()});var Ff,hf,Af=U(()=>{pr();Df();Ff=class extends Lt{constructor(){super({id:"megaminx",fullName:"Megaminx",inventionYear:1981});this.stickerings=df}appearance(t){return Rf(this,t)}},hf=new Ff});var yf={};ye(yf,{default:()=>Ip});var Ip,Uf=U(()=>{Ip=\`<?xml version="1.0" encoding="UTF-8"?>
668
668
  <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN"
669
669
  "http://www.w3.org/TR/2001/REC-SVG-20050904/DTD/svg11.dtd">
670
670
  <svg xmlns="http://www.w3.org/2000/svg" version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="-20 -20 546 480" preserveAspectRatio="xMidYMid meet">
@@ -751,7 +751,7 @@ Vertex distance \${this.vertexdistance}\`}writeSchreierSims(t){let n=this.getOrb
751
751
  <use id="EDGES-l4-o1" xlink:href="#stickerV" transform="translate(1, 1)" style="fill: red"/>
752
752
  </g>
753
753
 
754
- </svg>\`});var bf,wf,xf=b(()=>{Or();Gr();bf=class extends Lt{constructor(){super({id:"pyraminx",fullName:"Pyraminx",inventedBy:["Uwe Meffert"]});this.svg=Ke(async()=>(await Promise.resolve().then(()=>(Uf(),yf))).default)}},wf=new bf});var Sf={};ye(Sf,{sq1HyperOrbitKPuzzleDefinition:()=>Tm});var Tm,vf=b(()=>{Tm={name:"Square-1",orbits:{WEDGES:{numPieces:24,numOrientations:9},EQUATOR:{numPieces:2,numOrientations:6}},startStateData:{WEDGES:{pieces:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23],orientation:[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},EQUATOR:{pieces:[0,1],orientation:[0,0]}},moves:{U_SQ_:{WEDGES:{permutation:[11,0,1,2,3,4,5,6,7,8,9,10,12,13,14,15,16,17,18,19,20,21,22,23],orientation:[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},EQUATOR:{permutation:[0,1],orientation:[0,0]}},D_SQ_:{WEDGES:{permutation:[0,1,2,3,4,5,6,7,8,9,10,11,23,12,13,14,15,16,17,18,19,20,21,22],orientation:[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},EQUATOR:{permutation:[0,1],orientation:[0,0]}},_SLASH_:{WEDGES:{permutation:[0,1,2,3,4,5,12,13,14,15,16,17,6,7,8,9,10,11,18,19,20,21,22,23],orientation:[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},EQUATOR:{permutation:[0,1],orientation:[0,3]}}}}});var Ef={};ye(Ef,{default:()=>Im});var Im,kf=b(()=>{Im=\`<?xml version="1.0" encoding="UTF-8"?>
754
+ </svg>\`});var bf,Sf,xf=U(()=>{pr();ur();bf=class extends Lt{constructor(){super({id:"pyraminx",fullName:"Pyraminx",inventedBy:["Uwe Meffert"]});this.svg=Se(async()=>(await Promise.resolve().then(()=>(Uf(),yf))).default)}},Sf=new bf});var wf={};ye(wf,{sq1HyperOrbitKPuzzleDefinition:()=>Wp});var Wp,vf=U(()=>{Wp={name:"Square-1",orbits:{WEDGES:{numPieces:24,numOrientations:9},EQUATOR:{numPieces:2,numOrientations:6}},startStateData:{WEDGES:{pieces:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23],orientation:[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},EQUATOR:{pieces:[0,1],orientation:[0,0]}},moves:{U_SQ_:{WEDGES:{permutation:[11,0,1,2,3,4,5,6,7,8,9,10,12,13,14,15,16,17,18,19,20,21,22,23],orientation:[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},EQUATOR:{permutation:[0,1],orientation:[0,0]}},D_SQ_:{WEDGES:{permutation:[0,1,2,3,4,5,6,7,8,9,10,11,23,12,13,14,15,16,17,18,19,20,21,22],orientation:[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},EQUATOR:{permutation:[0,1],orientation:[0,0]}},_SLASH_:{WEDGES:{permutation:[0,1,2,3,4,5,12,13,14,15,16,17,6,7,8,9,10,11,18,19,20,21,22,23],orientation:[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},EQUATOR:{permutation:[0,1],orientation:[0,3]}}}}});var Ef={};ye(Ef,{default:()=>Kp});var Kp,kf=U(()=>{Kp=\`<?xml version="1.0" encoding="UTF-8"?>
755
755
  <svg width="360px" height="552px" viewBox="0 0 360 552" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
756
756
  <!-- Generator: Sketch 59.1 (86144) - https://sketch.com -->
757
757
  <title>sq1-fancy</title>
@@ -1045,8 +1045,83 @@ Vertex distance \${this.vertexdistance}\`}writeSchreierSims(t){let n=this.getOrb
1045
1045
  <line x1="0.15767665" y1="262.276878" x2="70.4345542" y2="2.27488928e-16" id="TOP"></line>
1046
1046
  </g>
1047
1047
  </g>
1048
- </svg>\`});var zf,_f=b(()=>{Je();Gr();zf={id:"square1",fullName:"Square-1",inventedBy:["Karel Hr\\u0161el","Vojtech Kopsk\\xFD"],inventionYear:1990,kpuzzle:Ke(async()=>new Oe((await Promise.resolve().then(()=>(vf(),Sf))).sq1HyperOrbitKPuzzleDefinition)),svg:Ke(async()=>(await Promise.resolve().then(()=>(kf(),Ef))).default)}});var ve,Vt=b(()=>{c2();Je();yn();Or();J2();nf();uf();Bf();Af();xf();_f();Uo();ve={"3x3x3":Qa,"2x2x2":_o,"4x4x4":new Nr({id:"4x4x4",fullName:"4\\xD74\\xD74 Cube"}),"5x5x5":new Nr({id:"5x5x5",fullName:"5\\xD75\\xD75 Cube"}),"6x6x6":new Nr({id:"6x6x6",fullName:"6\\xD76\\xD76 Cube"}),"7x7x7":new Nr({id:"7x7x7",fullName:"7\\xD77\\xD77 Cube"}),"40x40x40":new Nr({id:"40x40x40",fullName:"40\\xD740\\xD740 Cube"}),clock:ff,megaminx:hf,pyraminx:wf,skewb:new Lt({id:"skewb",fullName:"Skewb",inventedBy:["Tony Durham"]}),square1:zf,fto:Lf,gigaminx:new Lt({id:"gigaminx",fullName:"Gigaminx",inventedBy:["Tyler Fox"],inventionYear:2006}),master_tetraminx:new Lt({pgID:"master tetraminx",id:"master_tetraminx",fullName:"Master Tetraminx",inventedBy:["Katsuhiko Okamoto"],inventionYear:2002})}});function Pf(e){Cf=e}function gt(){if(!Cf)throw new Error("Must be called from inside a worker, to avoid impact on page performance. Try importing from the top level of \`cubing/solve\`?")}var Cf,Ht=b(()=>{Cf=!1});async function Mf(){return globalThis?.crypto?.getRandomValues?crypto.getRandomValues.bind(crypto):(await(Nm??(Nm=import(Wm())))).webcrypto.getRandomValues}var Nm,Om,Wm,Gf=b(()=>{Nm=null,Om="cr-yp-to",Wm=()=>Om.replace(/-/g,"")});function jm(e){let t=new Uint32Array(2);e(t);let r=t[0],n=t[1];return Math.floor(r*Km)+Math.floor(n/Qm)}function qm(e){if(typeof e!="number"||e<0||Math.floor(e)!==e)throw new Error("randomInt.below() not called with a positive integer value.");if(e>Tf)throw new Error(\`Called randomInt.below() with max == \${e}, which is larger than JavaScript can handle with integer precision.\`)}async function Qe(){let e=await Mf(),t=r=>{qm(r);let n=jm(e),o=Math.floor(Tf/r)*r;return n<o?n%r:t(r)};return t}var Tf,Km,Qm,ql=b(()=>{Gf();Tf=9007199254740992,Km=2097152,Qm=2048});async function Yt(){let e=await Qe();return t=>t[e(t.length)]}var If=b(()=>{ql()});async function Nf(e){for(let t=1;t<e.length;t++){let r=(await Vm)(t);[e[t],e[r]]=[e[r],e[t]]}}var Vm,Mt=b(()=>{If();ql();ql();Vm=Qe()});function Tt(e,t){let r=[],n=[];for(let g of t.split(\`
1049
- \`)){let c=g.split(" ");if(!g.startsWith("SetOrder ")){if(g.startsWith("Alg ")){let u=z.fromString(g.substring(4));n.push({alg:u,transformation:e.algToTransformation(u)})}else if(g.startsWith("SubgroupSizes "))for(let u=1;u<c.length;u++)r.push(parseInt(c[u]))}}let o={ordering:new Array(r.length)},l=[],i=0;l.push(0);let a=z.fromString(""),f=e.identityTransformation();for(let g=0;g<r.length;g++)i+=r[g],l.push(i),n.splice(i-1,0,{alg:a,transformation:f});if(n.length!==i)throw Error(\`Bad sgs; expected \${i-r.length} algs but saw \${n.length-r.length}\`);let s={};for(let g in e.definition.orbits){let c=e.definition.orbits[g];s[g]=new Array(c.numPieces).fill(!1)}for(let g=r.length-1;g>=0;g--){let c=[];for(let m=l[g];m<l[g+1];m++){let p=n[m].transformation;for(let L in e.definition.orbits){let R=e.definition.orbits[L];for(let D=0;D<R.numPieces;D++)(p.transformationData[L].permutation[D]!==D||p.transformationData[L].orientation[D]!==0)&&(s[L][D]||(c.push({orbitName:L,permutationIdx:D}),s[L][D]=!0))}}let u={};for(let m=l[g];m<l[g+1];m++){let p=n[m].transformation.invert(),L="";for(let R=0;R<c.length;R++){let D=c[R];L=\`\${L} \${p.transformationData[D.orbitName].permutation[D.permutationIdx]} \${p.transformationData[D.orbitName].orientation[D.permutationIdx]}\`}u[L]=n[m],n[m].alg=n[m].alg.invert(),n[m].transformation=n[m].transformation.invert()}o.ordering[g]={pieceOrdering:c,lookup:u}}return o}var vn=b(()=>{Re()});var Vf={};ye(Vf,{cachedData222:()=>np,data222:()=>qf});async function np(){return rp??(rp=qf())}async function qf(){return Tt(await _o.kpuzzle(),\`SubgroupSizes 24 21 18 15 12 9 6
1048
+ </svg>\`});var zf,_f=U(()=>{He();ur();zf={id:"square1",fullName:"Square-1",inventedBy:["Karel Hr\\u0161el","Vojtech Kopsk\\xFD"],inventionYear:1990,kpuzzle:Se(async()=>new Ee((await Promise.resolve().then(()=>(vf(),wf))).sq1HyperOrbitKPuzzleDefinition)),svg:Se(async()=>(await Promise.resolve().then(()=>(kf(),Ef))).default)}});var Cf={};ye(Cf,{kilominxSVG:()=>Qp});var Qp,Pf=U(()=>{Qp=\`<svg id="svg" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 800 500">
1049
+ <style type="text/css"><![CDATA[.sticker { stroke: #000000; stroke-width: 1px; }]]></style>
1050
+ <g><title>U</title>
1051
+ <polygon id="CORNERS-l0-o1" class="sticker" style="fill: #ffffff" points="247.941 89.861 283.500 115.696 269.918 157.499 212.382 138.805"/>
1052
+ <polygon id="CORNERS-l10-o2" class="sticker" style="fill: #ffffff" points="154.845 157.499 141.263 115.696 176.822 89.861 212.382 138.805"/>
1053
+ <polygon id="CORNERS-l5-o0" class="sticker" style="fill: #ffffff" points="176.822 89.861 212.381 64.025 247.941 89.861 212.382 138.805"/>
1054
+ <polygon id="CORNERS-l4-o1" class="sticker" style="fill: #ffffff" points="212.381 199.301 168.427 199.301 154.845 157.499 212.382 138.805"/>
1055
+ <polygon id="CORNERS-l1-o1" class="sticker" style="fill: #ffffff" points="269.918 157.499 256.335 199.301 212.381 199.301 212.382 138.805"/>
1056
+ </g><g><title>F</title>
1057
+ <polygon id="CORNERS-l7-o0" class="sticker" style="fill: #006633" points="247.941 319.263 212.381 345.098 176.822 319.263 212.382 270.32"/>
1058
+ <polygon id="CORNERS-l1-o0" class="sticker" style="fill: #006633" points="212.381 209.823 256.335 209.823 269.918 251.625 212.382 270.32"/>
1059
+ <polygon id="CORNERS-l3-o0" class="sticker" style="fill: #006633" points="269.918 251.625 283.500 293.428 247.941 319.263 212.382 270.32"/>
1060
+ <polygon id="CORNERS-l4-o2" class="sticker" style="fill: #006633" points="154.845 251.625 168.427 209.823 212.381 209.823 212.382 270.32"/>
1061
+ <polygon id="CORNERS-l9-o1" class="sticker" style="fill: #006633" points="176.822 319.263 141.263 293.428 154.845 251.625 212.382 270.32"/>
1062
+ </g><g><title>L</title>
1063
+ <polygon id="CORNERS-l13-o0" class="sticker" style="fill: #660099" points="87.302 290.176 43.349 290.176 29.766 248.374 87.303 229.68"/>
1064
+ <polygon id="CORNERS-l4-o0" class="sticker" style="fill: #660099" points="122.862 180.736 158.421 206.571 144.839 248.374 87.303 229.68"/>
1065
+ <polygon id="CORNERS-l9-o0" class="sticker" style="fill: #660099" points="144.839 248.374 131.256 290.176 87.302 290.176 87.303 229.68"/>
1066
+ <polygon id="CORNERS-l10-o0" class="sticker" style="fill: #660099" points="51.743 180.736 87.302 154.901 122.862 180.736 87.303 229.68"/>
1067
+ <polygon id="CORNERS-l11-o0" class="sticker" style="fill: #660099" points="29.766 248.374 16.184 206.571 51.743 180.736 87.303 229.68"/>
1068
+ </g><g><title>BL</title>
1069
+ <polygon id="CORNERS-l15-o1" class="sticker" style="fill: #ffff00" points="700.480 172.224 664.921 198.059 629.361 172.224 664.921 123.281"/>
1070
+ <polygon id="CORNERS-l10-o1" class="sticker" style="fill: #ffff00" points="664.921 62.784 708.874 62.784 722.457 104.586 664.921 123.281"/>
1071
+ <polygon id="CORNERS-l11-o2" class="sticker" style="fill: #ffff00" points="722.457 104.586 736.039 146.389 700.480 172.224 664.921 123.281"/>
1072
+ <polygon id="CORNERS-l5-o1" class="sticker" style="fill: #ffff00" points="607.384 104.586 620.967 62.784 664.921 62.784 664.921 123.281"/>
1073
+ <polygon id="CORNERS-l19-o2" class="sticker" style="fill: #ffff00" points="629.361 172.224 593.802 146.389 607.384 104.586 664.921 123.281"/>
1074
+ </g><g><title>BR</title>
1075
+ <polygon id="CORNERS-l12-o1" class="sticker" style="fill: #0000ff" points="545.874 172.224 510.315 198.059 474.755 172.224 510.315 123.281"/>
1076
+ <polygon id="CORNERS-l5-o2" class="sticker" style="fill: #0000ff" points="510.315 62.784 554.269 62.784 567.851 104.586 510.315 123.281"/>
1077
+ <polygon id="CORNERS-l19-o1" class="sticker" style="fill: #0000ff" points="567.851 104.586 581.433 146.389 545.874 172.224 510.315 123.281"/>
1078
+ <polygon id="CORNERS-l0-o2" class="sticker" style="fill: #0000ff" points="452.779 104.586 466.361 62.784 510.315 62.784 510.315 123.281"/>
1079
+ <polygon id="CORNERS-l6-o2" class="sticker" style="fill: #0000ff" points="474.755 172.224 439.196 146.389 452.779 104.586 510.315 123.281"/>
1080
+ </g><g><title>R</title>
1081
+ <polygon id="CORNERS-l6-o1" class="sticker" style="fill: #ff0000" points="373.019 180.736 408.579 206.571 394.996 248.374 337.461 229.68"/>
1082
+ <polygon id="CORNERS-l1-o2" class="sticker" style="fill: #ff0000" points="279.924 248.374 266.341 206.571 301.901 180.736 337.461 229.68"/>
1083
+ <polygon id="CORNERS-l0-o0" class="sticker" style="fill: #ff0000" points="301.901 180.736 337.460 154.901 373.019 180.736 337.461 229.68"/>
1084
+ <polygon id="CORNERS-l3-o1" class="sticker" style="fill: #ff0000" points="337.460 290.176 293.506 290.176 279.924 248.374 337.461 229.68"/>
1085
+ <polygon id="CORNERS-l2-o2" class="sticker" style="fill: #ff0000" points="394.996 248.374 381.414 290.176 337.460 290.176 337.461 229.68"/>
1086
+ </g><g><title>C</title>
1087
+ <polygon id="CORNERS-l8-o2" class="sticker" style="fill: #ffffd0" points="347.220 395.413 333.638 437.215 289.684 437.215 289.685 376.719"/>
1088
+ <polygon id="CORNERS-l3-o2" class="sticker" style="fill: #ffffd0" points="254.125 327.775 289.684 301.940 325.244 327.775 289.685 376.719"/>
1089
+ <polygon id="CORNERS-l2-o1" class="sticker" style="fill: #ffffd0" points="325.244 327.775 360.803 353.610 347.220 395.413 289.685 376.719"/>
1090
+ <polygon id="CORNERS-l7-o1" class="sticker" style="fill: #ffffd0" points="232.148 395.413 218.566 353.610 254.125 327.775 289.685 376.719"/>
1091
+ <polygon id="CORNERS-l17-o2" class="sticker" style="fill: #ffffd0" points="289.684 437.215 245.730 437.215 232.148 395.413 289.685 376.719"/>
1092
+ </g><g><title>A</title>
1093
+ <polygon id="CORNERS-l17-o1" class="sticker" style="fill: #3399ff" points="192.615 395.413 179.032 437.215 135.078 437.215 135.079 376.719"/>
1094
+ <polygon id="CORNERS-l9-o2" class="sticker" style="fill: #3399ff" points="99.519 327.775 135.078 301.940 170.638 327.775 135.079 376.719"/>
1095
+ <polygon id="CORNERS-l7-o2" class="sticker" style="fill: #3399ff" points="170.638 327.775 206.197 353.610 192.615 395.413 135.079 376.719"/>
1096
+ <polygon id="CORNERS-l13-o1" class="sticker" style="fill: #3399ff" points="77.542 395.413 63.960 353.610 99.519 327.775 135.079 376.719"/>
1097
+ <polygon id="CORNERS-l14-o1" class="sticker" style="fill: #3399ff" points="135.078 437.215 91.125 437.215 77.542 395.413 135.079 376.719"/>
1098
+ </g><g><title>I</title>
1099
+ <polygon id="CORNERS-l18-o1" class="sticker" style="fill: #ff6633" points="677.137 319.263 641.578 293.428 655.160 251.625 712.697 270.32"/>
1100
+ <polygon id="CORNERS-l13-o2" class="sticker" style="fill: #ff6633" points="770.233 251.625 783.815 293.428 748.256 319.263 712.697 270.32"/>
1101
+ <polygon id="CORNERS-l14-o0" class="sticker" style="fill: #ff6633" points="748.256 319.263 712.697 345.098 677.137 319.263 712.697 270.32"/>
1102
+ <polygon id="CORNERS-l11-o1" class="sticker" style="fill: #ff6633" points="712.697 209.823 756.650 209.823 770.233 251.625 712.697 270.32"/>
1103
+ <polygon id="CORNERS-l15-o2" class="sticker" style="fill: #ff6633" points="655.160 251.625 668.743 209.823 712.697 209.823 712.697 270.32"/>
1104
+ </g><g><title>BF</title>
1105
+ <polygon id="CORNERS-l16-o1" class="sticker" style="fill: #99ff00" points="587.618 290.176 543.664 290.176 530.081 248.374 587.618 229.68"/>
1106
+ <polygon id="CORNERS-l15-o0" class="sticker" style="fill: #99ff00" points="623.177 180.736 658.736 206.571 645.154 248.374 587.618 229.68"/>
1107
+ <polygon id="CORNERS-l18-o0" class="sticker" style="fill: #99ff00" points="645.154 248.374 631.572 290.176 587.618 290.176 587.618 229.68"/>
1108
+ <polygon id="CORNERS-l19-o0" class="sticker" style="fill: #99ff00" points="552.058 180.736 587.618 154.901 623.177 180.736 587.618 229.68"/>
1109
+ <polygon id="CORNERS-l12-o2" class="sticker" style="fill: #99ff00" points="530.081 248.374 516.499 206.571 552.058 180.736 587.618 229.68"/>
1110
+ </g><g><title>E</title>
1111
+ <polygon id="CORNERS-l8-o0" class="sticker" style="fill: #ff66cc" points="498.098 319.263 462.539 345.098 426.980 319.263 462.539 270.32"/>
1112
+ <polygon id="CORNERS-l12-o0" class="sticker" style="fill: #ff66cc" points="462.539 209.823 506.493 209.823 520.075 251.625 462.539 270.32"/>
1113
+ <polygon id="CORNERS-l16-o0" class="sticker" style="fill: #ff66cc" points="520.075 251.625 533.658 293.428 498.098 319.263 462.539 270.32"/>
1114
+ <polygon id="CORNERS-l6-o0" class="sticker" style="fill: #ff66cc" points="405.003 251.625 418.585 209.823 462.539 209.823 462.539 270.32"/>
1115
+ <polygon id="CORNERS-l2-o0" class="sticker" style="fill: #ff66cc" points="426.980 319.263 391.420 293.428 405.003 251.625 462.539 270.32"/>
1116
+ </g><g><title>D</title>
1117
+ <polygon id="CORNERS-l18-o2" class="sticker" style="fill: #999999" points="587.618 300.698 631.572 300.698 645.154 342.500 587.618 361.195"/>
1118
+ <polygon id="CORNERS-l8-o1" class="sticker" style="fill: #999999" points="552.058 410.138 516.499 384.303 530.081 342.500 587.618 361.195"/>
1119
+ <polygon id="CORNERS-l16-o2" class="sticker" style="fill: #999999" points="530.081 342.500 543.664 300.698 587.618 300.698 587.618 361.195"/>
1120
+ <polygon id="CORNERS-l17-o0" class="sticker" style="fill: #999999" points="623.177 410.138 587.618 435.974 552.058 410.138 587.618 361.195"/>
1121
+ <polygon id="CORNERS-l14-o2" class="sticker" style="fill: #999999" points="645.154 342.500 658.736 384.303 623.177 410.138 587.618 361.195"/>
1122
+ </g></svg>
1123
+ \`});var Mf,Nf=U(()=>{He();pr();ur();Mf={id:"kilominx",fullName:"Kilominx",kpuzzle:Se(async()=>{let e=await Ir("megaminx + chopasaurus"),t=JSON.parse(JSON.stringify(e.getKPuzzleDefinition(!0)));delete t.orbits.CENTERS,delete t.orbits.CENTERS2,delete t.startStateData.CENTERS,delete t.startStateData.CENTERS2;for(let i of Object.values(t.moves))delete i.CENTERS,delete i.CENTERS2;t.name="kilominx",delete t.experimentalPuzzleDescription;let r=await Promise.resolve().then(()=>(En(),Kl)),n=new r.ExperimentalPGNotation(e,e.getOrbitsDef(!0)),o=new Ee(t,{experimentalPGNotation:{lookupMove:i=>i.toString()==="x2"||i.toString()==="x2'"?l.transformationData:n.lookupMove(i)}}),l=o.algToTransformation("Rv2 Fv Uv'");return t.moves.x2=l,o}),svg:Se(async()=>(await Promise.resolve().then(()=>(Pf(),Cf))).kilominxSVG)}});var ke,Ht=U(()=>{He();g0();c0();So();Un();pr();X0();nf();uf();Bf();Af();xf();_f();Nf();ke={"3x3x3":Qs,"2x2x2":_o,"4x4x4":new Wr({id:"4x4x4",fullName:"4\\xD74\\xD74 Cube"}),"5x5x5":new Wr({id:"5x5x5",fullName:"5\\xD75\\xD75 Cube"}),"6x6x6":new Wr({id:"6x6x6",fullName:"6\\xD76\\xD76 Cube"}),"7x7x7":new Wr({id:"7x7x7",fullName:"7\\xD77\\xD77 Cube"}),"40x40x40":new Wr({id:"40x40x40",fullName:"40\\xD740\\xD740 Cube"}),clock:ff,megaminx:hf,pyraminx:Sf,skewb:new Lt({id:"skewb",fullName:"Skewb",inventedBy:["Tony Durham"]}),square1:zf,fto:Lf,gigaminx:new Lt({id:"gigaminx",fullName:"Gigaminx",inventedBy:["Tyler Fox"],inventionYear:2006}),master_tetraminx:new Lt({pgID:"master tetraminx",id:"master_tetraminx",fullName:"Master Tetraminx",inventedBy:["Katsuhiko Okamoto"],inventionYear:2002}),kilominx:Mf}});function Gf(e){Tf=e}function Qe(){if(!Tf)throw new Error("Must be called from inside a worker, to avoid impact on page performance. Try importing from the top level of \`cubing/solve\`?")}var Tf,Mt=U(()=>{Tf=!1});async function Of(){return globalThis?.crypto?.getRandomValues?crypto.getRandomValues.bind(crypto):(await(jp??(jp=import(Vp())))).webcrypto.getRandomValues}var jp,qp,Vp,If=U(()=>{jp=null,qp="cr-yp-to",Vp=()=>qp.replace(/-/g,"")});function Zp(e){let t=new Uint32Array(2);e(t);let r=t[0],n=t[1];return Math.floor(r*Hp)+Math.floor(n/Yp)}function Jp(e){if(typeof e!="number"||e<0||Math.floor(e)!==e)throw new Error("randomInt.below() not called with a positive integer value.");if(e>Wf)throw new Error(\`Called randomInt.below() with max == \${e}, which is larger than JavaScript can handle with integer precision.\`)}async function je(){let e=await Of(),t=r=>{Jp(r);let n=Zp(e),o=Math.floor(Wf/r)*r;return n<o?n%r:t(r)};return t}var Wf,Hp,Yp,Vl=U(()=>{If();Wf=9007199254740992,Hp=2097152,Yp=2048});async function Yt(){let e=await je();return t=>t[e(t.length)]}var Kf=U(()=>{Vl()});async function Qf(e){for(let t=1;t<e.length;t++){let r=(await Xp)(t);[e[t],e[r]]=[e[r],e[t]]}}var Xp,Nt=U(()=>{Kf();Vl();Vl();Xp=je()});function Gt(e,t){let r=[],n=[];for(let g of t.split(\`
1124
+ \`)){let c=g.split(" ");if(!g.startsWith("SetOrder ")){if(g.startsWith("Alg ")){let u=z.fromString(g.substring(4));n.push({alg:u,transformation:e.algToTransformation(u)})}else if(g.startsWith("SubgroupSizes "))for(let u=1;u<c.length;u++)r.push(parseInt(c[u]))}}let o={ordering:new Array(r.length)},l=[],i=0;l.push(0);let s=z.fromString(""),f=e.identityTransformation();for(let g=0;g<r.length;g++)i+=r[g],l.push(i),n.splice(i-1,0,{alg:s,transformation:f});if(n.length!==i)throw Error(\`Bad sgs; expected \${i-r.length} algs but saw \${n.length-r.length}\`);let a={};for(let g in e.definition.orbits){let c=e.definition.orbits[g];a[g]=new Array(c.numPieces).fill(!1)}for(let g=r.length-1;g>=0;g--){let c=[];for(let p=l[g];p<l[g+1];p++){let m=n[p].transformation;for(let L in e.definition.orbits){let R=e.definition.orbits[L];for(let D=0;D<R.numPieces;D++)(m.transformationData[L].permutation[D]!==D||m.transformationData[L].orientation[D]!==0)&&(a[L][D]||(c.push({orbitName:L,permutationIdx:D}),a[L][D]=!0))}}let u={};for(let p=l[g];p<l[g+1];p++){let m=n[p].transformation.invert(),L="";for(let R=0;R<c.length;R++){let D=c[R];L=\`\${L} \${m.transformationData[D.orbitName].permutation[D.permutationIdx]} \${m.transformationData[D.orbitName].orientation[D.permutationIdx]}\`}u[L]=n[p],n[p].alg=n[p].alg.invert(),n[p].transformation=n[p].transformation.invert()}o.ordering[g]={pieceOrdering:c,lookup:u}}return o}var kn=U(()=>{Re()});var Jf={};ye(Jf,{cachedData222:()=>am,data222:()=>Zf});async function am(){return sm??(sm=Zf())}async function Zf(){return Gt(await _o.kpuzzle(),\`SubgroupSizes 24 21 18 15 12 9 6
1050
1125
 
1051
1126
  Alg F
1052
1127
  Alg F2
@@ -1145,7 +1220,7 @@ Alg F D' F L' D F R2 U2 F' U'
1145
1220
  Alg F D' L D' L F D2 L2 B' R'
1146
1221
  Alg F L' D F R2 D2 L D F' U2
1147
1222
  Alg F L' D F2 D' L F L2 F2 U
1148
- Alg F D F' D L2 F R' F' D' B2 U'\`)}var rp,Hf=b(()=>{Vt();vn();rp=null});async function En(e,t){let r=new mt;r.experimentalPushAlg(e);for(let n of t){let o=(await Yt())(n);o!==null&&r.push(B.fromString(o))}return r.toAlg()}var Hl=b(()=>{Re();Mt()});function $f(e,t){return e.slice(t)+e.slice(0,t)}function gp(e){let t=[[],[]];for(let r=0;r<6;r++)if(e.stateData.CENTERS.pieces[r]!==r)throw new Error("non-oriented puzzles are not supported");for(let r=0;r<12;r++)t[0].push($f(ap[e.stateData.EDGES.pieces[r]],e.stateData.EDGES.orientation[r]));for(let r=0;r<8;r++)t[1].push($f(sp[e.stateData.CORNERS.pieces[r]],e.stateData.CORNERS.orientation[r]));return t.push(fp),t}function eu(e){let t=gp(e);return up.map(([r,n,o])=>t[r][n][o]).join("")}var ap,sp,fp,up,tu=b(()=>{ap="UF UR UB UL DF DR DB DL FR FL BR BL".split(" "),sp="UFR URB UBL ULF DRF DFL DLB DBR".split(" "),fp="U L F R B D".split(" "),up=[[1,2,0],[0,2,0],[1,1,0],[0,3,0],[2,0,0],[0,1,0],[1,3,0],[0,0,0],[1,0,0],[1,0,2],[0,1,1],[1,1,1],[0,8,1],[2,3,0],[0,10,1],[1,4,1],[0,5,1],[1,7,2],[1,3,2],[0,0,1],[1,0,1],[0,9,0],[2,2,0],[0,8,0],[1,5,1],[0,4,1],[1,4,2],[1,5,0],[0,4,0],[1,4,0],[0,7,0],[2,5,0],[0,5,0],[1,6,0],[0,6,0],[1,7,0],[1,2,2],[0,3,1],[1,3,1],[0,11,1],[2,1,0],[0,9,1],[1,6,1],[0,7,1],[1,5,2],[1,1,2],[0,2,1],[1,2,1],[0,10,0],[2,4,0],[0,11,0],[1,7,1],[0,6,1],[1,6,2]]});function ru(e,t){let r=new pe(e.kpuzzle,{EDGES:e.stateData.EDGES,CORNERS:e.stateData.CORNERS,CENTERS:{pieces:e.stateData.CENTERS.pieces,orientation:new Array(6).fill(0)}}).experimentalToTransformation(),n=new pe(t.kpuzzle,{EDGES:t.stateData.EDGES,CORNERS:t.stateData.CORNERS,CENTERS:{pieces:t.stateData.CENTERS.pieces,orientation:new Array(6).fill(0)}}).experimentalToTransformation();return r.isIdentical(n)}function nu(e,t){if(ru(e.startState(),t))return!1;for(let r of"ULFRBD")for(let n=1;n<4;n++){let o=e.moveToTransformation(new B(r,n)).toKState();if(ru(o,t))return!1}return!0}var ou=b(()=>{Re();Je()});var lu,iu=b(()=>{lu=[["R U'","R2 B","D2 B2","D' L B'","R' U'","B","D B2","R' B","L' U","L2 B'","B2","D L B'","L U","B'","U'","R B","D' B2","L B'","U2","U L' B'","","U' L' B'","U","L' B'"],["F2 L2","F' L'","R' F L2","D' L2","F L2","F2 L'","R' F' L'","R2 F L2","R2 F2 L'","L2","F L'","D' L","D2 L2","R2 F' L'","D L","","L2 F L'","L F' L2","L F L'","F' L2","L'","D L2","D F L'","L"],["R B U2 B'","R2 B U' B'","F2 B U B'","F B2 L' B2","B2 L B2","B U' B'","R2 B U2 B'","R' B U' B'","B2 L' B2","F B U B'","B2 U' B2","B' L B","L F' B D' B'","B' U' B2 D B'","B U2 B'","R B U' B'","B2 L2 B2","D' B' L B","B U B'","F' B2 L' B2","","B2 L' B' U' B'"],["U F2 L2 U'","F' U L' U'","F2 U L' U'","U F L2 U'","U2 B2 U2","R' U' B U","D2 U L U'","D U2 B' U2","U L2 U'","F U L' U'","D U L U'","U2 B' U2","","U2 B' U' L' U'","U2 L' U2","U' B U","U L U'","D' U2 B' U2","U L' U'","U2 B U2"],["R' D' F2","F'","F2","D R F'","R D' F2","R2 F'","D' F2","R F'","F2 R' D' F2","F","D2 F2","D' R F'","R2 D' F2","R' F'","D F2","D2 R F'","","F R' D' F2"],["R' D2 F' D F","R F2 R2 F2","R2 F' D2 F","F' R2 D2 F","L D' L'","D F' D2 F","F2 R2 F2","R F' D2 F","F' R2 D' F","F' R' D2 F","F2 R' F2","L D L'","F' R D' F","F2 R F2","F' D2 F","","L D2 R D' L'","F' D2 F' R F2","D2 R2 F2 R2 F2","D F' D' F","F' D F"],["U F2 U'","R U F' U'","D R U F2 U'","U F U'","R2 U F2 U'","R' U F' U'","R U F2 U'","R2 U F' U'","","U L D L' F U'","F2 D' R D F2","D2 U F U'","R' U F2 U'","U F' U'","F2 D2 R D2 F2","D U F U'"],["R2","R' B' D B","D R'","F' R2 F","","R B' D B","R'","B' D B","D' R'","D2 F' R2 F","R","R2 B' D B","D2 R'","B' D' B"],["R2 D' R2","F' R' F R","R D' R2 D R'","D2 R2 D2 R2","R' D' F' R F","U F D F' U'","","R2 D2 B R' B' R'","R' F D' F2 R F","R2 D R2","F2 U F U' F","R' D F' R F","D R2 D2 R2","U F D' F' U'","D R' D2 F' R F","R2 D2 R2","U F D2 F' U'","R' D2 F' R F"],["B R B'","F D F' B R2 B'","D B R2 B'","D2 B R' B'","B R2 B'","D B R' B'","D' B R2 B'","B R' B'","","B R2 B' D B R' B'","D2 B R2 B'","D' B R' B'"],["","R' D R F D2 F'","R' D R","D F D' F'","R F' R' F","F D' F'","R' D' R","F D2 F'","R' D2 R","F D F'"],["","F2 D2 R F' R' D2 F' D2 F'","F2 D2 F' D' F D' F' D2 F'","F2 D F2 D F2 D2 F2","D2 F L D2 L' D2 F'","D F D2 L D2 L' F'","R' D B' D2 B D' R","R' D2 B' D2 B R","F D2 F' D F D F'","F D' L D2 L' D F'","B D' F D B' D' F'","F D2 L D2 L' F'","F D' L D L' D F'","F L D2 L' D2 F'","R' B' D2 B D2 R"],["D'","F L D L' D' F'","D2","L B D B' D' L'","D","B' L' D' L D B","","D F L D L' D' F'"],["F' D2 F D F' D F","F' D' R' D R F","F' R' D' R D F","B D R D' R' B'","","D B' D' L' D L B"],["D F D F' D F D2 F'","F' U2 B' R' B U2 F' L F' L' F'","","D2 L D L2 F L F2 D F"],["L B' L' F L B L' F'","F2 U F' D2 F U' F' D2 F'","D' F' D B D' F D B'","F L2 F R2 F' L2 F R2 F2","D B D' F' D B' D' F","R F L F' R' F L' F'","","D2 B L' U2 L B' D2 B L' U2 L B'","D2 F R' U2 R F' D2 F R' U2 R F'","R F L' F' R' F L F'","D F D' B' D F' D' B","L2 F2 L' B2 L F2 L' B2 L'"],["L B R' B' L' B R B'","R' B R F' R' B' R F","L D2 L U L' D2 L U' L2","","D2 B' D2 F D' L2 F L2 F' D2 B D' F'","D2 F' R' F R2 B' D2 B D2 R' F D2 F'","L B L' F L B' L' F'","F' D2 F' U' F D2 F' U F2","D' B' D F D' B D F'"],["","D2 F' L U2 L' F D2 F' L U2 L' F","D2 B' R U2 R' B D2 B' R U2 R' B"]]});var Tu={};ye(Tu,{initialize:()=>tL,solveState:()=>rL});function au(){}function mp(e){function t(){}return t.prototype=e||{},new t}function pp(e){return e instanceof Array?e[0]:null}function Po(e,t,r){var n=Yl,o=Lp,l=pp,i=n[e],a=l(i);i&&!a?H=i:(H=n[e]=t?o(t):{},H.castableTypeMap$=r,H.constructor=H,!t&&(H.typeMarker$=au));for(var f=3;f<arguments.length;++f)arguments[f].prototype=H;a&&(H.___clazz$=a)}function Lp(e){var t=Yl;return mp(t[e])}function Bp(){}function Zl(e){return e<<24>>24}function Ya(){this.typeName=null,this.simpleName=null,this.packageName=null,this.compoundName=null,this.canonicalName=null,this.typeId=null,this.arrayLiterals=null}function Za(e,t){var r;return r=new Ya,r.packageName=e,r.compoundName=t,r}function mr(e,t,r){var n;return n=Za(e,t),Dp(r,n),n}function Rp(e,t){var r;return r=Za(e,t),r.modifiers=2,r}function Xl(e,t){var r;return r=Za("",e),r.typeId=t,r.modifiers=1,r}function su(e,t){var r=e.arrayLiterals=e.arrayLiterals||[];return r[t]||(r[t]=e.createClassLiteralForArray(t))}function dp(e){if(e.isPrimitive())return null;var t=e.typeId,r=Yl[t];return r}function Dp(e,t){if(!!e){t.typeId=e;var r=dp(t);if(!r){Yl[e]=[t];return}r.___clazz$=t}}function ee(e,t){return su(e,t)}function X(e,t,r,n,o,l){var i;return i=uu(o,n),te(ee(e,l),t,r,o,i),i}function et(e,t,r,n,o,l){return fu(e,t,r,n,o,0,l)}function fu(e,t,r,n,o,l,i){var a,f,s,g,c;if(g=o[l],s=l==i-1,a=s?n:0,c=uu(a,g),te(ee(e,i-l),t[l],r[l],a,c),!s)for(++l,f=0;f<g;++f)c[f]=fu(e,t,r,n,o,l,i);return c}function te(e,t,r,n,o){return o.___clazz$=e,o.castableTypeMap$=t,o.typeMarker$=au,o.__elementTypeId$=r,o.__elementTypeCategory$=n,o}function uu(e,t){var r=new Array(t),n;switch(e){case 6:n={l:0,m:0,h:0};break;case 7:n=0;break;case 8:n=!1;break;default:return r}for(var o=0;o<t;++o)r[o]=n;return r}function gu(e){var t,r,n;return t=e&$e,r=e>>22&$e,n=e<0?cr:0,Fp(t,r,n)}function Fp(e,t,r){return{l:e,m:t,h:r}}function hp(e,t){var r,n,o;return r=e.l+t.l,n=e.m+t.m+(r>>22),o=e.h+t.h+(n>>22),{l:r&$e,m:n&$e,h:o&cr}}function It(e,t){return{l:e.l&t.l,m:e.m&t.m,h:e.h&t.h}}function Xa(e){var t,r;return e>-129&&e<128?(t=e+128,$l==null&&($l=X($p,se,293,256,0,1)),r=$l[t],!r&&(r=$l[t]=gu(e)),r):gu(e)}function cu(e,t){var r,n;return r=e.h>>19,n=t.h>>19,r==0?n!=0||e.h>t.h||e.h==t.h&&e.m>t.m||e.h==t.h&&e.m==t.m&&e.l>=t.l:!(n==0||e.h<t.h||e.h==t.h&&e.m<t.m||e.h==t.h&&e.m==t.m&&e.l<t.l)}function Ja(e,t){return e.l!=t.l||e.m!=t.m||e.h!=t.h}function $a(e,t){return{l:e.l|t.l,m:e.m|t.m,h:e.h|t.h}}function Jl(e,t){var r,n,o;return t&=63,t<22?(r=e.l<<t,n=e.m<<t|e.l>>22-t,o=e.h<<t|e.m>>22-t):t<44?(r=0,n=e.l<<t-22,o=e.m<<t-22|e.l>>44-t):(r=0,n=0,o=e.l<<t-44),{l:r&$e,m:n&$e,h:o&cr}}function Wr(e,t){var r,n,o,l,i;return t&=63,r=e.h,n=(r&cp)!=0,n&&(r|=-1048576),t<22?(i=r>>t,l=e.m>>t|r<<22-t,o=e.l>>t|e.m<<22-t):t<44?(i=n?cr:0,l=r>>t-22,o=e.m>>t-22|r<<44-t):(i=n?cr:0,l=n?$e:0,o=r>>t-44),{l:o&$e,m:l&$e,h:i&cr}}function mu(e,t){var r,n,o;return r=e.l-t.l,n=e.m-t.m+(r>>22),o=e.h-t.h+(n>>22),{l:r&$e,m:n&$e,h:o&cr}}function Kr(e){return e.l|e.m<<22}function Ap(e){this.string=e}function pr(e,t){return e>t?e:t}function es(e,t){return e<t?e:t}function yp(e,t){return e.indexOf(t)}function Up(e){return bp(e,0,e.length)}function bp(e,t,r){for(var n="",o=t;o<r;){var l=Math.min(o+1e4,r);n+=String.fromCharCode.apply(null,e.slice(o,l)),o=l}return n}function wp(e){return String.fromCharCode(e&je)}function pu(e){return e.string+=" ",e}function Lu(e,t){return e.string+=t,e}function Sp(){Ap.call(this,"")}function ei(e,t){var r;if(e===t)return!0;if(e.length!=t.length)return!1;for(r=0;r<e.length;++r)if(e[r]!=t[r])return!1;return!0}function Qr(){Bu||(Bu=!0,Br=et(Fe,[se,De],[11,0],7,[495,18],2),Gn=et(Fe,[se,De],[11,0],7,[324,18],2),Cn=et(Fe,[se,De],[11,0],7,[336,18],2),Lr=et(Fe,[se,De],[11,0],7,[495,8],2),ni=X(ze,ke,0,20048,7,1),ri=X(ze,ke,0,20791,7,1),Mn=X(ze,ke,0,82945,7,1),kn=et(Fe,[se,De],[11,0],7,[2768,10],2),_n=et(Fe,[se,De],[11,0],7,[2768,10],2),Pn=et(Fe,[se,De],[11,0],7,[24,10],2),To=et(Fe,[se,De],[11,0],7,[24,16],2),jr=et(Fe,[se,De],[11,0],7,[140,16],2),ti=X(ze,ke,0,8305,7,1),zn=X(ze,ke,0,48441,7,1))}function vp(e,t,r){return e.slice_0=Br[t.slice_0][r],e.flip=Cn[t.flip][(J(),Vr)[r<<3|t.fsym]],e.fsym=e.flip&7^t.fsym,e.flip>>=3,e.twist=Gn[t.twist][Vr[r<<3|t.tsym]],e.tsym=e.twist&7^t.tsym,e.twist>>=3,e.prun=pr(pr(it(ni,e.twist*495+Lr[e.slice_0][e.tsym]),it(ri,e.flip*495+Lr[e.slice_0][e.fsym])),it(Mn,e.twist<<11|Dr[e.flip<<3|e.fsym^e.tsym])),e.prun}function Ep(e,t,r){return r=(J(),Oo)[3][r],e.flipc=Cn[t.flipc>>3][Vr[r<<3|t.flipc&7]]^t.flipc&7,e.twistc=Gn[t.twistc>>3][Vr[r<<3|t.twistc&7]]^t.twistc&7,it(Mn,e.twistc>>3<<11|Dr[e.flipc^e.twistc&7])}function Ru(e,t,r){var n;return e.twist=(J(),Wo)[ai(t)],e.flip=qr[ii(t)],e.tsym=e.twist&7,e.twist=e.twist>>3,e.prun=it(Mn,e.twist<<11|Dr[e.flip^e.tsym]),e.prun>r||(e.fsym=e.flip&7,e.flip=e.flip>>3,e.slice_0=494-Nn(t.ea,8,!0),e.prun=pr(e.prun,pr(it(ni,e.twist*495+Lr[e.slice_0][e.tsym]),it(ri,e.flip*495+Lr[e.slice_0][e.fsym]))),e.prun>r)?!1:(n=new ue,Io(t,1,n),No(t,1,n),e.twistc=Wo[ai(n)],e.flipc=qr[ii(n)],e.prun=pr(e.prun,it(Mn,e.twistc>>3<<11|Dr[e.flipc^e.twistc&7])),e.prun<=r)}function Mo(){Qr()}function it(e,t){return Qr(),e[t>>3]>>(t<<2)&15}function du(e){Qr(),!(oi==2||oi==1&&!e)&&(oi==0&&(Kp(),kp(),_p(),Pp(),zp(),J(),is(2048,as,qr,bu=X(Fe,De,0,336,7,1),0),is(2187,gs,Wo,us=X(Fe,De,0,324,7,1),1),Cp(),Mp(),Gp()),Go(ti,Pn,To,kn,(J(),fs),584244,e),Go(zn,ts,jr,_n,fs,514084,e),Go(ni,Br,Lr,Gn,us,431619,e),Go(ri,Br,Lr,Cn,bu,431619,e),Go(Mn,null,null,Gn,us,103939,e),oi=e?2:1)}function kp(){var e,t,r,n;for(e=new ue,t=new ue,r=0;r<2768;r++)for(Np(e,(J(),Tn)[r]),n=0;n<10;n++)Rr(e,ge[(Ve(),bt)[n]],t),kn[r][n]=ui(Xt[st(t.ca,8,!1)])&je}function zp(){var e,t,r,n,o;for(e=new ue,t=new ue,ts=et(Fe,[se,De],[11,0],7,[140,10],2),r=0;r<140;r++){for(Cu(e.ca,r%70,0,!1),o=0;o<10;o++)Rr(e,(J(),ge)[(Ve(),bt)[o]],t),ts[r][o]=Nn(t.ca,0,!1)+70*(165>>o&1^~~(r/70))&je;for(n=0;n<16;n++)Io(e,(J(),at)[0][n],t),jr[r][n]=Nn(t.ca,0,!1)+70*~~(r/70)&je}}function _p(){var e,t,r,n;for(e=new ue,t=new ue,r=0;r<2768;r++)for(Au(e,(J(),Tn)[r]),n=0;n<10;n++)Bt(e,ge[(Ve(),bt)[n]],t),_n[r][n]=Xt[st(t.ea,8,!0)]}function Cp(){var e,t,r,n;for(e=new ue,t=new ue,r=0;r<336;r++)for(os(e,(J(),as)[r]),n=0;n<18;n++)Bt(e,ge[n],t),Cn[r][n]=qr[ii(t)]}function Pp(){var e,t,r,n,o;for(e=new ue,t=new ue,r=0;r<24;r++){for(Hr(e.ea,r,12,!0),o=0;o<10;o++)Bt(e,(J(),ge)[(Ve(),bt)[o]],t),Pn[r][o]=st(t.ea,12,!0)%24&je;for(n=0;n<16;n++)No(e,(J(),at)[0][n],t),To[r][n]=st(t.ea,12,!0)%24&je}}function Go(e,t,r,n,o,l,i){var a,f,s,g,c,u,m,p,L,R,D,A,y,k,E,Q,$,G,oe,U,_,M,x,S,C,j,Z,ce,Le,Ae,be,kt,Pe,rt,Se,h;if(y=l&15,D=(l>>4&1)==1?Ha:0,s=(l>>5&1)==1,a=l>>8&15,g=l>>12&15,c=l>>16&15,R=i?g:c,A=(1<<y)-1,f=t==null,p=f?2048:t.length,L=p*n.length,m=s?10:18,u=m==10?66:599186,E=(e[L>>3]>>(L<<2)&15)-1,E==-1){for(G=0;G<~~(L/8)+1;G++)e[G]=Co;e[0]^=1,E=0}for(;E<R;){for(C=(E+1)*Co^-1,oe=0;oe<e.length;oe++)Se=e[oe]^C,Se&=Se>>1,e[oe]+=Se&Se>>2&Co;for(M=E>a,Ae=M?E+2:E,Le=Ae*Co,k=M?E:E+2,++E,h=E^E+1,rt=0,G=0;G<L;++G,rt>>=4){if((G&7)==0&&(rt=e[G>>3],((rt^Le)-Co&~(rt^Le)&-2004318072)==0)){G+=7;continue}if((rt&15)==Ae)for(Z=G%p,be=~~(G/p),Q=0,$=0,f&&(Q=(J(),qr)[Z],$=Q&7,Q>>=3),S=0;S<m;S++){if(Pe=n[be][S],f?ce=(J(),Dr)[Cn[Q][Vr[S<<3|$]]^$^Pe&A]:ce=r[t[Z][S]][Pe&A],Pe>>=y,U=Pe*p+ce,j=e[U>>3]>>(U<<2)&15,j!=k){j<E-1&&(S+=u>>S&3);continue}if(M){e[G>>3]^=h<<(G<<2);break}for(e[U>>3]^=h<<(U<<2),x=1,kt=o[Pe];(kt>>=1)!=0;x++)(kt&1)==1&&(_=Pe*p,f?_+=(J(),Dr)[qr[ce]^x]:_+=r[ce][x^D>>(x<<1)&3],(e[_>>3]>>(_<<2)&15)==k&&(e[_>>3]^=h<<(_<<2)))}}}}function Mp(){var e,t,r,n;for(e=new ue,t=new ue,r=0;r<324;r++)for(ls(e,(J(),gs)[r]),n=0;n<18;n++)Rr(e,ge[n],t),Gn[r][n]=Wo[ai(t)]}function Gp(){var e,t,r,n,o,l,i,a;for(e=new ue,t=new ue,n=0;n<495;n++){for(Cu(e.ea,494-n,8,!0),l=0;l<18;l+=3)Bt(e,(J(),ge)[l],t),Br[n][l]=494-Nn(t.ea,8,!0)&je;for(o=0;o<16;o+=2)No(e,(J(),at)[0][o],t),Lr[n][o>>1]=494-Nn(t.ea,8,!0)&je}for(r=0;r<495;r++)for(o=0;o<18;o+=3)for(a=Br[r][o],i=1;i<3;i++)a=Br[a][o],Br[r][o+i]=a&je}function J(){Du||(Du=!0,Zt=X(Ko,se,7,16,0,1),ge=X(Ko,se,7,18,0,1),ci=X(eL,se,0,18,6,1),wu=X(ze,ke,0,48,7,1),Jt=et(ze,[se,ke],[17,0],7,[16,16],2),at=et(ze,[se,ke],[17,0],7,[16,16],2),Oo=et(ze,[se,ke],[17,0],7,[16,18],2),Vr=X(ze,ke,0,144,7,1),Fr=et(ze,[se,ke],[17,0],7,[16,18],2),as=X(Fe,De,0,336,7,1),gs=X(Fe,De,0,324,7,1),Tn=X(Fe,De,0,2768,7,1),In=X(re,ae,0,2768,7,1),ss=X(Fe,De,0,2768,7,1),gi=X(re,ae,0,24,7,1),qr=X(Fe,De,0,2048,7,1),Wo=X(Fe,De,0,2187,7,1),Xt=X(Fe,De,0,40320,7,1),Dr=X(Fe,De,0,2688,7,1),cs=new Ut(2531,1373,67026819,1367),ms=new Ut(2089,1906,322752913,2040),mi=te(ee(re,2),se,10,0,[te(ee(re,1),ae,0,7,[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17]),te(ee(re,1),ae,0,7,[6,7,8,0,1,2,3,4,5,15,16,17,9,10,11,12,13,14]),te(ee(re,1),ae,0,7,[3,4,5,6,7,8,0,1,2,12,13,14,15,16,17,9,10,11]),te(ee(re,1),ae,0,7,[2,1,0,5,4,3,8,7,6,11,10,9,14,13,12,17,16,15]),te(ee(re,1),ae,0,7,[8,7,6,2,1,0,5,4,3,17,16,15,11,10,9,14,13,12]),te(ee(re,1),ae,0,7,[5,4,3,8,7,6,2,1,0,14,13,12,17,16,15,11,10,9])]),Wp(),Qp())}function rs(e){e.ca=te(ee(re,1),ae,0,7,[0,1,2,3,4,5,6,7]),e.ea=te(ee(re,1),ae,0,7,[0,2,4,6,8,10,12,14,16,18,20,22])}function Fu(e){!e.temps&&(e.temps=new ue),Rr(ms,e,e.temps),Rr(e.temps,cs,e),Bt(ms,e,e.temps),Bt(e.temps,cs,e)}function ns(e,t){var r,n;for(n=0;n<8;n++)e.ca[n]=t.ca[n];for(r=0;r<12;r++)e.ea[r]=t.ea[r]}function Tp(e){return ui(Xt[st(e.ca,8,!1)])}function Ip(e){return Xt[st(e.ea,8,!0)]}function ii(e){var t,r;for(r=0,t=0;t<11;t++)r=r<<1|e.ea[t]&1;return r}function ai(e){var t,r;for(r=0,t=0;t<7;t++)r+=(r<<1)+(e.ca[t]>>3);return r}function si(e){var t,r;for(!e.temps&&(e.temps=new ue),r=0;r<12;r++)e.temps.ea[e.ea[r]>>1]=(r<<1|e.ea[r]&1)<<24>>24;for(t=0;t<8;t++)e.temps.ca[e.ca[t]&7]=(t|32>>(e.ca[t]>>3)&24)<<24>>24;ns(e,e.temps)}function hu(e){var t,r,n,o,l,i,a;for(t=new yu(e),o=new ue,r=ui(Xt[st(t.ca,8,!1)])>>4,i={l:0,m:0,h:0},a=0;a<6;a++){if(n=ui(Xt[st(t.ca,8,!1)])>>4,r==n)for(l=0;l<16;l++)Io(t,at[0][l],o),ei(o.ca,e.ca)&&(No(t,at[0][l],o),ei(o.ea,e.ea)&&(i=$a(i,Jl({l:1,m:0,h:0},(a<<4|l)<48?a<<4|l:48))));Fu(t),a%3==2&&si(t)}return i}function Np(e,t){Hr(e.ca,t,8,!1)}function Au(e,t){Hr(e.ea,t,8,!0)}function os(e,t){var r,n,o;for(n=0,r=10;r>=0;--r,t>>=1)n^=o=t&1,e.ea[r]=(e.ea[r]&-2|o)<<24>>24;e.ea[11]=(e.ea[11]&-2|n)<<24>>24}function ls(e,t){var r,n,o;for(n=15,r=6;r>=0;--r,t=~~(t/3))n-=o=t%3,e.ca[r]=(e.ca[r]&7|o<<3)<<24>>24;e.ca[7]=(e.ca[7]&7|n%3<<3)<<24>>24}function Op(e){var t,r,n,o,l;for(l=0,o=0,n=0;n<12;n++)o|=1<<(e.ea[n]>>1),l^=e.ea[n]&1;if(o!=4095)return-2;if(l!=0)return-3;for(r=0,l=0,t=0;t<8;t++)r|=1<<(e.ca[t]&7),l+=e.ca[t]>>3;return r!=255?-4:l%3!=0?-5:(Ls(st(e.ea,12,!0),12)^Ls(st(e.ca,8,!1),8))!=0?-6:0}function Io(e,t,r){J();var n,o,l,i,a,f;for(f=Zt[at[0][t]],a=Zt[t],n=0;n<8;n++)l=f.ca[e.ca[a.ca[n]&7]&7]>>3,i=e.ca[a.ca[n]&7]>>3,o=l<3?i:(3-i)%3,r.ca[n]=(f.ca[e.ca[a.ca[n]&7]&7]&7|o<<3)<<24>>24}function Rr(e,t,r){J();var n,o,l;for(n=0;n<8;n++)o=e.ca[t.ca[n]&7]>>3,l=t.ca[n]>>3,r.ca[n]=(e.ca[t.ca[n]&7]&7|(o+l)%3<<3)<<24>>24}function fi(e,t,r){var n,o,l,i;for(n=0;n<8;n++)l=e.ca[t.ca[n]&7]>>3,i=t.ca[n]>>3,o=l+(l<3?i:6-i),o=o%3+(l<3==i<3?0:3),r.ca[n]=(e.ca[t.ca[n]&7]&7|o<<3)<<24>>24}function ue(){J(),rs(this)}function Ut(e,t,r,n){rs(this),Hr(this.ca,e,8,!1),ls(this,t),Hr(this.ea,r,12,!0),os(this,n)}function yu(e){rs(this),ns(this,e)}function ui(e){return J(),e^Ha>>((e&15)<<1)&3}function No(e,t,r){J();var n,o,l;for(l=Zt[at[0][t]],o=Zt[t],n=0;n<12;n++)r.ea[n]=(l.ea[e.ea[o.ea[n]>>1]>>1]^e.ea[o.ea[n]>>1]&1^o.ea[n]&1)<<24>>24}function Bt(e,t,r){J();var n;for(n=0;n<12;n++)r.ea[n]=(e.ea[t.ea[n]>>1]^t.ea[n]&1)<<24>>24}function dr(e,t,r){J();var n;return n=ss[e],r&&(n=n^Ha>>((n&15)<<1)&3),n&65520|Jt[n&15][t]}function Uu(){return J(),0}function Wp(){var e,t;for(ge[0]=new Ut(15120,0,119750400,0),ge[3]=new Ut(21021,1494,323403417,0),ge[6]=new Ut(8064,1236,29441808,550),ge[9]=new Ut(9,0,5880,0),ge[12]=new Ut(1230,412,2949660,0),ge[15]=new Ut(224,137,328552,137),e=0;e<18;e+=3)for(t=0;t<2;t++)ge[e+t+1]=new ue,Bt(ge[e+t],ge[e],ge[e+t+1]),Rr(ge[e+t],ge[e],ge[e+t+1])}function Kp(){J();var e,t,r;for(is(40320,Tn,Xt,fs=X(Fe,De,0,2768,7,1),2),e=new ue,r=0;r<2768;r++)Au(e,Tn[r]),In[r]=Nn(e.ea,0,!0)+Ls(Tn[r],8)*70<<24>>24,si(e),ss[r]=Xt[st(e.ea,8,!0)];for(t=0;t<24;t++)Hr(e.ea,t,12,!0),si(e),gi[t]=st(e.ea,12,!0)%24<<24>>24}function Qp(){var e,t,r,n,o,l,i,a,f,s,g,c,u,m,p,L;for(e=new ue,t=new ue,r=new Ut(28783,0,259268407,0),L=new Ut(15138,0,119765538,7),c=new Ut(5167,0,83473207,0),o=0;o<8;o++)c.ca[o]=Zl(c.ca[o]|24);for(l=0;l<16;l++)Zt[l]=new yu(e),fi(e,L,t),Bt(e,L,t),p=t,t=e,e=p,l%4==3&&(fi(p,c,t),Bt(p,c,t),p=t,t=e,e=p),l%8==7&&(fi(p,r,t),Bt(p,r,t),p=t,t=e,e=p);for(i=0;i<16;i++)for(f=0;f<16;f++)for(fi(Zt[i],Zt[f],e),g=0;g<16;g++)if(ei(Zt[g].ca,e.ca)){Jt[i][f]=g,at[g][f]=i;break}for(s=0;s<18;s++)for(m=0;m<16;m++){for(Io(ge[s],at[0][m],e),u=0;u<18;u++)if(ei(ge[u].ca,e.ca)){Oo[m][s]=u,Fr[m][(Ve(),On)[s]]=On[u];break}m%2==0&&(Vr[s<<3|m>>1]=Oo[m][s])}for(n=0;n<18;n++)for(ci[n]=hu(ge[n]),a=n,m=0;m<48;m++)Oo[m%16][a]<n&&(wu[m]|=1<<n),m%16==15&&(a=mi[2][a])}function is(e,t,r,n,o){J();var l,i,a,f,s,g,c,u,m;for(l=new ue,a=new ue,i=0,s=0,m=o>=2?1:2,g=o!=1,f=0;f<e;f++)if(r[f]==0){switch(o){case 0:os(l,f);break;case 1:ls(l,f);break;case 2:Hr(l.ea,f,8,!0)}for(c=0;c<16;c+=m){switch(g?No(l,c,a):Io(l,c,a),o){case 0:s=ii(a);break;case 1:s=ai(a);break;case 2:s=st(a.ea,8,!0)}o==0&&(Dr[i<<3|c>>1]=s&je),s==f&&(n[i]=(n[i]|1<<~~(c/m))&je),u=~~((i<<4|c)/m),r[s]=u&je}t[i++]=f&je}return i}function jp(e,t,r,n,o,l,i,a){var f,s,g,c,u;if(c=pr(it((Qr(),zn),(i>>4)*140+jr[(J(),In)[a>>4]&255][at[i&15][a&15]]),pr(it(zn,n*140+jr[In[t]&255][at[o][r]]),it(ti,t*24+To[l][r]))),c>e.maxDep2)return c-e.maxDep2;for(f=e.maxDep2;f>=c&&(u=vu(e,n,o,t,r,l,f,e.depth1,10),!(u<0));f--){for(f-=u,e.solLen=0,e.solution=new Gu,Jp(e.solution,e.verbose,e.urfIdx,e.depth1),g=0;g<e.depth1+f;g++)Pu(e.solution,e.move[g]);for(s=e.preMoveLen-1;s>=0;s--)Pu(e.solution,e.preMoves[s]);e.solLen=e.solution.length_0}return f!=e.maxDep2?(e.maxDep2=es(ku,e.solLen-e.length1-1),cu(e.probe,e.probeMin)?0:1):1}function qp(e){var t,r,n,o,l,i,a,f,s,g,c,u,m,p,L;if(e.isRec=!1,cu(e.probe,e.solution?e.probeMin:e.probeMax))return 0;for(e.probe=hp(e.probe,{l:1,m:0,h:0}),n=e.valid1;n<e.depth1;n++)Rr(e.phase1Cubie[n],(J(),ge)[e.move[n]],e.phase1Cubie[n+1]),Bt(e.phase1Cubie[n],ge[e.move[n]],e.phase1Cubie[n+1]);for(e.valid1=e.depth1,a=Tp(e.phase1Cubie[e.depth1]),f=a&15,a>>=4,s=Ip(e.phase1Cubie[e.depth1]),g=s&15,s>>=4,c=st(e.phase1Cubie[e.depth1].ea,12,!0)%24,r=dr(s,g,!1),t=dr(a,f,!0),o=e.depth1==0?-1:e.move[e.depth1-1],l=e.preMoveLen==0?-1:e.preMoves[e.preMoveLen-1],L=0,p=(e.preMoveLen==0?1:2)*(e.depth1==0?1:2),u=0,m=(1<<p)-1;u<p;u++){if((m>>u&1)!=0){if(m&=~(1<<u),L=jp(e,a,f,s,g,c,r,t),L==0||L>2)break;L==2&&(m&=4<<u)}if(m==0)break;(u&1)==0&&e.depth1>0?(i=(Ve(),On)[~~(o/3)*3+1],e.move[e.depth1-1]=bt[i]*2-e.move[e.depth1-1],c=(Qr(),Pn)[c][i],a=kn[a][(J(),Fr)[f][i]],f=Jt[a&15][f],a>>=4,s=_n[s][Fr[g][i]],g=Jt[s&15][g],s>>=4,t=dr(a,f,!0),r=dr(s,g,!1)):e.preMoveLen>0&&(i=(Ve(),On)[~~(l/3)*3+1],e.preMoves[e.preMoveLen-1]=bt[i]*2-e.preMoves[e.preMoveLen-1],c=(J(),gi)[(Qr(),Pn)[gi[c]][i]],a=kn[t>>4][Fr[t&15][i]],t=a&-16|Jt[a&15][t&15],a=dr(t>>4,t&15,!0),f=a&15,a>>=4,s=_n[r>>4][Fr[r&15][i]],r=s&-16|Jt[s&15][r&15],s=dr(r>>4,r&15,!1),g=s&15,s>>=4)}return e.depth1>0&&(e.move[e.depth1-1]=o),e.preMoveLen>0&&(e.preMoves[e.preMoveLen-1]=l),L==0?0:2}function Vp(e){var t;for(e.conjMask=0,e.selfSym=hu(e.cc),e.conjMask|=Ja(It(Wr(e.selfSym,16),{l:je,m:0,h:0}),{l:0,m:0,h:0})?18:0,e.conjMask|=Ja(It(Wr(e.selfSym,32),{l:je,m:0,h:0}),{l:0,m:0,h:0})?36:0,e.conjMask|=Ja(It(Wr(e.selfSym,48),{l:je,m:0,h:0}),{l:0,m:0,h:0})?56:0,e.selfSym=It(e.selfSym,{l:$e,m:$e,h:15}),e.maxPreMoves=e.conjMask>7?0:20,t=0;t<6;t++)ns(e.urfCubieCube[t],e.cc),Ru(e.urfCoordCube[t],e.urfCubieCube[t],20),Fu(e.cc),t%3==2&&si(e.cc)}function xu(e,t,r,n,o){var l,i,a,f,s,g;if(t.prun==0&&n<5)return e.allowShorter||n==0?(e.depth1-=n,s=qp(e),e.depth1+=n,s):1;for(g=Uu(Xa(r)),l=0;l<18;l+=3)if(!(l==o||l==o-9)){for(a=0;a<3;a++)if(i=l+a,!(e.isRec&&i!=e.move[e.depth1-n]||g!=0&&(g&1<<i)!=0)){if(f=vp(e.nodeUD[n],t,i),f>n)break;if(f==n)continue;if(f=Ep(e.nodeUD[n],t,i),f>n)break;if(f==n)continue;if(e.move[e.depth1-n]=i,e.valid1=es(e.valid1,e.depth1-n),s=xu(e,e.nodeUD[n],r&Kr((J(),ci)[i]),n-1,l),s==0)return 0;if(s>=2)break}}return 1}function Su(e,t,r,n,o){var l,i,a;if(e.preMoveLen=e.maxPreMoves-t,(e.isRec?e.depth1==e.length1-e.preMoveLen:e.preMoveLen==0||(225207>>r&1)==0)&&(e.depth1=e.length1-e.preMoveLen,e.phase1Cubie[0]=n,e.allowShorter=e.depth1==ps&&e.preMoveLen!=0,Ru(e.nodeUD[e.depth1+1],n,e.depth1)&&xu(e,e.nodeUD[e.depth1+1],o,e.depth1,-1)==0))return 0;if(t==0||e.preMoveLen+ps>=e.length1)return 1;for(a=Uu(Xa(o)),(t==1||e.preMoveLen+1+ps>=e.length1)&&(a|=225207),r=~~(r/3)*3,l=0;l<18;l++){if(l==r||l==r-9||l==r+9){l+=2;continue}if(!(e.isRec&&l!=e.preMoves[e.maxPreMoves-t]||(a&1<<l)!=0)&&(Rr((J(),ge)[l],n,e.preMoveCubes[t]),Bt(ge[l],n,e.preMoveCubes[t]),e.preMoves[e.maxPreMoves-t]=l,i=Su(e,t-1,l,e.preMoveCubes[t],o&Kr(ci[l])),i==0))return 0}return 1}function vu(e,t,r,n,o,l,i,a,f){var s,g,c,u,m,p,L,R,D,A,y;if(t==0&&n==0&&l==0)return i;for(D=(Ve(),Qo)[f],L=0;L<10;L++){if((D>>L&1)!=0){L+=66>>L&3;continue}if(R=(Qr(),Pn)[l][L],g=kn[n][(J(),Fr)[o][L]],c=Jt[g&15][o],g>>=4,m=_n[t][Fr[r][L]],p=Jt[m&15][r],m>>=4,u=dr(m,p,!1),s=dr(g,c,!0),A=it(zn,(u>>4)*140+jr[In[s>>4]&255][at[u&15][s&15]]),A>i+1)return i-A+1;if(A>=i){L+=66>>L&3&i-A;continue}if(A=pr(it(ti,g*24+To[R][c]),it(zn,m*140+jr[In[g]&255][at[p][c]])),A>=i){L+=66>>L&3&i-A;continue}if(y=vu(e,m,p,g,c,R,i-1,a+1,L),y>=0)return e.move[a]=bt[L],y;if(y<-2)break;y<-1&&(L+=66>>L&3)}return-1}function Hp(e){for(e.length1=e.isRec?e.length1:0;e.length1<e.solLen;e.length1++)for(e.maxDep2=es(ku,e.solLen-e.length1-1),e.urfIdx=e.isRec?e.urfIdx:0;e.urfIdx<6;e.urfIdx++)if((e.conjMask&1<<e.urfIdx)==0&&Su(e,e.maxPreMoves,-30,e.urfCubieCube[e.urfIdx],Kr(It(e.selfSym,{l:je,m:0,h:0})))==0)return e.solution?Mu(e.solution):"Error 8";return e.solution?Mu(e.solution):"Error 7"}function Yp(e,t){var r;return r=Zp(e,t),r!=0?"Error "+(r<0?-r:r):(e.solLen=22,e.probe={l:0,m:0,h:0},e.probeMax={l:3531008,m:23,h:0},e.probeMin={l:0,m:0,h:0},e.verbose=0,e.solution=null,e.isRec=!1,du(!1),Vp(e),Hp(e))}function Zp(e,t){var r,n,o,l;for(n=0,o=X(re,ae,0,54,7,1),r=Up(te(ee(Fe,1),De,0,7,[t.charCodeAt(4),t.charCodeAt(13),t.charCodeAt(22),t.charCodeAt(31),t.charCodeAt(40),t.charCodeAt(49)])),l=0;l<54;l++){if(o[l]=yp(r,wp(t.charCodeAt(l)))<<24>>24,o[l]==-1)return-1;n+=1<<(o[l]<<2)}return n!=10066329?-1:(Xp(o,e.cc),Op(e.cc))}function Eu(){var e,t,r;for(this.move=X(ze,ke,0,31,7,1),this.nodeUD=X(li,se,31,21,0,1),this.nodeRL=X(li,se,31,21,0,1),this.nodeFB=X(li,se,31,21,0,1),this.cc=new ue,this.urfCubieCube=X(Ko,se,7,6,0,1),this.urfCoordCube=X(li,se,31,6,0,1),this.phase1Cubie=X(Ko,se,7,21,0,1),this.preMoveCubes=X(Ko,se,7,21,0,1),this.preMoves=X(ze,ke,0,20,7,1),t=0;t<21;t++)this.nodeUD[t]=new Mo,this.nodeRL[t]=new Mo,this.nodeFB[t]=new Mo,this.phase1Cubie[t]=new ue;for(r=0;r<6;r++)this.urfCubieCube[r]=new ue,this.urfCoordCube[r]=new Mo;for(e=0;e<20;e++)this.preMoveCubes[e+1]=new ue}function Ve(){if(!zu){zu=!0;var e,t,r,n,o,l;for(Yr=te(ee(re,2),se,10,0,[te(ee(re,1),ae,0,7,[8,9,20]),te(ee(re,1),ae,0,7,[6,18,38]),te(ee(re,1),ae,0,7,[0,36,47]),te(ee(re,1),ae,0,7,[2,45,11]),te(ee(re,1),ae,0,7,[29,26,15]),te(ee(re,1),ae,0,7,[27,44,24]),te(ee(re,1),ae,0,7,[33,53,42]),te(ee(re,1),ae,0,7,[35,17,51])]),er=te(ee(re,2),se,10,0,[te(ee(re,1),ae,0,7,[5,10]),te(ee(re,1),ae,0,7,[7,19]),te(ee(re,1),ae,0,7,[3,37]),te(ee(re,1),ae,0,7,[1,46]),te(ee(re,1),ae,0,7,[32,16]),te(ee(re,1),ae,0,7,[28,25]),te(ee(re,1),ae,0,7,[30,43]),te(ee(re,1),ae,0,7,[34,52]),te(ee(re,1),ae,0,7,[23,12]),te(ee(re,1),ae,0,7,[21,41]),te(ee(re,1),ae,0,7,[50,39]),te(ee(re,1),ae,0,7,[48,14])]),$t=et(ze,[se,ke],[17,0],7,[13,13],2),Bs=te(ee(xp,1),se,2,4,["U ","U2","U'","R ","R2","R'","F ","F2","F'","D ","D2","D'","L ","L2","L'","B ","B2","B'"]),bt=te(ee(ze,1),ke,0,7,[0,1,2,4,7,9,10,11,13,16,3,5,6,8,12,14,15,17]),On=X(ze,ke,0,18,7,1),Qo=X(ze,ke,0,11,7,1),t=0;t<18;t++)On[bt[t]]=t;for(r=0;r<10;r++)for(n=~~(bt[r]/3),Qo[r]=0,o=0;o<10;o++)l=~~(bt[o]/3),Qo[r]|=(n==l||n%3==l%3&&n>=l?1:0)<<o;for(Qo[10]=0,e=0;e<13;e++)for($t[e][0]=$t[e][e]=1,o=1;o<e;o++)$t[e][o]=$t[e-1][o-1]+$t[e-1][o]}}function Nn(e,t,r){Ve();var n,o,l,i,a;for(n=e.length-1,l=0,a=4,o=n;o>=0;o--)i=_u(e[o],r),(i&12)==t&&(l+=$t[o][a--]);return l}function Ls(e,t){Ve();var r,n;for(n=0,r=t-2;r>=0;r--)n^=e%(t-r),e=~~(e/(t-r));return n&1}function st(e,t,r){Ve();var n,o,l,i;for(o=0,i={l:1323536,m:2777561,h:1043915},n=0;n<t-1;n++)l=_u(e[n],r)<<2,o=(t-n)*o+Kr(It(Wr(i,l),{l:15,m:0,h:0})),i=mu(i,Jl({l:1118480,m:279620,h:69905},l));return o}function _u(e,t){return t?e>>1:e&7}function Cu(e,t,r,n){Ve();var o,l,i,a;for(o=e.length-1,a=4,l=o,i=o;i>=0;i--)t>=$t[i][a]?(t-=$t[i][a--],e[i]=pi(e[i],a|r,n)):((l&12)==r&&(l-=4),e[i]=pi(e[i],l--,n))}function Hr(e,t,r,n){Ve();var o,l,i,a,f,s;for(s={l:1323536,m:2777561,h:1043915},o={l:0,m:0,h:0},a=2;a<=r;a++)o=$a(Jl(o,4),Xa(t%a)),t=~~(t/a);for(l=0;l<r-1;l++)f=(Kr(o)&15)<<2,o=Wr(o,4),e[l]=pi(e[l],Kr(It(Wr(s,f),{l:15,m:0,h:0})),n),i=mu(Jl({l:1,m:0,h:0},f),{l:1,m:0,h:0}),s=$a(It(s,i),It(Wr(s,4),{l:~i.l&$e,m:~i.m&$e,h:~i.h&cr}));e[r-1]=pi(e[r-1],Kr(It(s,{l:15,m:0,h:0})),n)}function pi(e,t,r){return(r?t<<1|e&1:t|e&-8)<<24>>24}function Xp(e,t){Ve();var r,n,o,l,i,a,f,s;for(l=0;l<8;l++)t.ca[l]=0;for(i=0;i<12;i++)t.ea[i]=0;for(a=0;a<8;a++){for(s=0;s<3&&!(e[Yr[a][s]]==0||e[Yr[a][s]]==3);s++);for(r=e[Yr[a][(s+1)%3]],n=e[Yr[a][(s+2)%3]],f=0;f<8;f++)if(r==~~(Yr[f][1]/9)&&n==~~(Yr[f][2]/9)){t.ca[a]=Zl(s%3<<3|f);break}}for(o=0;o<12;o++)for(f=0;f<12;f++){if(e[er[o][0]]==~~(er[f][0]/9)&&e[er[o][1]]==~~(er[f][1]/9)){t.ea[o]=Zl(f<<1);break}if(e[er[o][0]]==~~(er[f][1]/9)&&e[er[o][1]]==~~(er[f][0]/9)){t.ea[o]=Zl(f<<1|1);break}}}function Pu(e,t){var r,n,o;if(e.length_0==0){e.moves[e.length_0++]=t;return}if(r=~~(t/3),n=~~(e.moves[e.length_0-1]/3),r==n){o=(t%3+e.moves[e.length_0-1]%3+1)%4,o==3?--e.length_0:e.moves[e.length_0-1]=r*3+o;return}if(e.length_0>1&&r%3==n%3&&r==~~(e.moves[e.length_0-2]/3)){o=(t%3+e.moves[e.length_0-2]%3+1)%4,o==3?(e.moves[e.length_0-2]=e.moves[e.length_0-1],--e.length_0):e.moves[e.length_0-2]=r*3+o;return}e.moves[e.length_0++]=t}function Jp(e,t,r,n){e.verbose=t,e.urfIdx=r,e.depth1=n}function Mu(e){var t,r,n;if(r=new Sp,n=(e.verbose&2)!=0?(e.urfIdx+3)%6:e.urfIdx,n<3)for(t=0;t<e.length_0;t++)(e.verbose&1)!=0&&t==e.depth1&&(r.string+=". "),pu(Lu(r,(Ve(),Bs)[(J(),mi)[n][e.moves[t]]]));else for(t=e.length_0-1;t>=0;t--)pu(Lu(r,(Ve(),Bs)[(J(),mi)[n][e.moves[t]]])),(e.verbose&1)!=0&&t==e.depth1&&(r.string+=". ");return r.string}function Gu(){this.moves=X(ze,ke,0,31,7,1)}var se,$e,cr,cp,je,De,ke,Ha,Co,ae,H,Yl,$l,xp,Bu,jr,ts,kn,zn,_n,Cn,ti,To,Pn,Mn,Gn,Lr,ri,Br,ni,oi,li,Du,Zt,Xt,Tn,qr,as,Dr,gi,In,ss,Vr,Oo,Fr,Jt,at,bu,fs,us,Wo,gs,wu,ge,ci,cs,ms,mi,Ko,ku,ps,zu,$t,Qo,Yr,er,Bs,On,bt,ze,$p,re,eL,Fe,tL,rL,Iu=b(()=>{se={3:1},$e=4194303,cr=1048575,cp=524288,je=65535,De={11:1,3:1},ke={17:1,3:1},Ha=14540032,Co=286331153,ae={10:1,3:1},Yl={};Po(1,null,{},Bp);Po(79,1,{},Ya);H.createClassLiteralForArray=function(t){var r;return r=new Ya,r.modifiers=4,t>1?r.componentType=su(this,t-1):r.componentType=this,r};H.isPrimitive=function(){return(this.modifiers&1)!=0};xp=mr("java.lang","String",2);Bu=!1;Po(31,1,{31:1},Mo);H.flip=0;H.flipc=0;H.fsym=0;H.prun=0;H.slice_0=0;H.tsym=0;H.twist=0;H.twistc=0;oi=0,li=mr("org.cubing.min2phase.client","CoordCube",31),Du=!1;Ko=mr("org.cubing.min2phase.client","CubieCube",7);Po(72,1,{},Eu);H.allowShorter=!1;H.conjMask=0;H.depth1=0;H.isRec=!1;H.length1=0;H.maxDep2=0;H.maxPreMoves=0;H.preMoveLen=0;H.probe={l:0,m:0,h:0};H.probeMax={l:0,m:0,h:0};H.probeMin={l:0,m:0,h:0};H.selfSym={l:0,m:0,h:0};H.solLen=0;H.urfIdx=0;H.valid1=0;H.verbose=0;ku=12,ps=7,zu=!1;Po(150,1,{},Gu);H.depth1=0;H.length_0=0;H.urfIdx=0;H.verbose=0;ze=Xl("int","I");mr("com.google.gwt.lang","CollapsedPropertyHolder",252);mr("com.google.gwt.lang","JavaClassHierarchySetupUtil",254);$p=mr("com.google.gwt.lang","LongLibBase/LongEmul",null);mr("com.google.gwt.lang","ModuleUtils",257);re=Xl("byte","B"),eL=Xl("long","J"),Fe=Xl("char","C");mr("com.google.gwt.user.client.rpc","XsrfToken",null),Rp("java.util","Map/Entry");tL=function(){du(!1)},rL=function(e){return Yp(new Eu,e)}});async function Nu(){let e=await ve["3x3x3"].kpuzzle(),t=e.startState();for(let r of lu)t=t.applyAlg(z.fromString((await Yt())(r)));return nu(e,t)?t:Nu()}function Ou(){return nL??(nL=Promise.resolve().then(()=>(Iu(),Tu)))}async function Rs(e){return gt(),z.fromString((await Ou()).solveState(eu(e)))}async function Wn(){return Rs(await Nu())}async function Wu(){(await Ou()).initialize()}async function Ku(){return En(await Wn(),oL)}async function ju(){let e=new mt,t=await Wn();return e.experimentalPushAlg(Qu),e.experimentalPushAlg(t),e.experimentalPushAlg(Qu),e.toAlg()}var nL,oL,Qu,ds=b(()=>{Re();Vt();Mt();Ht();Hl();tu();ou();iu();nL=null;oL=[[null,"Rw","Rw2","Rw'","Fw","Fw'"],[null,"Dw","Dw2","Dw'"]];Qu=new z("R' U' F")});function fe(e,...t){let r=t.length,n=e[t[r-1]];for(let o=r;o>0;o--)e[t[o]]=e[t[o-1]];return e[t[0]]=n,fe}function qu(e,t,r,n){r=(r||8)-1;let o=1985229328,l=0;n??(n=0),n<0&&(t<<=1);for(let i=0;i<r;++i){let a=Ds[r-i],f=~~(t/a);l^=f,t%=a,f<<=2,e[i]=o>>f&7;let s=(1<<f)-1;o=(o&s)+(o>>4&~s)}return n<0&&(l&1)!=0?(e[r]=e[r-1],e[r-1]=o&7):e[r]=o&7,e}var me,Ds,Vu=b(()=>{me=[],Ds=[1];for(let e=0;e<32;++e){me[e]=[];for(let t=0;t<32;++t)me[e][t]=0}for(let e=0;e<32;++e){me[e][0]=me[e][e]=1,Ds[e+1]=Ds[e]*(e+1);for(let t=1;t<e;++t)me[e][t]=me[e-1][t-1]+me[e-1][t]}});var eg={};ye(eg,{initialize:()=>DB,random444Scramble:()=>FB});function T(e,t){let r=new Array(e);if(t!==void 0)for(let n=0;n<e;n++)r[n]=new Array(t);return r}function gL(e){return new jo[e]}function ct(e,t,r,...n){let o=jo[e];o&&!o.___clazz$?Y=o.prototype:(!o&&(o=jo[e]=function(){}),Y=o.prototype=t<0?{}:gL(t),Y.castableTypeMap$=r);for(let l of n)l.prototype=Y;o.___clazz$&&(Y.___clazz$=o.___clazz$,o.___clazz$=null)}function hr(e){let t={};for(let r=0,n=e.length;r<n;++r)t[e[r]]=1;return t}function Xu(){}function cL(e,t){let r=Ju(0,t);return $u(e.___clazz$,e.castableTypeMap$,e.queryId$,r),r}function Ju(e,t){let r=new Array(t);if(e===3)for(let n=0;n<t;++n){let o={m:0,l:0,h:0};o.l=o.m=o.h=0,r[n]=o}else if(e>0){let n=[null,0,!1][e];for(let o=0;o<t;++o)r[o]=n}return r}function As(e,t,r,n,o){let l=Ju(o,n);return $u(e,t,r,l),l}function $u(e,t,r,n){return t1(),pL(n,ys,Us),n.___clazz$=e,n.castableTypeMap$=t,n.queryId$=r,n}function Li(e,t,r){return e[t]=r}function t1(){e1||(e1=!0,ys=[],Us=[],mL(new Xu,ys,Us))}function mL(e,t,r){let n=0,o;for(let l in e)(o=e[l])&&(t[n]=l,r[n]=o,++n)}function pL(e,t,r){t1();for(let n=0,o=t.length;n<o;++n)e[t[n]]=r[n]}function LL(e,t){return e.castableTypeMap$&&!!e.castableTypeMap$[t]}function BL(e,t){return e!==null&&LL(e,t)}function RL(){if(r1)return!1;r1=!0,Fi=T(15582,36),hi=T(15582),xt=T(15582),jn=T(48,48),St=T(48,36),Qn=T(48),xs=T(48)}function bs(e){e.ct=T(24)}function n1(e,t){let r,n;if(BL(t,Yu)){for(r=t,n=0;n<24;++n)if(e.ct[n]!==r.ct[n])return!1;return!0}return!1}function Bi(e){let t,r,n;for(r=0,n=8,t=23;t>=0;--t)e.ct[t]===1&&(r+=me[t][n--]);return r}function Ri(e){let t,r;if(Kn!==null)return Kn[Bi(e)];for(r=0;r<48;++r){if(t=yL(Bi(e)),t!==-1)return t*64+r;ie(e,0),r%2==1&&ie(e,1),r%8==7&&ie(e,2),r%16==15&&ie(e,3)}}function wt(e,t){let r=t%3;switch(t=~~(t/3),t){case 0:F(e.ct,0,1,2,3,r);break;case 1:F(e.ct,16,17,18,19,r);break;case 2:F(e.ct,8,9,10,11,r);break;case 3:F(e.ct,4,5,6,7,r);break;case 4:F(e.ct,20,21,22,23,r);break;case 5:F(e.ct,12,13,14,15,r);break;case 6:F(e.ct,0,1,2,3,r),F(e.ct,8,20,12,16,r),F(e.ct,9,21,13,17,r);break;case 7:F(e.ct,16,17,18,19,r),F(e.ct,1,15,5,9,r),F(e.ct,2,12,6,10,r);break;case 8:F(e.ct,8,9,10,11,r),F(e.ct,2,19,4,21,r),F(e.ct,3,16,5,22,r);break;case 9:F(e.ct,4,5,6,7,r),F(e.ct,10,18,14,22,r),F(e.ct,11,19,15,23,r);break;case 10:F(e.ct,20,21,22,23,r),F(e.ct,0,8,4,14,r),F(e.ct,3,11,7,13,r);break;case 11:F(e.ct,12,13,14,15,r),F(e.ct,1,20,7,18,r),F(e.ct,0,23,6,17,r)}}function ie(e,t){switch(t){case 0:wt(e,19),wt(e,28);break;case 1:wt(e,21),wt(e,32);break;case 2:F(e.ct,0,3,1,2,1),F(e.ct,8,11,9,10,1),F(e.ct,4,7,5,6,1),F(e.ct,12,15,13,14,1),F(e.ct,16,19,21,22,1),F(e.ct,17,18,20,23,1);break;case 3:wt(e,18),wt(e,29),wt(e,24),wt(e,35)}}function o1(e,t){let r;for(r=0;r<t;++r)ie(e,0),r%2==1&&ie(e,1),r%8==7&&ie(e,2),r%16==15&&ie(e,3)}function ws(e,t){let r,n;for(n=8,r=23;r>=0;--r)e.ct[r]=0,t>=me[r][n]&&(t-=me[r][n--],e.ct[r]=1)}function di(e,t){let r;for(r=0;r<24;++r)e.ct[r]=t.ct[r]}function qo(){let e;for(bs(this),e=0;e<8;++e)this.ct[e]=1;for(e=8;e<24;++e)this.ct[e]=0}function Di(e,t){let r;for(bs(this),r=0;r<24;++r)this.ct[r]=~~(e.ct[r]/2)===t?1:0}function Vo(e){let t;for(bs(this),t=0;t<24;++t)this.ct[t]=e[t]}function dL(){let e,t,r=new qo,n=new qo;for(e=0;e<15582;++e)for(ws(n,hi[e]),t=0;t<36;++t)di(r,n),wt(r,t),Fi[e][t]=Ri(r)}function DL(){let e,t,r,n,o,l,i,a;for(Ii(xt),xt[0]=0,t=0,r=1;r!==15582;)for(l=t>4,a=l?-1:t,e=l?t:-1,++t,n=0;n<15582;++n)if(xt[n]===a){for(i=0;i<27;++i)if(o=~~Fi[n][i]>>>6,xt[o]===e)if(++r,l){xt[n]=t;break}else xt[o]=t}}function FL(e){let t,r,n,o=new Vo(e.ct);for(n=0;n<48;++n){for(t=!0,r=0;r<24;++r)if(o.ct[r]!==~~(r/4)){t=!1;break}if(t)return n;ie(o,0),n%2==1&&ie(o,1),n%8==7&&ie(o,2),n%16==15&&ie(o,3)}return-1}function hL(){let e,t,r,n=new qo;for(e=0;e<24;++e)n.ct[e]=e;let o=new Vo(n.ct),l=new Vo(n.ct),i=new Vo(n.ct);for(e=0;e<48;++e){for(t=0;t<48;++t){for(r=0;r<48;++r)n1(n,o)&&(jn[e][t]=r,r===0&&(Qn[e]=t)),ie(o,0),r%2==1&&ie(o,1),r%8==7&&ie(o,2),r%16==15&&ie(o,3);ie(n,0),t%2==1&&ie(n,1),t%8==7&&ie(n,2),t%16==15&&ie(n,3)}ie(n,0),e%2==1&&ie(n,1),e%8==7&&ie(n,2),e%16==15&&ie(n,3)}for(e=0;e<48;++e)for(di(n,l),o1(n,Qn[e]),t=0;t<36;++t)for(di(o,n),wt(o,t),o1(o,e),r=0;r<36;++r)if(di(i,l),wt(i,r),n1(i,o)){St[e][t]=r;break}for(ws(n,0),e=0;e<48;++e)xs[Qn[e]]=Bi(n),ie(n,0),e%2==1&&ie(n,1),e%8==7&&ie(n,2),e%16==15&&ie(n,3)}function AL(){let e,t,r,n,o=new qo,l=T(22984);for(t=0;t<22984;t++)l[t]=0;for(e=0,t=0;t<735471;++t)if((l[~~t>>>5]&1<<(t&31))==0){for(ws(o,t),n=0;n<48;++n)r=Bi(o),l[~~r>>>5]|=1<<(r&31),Kn!==null&&(Kn[r]=e<<6|Qn[n]),ie(o,0),n%2==1&&ie(o,1),n%8==7&&ie(o,2),n%16==15&&ie(o,3);hi[e++]=t}}function yL(e){let t=uB(hi,e);return t>=0?t:-1}function UL(){l1||(l1=!0,bi=T(70,28),Ui=T(6435,28),g1=T(70,16),f1=T(6435,16),tt=T(450450),u1=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,1,0,1,0,0,0])}function Ai(e){let t,r,n;for(r=0,n=8,t=14;t>=0;--t)e.ct[t]!==e.ct[15]&&(r+=me[t][n--]);return r}function yi(e){let t,r,n;for(r=0,n=4,t=6;t>=0;--t)e.rl[t]!==e.rl[7]&&(r+=me[t][n--]);return r*2+e.parity}function qn(e,t){e.parity^=u1[t];let r=t%3;switch(t=~~(t/3),t){case 0:F(e.ct,0,1,2,3,r);break;case 1:F(e.rl,0,1,2,3,r);break;case 2:F(e.ct,8,9,10,11,r);break;case 3:F(e.ct,4,5,6,7,r);break;case 4:F(e.rl,4,5,6,7,r);break;case 5:F(e.ct,12,13,14,15,r);break;case 6:F(e.ct,0,1,2,3,r),F(e.rl,0,5,4,1,r),F(e.ct,8,9,12,13,r);break;case 7:F(e.rl,0,1,2,3,r),F(e.ct,1,15,5,9,r),F(e.ct,2,12,6,10,r);break;case 8:F(e.ct,8,9,10,11,r),F(e.rl,0,3,6,5,r),F(e.ct,3,2,5,4,r);break;case 9:F(e.ct,4,5,6,7,r),F(e.rl,3,2,7,6,r),F(e.ct,11,10,15,14,r);break;case 10:F(e.rl,4,5,6,7,r),F(e.ct,0,8,4,14,r),F(e.ct,3,11,7,13,r);break;case 11:F(e.ct,12,13,14,15,r),F(e.rl,1,4,7,2,r),F(e.ct,1,0,7,6,r)}}function Vn(e,t){switch(t){case 0:qn(e,19),qn(e,28);break;case 1:qn(e,21),qn(e,32);break;case 2:F(e.ct,0,3,1,2,1),F(e.ct,8,11,9,10,1),F(e.ct,4,7,5,6,1),F(e.ct,12,15,13,14,1),F(e.rl,0,3,5,6,1),F(e.rl,1,2,4,7,1)}}function i1(e,t,r){let n;for(n=0;n<16;++n)e.ct[n]=~~(t.ct[n]/2);for(n=0;n<8;++n)e.rl[n]=t.ct[n+16];e.parity=r}function a1(e,t){let r,n;for(n=8,e.ct[15]=0,r=14;r>=0;--r)t>=me[r][n]?(t-=me[r][n--],e.ct[r]=1):e.ct[r]=0}function s1(e,t){let r,n;for(e.parity=t&1,t>>>=1,n=4,e.rl[7]=0,r=6;r>=0;--r)t>=me[r][n]?(t-=me[r][n--],e.rl[r]=1):e.rl[r]=0}function Ss(){this.rl=T(8),this.ct=T(16)}function bL(){let e,t,r,n,o,l,i,a,f,s,g=new Ss;for(o=0;o<70;++o)for(a=0;a<28;++a)s1(g,o),qn(g,Xr[a]),bi[o][a]=yi(g);for(o=0;o<70;++o)for(s1(g,o),i=0;i<16;++i)g1[o][i]=yi(g),Vn(g,0),i%2==1&&Vn(g,1),i%8==7&&Vn(g,2);for(o=0;o<6435;++o)for(a1(g,o),i=0;i<16;++i)f1[o][i]=Ai(g)&65535,Vn(g,0),i%2==1&&Vn(g,1),i%8==7&&Vn(g,2);for(o=0;o<6435;++o)for(a=0;a<28;++a)a1(g,o),qn(g,Xr[a]),Ui[o][a]=Ai(g)&65535;for(Ii(tt),tt[0]=tt[18]=tt[28]=tt[46]=tt[54]=tt[56]=0,r=0,n=6;n!==450450;){let c=r>6,u=c?-1:r,m=c?r:-1;for(++r,o=0;o<450450;++o)if(tt[o]===u){for(e=~~(o/70),f=o%70,a=0;a<23;++a)if(t=Ui[e][a],s=bi[f][a],l=t*70+s,tt[l]===m)if(++n,c){tt[o]=r;break}else tt[l]=r}}}function wL(){c1||(c1=!0,Ho=T(29400,20),p1=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1],Ar=T(29400),ks=[0,9,14,23,27,28,41,42,46,55,60,69],zs=T(70))}function vs(e){let t,r,n,o;for(r=0,o=4,t=6;t>=0;--t)e.ud[t]!==e.ud[7]&&(r+=me[t][o--]);for(r*=35,o=4,t=6;t>=0;--t)e.fb[t]!==e.fb[7]&&(r+=me[t][o--]);r*=12;let l=e.fb[7]^e.ud[7];for(n=0,o=4,t=7;t>=0;--t)e.rl[t]!==l&&(n+=me[t][o--]);return e.parity+2*(r+zs[n])}function xL(e,t){switch(e.parity^=p1[t],t){case 0:case 1:case 2:F(e.ud,0,1,2,3,t%3);break;case 3:F(e.rl,0,1,2,3,1);break;case 4:case 5:case 6:F(e.fb,0,1,2,3,(t-1)%3);break;case 7:case 8:case 9:F(e.ud,4,5,6,7,(t-1)%3);break;case 10:F(e.rl,4,5,6,7,1);break;case 11:case 12:case 13:F(e.fb,4,5,6,7,(t+1)%3);break;case 14:F(e.ud,0,1,2,3,1),F(e.rl,0,5,4,1,1),F(e.fb,0,5,4,1,1);break;case 15:F(e.rl,0,1,2,3,1),F(e.fb,1,4,7,2,1),F(e.ud,1,6,5,2,1);break;case 16:F(e.fb,0,1,2,3,1),F(e.ud,3,2,5,4,1),F(e.rl,0,3,6,5,1);break;case 17:F(e.ud,4,5,6,7,1),F(e.rl,3,2,7,6,1),F(e.fb,3,2,7,6,1);break;case 18:F(e.rl,4,5,6,7,1),F(e.fb,0,3,6,5,1),F(e.ud,0,3,4,7,1);break;case 19:F(e.fb,4,5,6,7,1),F(e.ud,0,7,6,1,1),F(e.rl,1,4,7,2,1)}}function m1(e,t,r){let n,o=(t.ct[0]>t.ct[8]?1:0)^(t.ct[8]>t.ct[16]?1:0)^(t.ct[0]>t.ct[16]?1:0)?1:0;for(n=0;n<8;++n)e.ud[n]=t.ct[n]&1^1,e.fb[n]=t.ct[n+8]&1^1,e.rl[n]=t.ct[n+16]&1^1^o;e.parity=o^r}function SL(e,t){let r,n,o,l;for(e.parity=t&1,t>>>=1,o=ks[t%12],t=~~(t/12),l=4,r=7;r>=0;--r)e.rl[r]=0,o>=me[r][l]&&(o-=me[r][l--],e.rl[r]=1);for(n=t%35,t=~~(t/35),l=4,e.fb[7]=0,r=6;r>=0;--r)n>=me[r][l]?(n-=me[r][l--],e.fb[r]=1):e.fb[r]=0;for(l=4,e.ud[7]=0,r=6;r>=0;--r)t>=me[r][l]?(t-=me[r][l--],e.ud[r]=1):e.ud[r]=0}function Es(){this.ud=T(8),this.rl=T(8),this.fb=T(8)}function vL(){let e,t,r,n;for(r=0;r<12;++r)zs[ks[r]]=r;let o=new Es;for(r=0;r<29400;++r)for(n=0;n<20;++n)SL(o,r),xL(o,n),Ho[r][n]=vs(o)&65535;for(Ii(Ar),Ar[0]=0,e=0,t=1;t!==29400;){for(r=0;r<29400;++r)if(Ar[r]===e)for(n=0;n<17;++n)Ar[Ho[r][n]]===-1&&(Ar[Ho[r][n]]=e+1,++t);++e}}function EL(e,t){let r;for(r=0;r<24;++r)e.ct[r]=t.ct[r]}function kL(e,t){let r=t%3;switch(t=~~(t/3),t){case 0:F(e.ct,0,1,2,3,r);break;case 1:F(e.ct,16,17,18,19,r);break;case 2:F(e.ct,8,9,10,11,r);break;case 3:F(e.ct,4,5,6,7,r);break;case 4:F(e.ct,20,21,22,23,r);break;case 5:F(e.ct,12,13,14,15,r);break;case 6:F(e.ct,0,1,2,3,r),F(e.ct,8,20,12,16,r),F(e.ct,9,21,13,17,r);break;case 7:F(e.ct,16,17,18,19,r),F(e.ct,1,15,5,9,r),F(e.ct,2,12,6,10,r);break;case 8:F(e.ct,8,9,10,11,r),F(e.ct,2,19,4,21,r),F(e.ct,3,16,5,22,r);break;case 9:F(e.ct,4,5,6,7,r),F(e.ct,10,18,14,22,r),F(e.ct,11,19,15,23,r);break;case 10:F(e.ct,20,21,22,23,r),F(e.ct,0,8,4,14,r),F(e.ct,3,11,7,13,r);break;case 11:F(e.ct,12,13,14,15,r),F(e.ct,1,20,7,18,r),F(e.ct,0,23,6,17,r)}}function _s(){let e;for(this.ct=T(24),e=0;e<24;++e)this.ct[e]=~~(e/4)}function L1(e){let t,r,n;for(_s.call(this),t=0;t<23;++t)n=t+e(24-t),this.ct[n]!==this.ct[t]&&(r=this.ct[t],this.ct[t]=this.ct[n],this.ct[n]=r)}function zL(){B1||(B1=!0,Rt=T(18),PL())}function R1(e){e.cp=[0,1,2,3,4,5,6,7],e.co=[0,0,0,0,0,0,0,0]}function d1(e,t){let r;for(r=0;r<8;++r)e.cp[r]=t.cp[r],e.co[r]=t.co[r]}function _L(e,t){!e.temps&&(e.temps=new wi),D1(e,Rt[t],e.temps),d1(e,e.temps)}function CL(e,t){let r,n;for(n=0,r=6;r>=0;--r)n+=e.co[r]=t%3,t=~~(t/3);e.co[7]=(15-n)%3}function D1(e,t,r){let n,o,l,i;for(n=0;n<8;++n)r.cp[n]=e.cp[t.cp[n]],l=e.co[t.cp[n]],i=t.co[n],o=l,o=o+(l<3?i:6-i),o=o%3,(l>=3?1:0)^(i>=3?1:0)&&(o=o+3),r.co[n]=o}function wi(){R1(this)}function yr(e,t){R1(this),qu(this.cp,e),CL(this,t)}function F1(e){yr.call(this,e(40320),e(2187))}function PL(){let e,t;for(Rt[0]=new yr(15120,0),Rt[3]=new yr(21021,1494),Rt[6]=new yr(8064,1236),Rt[9]=new yr(9,0),Rt[12]=new yr(1230,412),Rt[15]=new yr(224,137),e=0;e<18;e+=3)for(t=0;t<2;++t)Rt[e+t+1]=new wi,D1(Rt[e+t],Rt[e],Rt[e+t+1])}function ML(){h1||(h1=!0,vt=T(1937880),Ei=T(1538),ki=T(1538),Jn=T(11880),x1=[0,1,6,3,4,5,2,7],Gs=T(160,12),Ts=T(160,12),Ms=[1,1,1,3,12,60,360,2520,20160,181440,1814400,19958400,239500800],Ps=[0,2,4,6,1,3,7,5,8,9,10,11])}function Hn(e,t,r,n,o){let l=e.edgeo[o];e.edgeo[o]=e.edge[n],e.edge[n]=e.edgeo[r],e.edgeo[r]=e.edge[t],e.edge[t]=l}function Yn(e,t){let r,n,o,l,i;for(e.isStd||b1(e),n=0,i=1985229328,l=47768,r=0;r<t;++r)o=e.edge[r]<<2,n*=12-r,o>=32?(n+=l>>o-32&15,l-=4368<<o-32):(n+=i>>o&15,l-=4369,i-=286331152<<o);return n}function A1(e){let t,r=Yn(e,4);t=Jn[r];let n=t&7;t>>=3,Si(e,n);let o=Yn(e,10)%20160;return t*20160+o}function xi(e,t){switch(e.isStd=!1,t){case 0:fe(e.edge,0,4,1,5),fe(e.edgeo,0,4,1,5);break;case 1:Be(e.edge,0,4,1,5),Be(e.edgeo,0,4,1,5);break;case 2:fe(e.edge,0,5,1,4),fe(e.edgeo,0,5,1,4);break;case 3:Be(e.edge,5,10,6,11),Be(e.edgeo,5,10,6,11);break;case 4:fe(e.edge,0,11,3,8),fe(e.edgeo,0,11,3,8);break;case 5:Be(e.edge,0,11,3,8),Be(e.edgeo,0,11,3,8);break;case 6:fe(e.edge,0,8,3,11),fe(e.edgeo,0,8,3,11);break;case 7:fe(e.edge,2,7,3,6),fe(e.edgeo,2,7,3,6);break;case 8:Be(e.edge,2,7,3,6),Be(e.edgeo,2,7,3,6);break;case 9:fe(e.edge,2,6,3,7),fe(e.edgeo,2,6,3,7);break;case 10:Be(e.edge,4,8,7,9),Be(e.edgeo,4,8,7,9);break;case 11:fe(e.edge,1,9,2,10),fe(e.edgeo,1,9,2,10);break;case 12:Be(e.edge,1,9,2,10),Be(e.edgeo,1,9,2,10);break;case 13:fe(e.edge,1,10,2,9),fe(e.edgeo,1,10,2,9);break;case 14:Be(e.edge,0,4,1,5),Be(e.edgeo,0,4,1,5),fe(e.edge,9,11),fe(e.edgeo,8,10);break;case 15:Be(e.edge,5,10,6,11),Be(e.edgeo,5,10,6,11),fe(e.edge,1,3),fe(e.edgeo,0,2);break;case 16:Be(e.edge,0,11,3,8),Be(e.edgeo,0,11,3,8),fe(e.edge,5,7),fe(e.edgeo,4,6);break;case 17:Be(e.edge,2,7,3,6),Be(e.edgeo,2,7,3,6),fe(e.edge,8,10),fe(e.edgeo,9,11);break;case 18:Be(e.edge,4,8,7,9),Be(e.edgeo,4,8,7,9),fe(e.edge,0,2),fe(e.edgeo,1,3);break;case 19:Be(e.edge,1,9,2,10),Be(e.edgeo,1,9,2,10),fe(e.edge,4,6),fe(e.edgeo,5,7)}}function Zn(e,t){switch(e.isStd=!1,t){case 0:xi(e,14),xi(e,17);break;case 1:Hn(e,11,5,10,6),Hn(e,5,10,6,11),Hn(e,1,2,3,0),Hn(e,4,9,7,8),Hn(e,8,4,9,7),Hn(e,0,1,2,3);break;case 2:dt(e,4,5),dt(e,5,4),dt(e,11,8),dt(e,8,11),dt(e,7,6),dt(e,6,7),dt(e,9,10),dt(e,10,9),dt(e,1,1),dt(e,0,0),dt(e,3,3),dt(e,2,2)}}function Si(e,t){for(;t>=2;)t-=2,Zn(e,1),Zn(e,2);t!==0&&Zn(e,0)}function Yo(e,t){let r,n,o,l,i,a;for(i=1985229328,a=47768,o=0,r=0;r<11;++r)if(n=Ms[11-r],l=~~(t/n),t=t%n,o^=l,l<<=2,l>=32){l=l-32,e.edge[r]=a>>l&15;let f=(1<<l)-1;a=(a&f)+(a>>4&~f)}else{e.edge[r]=i>>l&15;let f=(1<<l)-1;i=(i&f)+(i>>>4&~f)+(a<<28),a=a>>4}for((o&1)==0?e.edge[11]=i:(e.edge[11]=e.edge[10],e.edge[10]=i),r=0;r<12;++r)e.edgeo[r]=r;e.isStd=!0}function y1(e,t){let r;for(r=0;r<12;++r)e.edge[r]=t.edge[r],e.edgeo[r]=t.edgeo[r];e.isStd=t.isStd}function U1(e,t){let r,n,o,l;for(e.temp===null&&(e.temp=T(12)),r=0;r<12;++r)e.temp[r]=r,e.edge[r]=t.ep[Ps[r]+12]%12;for(n=1,r=0;r<12;++r)for(;e.edge[r]!==r;)l=e.edge[r],e.edge[r]=e.edge[l],e.edge[l]=l,o=e.temp[r],e.temp[r]=e.temp[l],e.temp[l]=o,n^=1;for(r=0;r<12;++r)e.edge[r]=e.temp[t.ep[Ps[r]]%12];return n}function b1(e){let t;for(e.temp===null&&(e.temp=T(12)),t=0;t<12;++t)e.temp[e.edgeo[t]]=t;for(t=0;t<12;++t)e.edge[t]=e.temp[e.edge[t]],e.edgeo[t]=t;e.isStd=!0}function Be(e,t,r,n,o){let l;l=e[t],e[t]=e[n],e[n]=l,l=e[r],e[r]=e[o],e[o]=l}function dt(e,t,r){let n=e.edge[t];e.edge[t]=e.edgeo[r],e.edgeo[r]=n}function tr(){this.edge=T(12),this.edgeo=T(12)}function GL(){let e,t,r,n,o,l,i,a,f,s,g,c,u,m,p,L,R,D,A,y,k,E,Q=new tr,$=new tr,G=new tr;for(Ii(vt),a=0,vi=1,Cs(vt,0,0);vi!==31006080&&(p=a>9,i=a%3,l=(a+1)%3,s=p?3:i,e=p?i:3,!(a>=9));){for(c=0;c<31006080;c+=16)if(E=vt[~~c>>4],!(!p&&E===-1)){for(g=c,f=c+16;g<f;++g,E>>=2)if((E&3)===s){for(A=~~(g/20160),t=Ei[A],n=g%20160,Yo(Q,t*20160+n),R=0;R<17;++R)if(r=Xn(Q.edge,R<<3,4),y=Jn[r],k=y&7,y>>=3,o=Xn(Q.edge,R<<3|k,10)%20160,u=y*20160+o,Zo(vt,u)===e){if(Cs(vt,p?g:u,l),++vi,p)break;if(D=ki[y],D!==1)for(y1($,Q),xi($,R),Si($,k),L=1;(D=~~D>>1&65535)!=0;++L)(D&1)==1&&(y1(G,$),Si(G,L),m=y*20160+Yn(G,10)%20160,Zo(vt,m)===e&&(Cs(vt,m,l),++vi))}}}++a}}function Zo(e,t){return e[t>>4]>>((t&15)<<1)&3}function Xn(e,t,r){let n,o,l,i,a,f=Ts[t],s=Gs[t];for(o=0,a=1985229328,i=47768,n=0;n<r;++n)l=f[e[s[n]]]<<2,o*=12-n,l>=32?(o+=i>>l-32&15,i-=4368<<l-32):(o+=a>>l&15,i-=4369,a-=286331152<<l);return o}function w1(e){let t,r,n,o,l,i,a,f,s,g,c,u=new tr;if(i=0,l=Zo(vt,e),l===3)return 10;for(;e!==0;)for(l===0?l=2:--l,s=~~(e/20160),t=Ei[s],n=e%20160,Yo(u,t*20160+n),f=0;f<17;++f)if(r=Xn(u.edge,f<<3,4),g=Jn[r],c=g&7,g>>=3,o=Xn(u.edge,f<<3|c,10)%20160,a=g*20160+o,Zo(vt,a)===l){++i,e=a;break}return i}function TL(e,t){let r=Zo(vt,e);return r===3?10:(1227133513<<r>>t&3)+t-1}function IL(){let e,t,r,n=new tr;for(t=0;t<20;++t)for(r=0;r<8;++r){for(Yo(n,0),xi(n,t),Si(n,r),e=0;e<12;++e)Gs[t<<3|r][e]=n.edge[e];for(b1(n),e=0;e<12;++e)Ts[t<<3|r][e]=n.temp[e]}}function NL(){let e,t,r,n,o=new tr,l=T(1485);for(t=0;t<1485;t++)l[t]=0;for(e=0,t=0;t<11880;++t)if((l[~~t>>>3]&1<<(t&7))==0){for(Yo(o,t*Ms[8]),n=0;n<8;++n)r=Yn(o,4),r===t&&(ki[e]=(ki[e]|1<<n)&65535),l[~~r>>3]=l[~~r>>3]|1<<(r&7),Jn[r]=e<<3|x1[n],Zn(o,0),n%2==1&&(Zn(o,1),Zn(o,2));Ei[e++]=t}}function Cs(e,t,r){e[t>>4]^=(3^r)<<((t&15)<<1)}function OL(){S1||(S1=!0)}function WL(e){let t,r,n;for(t=0,n=!1,r=0;r<12;++r)t|=1<<e.ep[r],n=n!==e.ep[r]>=12;return t&=~~t>>12,t===0&&!n}function KL(e,t){let r;for(r=0;r<24;++r)e.ep[r]=t.ep[r]}function QL(e,t){let r=t%3;switch(t=~~(t/3),t){case 0:F(e.ep,0,1,2,3,r),F(e.ep,12,13,14,15,r);break;case 1:F(e.ep,11,15,10,19,r),F(e.ep,23,3,22,7,r);break;case 2:F(e.ep,0,11,6,8,r),F(e.ep,12,23,18,20,r);break;case 3:F(e.ep,4,5,6,7,r),F(e.ep,16,17,18,19,r);break;case 4:F(e.ep,1,20,5,21,r),F(e.ep,13,8,17,9,r);break;case 5:F(e.ep,2,9,4,10,r),F(e.ep,14,21,16,22,r);break;case 6:F(e.ep,0,1,2,3,r),F(e.ep,12,13,14,15,r),F(e.ep,9,22,11,20,r);break;case 7:F(e.ep,11,15,10,19,r),F(e.ep,23,3,22,7,r),F(e.ep,2,16,6,12,r);break;case 8:F(e.ep,0,11,6,8,r),F(e.ep,12,23,18,20,r),F(e.ep,3,19,5,13,r);break;case 9:F(e.ep,4,5,6,7,r),F(e.ep,16,17,18,19,r),F(e.ep,8,23,10,21,r);break;case 10:F(e.ep,1,20,5,21,r),F(e.ep,13,8,17,9,r),F(e.ep,14,0,18,4,r);break;case 11:F(e.ep,2,9,4,10,r),F(e.ep,14,21,16,22,r),F(e.ep,7,15,1,17,r)}}function Is(){let e;for(this.ep=T(24),e=0;e<24;++e)this.ep[e]=e}function v1(e){let t,r,n;for(Is.call(this),t=0;t<23;++t)n=t+e(24-t),n!==t&&(r=this.ep[t],this.ep[t]=this.ep[n],this.ep[n]=r)}function jL(){E1||(E1=!0,Ns=[35,1,34,2,4,6,22,5,19])}function k1(e){e.moveBuffer=T(60)}function qL(e,t){return e.value-t.value}function $n(e,t){let r;for(KL(e.edge,t.edge),EL(e.center,t.center),d1(e.corner,t.corner),e.value=t.value,e.add1=t.add1,e.length1=t.length1,e.length2=t.length2,e.length3=t.length3,e.sym=t.sym,r=0;r<60;++r)e.moveBuffer[r]=t.moveBuffer[r];e.moveLength=t.moveLength,e.edgeAvail=t.edgeAvail,e.centerAvail=t.centerAvail,e.cornerAvail=t.cornerAvail}function Ur(e){for(;e.centerAvail<e.moveLength;)kL(e.center,e.moveBuffer[e.centerAvail++]);return e.center}function z1(e){for(;e.cornerAvail<e.moveLength;)_L(e.corner,e.moveBuffer[e.cornerAvail++]%18);return e.corner}function Xo(e){for(;e.edgeAvail<e.moveLength;)QL(e.edge,e.moveBuffer[e.edgeAvail++]);return e.edge}function VL(e){let t,r,n,o,l,i,a=new Array(e.moveLength-(e.add1?2:0));for(r=0,t=0;t<e.length1;++t)a[r++]=e.moveBuffer[t];for(i=e.sym,t=e.length1+(e.add1?2:0);t<e.moveLength;++t)St[i][e.moveBuffer[t]]>=27?(a[r++]=St[i][e.moveBuffer[t]]-9,o=Ns[St[i][e.moveBuffer[t]]-27],i=jn[i][o]):a[r++]=St[i][e.moveBuffer[t]];let f=jn[Qn[i]][FL(Ur(e))];for(l="",i=f,t=r-1;t>=0;--t)n=a[t],n=~~(n/3)*3+(2-n%3),St[i][n]>=27?(l=l+Os[St[i][n]-9]+" ",o=Ns[St[i][n]-27],i=jn[i][o]):l=l+Os[St[i][n]]+" ";return l}function Zr(e,t){e.moveBuffer[e.moveLength++]=t}function zi(){k1(this),this.edge=new Is,this.center=new _s,this.corner=new wi}function _i(e){zi.call(this),$n(this,e)}function _1(e){k1(this),this.edge=new v1(e),this.center=new L1(e),this.corner=new F1(e)}function HL(e,t){return t.value-e.value}function Ci(e,t){return HL(e,t)}function C1(){}function YL(){if(P1)return;P1=!0;let e,t;for(Os=["U ","U2 ","U' ","R ","R2 ","R' ","F ","F2 ","F' ","D ","D2 ","D' ","L ","L2 ","L' ","B ","B2 ","B' ","Uw ","Uw2","Uw'","Rw ","Rw2","Rw'","Fw ","Fw2","Fw'","Dw ","Dw2","Dw'","Lw ","Lw2","Lw'","Bw ","Bw2","Bw'"],Xr=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,19,21,22,23,25,28,30,31,32,34,36],Jo=[0,1,2,4,6,7,8,9,10,11,13,15,16,17,19,22,25,28,31,34,36],M1=T(37),G1=T(37),eo=T(37,36),Pi=T(29,28),Mi=T(21,20),Ws=T(36),$o=T(28),to=T(20),e=0;e<29;++e)M1[Xr[e]]=e;for(e=0;e<21;++e)G1[Jo[e]]=e;for(e=0;e<36;++e){for(t=0;t<36;++t)eo[e][t]=~~(e/3)==~~(t/3)||~~(e/3)%3==~~(t/3)%3&&e>t;eo[36][e]=!1}for(e=0;e<29;++e)for(t=0;t<28;++t)Pi[e][t]=eo[Xr[e]][Xr[t]];for(e=0;e<21;++e)for(t=0;t<20;++t)Mi[e][t]=eo[Jo[e]][Jo[t]];for(e=0;e<36;++e)for(Ws[e]=36,t=e;t<36;++t)if(!eo[e][t]){Ws[e]=t-1;break}for(e=0;e<28;++e)for($o[e]=28,t=e;t<28;++t)if(!Pi[e][t]){$o[e]=t-1;break}for(e=0;e<20;++e)for(to[e]=20,t=e;t<20;++t)if(!Mi[e][t]){to[e]=t-1;break}}function ZL(e){let t,r,n,o,l,i,a,f,s,g,c,u;e.solution="";let m=Ri(new Di(Ur(e.c),0)),p=Ri(new Di(Ur(e.c),1)),L=Ri(new Di(Ur(e.c),2)),R=xt[~~m>>6],D=xt[~~p>>6],A=xt[~~L>>6];for(e.p1SolsCnt=0,e.arr2idx=0,lB(e.p1sols.heap),e.length1=(R<D?R:D)<A?R<D?R:D:A;e.length1<100&&!(A<=e.length1&&Gi(e,~~L>>>6,L&63,e.length1,-1,0)||R<=e.length1&&Gi(e,~~m>>>6,m&63,e.length1,-1,0)||D<=e.length1&&Gi(e,~~p>>>6,p&63,e.length1,-1,0));++e.length1);let y=BB(e.p1sols,As(dB,hr([sL,Fs,hs]),Zu,0,0));y.sort(function(Q,$){return Q.value-$.value}),t=9;do{e:for(f=y[0].value;f<100;++f)for(i=0;i<y.length&&!(y[i].value>f);++i)if(!(f-y[i].length1>t)&&($n(e.c1,y[i]),i1(e.ct2,Ur(e.c1),Ti(Xo(e.c1).ep)),c=Ai(e.ct2),u=yi(e.ct2),e.length1=y[i].length1,e.length2=f-y[i].length1,T1(e,c,u,e.length2,28,0)))break e;++t}while(f===100);e.arr2.sort(function(Q,$){return Q.value-$.value}),a=0,r=13;do{e:for(s=e.arr2[0].value;s<100;++s)for(i=0;i<Math.min(e.arr2idx,100)&&!(e.arr2[i].value>s);++i)if(!(s-e.arr2[i].length1-e.arr2[i].length2>r)&&(l=U1(e.e12,Xo(e.arr2[i])),m1(e.ct3,Ur(e.arr2[i]),l^Ti(z1(e.arr2[i]).cp)),n=vs(e.ct3),o=Yn(e.e12,10),g=w1(A1(e.e12)),g<=s-e.arr2[i].length1-e.arr2[i].length2&&I1(e,o,n,g,s-e.arr2[i].length1-e.arr2[i].length2,20,0))){a=i;break e}++r}while(s===100);let k=new _i(e.arr2[a]);e.length1=k.length1,e.length2=k.length2;let E=s-e.length1-e.length2;for(i=0;i<E;++i)Zr(k,Jo[e.move3[i]]);e.solution=VL(k)}function XL(e,t){let r,n;for($n(e.c1,e.c),r=0;r<e.length1;++r)Zr(e.c1,e.move1[r]);switch(xs[t]){case 0:Zr(e.c1,24),Zr(e.c1,35),e.move1[e.length1]=24,e.move1[e.length1+1]=35,e.add1=!0,t=19;break;case 12869:Zr(e.c1,18),Zr(e.c1,29),e.move1[e.length1]=18,e.move1[e.length1+1]=29,e.add1=!0,t=34;break;case 735470:e.add1=!1,t=0}i1(e.ct2,Ur(e.c1),Ti(Xo(e.c1).ep));let o=Ai(e.ct2),l=yi(e.ct2),i=tt[o*70+l];return e.c1.value=i+e.length1,e.c1.length1=e.length1,e.c1.add1=e.add1,e.c1.sym=t,++e.p1SolsCnt,e.p1sols.heap.size<500?n=new _i(e.c1):(n=pB(e.p1sols),n.value>e.c1.value&&$n(n,e.c1)),rB(e.p1sols,n),e.p1SolsCnt===1e4}function JL(e){let t;for($n(e.c2,e.c1),t=0;t<e.length2;++t)Zr(e.c2,e.move2[t]);if(!WL(Xo(e.c2)))return!1;let r=U1(e.e12,Xo(e.c2));m1(e.ct3,Ur(e.c2),r^Ti(z1(e.c2).cp));let n=vs(e.ct3);Yn(e.e12,10);let o=w1(A1(e.e12));return e.arr2[e.arr2idx]?$n(e.arr2[e.arr2idx],e.c2):e.arr2[e.arr2idx]=new _i(e.c2),e.arr2[e.arr2idx].value=e.length1+e.length2+Math.max(o,Ar[n]),e.arr2[e.arr2idx].length2=e.length2,++e.arr2idx,e.arr2idx===e.arr2.length}function $L(e,t){return O1(),e.c=new _1(t),ZL(e),e.solution}function Gi(e,t,r,n,o,l){let i,a,f,s,g,c;if(t===0)return n===0&&XL(e,r);for(i=0;i<27;i+=3)if(!(i===o||i===o-9||i===o-18))for(s=0;s<3;++s){if(f=i+s,a=Fi[t][St[r][f]],g=xt[~~a>>>6],g>=n){if(g>n)break;continue}if(c=jn[r][a&63],a>>>=6,e.move1[l]=f,Gi(e,a,c,n-1,i,l+1))return!0}return!1}function T1(e,t,r,n,o,l){let i,a,f,s;if(t===0&&tt[r]===0)return n===0&&JL(e);for(a=0;a<23;++a){if(Pi[o][a]){a=$o[a];continue}if(i=Ui[t][a],s=bi[r][a],f=tt[i*70+s],f>=n){f>n&&(a=$o[a]);continue}if(e.move2[l]=Xr[a],T1(e,i,s,n-1,a,l+1))return!0}return!1}function I1(e,t,r,n,o,l,i){let a,f,s,g,c,u,m,p,L;if(o===0)return t===0&&r===0;for(Yo(e.tempe[i],t),c=0;c<17;++c){if(Mi[l][c]){c=to[c];continue}if(s=Ho[r][c],u=Ar[s],u>=o){u>o&&c<14&&(c=to[c]);continue}if(g=Xn(e.tempe[i].edge,c<<3,10),a=~~(g/20160),p=Jn[a],L=p&7,p>>=3,f=Xn(e.tempe[i].edge,c<<3|L,10)%20160,m=TL(p*20160+f,n),m>=o){m>o&&c<14&&(c=to[c]);continue}if(I1(e,g,s,m,o-1,c,i+1))return e.move3[i]=c,!0}return!1}function N1(){let e;for(this.p1sols=new Y1(new C1),this.move1=T(15),this.move2=T(20),this.move3=T(20),this.c1=new zi,this.c2=new zi,this.ct2=new Ss,this.ct3=new Es,this.e12=new tr,this.tempe=T(20),this.arr2=T(100),e=0;e<20;++e)this.tempe[e]=new tr}function O1(){W1||(hL(),Kn=T(735471),AL(),dL(),Kn=null,DL(),bL(),vL(),IL(),NL(),GL(),W1=!0)}function eB(){K1||(K1=!0)}function Ti(e){let t,r,n,o;for(o=0,t=0,n=e.length;t<n;++t)for(r=t;r<n;++r)e[t]>e[r]&&(o^=1);return o}function F(e,t,r,n,o,l){let i;switch(l){case 0:i=e[o],e[o]=e[n],e[n]=e[r],e[r]=e[t],e[t]=i;return;case 1:i=e[t],e[t]=e[n],e[n]=i,i=e[r],e[r]=e[o],e[o]=i;return;case 2:i=e[t],e[t]=e[r],e[r]=e[n],e[n]=e[o],e[o]=i;return}}function Q1(){}function j1(e,t,r,n){let o=new Q1;return o.typeName=e+t,V1(r!==0?-r:0)&&H1(r!==0?-r:0,o),o.modifiers=4,o.superclass=Ks,o.componentType=n,o}function q1(e,t,r,n){let o=new Q1;return o.typeName=e+t,V1(r)&&H1(r,o),o.superclass=n,o}function tB(e){let t=jo[e.seedId];return e=null,t}function V1(e){return typeof e=="number"&&e>0}function H1(e,t){let r;if(t.seedId=e,e===2)r=String.prototype;else if(e>0){let n=tB(t);if(n)r=n.prototype;else{n=jo[e]=function(){},n.___clazz$=t;return}}else return;r.___clazz$=t}function rB(e,t){if(mB(e,t))return!0}function nB(e){e.array=As(Z1,hr([Fs,hs]),Hu,0,0)}function oB(e,t){return Li(e.array,e.size++,t),!0}function lB(e){e.array=As(Z1,hr([Fs,hs]),Hu,0,0),e.size=0}function br(e,t){return e.array[t]}function iB(e,t){let r=e.array[t];return fB(e.array,t,1),--e.size,r}function ro(e,t,r){let n=e.array[t];return Li(e.array,t,r),n}function aB(e,t){let r;for(t.length<e.size&&(t=cL(t,e.size)),r=0;r<e.size;++r)Li(t,r,e.array[r]);return t.length>e.size&&Li(t,e.size,null),t}function sB(){nB(this),this.array.length=500}function fB(e,t,r){e.splice(t,r)}function uB(e,t){let r,n,o,l;for(n=0,r=e.length-1;n<=r;)if(o=n+(~~(r-n)>>1),l=e[o],l<t)n=o+1;else if(l>t)r=o-1;else return o;return-n-1}function Ii(e){gB(e,e.length)}function gB(e,t){let r;for(r=0;r<t;++r)e[r]=-1}function cB(e,t){let r,n,o,l,i=e.heap.size,a=br(e.heap,t);for(;t*2+1<i&&(r=(n=2*t+1,o=n+1,l=n,o<i&&Ci(br(e.heap,o),br(e.heap,n))<0&&(l=o),l),!(Ci(a,br(e.heap,r))<0));)ro(e.heap,t,br(e.heap,r)),t=r;ro(e.heap,t,a)}function mB(e,t){let r,n;for(n=e.heap.size,oB(e.heap,t);n>0;){if(r=n,n=~~((n-1)/2),Ci(br(e.heap,n),t)<=0)return ro(e.heap,r,t),!0;ro(e.heap,r,br(e.heap,n))}return ro(e.heap,n,t),!0}function pB(e){if(e.heap.size===0)return null;let t=br(e.heap,0);return LB(e),t}function LB(e){let t=iB(e.heap,e.heap.size-1);0<e.heap.size&&(ro(e.heap,0,t),cB(e,0))}function BB(e,t){return aB(e.heap,t)}function Y1(e){this.heap=new sB,this.cmp=e}function $1(){J1||(J1=!0,YL(),eB(),RL(),UL(),wL(),ML(),zL(),OL(),jL(),X1=new N1)}function DB(){$1(),O1()}async function FB(){gt(),$1();let e=z.fromString($L(X1,await Qe()));return(await Wn()).concat(e)}var Y,jo,lL,Hu,Fs,Yu,iL,aL,Zu,sL,fL,uL,hs,e1,ys,Us,r1,xt,Fi,xs,Kn,hi,Qn,St,jn,l1,Ui,tt,f1,u1,bi,g1,c1,Ho,p1,Ar,ks,zs,B1,Rt,h1,Ps,vi,vt,Ms,Gs,Ts,Jn,Ei,x1,ki,S1,E1,Ns,P1,eo,Pi,Mi,Xr,Os,Jo,Ws,$o,to,M1,G1,W1,K1,Ks,Z1,RB,dB,X1,J1,tg=b(()=>{Re();ds();Vu();Mt();Ht();jo={},lL={},Hu=0,Fs=30,Yu=21,iL=22,aL=23,Zu=24,sL=25,fL=34,uL=26,hs=40;ct(1,-1,lL);Y.value=null;ct(73,1,{},Xu);Y.queryId$=0;e1=!1;r1=!1;ct(153,1,hr([Yu]),qo,Di,Vo);Kn=null,l1=!1;ct(154,1,{},Ss);Y.parity=0;c1=!1;ct(155,1,{},Es);Y.parity=0;ct(156,1,{},_s,L1);B1=!1;ct(157,1,hr([iL]),wi,yr,F1);Y.temps=null;h1=!1;ct(158,1,hr([aL]),tr);Y.isStd=!0;Y.temp=null;vi=0,S1=!1;ct(159,1,{},Is,v1);E1=!1;ct(160,1,hr([Zu,fL]),zi,_i,_1);Y.compareTo$=function(t){return qL(this,t)};Y.add1=!1;Y.center=null;Y.centerAvail=0;Y.corner=null;Y.cornerAvail=0;Y.edge=null;Y.edgeAvail=0;Y.length1=0;Y.length2=0;Y.length3=0;Y.moveLength=0;Y.sym=0;Y.value=0;ct(161,1,{},C1);Y.compare=function(t,r){return Ci(t,r)};P1=!1;ct(163,1,hr([uL]),N1);Y.add1=!1;Y.arr2idx=0;Y.c=null;Y.length1=0;Y.length2=0;Y.p1SolsCnt=0;Y.solution="";W1=!1,K1=!1;Y.val$outerIter=null;Y.size=0;ct(239,1,{},Y1);Y.cmp=null;Y.heap=null;Ks=q1("java.lang.","Object",1,null),Z1=j1("[Ljava.lang.","Object;",356,Ks),RB=q1("cs.threephase.","FullCube",160,Ks),dB=j1("[Lcs.threephase.","FullCube;",381,RB),J1=!1});var Gg={};ye(Gg,{randomFTOScrambleString:()=>FR});function el(e){if(e<2)return e;let t=1;for(let r=2;r<=e;r++)t*=r;return t}function Ni(e,t){if(t<0||t>e)return 0;if(t===0||t===e)return 1;let r=1;for(let n=0;n<t;n++)r=r*(e-n)/(n+1)|0;return r}function ag(e,t,r,n,o=e-t-r-n){return Ni(e,t+r)*Ni(t+r,t)*Ni(n+o,n)}function xB(e){e=e.slice();let t=e.length,r=el(t-1),n=0;for(;t>1;){t--;let o=e[0];n+=o*r;for(let l=0;l<t;l++){let i=e[l+1];e[l]=i-(i>o)}r/=t}return n}function SB(e){let t=e.length,r=0;for(let n=0;n<t-1;n++)for(let o=n;o<t;o++)e[n]>e[o]&&(r^=1);return r}function js(e,t){let r=[],n=el(t-1)/2,o=0;for(let l=0;l<t-1;l++)r[l]=e/n|0,e%=n,n/=t-1-l;r[t-1]=0;for(let l=t-2;l>=0;l--)for(let i=l+1;i<t;i++)r[i]>=r[l]?r[i]++:o^=1;return o===1&&([r[t-2],r[t-1]]=[r[t-1],r[t-2]]),r}function Jr(e){return xB(e)>>1}function qs(e,t){let r=[0];for(let n=1;n<e;n++){let o=t(n+1);r[n]=r[o],r[o]=n}return r}function sg(e,t){let r=qs(e,t);return SB(r)===1&&([r[0],r[1]]=[r[1],r[0]]),r}function vB(e){return e|=0,31-Math.clz32(e^e-1)}function fg(e,t){e|=0,t|=0;let r=e+" "+t;if(Vs[r])return Vs[r];let n=Ni(e,t),o=new Uint32Array(n),l=new Uint32Array(1<<e).fill(-1);for(let i=0,a=(1<<t)-1;i<n;i++){o[i]=a,l[a]=i;let f=a|a-1;a=f+1|(~f&-~f)-1>>vB(a)+1}return Vs[r]=[o,l]}function EB(e){e|=0;let t=0;for(;e!==0;)e&=e-1,t++;return t}function ug(e){return e&=65535,e=(e|e<<8)&16711935,e=(e|e<<4)&252645135,e=(e|e<<2)&858993459,e=(e|e<<1)&1431655765,e}function kB(e,t){return ug(e)|ug(t)<<1}function no(e,t,r,n,o){if(e|=0,t|=0,r|=0,n|=0,o|=0,e!==t+r+n+o)throw"generate_comb4_lookup_tables: invalid parameters";let l=[e,t,r,n,o].join(" ");if(Hs[l])return Hs[l];let[i,a]=fg(e,r+o),[f,s]=fg(e,n+o),g=ag(e,t,r,n,o),c=new Uint32Array(g),u=new Uint32Array(4**e).fill(-1);for(let m=0,p=0;m<f.length;m++){let L=f[m];for(let R=0;R<i.length;R++){let D=i[R];if(EB(D&L)===o){let A=kB(D,L);c[p]=A,u[A]=p,p++}}}return Hs[l]=[c,u]}function He(e,t){let r=[];for(let n=0;n<t.length;n++)r[n]=e[t[n]];return r}function oo(e,t,r){let n=[];for(let o=0;o<r.length;o++)n[o]=e[t[r[o]]];return n}function Ys(e,t){let r=[];for(let n=0;n<t;n++)r[n]=n;for(let n of e)for(let o=0;o<n.length;o++)r[n[o]]=n[(o+1)%n.length];return r}function $r(e,t){let r=e.length,n=Array(r).fill(0);for(let i=1;i<r;i++)n[i]=n[i-1]+t[i-1];let o=n[r-1]+t[r-1],l=Array(o);for(let i=0;i<r;i++)t[i]&&(l[n[i]]=n[e[i]]);return l}function Zs(e){let t=e.length,r=Array(t);for(let n=0;n<t;n++)r[e[n]]=n;return r}function zB(e,t){for(;e&&t;)[e,t]=[t%e,e];return Math.abs(e+t)}function _B(e,t){return e*t/zB(e,t)}function CB(e){let t=1,r=e.length,n=Array(r).fill(!1),o=-1;for(;o=n.indexOf(!1,o+1),o!==-1;){let l=0,i=o;for(;!n[i];)n[i]=!0,i=e[i],l++;t=_B(t,l)}return t}function WB(e,t){for(let r=0;r<6;r++){if(e===Et[wr[r][0]]&&t===Et[wr[r][2]])return[r,0];if(e===Et[wr[r][2]]&&t===Et[wr[r][0]])return[r,1]}throw"unknown corner piece"}function KB(e,t){for(let r=0;r<12;r++)if(e===Et[xr[r][0]]&&t===Et[xr[r][1]]||t===Et[xr[r][0]]&&e===Et[xr[r][1]])return r;throw"unknown edge piece"}function Xs(e,t){return WB(e[wr[t][0]],e[wr[t][2]])}function Ki(e,t){return KB(e[xr[t][0]],e[xr[t][1]])}function QB(e,t,r,n){let o=wr[t],l=wr[r].map(i=>Et[i]);n%2!=0&&(l=[l[2],l[3],l[0],l[1]]);for(let i=0;i<4;i++)e[o[i]]=l[i]}function jB(e,t,r){let n=xr[t],o=xr[r].map(l=>Et[l]);for(let l=0;l<2;l++)e[n[l]]=o[l]}function mg(e){let t=e.map(f=>Et[f]),n=Array(6).fill().map((f,s)=>Xs(t,s)).map(([f,s])=>f+6*s),o=n.concat(n.map(f=>(f+6)%12)),l=Array(12).fill().map((f,s)=>Ki(t,s)),i=Array(12).fill().map((f,s)=>en.indexOf(e[en[s]])),a=Array(12).fill().map((f,s)=>lo.indexOf(e[lo[s]]));return{cp:o,ep:l,ap:i,bp:a}}function VB(e){let t=Array(72),r=sg(5,e);r.push(5);let n=Array(4).fill().map(a=>e(2));n.push(n.reduce((a,f)=>a^f)),n.push(0);for(let a=0;a<6;a++)QB(t,a,r[a],n[a]);let o=sg(12,e);for(let a=0;a<12;a++)jB(t,a,o[a]);let l=qs(12,e).map(a=>a/3|0),i=qs(12,e).map(a=>4+(a/3|0));for(let a=0;a<12;a++)t[en[a]]=l[a],t[lo[a]]=i[a];return t}function Lg(e,t=!1){if(t){let l=0,i=1,a=2,f=3,s=4,g=5,c=6,u=7;e=e.map(L=>L.slice());let m=[l,i,a,f,s,g,c,u],p=[[l,f,g,c,s,u,i,a],[u,i,l,c,f,g,s,a],[u,s,a,i,f,l,c,g],[a,s,g,f,c,l,i,u]];p=p.concat(p.map(L=>Zs(L)));for(let L=0;L<e.length;L++)if(e[L][0]<4)e[L][0]=m[e[L][0]];else{let R=m[e[L][0]],D=e[L][1];e[L][0]=R,m=He(D===1?p[R^4]:p[R],m)}}let r=t?"U L F R D BR B BL".split(" "):qB,n=["0","","'"];return e.map(([l,i])=>r[l]+n[i]).join(" ")}function Sr(e,t){for(let[r,n]of t)for(let o=0;o<n;o++)e=He(e,pg[r]);return e}function Bg(e){return e.map(([t,r])=>[t,(3-r)%3]).reverse()}function Qi(e,t=!1){if(e.length===0)return[];let r=[],n;for(let[o,l]of e)n&&n[0]===o?(n[1]+=l,n[1]%=3,n[1]===0&&(r.pop(),n=r.length===0?void 0:r[r.length-1])):r.length>=2&&(n[0]^o)==4&&r[r.length-2][0]===o?(r[r.length-2][1]+=l,r[r.length-2][1]%=3,r[r.length-2][1]===0&&r.splice(r.length-2,1)):(n=[o,l],r.push(n));return t&&""+e!=""+r&&console.log(\`simplified \${e} to \${r}\`),r}function HB(e){return Lg(Bg(XB(VB(e),!0)),!0)}function io(e,t,r,n,o,l){let i=ag(e,t,r,n,o),a=l.length,[f,s]=no(e,t,r,n,o),g=Array(a).fill().map(()=>new Uint32Array(i));for(let c=0;c<i;c++){let u=f[c],m=Array(e);for(let p=0;p<e;p++)m[p]=u>>2*p&3;for(let p=0;p<a;p++){let R=He(m,l[p]).reduce((D,A,y)=>D|A<<2*y,0);g[p][c]=s[R]}}return g}function Rg(e){let t=e[0].length,r=e.length,n=Array(r).fill().map(()=>new Uint32Array(t));for(let o=0;o<t;o++)for(let l=0;l<r;l++)n[l][e[l][o]]=o;return n}function rn(e,t){let r=e[0].length,n=t[0].length,o=e.length,l=Array(o).fill().map(()=>new Uint32Array(r*n));for(let i=0;i<n;i++)for(let a=0;a<r;a++){let f=a+r*i;for(let s=0;s<o;s++)l[s][f]=e[s][a]+r*t[s][i]}return l}function YB(e,t){let r=e.length,n=e[0].length,o=new Uint8Array(n);o[t]=1;let l=!1;for(;!l;){l=!0;for(let a=0;a<n;a++)if(!!o[a])for(let f=0;f<r;f++)o[e[f][a]]||(o[e[f][a]]=1,l=!1)}let i=new Int32Array(n).fill(-1);for(let a=0,f=0;a<n;a++)!o[a]||(i[a]=f,f++);return[e.map(a=>$r(a,o)),i]}function ZB(e,t){let r=e.length,n=e[0].length,o=new Int32Array(n).fill(-1);t.forEach(f=>{o[f]=0});let l=[t];for(let f=0;f<l.length;f++){let s=l[f];for(let g=0;g<r;g++){let c=e[g][s[0]];if(o[c]!==-1)continue;let u=s.map(p=>e[g][p]),m=l.length;l.push(u);for(let p of u){if(o[p]!==-1)throw"quotienting failed";o[p]=m}}}let i=l.length,a=Array(r).fill().map(()=>new Int32Array(i));for(let f=0;f<r;f++)for(let s=0;s<i;s++)a[f][s]=o[e[f][l[s][0]]];return[a,o]}function dg(e,t,r){let n=e[0].length,o=e.length,l=new Int32Array(n).fill(-1);l[t]=r,l[r]=t;let i=!1;for(;!i;){i=!0;for(let a=0;a<n;a++){if(l[a]===-1)continue;let f=l[a];for(let s=0;s<o;s++){let g=s^1,c=e[s][a],u=e[g][e[g][f]];if(l[c]===-1)i=!1,l[c]=u,l[u]=c;else if(l[c]!==u)throw"mirroring failed - is the initial map correct?"}}}return l}function Dg(e,t){let r=e[0].length,n=e.length,o=new Int8Array(r).fill(-1);for(let a of t)o[a]=0;let l=0,i=!1;for(;!i;){i=!0;for(let a=0;a<r;a++)if(o[a]===l)for(let f=0;f<n;f++){let s=e[f][a];for(;s!==a;)o[s]===-1&&(i=!1,o[s]=l+1),s=e[f][s]}l++}return o}function XB(e,t=!1){let r=rR(e).next().value,n=Sr(e,r),o=(t?dR:RR)(n),l=Qi(r.concat(o),!1);return Sr(e,l).join("")!==tl.join("")&&(console.log("solving failed!"),console.log(e),console.log(r),console.log(n),console.log(o),console.log(Sr(e,l))),l}function $B(e){let[t,r]=no(12,6,0,3,3),n=Array(12).fill().map((a,f)=>Ki(e,f)),o=n.indexOf(8)+12*n.indexOf(9)+12**2*n.indexOf(10)+12**3*n.indexOf(11),[l,i]=[en,lo].map(a=>{let f=a.map(s=>JB[e[s]]);return r[f.reduce((s,g,c)=>s|g<<2*c,0)]});return[o,l,i]}function Fg(){if(W.phase1_edge)return W.phase1_edge;let e=Rg(tn.map(n=>n.ep)),t=rn(e,e),r=rn(t,t);return W.phase1_edge=r}function eR(){return nr.phase1_edge?nr.phase1_edge:nr.phase1_edge=Dg(Fg(),[8+12*9+12**2*10+12**3*11])}function tR(){return W.phase1_centreA?W.phase1_centreA:W.phase1_centreA=io(12,6,0,3,3,tn.map(e=>e.ap))}function hg(){return W.phase1_centreB?W.phase1_centreB:W.phase1_centreB=io(12,6,0,3,3,tn.map(e=>e.bp))}function Ag(){if(nr.phase1_centre)return nr.phase1_centre;let[e,t]=no(12,6,0,3,3),r=e.filter(n=>{let o=n>>12&3,l=n>>18&3;return o===2&&l===3}).map(n=>t[n]);return nr.phase1_centre=Dg(hg(),r)}function*rR(e){let t=[Fg(),tR(),hg()],r=[eR(),Ag(),Ag()];yield*nR($B(e),t,r,15)}function*nR(e,t,r,n){let o=e.length,l=0;for(let i=0;i<o;i++)l=Math.max(l,r[i][e[i]]);for(;l<=n;)yield*yg(e,t,r,l,-1),l++}function*yg(e,t,r,n,o){let l=3,i=8,a=Math.max(r[0][e[0]],r[1][e[1]],r[2][e[2]]);if(!(a>n)){if(n===0){yield[];return}if(!(a===0&&n===1))for(let f=0;f<i;f++){if(f===o||f===o-4)continue;let s=[];s[0]=t[0][f][e[0]],s[1]=t[1][f][e[1]],s[2]=t[2][f][e[2]];let g=1;for(;e.some((c,u)=>e[u]!=s[u]);){let c=yg(s,t,r,n-1,f);for(;;){let{value:u,done:m}=c.next();if(m)break;yield[[f,g]].concat(u)}s[0]=t[0][f][s[0]],s[1]=t[1][f][s[1]],s[2]=t[2][f][s[2]],g++}}}}function Js(e){let[t,r]=no(10,5,3,2,0),n=Array(8).fill().map((u,m)=>Ki(e,m)),o=n.indexOf(5)+8*n.indexOf(6)+8**2*n.indexOf(7),l=Array(5).fill().map((u,m)=>Xs(e,m)),i=Zs(l.map(([u,m])=>u+5*m).concat(l.map(([u,m])=>u+5*(m^1)))),a=i.slice(0,5).map(u=>u%5),f=i.slice(0,5).map(u=>u/5|0),s=Jr(a)*8+(f[0]^f[2])+2*(f[0]^f[3])+4*f[4],[g,c]=[en,lo].map(u=>{let m=He(u,lR).map(p=>oR[e[p]]);return r[m.reduce((p,L,R)=>p|L<<2*R,0)]});return xg(),Eg(),[g,c,vg[s]+40*wg[o]]}function*ji(e){yield*uR(Js(e),30)}function bg(){if(W.phase2_centre)return W.phase2_centre;let e=io(10,5,3,2,0,tn.slice(0,4).map(r=>$r(r.ap,Ug))),t=io(10,5,3,2,0,tn.slice(0,4).map(r=>$r(r.bp,Ug)));return W.phase2_centre=[e,t]}function xg(){if(W.phase2_edge)return W.phase2_edge;let e=Rg(tn.slice(0,4).map(n=>n.ep.slice(0,8))),t=rn(e,rn(e,e)),r;return[r,wg]=YB(t,501),W.phase2_edge=r}function Sg(){if(W.phase2_corner)return W.phase2_corner;let t=el(5)/2*8,r=[!0,!0,!0,!0,!0,!1,!0,!0,!0,!0,!0,!1],n=Array(4).fill().map(()=>new Uint32Array(t)),o=tn.slice(0,4).map(l=>Zs($r(l.cp,r)));for(let l=0;l<t;l++){let i=js(l>>3,5),a=[0,0,l&1,l>>1&1,l>>2&1];a[1]=a[2]^a[3]^a[4];let f=Array(10);for(let s=0;s<5;s++)f[s]=i[s]+5*a[s],f[s+5]=i[s]+5*(a[s]^1);for(let s=0;s<4;s++){let g=He(o[s],f),c=g.slice(0,5).map(p=>p%5),u=g.slice(0,5).map(p=>p/5|0),m=(u[0]^u[2])+2*(u[0]^u[3])+4*u[4];n[s][l]=Jr(c)*8+m}}return W.phase2_corner=n}function Eg(){return W.phase2_corner_compact||([W.phase2_corner_compact,vg]=ZB(Sg(),sR())),W.phase2_corner_compact}function $s(){if(W.phase2_ce)return W.phase2_ce;let e=Eg(),t=xg();return W.phase2_ce=rn(e,t)}function iR(){if(e0)return e0;let e=Js(tl)[2];return e0=dg($s(),e,e)}function aR(){let[e,t]=no(10,5,3,2,0);return e.filter(r=>(r>>10&63)==41).map(r=>t[r])}function sR(){let e=Sg(),t=e[0].length,r=Array(t).fill(!1);r[0]=!0;let n=!1;for(;!n;){n=!0;for(let o=0;o<t;o++)r[o]&&(r[e[0][o]]||(n=!1,r[e[0][o]]=!0),r[e[1][o]]||(n=!1,r[e[1][o]]=!0))}return r.map((o,l)=>l).filter(o=>r[o])}function fR(){if(nr.phase2_ace)return nr.phase2_ace;let[e,t]=bg(),r=$s(),n=2520,o=40*336,l=n*o,i=Js(tl)[2],a=9,f=new Int8Array(l).fill(a);for(let s of aR())f[s+n*i]=0;for(let s=0;s<a-1;s++)for(let g=f.indexOf(s);g!==-1;g=f.indexOf(s,g+1)){let c=g%n,u=g/n|0;for(let m=0;m<4;m++){let p=e[m][c],L=r[m][u],R=p+n*L;f[R]===a&&(f[R]=s+1),p=e[m][p],L=r[m][L],R=p+n*L,f[R]===a&&(f[R]=s+1)}}return nr.phase2_ace=f}function*uR(e,t){let[r,n]=bg(),o=$s(),l=fR(),i=iR(),[a,f,s]=e,g=i[s],c=Math.max(l[a+2520*s],l[f+2520*g]);for(;c<=t;)yield*kg(a,f,s,r,n,o,l,i,c,-1),c++}function*kg(e,t,r,n,o,l,i,a,f,s){let g=Math.max(i[e+2520*r],i[t+2520*a[r]]);if(!(g>f)){if(f===0){yield[];return}else if(g===0)return;for(let c=0;c<4;c++){if(c===s)continue;let u=e,m=t,p=r;for(let L=1;L<=2;L++){u=n[c][u],m=o[c][m],p=l[c][p];let R=kg(u,m,p,n,o,l,i,a,f-1,c);for(;;){let{value:D,done:A}=R.next();if(A)break;yield[[c,L]].concat(D)}}}}}function Vi(e){let[t,r]=no(7,3,2,0,2),n=Array(5).fill().map((s,g)=>Ki(e,g)),o=Jr(n),l=Array(4).fill().map((s,g)=>Xs(e,g)),i=Jr(l.map(s=>s[0]))*2+l.find(s=>s[0]===0)[1],[a,f]=[en,lo].map(s=>{let g=He(s,gR).map(c=>e[c]%4);return r[g.reduce((c,u,m)=>c|u<<2*m,0)]});return[a+210*f,i+24*o]}function mR(){if(W.phase3_2gen_edge)return W.phase3_2gen_edge;let e=el(5)/2,t=Array(ao).fill().map(()=>new Uint32Array(e)),r=qi.map(n=>n.ep.slice(0,5));for(let n=0;n<e;n++){let o=js(n,5);for(let l=0;l<ao;l++)t[l][n]=Jr(He(o,r[l]))}return W.phase3_2gen_edge=t}function pR(){if(W.phase3_2gen_corner)return W.phase3_2gen_corner;let t=el(4)/2*2,r=[!0,!0,!0,!0,!1,!1,!0,!0,!0,!0,!1,!1],n=Array(ao).fill().map(()=>new Uint32Array(t)),o=qi.map(l=>$r(l.cp,r).slice(0,4));for(let l=0;l<t;l+=2){let i=js(l>>1,4),a=i.concat(i.map(f=>f+4));for(let f=0;f<ao;f++){let s=He(a,o[f]),g=s.map(u=>u%4),c=s.find(u=>u%4==0)>>2;n[f][l]=Jr(g)*2+c,n[f][l+1]=Jr(g)*2+(c^1)}}return W.phase3_2gen_corner=n}function Hi(){return W.phase3_2gen_corneredge?W.phase3_2gen_corneredge:W.phase3_2gen_corneredge=rn(pR(),mR())}function t0(){if(W.phase3_2gen_centre)return W.phase3_2gen_centre;let e=io(7,3,2,0,2,qi.map(r=>$r(r.ap,zg))),t=io(7,3,2,0,2,qi.map(r=>$r(r.bp,zg)));return W.phase3_2gen_centreA=e,W.phase3_2gen_centreB=t,W.phase3_2gen_centre=rn(e,t)}function Cg(){if(r0)return r0;let e=t0(),t=W.phase3_2gen_centreA,r=Hi(),n=t[0].length,o=r[0].length,l=n*o,i=25,a=or.map(u=>u.length),f=new Int8Array(l).fill(i),s=Vi(tl);f[s[0]%n+n*s[1]]=0;let g=0,c=!1;for(;!c&&g<i-1;){c=!0;let u=Array(ao).fill().map((D,A)=>A).filter(D=>a[D]+g<i);u.sort((D,A)=>a[D]-a[A]);let m=He(a,u),p=He(t,u),L=He(r,u),R=u.length;for(let D=f.indexOf(g);D!==-1;D=f.indexOf(g,D+1)){let A=D%n,y=D/n|0;for(let k=0;k<R;k++){let E=m[k],Q=p[k][A],$=L[k][y],G=Q+n*$;f[G]>g+E&&(c=!1,f[G]=g+E)}}g++}return r0=f}function Pg(){if(n0)return n0;let e=Hi().slice(0,2),t=Vi(tl);return n0=dg(e,t[1],t[1])}function o0(e,t=Vi(e)){let[r,n]=t,o=r%210,l=Math.floor(r/210),i=t0(),a=W.phase3_2gen_centreA,f=W.phase3_2gen_centreB,s=Hi(),g=Cg(),c=Pg(),u=0;for(;;){let m=i0(o,l,n,a,f,s,g,c,u);for(let p of m)return p.map(L=>or[L]).flat();u++}}function Mg(e,t=Vi(e)){let[r,n]=t,o=r%210,l=Math.floor(r/210),i=t0(),a=W.phase3_2gen_centreA,f=W.phase3_2gen_centreB,s=Hi(),g=Cg(),c=Pg(),u=o0(e).length,m=1/0,p;for(let L=u;L<=u+0;L++){let R=i0(o,l,n,a,f,s,g,c,L);for(let D of R){let A=D.map(E=>or[E]).flat(),y=Qi(A),k=l0(y);k<m&&(m=k,p=y)}}return p}function LR(e){return(e-1)*(e-2)/2}function l0(e){let t=Lg(e,!0).replace(/'/g,"").split(" ");return e.length+BR(t).map(LR).reduce((r,n)=>r+n,0)}function BR(e){if(e.length<3)return[];let t=e.length,r=[];for(let l=0;l<t-2;l++)r[l]=e[l]===e[l+2];r.push(!1);let n=-1,o=[];for(;n<t-2&&(n=r.indexOf(!0,n+1),n!==-1);){let l=r.indexOf(!1,n+1);o.push(l-n),n=l}return o}function*i0(e,t,r,n,o,l,i,a,f,s=-1){let g=i[e+210*r],c=i[t+210*a[r]],u=Math.max(g,c);if(!(u>f)){if(f===0){yield[];return}if(u!==0)for(let m=0;m<ao;m++){if(m===s&&cR[m]<=3)continue;let p=n[m][e],L=o[m][t],R=l[m][r],D=f-or[m].length;if(D<0)continue;let A=i0(p,L,R,n,o,l,i,a,D,m);for(;;){let{value:y,done:k}=A.next();if(k)break;yield[m].concat(y)}}}}function RR(e,t=200,r=24){let n=[],o=ji(e),l=He(e,Nt).map(f=>f^1),i=ji(l),a=Array(1e3);for(let f=0;f<t;f++){{let{value:s,done:g}=o.next();if(!g){let c=Sr(e,s),u=s.concat(o0(c));if(u.length<=r)return u;u.length<a.length&&(a=u)}}{let{value:s,done:g}=i.next();if(!g){let c=Sr(l,s),u=s.concat(o0(c)).map(([m,p])=>[m^2,p]);if(u.length<=r)return u;u.length<a.length&&(a=u)}}}return a}function dR(e,t=20,r=30){let n=[],o=ji(e),l=He(e,Nt).map(s=>s^1),i=ji(l),a,f=1/0;for(let s=0;s<t;s++){{let{value:g,done:c}=o.next();if(!c){let u=Sr(e,g),m=Qi(g.concat(Mg(u))),p=l0(m);if(p<=r)return m;p<f&&(a=m,f=p)}}{let{value:g,done:c}=i.next();if(!c){let u=Sr(l,g),m=Qi(g.concat(Mg(u)));m=m.map(([L,R])=>[L^2,R]);let p=l0(m);if(p<=r)return m;p<f&&(a=m,f=p)}}}return a}async function FR(){return HB(await DR)}var I8,N8,Vs,Hs,tl,rl,PB,Nt,O8,Oi,gg,MB,GB,TB,Wi,IB,cg,NB,OB,Et,wr,xr,en,lo,pg,qB,tn,W,nr,JB,oR,lR,Ug,wg,vg,e0,gR,zg,or,ao,_g,qi,cR,r0,n0,DR,Tg=b(()=>{Mt();[I8,N8]=(()=>{let e=new Int8Array(256*8),t=new Int8Array(256*8);for(let o=0;o<256;o++)for(let l=0,i=0;l<8;l++)(o>>>l&1)!=0&&(e[l<<8|o]=i,t[i<<8|o]=l,i++);function r(o){let l=255,i=2520,a=0;for(let f=0;f<6;f++){let s=o[f];a+=e[l|s<<8]*i,l&=~(1<<s),i/=7-f}return a}function n(o,l){let i=255,a=2520,f=0;for(let s=0;s<6;s++){let g=o/a|0;o-=g*a,f^=g&1;let c=t[i|g<<8];l[s]=c,i&=~(1<<c),a/=7-s}return l[6]=t[i|f<<8],l[7]=t[i|(f^1)<<8],l}return[r,n]})();Vs={};Hs={};tl=Array(72).fill().map((e,t)=>t/9|0),rl=Ys([[0,4,8],[1,6,3],[2,5,7],[9,22,35],[45,67,44],[47,68,43],[46,69,39],[50,70,38],[49,71,36]],72),PB=He(rl,rl),Nt=Array(72).fill().map((e,t)=>(t/18|0)*18+(t+9)%18),O8=Array(72).fill().map((e,t)=>(t/36|0)*36+(t+18)%36),Oi=Array(72).fill().map((e,t)=>(t+36)%72),gg=oo(Oi,PB,Oi),MB=oo(Nt,rl,Nt),GB=oo(Nt,gg,Nt),TB=Ys([[10,24,30],[11,23,34],[12,19,33],[42,48,64],[41,52,65],[37,51,66]],72),Wi=He(rl,TB),IB=He(Wi,Wi),cg=oo(Oi,IB,Oi),NB=oo(Nt,Wi,Nt),OB=oo(Nt,cg,Nt),Et=Array(72).fill().map((e,t)=>t/9|0),wr=[[0,45,9,36],[4,67,22,49],[8,44,35,71],[13,58,31,40],[17,53,26,62],[18,63,27,54]],xr=[[1,46],[3,39],[6,69],[10,37],[33,42],[12,48],[15,60],[24,51],[19,64],[28,55],[30,66],[21,57]],en=Array(12).fill().map((e,t)=>(t/3|0)*9+[2,5,7][t%3]),lo=en.map(e=>e+36);pg=[rl,gg,MB,GB,Wi,cg,NB,OB],qB=["U","L","F","R","u","l","f","r"],tn=pg.map(mg);W={},nr={},JB=[0,0,2,3,0,0,2,3];oR=[0,1,2,0,0,1,2,0],lR=[0,1,2,3,4,5,7,8,10,11],Ug=[!0,!0,!0,!0,!0,!0,!1,!0,!0,!1,!0,!0];gR=[0,1,2,3,4,10,11],zg=[!0,!0,!0,!0,!0,!1,!1,!1,!1,!1,!0,!0],or=[[[0,1]],[[1,1]],[[2,1],[0,1],[3,1],[0,2],[3,2],[2,2]],[[3,2],[1,2],[2,2],[1,1],[2,1],[3,1]],[[6,1],[0,1],[3,1],[0,2],[3,2],[6,2]],[[7,2],[1,2],[2,2],[1,1],[2,1],[7,1]],[[2,1],[0,1],[2,2],[0,1],[2,1],[0,1],[2,2]],[[3,2],[1,1],[3,1],[1,1],[3,2],[1,1],[3,1]],[[2,1],[3,1],[2,2],[1,2],[0,2],[2,1],[3,1],[2,2]],[[3,2],[2,2],[3,1],[0,1],[1,1],[3,2],[2,2],[3,1]],[[6,1],[0,1],[6,2],[0,2],[1,2],[6,1],[0,1],[6,2]],[[7,2],[1,2],[7,1],[1,1],[0,1],[7,2],[1,2],[7,1]],[[2,1],[3,2],[2,2],[3,1],[0,1],[2,2],[1,1],[2,1]],[[3,2],[2,1],[3,1],[2,2],[1,2],[3,1],[0,2],[3,2]],[[6,1],[0,2],[6,2],[7,1],[6,1],[1,2],[7,1],[6,1]],[[7,2],[1,1],[7,1],[6,2],[7,2],[0,1],[6,2],[7,2]],[[2,2],[1,2],[2,2],[3,2],[2,2],[3,2],[0,2],[3,2]],[[6,2],[7,2],[1,2],[0,2],[1,2],[0,2],[6,2],[7,2]]];or=or.concat(or.map(e=>Bg(e)));ao=or.length,_g=or.map(e=>Sr(Ys([],72),e)),qi=_g.map(mg),cR=_g.map(CB);DR=Qe()});var Ig={};ye(Ig,{randomFTOScrambleString:()=>hR,sgsDataFTO:()=>yR});async function hR(){let{randomFTOScrambleString:e}=await Promise.resolve().then(()=>(Tg(),Gg));return e()}async function yR(){return AR??(AR=UR())}async function UR(){return Tt(await ve.fto.kpuzzle(),\`SubgroupSizes 24 12 11 12 12 11 10 9 11 8 10 9 7 8 10 10 6 9 8 5 7 6 5 4 4 8 7 3 6 6 360
1223
+ Alg F D F' D L2 F R' F' D' B2 U'\`)}var sm,Xf=U(()=>{Ht();kn();sm=null});async function zn(e,t){let r=new pt;r.experimentalPushAlg(e);for(let n of t){let o=(await Yt())(n);o!==null&&r.push(B.fromString(o))}return r.toAlg()}var Yl=U(()=>{Re();Nt()});function nu(e,t){return e.slice(t)+e.slice(0,t)}function Bm(e){let t=[[],[]];for(let r=0;r<6;r++)if(e.stateData.CENTERS.pieces[r]!==r)throw new Error("non-oriented puzzles are not supported");for(let r=0;r<12;r++)t[0].push(nu(cm[e.stateData.EDGES.pieces[r]],e.stateData.EDGES.orientation[r]));for(let r=0;r<8;r++)t[1].push(nu(pm[e.stateData.CORNERS.pieces[r]],e.stateData.CORNERS.orientation[r]));return t.push(mm),t}function ou(e){let t=Bm(e);return Lm.map(([r,n,o])=>t[r][n][o]).join("")}var cm,pm,mm,Lm,lu=U(()=>{cm="UF UR UB UL DF DR DB DL FR FL BR BL".split(" "),pm="UFR URB UBL ULF DRF DFL DLB DBR".split(" "),mm="U L F R B D".split(" "),Lm=[[1,2,0],[0,2,0],[1,1,0],[0,3,0],[2,0,0],[0,1,0],[1,3,0],[0,0,0],[1,0,0],[1,0,2],[0,1,1],[1,1,1],[0,8,1],[2,3,0],[0,10,1],[1,4,1],[0,5,1],[1,7,2],[1,3,2],[0,0,1],[1,0,1],[0,9,0],[2,2,0],[0,8,0],[1,5,1],[0,4,1],[1,4,2],[1,5,0],[0,4,0],[1,4,0],[0,7,0],[2,5,0],[0,5,0],[1,6,0],[0,6,0],[1,7,0],[1,2,2],[0,3,1],[1,3,1],[0,11,1],[2,1,0],[0,9,1],[1,6,1],[0,7,1],[1,5,2],[1,1,2],[0,2,1],[1,2,1],[0,10,0],[2,4,0],[0,11,0],[1,7,1],[0,6,1],[1,6,2]]});function iu(e,t){let r=new me(e.kpuzzle,{EDGES:e.stateData.EDGES,CORNERS:e.stateData.CORNERS,CENTERS:{pieces:e.stateData.CENTERS.pieces,orientation:new Array(6).fill(0)}}).experimentalToTransformation(),n=new me(t.kpuzzle,{EDGES:t.stateData.EDGES,CORNERS:t.stateData.CORNERS,CENTERS:{pieces:t.stateData.CENTERS.pieces,orientation:new Array(6).fill(0)}}).experimentalToTransformation();return r.isIdentical(n)}function su(e,t){if(iu(e.startState(),t))return!1;for(let r of"ULFRBD")for(let n=1;n<4;n++){let o=e.moveToTransformation(new B(r,n)).toKState();if(iu(o,t))return!1}return!0}var au=U(()=>{Re();He()});var fu,uu=U(()=>{fu=[["R U'","R2 B","D2 B2","D' L B'","R' U'","B","D B2","R' B","L' U","L2 B'","B2","D L B'","L U","B'","U'","R B","D' B2","L B'","U2","U L' B'","","U' L' B'","U","L' B'"],["F2 L2","F' L'","R' F L2","D' L2","F L2","F2 L'","R' F' L'","R2 F L2","R2 F2 L'","L2","F L'","D' L","D2 L2","R2 F' L'","D L","","L2 F L'","L F' L2","L F L'","F' L2","L'","D L2","D F L'","L"],["R B U2 B'","R2 B U' B'","F2 B U B'","F B2 L' B2","B2 L B2","B U' B'","R2 B U2 B'","R' B U' B'","B2 L' B2","F B U B'","B2 U' B2","B' L B","L F' B D' B'","B' U' B2 D B'","B U2 B'","R B U' B'","B2 L2 B2","D' B' L B","B U B'","F' B2 L' B2","","B2 L' B' U' B'"],["U F2 L2 U'","F' U L' U'","F2 U L' U'","U F L2 U'","U2 B2 U2","R' U' B U","D2 U L U'","D U2 B' U2","U L2 U'","F U L' U'","D U L U'","U2 B' U2","","U2 B' U' L' U'","U2 L' U2","U' B U","U L U'","D' U2 B' U2","U L' U'","U2 B U2"],["R' D' F2","F'","F2","D R F'","R D' F2","R2 F'","D' F2","R F'","F2 R' D' F2","F","D2 F2","D' R F'","R2 D' F2","R' F'","D F2","D2 R F'","","F R' D' F2"],["R' D2 F' D F","R F2 R2 F2","R2 F' D2 F","F' R2 D2 F","L D' L'","D F' D2 F","F2 R2 F2","R F' D2 F","F' R2 D' F","F' R' D2 F","F2 R' F2","L D L'","F' R D' F","F2 R F2","F' D2 F","","L D2 R D' L'","F' D2 F' R F2","D2 R2 F2 R2 F2","D F' D' F","F' D F"],["U F2 U'","R U F' U'","D R U F2 U'","U F U'","R2 U F2 U'","R' U F' U'","R U F2 U'","R2 U F' U'","","U L D L' F U'","F2 D' R D F2","D2 U F U'","R' U F2 U'","U F' U'","F2 D2 R D2 F2","D U F U'"],["R2","R' B' D B","D R'","F' R2 F","","R B' D B","R'","B' D B","D' R'","D2 F' R2 F","R","R2 B' D B","D2 R'","B' D' B"],["R2 D' R2","F' R' F R","R D' R2 D R'","D2 R2 D2 R2","R' D' F' R F","U F D F' U'","","R2 D2 B R' B' R'","R' F D' F2 R F","R2 D R2","F2 U F U' F","R' D F' R F","D R2 D2 R2","U F D' F' U'","D R' D2 F' R F","R2 D2 R2","U F D2 F' U'","R' D2 F' R F"],["B R B'","F D F' B R2 B'","D B R2 B'","D2 B R' B'","B R2 B'","D B R' B'","D' B R2 B'","B R' B'","","B R2 B' D B R' B'","D2 B R2 B'","D' B R' B'"],["","R' D R F D2 F'","R' D R","D F D' F'","R F' R' F","F D' F'","R' D' R","F D2 F'","R' D2 R","F D F'"],["","F2 D2 R F' R' D2 F' D2 F'","F2 D2 F' D' F D' F' D2 F'","F2 D F2 D F2 D2 F2","D2 F L D2 L' D2 F'","D F D2 L D2 L' F'","R' D B' D2 B D' R","R' D2 B' D2 B R","F D2 F' D F D F'","F D' L D2 L' D F'","B D' F D B' D' F'","F D2 L D2 L' F'","F D' L D L' D F'","F L D2 L' D2 F'","R' B' D2 B D2 R"],["D'","F L D L' D' F'","D2","L B D B' D' L'","D","B' L' D' L D B","","D F L D L' D' F'"],["F' D2 F D F' D F","F' D' R' D R F","F' R' D' R D F","B D R D' R' B'","","D B' D' L' D L B"],["D F D F' D F D2 F'","F' U2 B' R' B U2 F' L F' L' F'","","D2 L D L2 F L F2 D F"],["L B' L' F L B L' F'","F2 U F' D2 F U' F' D2 F'","D' F' D B D' F D B'","F L2 F R2 F' L2 F R2 F2","D B D' F' D B' D' F","R F L F' R' F L' F'","","D2 B L' U2 L B' D2 B L' U2 L B'","D2 F R' U2 R F' D2 F R' U2 R F'","R F L' F' R' F L F'","D F D' B' D F' D' B","L2 F2 L' B2 L F2 L' B2 L'"],["L B R' B' L' B R B'","R' B R F' R' B' R F","L D2 L U L' D2 L U' L2","","D2 B' D2 F D' L2 F L2 F' D2 B D' F'","D2 F' R' F R2 B' D2 B D2 R' F D2 F'","L B L' F L B' L' F'","F' D2 F' U' F D2 F' U F2","D' B' D F D' B D F'"],["","D2 F' L U2 L' F D2 F' L U2 L' F","D2 B' R U2 R' B D2 B' R U2 R' B"]]});var Wu={};ye(Wu,{initialize:()=>iL,solveState:()=>sL});function gu(){}function dm(e){function t(){}return t.prototype=e||{},new t}function Dm(e){return e instanceof Array?e[0]:null}function Po(e,t,r){var n=Zl,o=Fm,l=Dm,i=n[e],s=l(i);i&&!s?H=i:(H=n[e]=t?o(t):{},H.castableTypeMap$=r,H.constructor=H,!t&&(H.typeMarker$=gu));for(var f=3;f<arguments.length;++f)arguments[f].prototype=H;s&&(H.___clazz$=s)}function Fm(e){var t=Zl;return dm(t[e])}function hm(){}function Jl(e){return e<<24>>24}function Ys(){this.typeName=null,this.simpleName=null,this.packageName=null,this.compoundName=null,this.canonicalName=null,this.typeId=null,this.arrayLiterals=null}function Zs(e,t){var r;return r=new Ys,r.packageName=e,r.compoundName=t,r}function Lr(e,t,r){var n;return n=Zs(e,t),Um(r,n),n}function Am(e,t){var r;return r=Zs(e,t),r.modifiers=2,r}function Xl(e,t){var r;return r=Zs("",e),r.typeId=t,r.modifiers=1,r}function cu(e,t){var r=e.arrayLiterals=e.arrayLiterals||[];return r[t]||(r[t]=e.createClassLiteralForArray(t))}function ym(e){if(e.isPrimitive())return null;var t=e.typeId,r=Zl[t];return r}function Um(e,t){if(!!e){t.typeId=e;var r=ym(t);if(!r){Zl[e]=[t];return}r.___clazz$=t}}function ee(e,t){return cu(e,t)}function J(e,t,r,n,o,l){var i;return i=mu(o,n),te(ee(e,l),t,r,o,i),i}function tt(e,t,r,n,o,l){return pu(e,t,r,n,o,0,l)}function pu(e,t,r,n,o,l,i){var s,f,a,g,c;if(g=o[l],a=l==i-1,s=a?n:0,c=mu(s,g),te(ee(e,i-l),t[l],r[l],s,c),!a)for(++l,f=0;f<g;++f)c[f]=pu(e,t,r,n,o,l,i);return c}function te(e,t,r,n,o){return o.___clazz$=e,o.castableTypeMap$=t,o.typeMarker$=gu,o.__elementTypeId$=r,o.__elementTypeCategory$=n,o}function mu(e,t){var r=new Array(t),n;switch(e){case 6:n={l:0,m:0,h:0};break;case 7:n=0;break;case 8:n=!1;break;default:return r}for(var o=0;o<t;++o)r[o]=n;return r}function Lu(e){var t,r,n;return t=e&et,r=e>>22&et,n=e<0?mr:0,bm(t,r,n)}function bm(e,t,r){return{l:e,m:t,h:r}}function Sm(e,t){var r,n,o;return r=e.l+t.l,n=e.m+t.m+(r>>22),o=e.h+t.h+(n>>22),{l:r&et,m:n&et,h:o&mr}}function Ot(e,t){return{l:e.l&t.l,m:e.m&t.m,h:e.h&t.h}}function Js(e){var t,r;return e>-129&&e<128?(t=e+128,ei==null&&(ei=J(oL,ae,293,256,0,1)),r=ei[t],!r&&(r=ei[t]=Lu(e)),r):Lu(e)}function Bu(e,t){var r,n;return r=e.h>>19,n=t.h>>19,r==0?n!=0||e.h>t.h||e.h==t.h&&e.m>t.m||e.h==t.h&&e.m==t.m&&e.l>=t.l:!(n==0||e.h<t.h||e.h==t.h&&e.m<t.m||e.h==t.h&&e.m==t.m&&e.l<t.l)}function Xs(e,t){return e.l!=t.l||e.m!=t.m||e.h!=t.h}function $s(e,t){return{l:e.l|t.l,m:e.m|t.m,h:e.h|t.h}}function $l(e,t){var r,n,o;return t&=63,t<22?(r=e.l<<t,n=e.m<<t|e.l>>22-t,o=e.h<<t|e.m>>22-t):t<44?(r=0,n=e.l<<t-22,o=e.m<<t-22|e.l>>44-t):(r=0,n=0,o=e.l<<t-44),{l:r&et,m:n&et,h:o&mr}}function Kr(e,t){var r,n,o,l,i;return t&=63,r=e.h,n=(r&Rm)!=0,n&&(r|=-1048576),t<22?(i=r>>t,l=e.m>>t|r<<22-t,o=e.l>>t|e.m<<22-t):t<44?(i=n?mr:0,l=r>>t-22,o=e.m>>t-22|r<<44-t):(i=n?mr:0,l=n?et:0,o=r>>t-44),{l:o&et,m:l&et,h:i&mr}}function Ru(e,t){var r,n,o;return r=e.l-t.l,n=e.m-t.m+(r>>22),o=e.h-t.h+(n>>22),{l:r&et,m:n&et,h:o&mr}}function Qr(e){return e.l|e.m<<22}function xm(e){this.string=e}function Br(e,t){return e>t?e:t}function ea(e,t){return e<t?e:t}function wm(e,t){return e.indexOf(t)}function vm(e){return Em(e,0,e.length)}function Em(e,t,r){for(var n="",o=t;o<r;){var l=Math.min(o+1e4,r);n+=String.fromCharCode.apply(null,e.slice(o,l)),o=l}return n}function km(e){return String.fromCharCode(e&qe)}function du(e){return e.string+=" ",e}function Du(e,t){return e.string+=t,e}function _m(){xm.call(this,"")}function ti(e,t){var r;if(e===t)return!0;if(e.length!=t.length)return!1;for(r=0;r<e.length;++r)if(e[r]!=t[r])return!1;return!0}function jr(){Fu||(Fu=!0,dr=tt(Fe,[ae,De],[11,0],7,[495,18],2),Gn=tt(Fe,[ae,De],[11,0],7,[324,18],2),Mn=tt(Fe,[ae,De],[11,0],7,[336,18],2),Rr=tt(Fe,[ae,De],[11,0],7,[495,8],2),oi=J(Ce,_e,0,20048,7,1),ni=J(Ce,_e,0,20791,7,1),Tn=J(Ce,_e,0,82945,7,1),_n=tt(Fe,[ae,De],[11,0],7,[2768,10],2),Pn=tt(Fe,[ae,De],[11,0],7,[2768,10],2),Nn=tt(Fe,[ae,De],[11,0],7,[24,10],2),To=tt(Fe,[ae,De],[11,0],7,[24,16],2),qr=tt(Fe,[ae,De],[11,0],7,[140,16],2),ri=J(Ce,_e,0,8305,7,1),Cn=J(Ce,_e,0,48441,7,1))}function Cm(e,t,r){return e.slice_0=dr[t.slice_0][r],e.flip=Mn[t.flip][(X(),Hr)[r<<3|t.fsym]],e.fsym=e.flip&7^t.fsym,e.flip>>=3,e.twist=Gn[t.twist][Hr[r<<3|t.tsym]],e.tsym=e.twist&7^t.tsym,e.twist>>=3,e.prun=Br(Br(st(oi,e.twist*495+Rr[e.slice_0][e.tsym]),st(ni,e.flip*495+Rr[e.slice_0][e.fsym])),st(Tn,e.twist<<11|hr[e.flip<<3|e.fsym^e.tsym])),e.prun}function Pm(e,t,r){return r=(X(),Io)[3][r],e.flipc=Mn[t.flipc>>3][Hr[r<<3|t.flipc&7]]^t.flipc&7,e.twistc=Gn[t.twistc>>3][Hr[r<<3|t.twistc&7]]^t.twistc&7,st(Tn,e.twistc>>3<<11|hr[e.flipc^e.twistc&7])}function hu(e,t,r){var n;return e.twist=(X(),Wo)[ai(t)],e.flip=Vr[si(t)],e.tsym=e.twist&7,e.twist=e.twist>>3,e.prun=st(Tn,e.twist<<11|hr[e.flip^e.tsym]),e.prun>r||(e.fsym=e.flip&7,e.flip=e.flip>>3,e.slice_0=494-Wn(t.ea,8,!0),e.prun=Br(e.prun,Br(st(oi,e.twist*495+Rr[e.slice_0][e.tsym]),st(ni,e.flip*495+Rr[e.slice_0][e.fsym]))),e.prun>r)?!1:(n=new ue,Go(t,1,n),Oo(t,1,n),e.twistc=Wo[ai(n)],e.flipc=Vr[si(n)],e.prun=Br(e.prun,st(Tn,e.twistc>>3<<11|hr[e.flipc^e.twistc&7])),e.prun<=r)}function Mo(){jr()}function st(e,t){return jr(),e[t>>3]>>(t<<2)&15}function Au(e){jr(),!(li==2||li==1&&!e)&&(li==0&&(Hm(),Mm(),Tm(),Om(),Nm(),X(),ia(2048,sa,Vr,vu=J(Fe,De,0,336,7,1),0),ia(2187,ga,Wo,ua=J(Fe,De,0,324,7,1),1),Gm(),Im(),Wm()),No(ri,Nn,To,_n,(X(),fa),584244,e),No(Cn,ta,qr,Pn,fa,514084,e),No(oi,dr,Rr,Gn,ua,431619,e),No(ni,dr,Rr,Mn,vu,431619,e),No(Tn,null,null,Gn,ua,103939,e),li=e?2:1)}function Mm(){var e,t,r,n;for(e=new ue,t=new ue,r=0;r<2768;r++)for(jm(e,(X(),On)[r]),n=0;n<10;n++)Dr(e,ge[(Ye(),bt)[n]],t),_n[r][n]=gi(Jt[ft(t.ca,8,!1)])&qe}function Nm(){var e,t,r,n,o;for(e=new ue,t=new ue,ta=tt(Fe,[ae,De],[11,0],7,[140,10],2),r=0;r<140;r++){for(Tu(e.ca,r%70,0,!1),o=0;o<10;o++)Dr(e,(X(),ge)[(Ye(),bt)[o]],t),ta[r][o]=Wn(t.ca,0,!1)+70*(165>>o&1^~~(r/70))&qe;for(n=0;n<16;n++)Go(e,(X(),at)[0][n],t),qr[r][n]=Wn(t.ca,0,!1)+70*~~(r/70)&qe}}function Tm(){var e,t,r,n;for(e=new ue,t=new ue,r=0;r<2768;r++)for(Su(e,(X(),On)[r]),n=0;n<10;n++)Bt(e,ge[(Ye(),bt)[n]],t),Pn[r][n]=Jt[ft(t.ea,8,!0)]}function Gm(){var e,t,r,n;for(e=new ue,t=new ue,r=0;r<336;r++)for(oa(e,(X(),sa)[r]),n=0;n<18;n++)Bt(e,ge[n],t),Mn[r][n]=Vr[si(t)]}function Om(){var e,t,r,n,o;for(e=new ue,t=new ue,r=0;r<24;r++){for(Yr(e.ea,r,12,!0),o=0;o<10;o++)Bt(e,(X(),ge)[(Ye(),bt)[o]],t),Nn[r][o]=ft(t.ea,12,!0)%24&qe;for(n=0;n<16;n++)Oo(e,(X(),at)[0][n],t),To[r][n]=ft(t.ea,12,!0)%24&qe}}function No(e,t,r,n,o,l,i){var s,f,a,g,c,u,p,m,L,R,D,A,y,k,E,Q,$,N,oe,b,_,M,x,w,C,j,Z,ce,Le,Ae,be,kt,Ne,nt,ve,h;if(y=l&15,D=(l>>4&1)==1?Hs:0,a=(l>>5&1)==1,s=l>>8&15,g=l>>12&15,c=l>>16&15,R=i?g:c,A=(1<<y)-1,f=t==null,m=f?2048:t.length,L=m*n.length,p=a?10:18,u=p==10?66:599186,E=(e[L>>3]>>(L<<2)&15)-1,E==-1){for(N=0;N<~~(L/8)+1;N++)e[N]=Co;e[0]^=1,E=0}for(;E<R;){for(C=(E+1)*Co^-1,oe=0;oe<e.length;oe++)ve=e[oe]^C,ve&=ve>>1,e[oe]+=ve&ve>>2&Co;for(M=E>s,Ae=M?E+2:E,Le=Ae*Co,k=M?E:E+2,++E,h=E^E+1,nt=0,N=0;N<L;++N,nt>>=4){if((N&7)==0&&(nt=e[N>>3],((nt^Le)-Co&~(nt^Le)&-2004318072)==0)){N+=7;continue}if((nt&15)==Ae)for(Z=N%m,be=~~(N/m),Q=0,$=0,f&&(Q=(X(),Vr)[Z],$=Q&7,Q>>=3),w=0;w<p;w++){if(Ne=n[be][w],f?ce=(X(),hr)[Mn[Q][Hr[w<<3|$]]^$^Ne&A]:ce=r[t[Z][w]][Ne&A],Ne>>=y,b=Ne*m+ce,j=e[b>>3]>>(b<<2)&15,j!=k){j<E-1&&(w+=u>>w&3);continue}if(M){e[N>>3]^=h<<(N<<2);break}for(e[b>>3]^=h<<(b<<2),x=1,kt=o[Ne];(kt>>=1)!=0;x++)(kt&1)==1&&(_=Ne*m,f?_+=(X(),hr)[Vr[ce]^x]:_+=r[ce][x^D>>(x<<1)&3],(e[_>>3]>>(_<<2)&15)==k&&(e[_>>3]^=h<<(_<<2)))}}}}function Im(){var e,t,r,n;for(e=new ue,t=new ue,r=0;r<324;r++)for(la(e,(X(),ga)[r]),n=0;n<18;n++)Dr(e,ge[n],t),Gn[r][n]=Wo[ai(t)]}function Wm(){var e,t,r,n,o,l,i,s;for(e=new ue,t=new ue,n=0;n<495;n++){for(Tu(e.ea,494-n,8,!0),l=0;l<18;l+=3)Bt(e,(X(),ge)[l],t),dr[n][l]=494-Wn(t.ea,8,!0)&qe;for(o=0;o<16;o+=2)Oo(e,(X(),at)[0][o],t),Rr[n][o>>1]=494-Wn(t.ea,8,!0)&qe}for(r=0;r<495;r++)for(o=0;o<18;o+=3)for(s=dr[r][o],i=1;i<3;i++)s=dr[s][o],dr[r][o+i]=s&qe}function X(){yu||(yu=!0,Zt=J(Ko,ae,7,16,0,1),ge=J(Ko,ae,7,18,0,1),pi=J(lL,ae,0,18,6,1),Eu=J(Ce,_e,0,48,7,1),Xt=tt(Ce,[ae,_e],[17,0],7,[16,16],2),at=tt(Ce,[ae,_e],[17,0],7,[16,16],2),Io=tt(Ce,[ae,_e],[17,0],7,[16,18],2),Hr=J(Ce,_e,0,144,7,1),Ar=tt(Ce,[ae,_e],[17,0],7,[16,18],2),sa=J(Fe,De,0,336,7,1),ga=J(Fe,De,0,324,7,1),On=J(Fe,De,0,2768,7,1),In=J(re,se,0,2768,7,1),aa=J(Fe,De,0,2768,7,1),ci=J(re,se,0,24,7,1),Vr=J(Fe,De,0,2048,7,1),Wo=J(Fe,De,0,2187,7,1),Jt=J(Fe,De,0,40320,7,1),hr=J(Fe,De,0,2688,7,1),ca=new Ut(2531,1373,67026819,1367),pa=new Ut(2089,1906,322752913,2040),mi=te(ee(re,2),ae,10,0,[te(ee(re,1),se,0,7,[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17]),te(ee(re,1),se,0,7,[6,7,8,0,1,2,3,4,5,15,16,17,9,10,11,12,13,14]),te(ee(re,1),se,0,7,[3,4,5,6,7,8,0,1,2,12,13,14,15,16,17,9,10,11]),te(ee(re,1),se,0,7,[2,1,0,5,4,3,8,7,6,11,10,9,14,13,12,17,16,15]),te(ee(re,1),se,0,7,[8,7,6,2,1,0,5,4,3,17,16,15,11,10,9,14,13,12]),te(ee(re,1),se,0,7,[5,4,3,8,7,6,2,1,0,14,13,12,17,16,15,11,10,9])]),Vm(),Ym())}function ra(e){e.ca=te(ee(re,1),se,0,7,[0,1,2,3,4,5,6,7]),e.ea=te(ee(re,1),se,0,7,[0,2,4,6,8,10,12,14,16,18,20,22])}function Uu(e){!e.temps&&(e.temps=new ue),Dr(pa,e,e.temps),Dr(e.temps,ca,e),Bt(pa,e,e.temps),Bt(e.temps,ca,e)}function na(e,t){var r,n;for(n=0;n<8;n++)e.ca[n]=t.ca[n];for(r=0;r<12;r++)e.ea[r]=t.ea[r]}function Km(e){return gi(Jt[ft(e.ca,8,!1)])}function Qm(e){return Jt[ft(e.ea,8,!0)]}function si(e){var t,r;for(r=0,t=0;t<11;t++)r=r<<1|e.ea[t]&1;return r}function ai(e){var t,r;for(r=0,t=0;t<7;t++)r+=(r<<1)+(e.ca[t]>>3);return r}function fi(e){var t,r;for(!e.temps&&(e.temps=new ue),r=0;r<12;r++)e.temps.ea[e.ea[r]>>1]=(r<<1|e.ea[r]&1)<<24>>24;for(t=0;t<8;t++)e.temps.ca[e.ca[t]&7]=(t|32>>(e.ca[t]>>3)&24)<<24>>24;na(e,e.temps)}function bu(e){var t,r,n,o,l,i,s;for(t=new xu(e),o=new ue,r=gi(Jt[ft(t.ca,8,!1)])>>4,i={l:0,m:0,h:0},s=0;s<6;s++){if(n=gi(Jt[ft(t.ca,8,!1)])>>4,r==n)for(l=0;l<16;l++)Go(t,at[0][l],o),ti(o.ca,e.ca)&&(Oo(t,at[0][l],o),ti(o.ea,e.ea)&&(i=$s(i,$l({l:1,m:0,h:0},(s<<4|l)<48?s<<4|l:48))));Uu(t),s%3==2&&fi(t)}return i}function jm(e,t){Yr(e.ca,t,8,!1)}function Su(e,t){Yr(e.ea,t,8,!0)}function oa(e,t){var r,n,o;for(n=0,r=10;r>=0;--r,t>>=1)n^=o=t&1,e.ea[r]=(e.ea[r]&-2|o)<<24>>24;e.ea[11]=(e.ea[11]&-2|n)<<24>>24}function la(e,t){var r,n,o;for(n=15,r=6;r>=0;--r,t=~~(t/3))n-=o=t%3,e.ca[r]=(e.ca[r]&7|o<<3)<<24>>24;e.ca[7]=(e.ca[7]&7|n%3<<3)<<24>>24}function qm(e){var t,r,n,o,l;for(l=0,o=0,n=0;n<12;n++)o|=1<<(e.ea[n]>>1),l^=e.ea[n]&1;if(o!=4095)return-2;if(l!=0)return-3;for(r=0,l=0,t=0;t<8;t++)r|=1<<(e.ca[t]&7),l+=e.ca[t]>>3;return r!=255?-4:l%3!=0?-5:(La(ft(e.ea,12,!0),12)^La(ft(e.ca,8,!1),8))!=0?-6:0}function Go(e,t,r){X();var n,o,l,i,s,f;for(f=Zt[at[0][t]],s=Zt[t],n=0;n<8;n++)l=f.ca[e.ca[s.ca[n]&7]&7]>>3,i=e.ca[s.ca[n]&7]>>3,o=l<3?i:(3-i)%3,r.ca[n]=(f.ca[e.ca[s.ca[n]&7]&7]&7|o<<3)<<24>>24}function Dr(e,t,r){X();var n,o,l;for(n=0;n<8;n++)o=e.ca[t.ca[n]&7]>>3,l=t.ca[n]>>3,r.ca[n]=(e.ca[t.ca[n]&7]&7|(o+l)%3<<3)<<24>>24}function ui(e,t,r){var n,o,l,i;for(n=0;n<8;n++)l=e.ca[t.ca[n]&7]>>3,i=t.ca[n]>>3,o=l+(l<3?i:6-i),o=o%3+(l<3==i<3?0:3),r.ca[n]=(e.ca[t.ca[n]&7]&7|o<<3)<<24>>24}function ue(){X(),ra(this)}function Ut(e,t,r,n){ra(this),Yr(this.ca,e,8,!1),la(this,t),Yr(this.ea,r,12,!0),oa(this,n)}function xu(e){ra(this),na(this,e)}function gi(e){return X(),e^Hs>>((e&15)<<1)&3}function Oo(e,t,r){X();var n,o,l;for(l=Zt[at[0][t]],o=Zt[t],n=0;n<12;n++)r.ea[n]=(l.ea[e.ea[o.ea[n]>>1]>>1]^e.ea[o.ea[n]>>1]&1^o.ea[n]&1)<<24>>24}function Bt(e,t,r){X();var n;for(n=0;n<12;n++)r.ea[n]=(e.ea[t.ea[n]>>1]^t.ea[n]&1)<<24>>24}function Fr(e,t,r){X();var n;return n=aa[e],r&&(n=n^Hs>>((n&15)<<1)&3),n&65520|Xt[n&15][t]}function wu(){return X(),0}function Vm(){var e,t;for(ge[0]=new Ut(15120,0,119750400,0),ge[3]=new Ut(21021,1494,323403417,0),ge[6]=new Ut(8064,1236,29441808,550),ge[9]=new Ut(9,0,5880,0),ge[12]=new Ut(1230,412,2949660,0),ge[15]=new Ut(224,137,328552,137),e=0;e<18;e+=3)for(t=0;t<2;t++)ge[e+t+1]=new ue,Bt(ge[e+t],ge[e],ge[e+t+1]),Dr(ge[e+t],ge[e],ge[e+t+1])}function Hm(){X();var e,t,r;for(ia(40320,On,Jt,fa=J(Fe,De,0,2768,7,1),2),e=new ue,r=0;r<2768;r++)Su(e,On[r]),In[r]=Wn(e.ea,0,!0)+La(On[r],8)*70<<24>>24,fi(e),aa[r]=Jt[ft(e.ea,8,!0)];for(t=0;t<24;t++)Yr(e.ea,t,12,!0),fi(e),ci[t]=ft(e.ea,12,!0)%24<<24>>24}function Ym(){var e,t,r,n,o,l,i,s,f,a,g,c,u,p,m,L;for(e=new ue,t=new ue,r=new Ut(28783,0,259268407,0),L=new Ut(15138,0,119765538,7),c=new Ut(5167,0,83473207,0),o=0;o<8;o++)c.ca[o]=Jl(c.ca[o]|24);for(l=0;l<16;l++)Zt[l]=new xu(e),ui(e,L,t),Bt(e,L,t),m=t,t=e,e=m,l%4==3&&(ui(m,c,t),Bt(m,c,t),m=t,t=e,e=m),l%8==7&&(ui(m,r,t),Bt(m,r,t),m=t,t=e,e=m);for(i=0;i<16;i++)for(f=0;f<16;f++)for(ui(Zt[i],Zt[f],e),g=0;g<16;g++)if(ti(Zt[g].ca,e.ca)){Xt[i][f]=g,at[g][f]=i;break}for(a=0;a<18;a++)for(p=0;p<16;p++){for(Go(ge[a],at[0][p],e),u=0;u<18;u++)if(ti(ge[u].ca,e.ca)){Io[p][a]=u,Ar[p][(Ye(),Kn)[a]]=Kn[u];break}p%2==0&&(Hr[a<<3|p>>1]=Io[p][a])}for(n=0;n<18;n++)for(pi[n]=bu(ge[n]),s=n,p=0;p<48;p++)Io[p%16][s]<n&&(Eu[p]|=1<<n),p%16==15&&(s=mi[2][s])}function ia(e,t,r,n,o){X();var l,i,s,f,a,g,c,u,p;for(l=new ue,s=new ue,i=0,a=0,p=o>=2?1:2,g=o!=1,f=0;f<e;f++)if(r[f]==0){switch(o){case 0:oa(l,f);break;case 1:la(l,f);break;case 2:Yr(l.ea,f,8,!0)}for(c=0;c<16;c+=p){switch(g?Oo(l,c,s):Go(l,c,s),o){case 0:a=si(s);break;case 1:a=ai(s);break;case 2:a=ft(s.ea,8,!0)}o==0&&(hr[i<<3|c>>1]=a&qe),a==f&&(n[i]=(n[i]|1<<~~(c/p))&qe),u=~~((i<<4|c)/p),r[a]=u&qe}t[i++]=f&qe}return i}function Zm(e,t,r,n,o,l,i,s){var f,a,g,c,u;if(c=Br(st((jr(),Cn),(i>>4)*140+qr[(X(),In)[s>>4]&255][at[i&15][s&15]]),Br(st(Cn,n*140+qr[In[t]&255][at[o][r]]),st(ri,t*24+To[l][r]))),c>e.maxDep2)return c-e.maxDep2;for(f=e.maxDep2;f>=c&&(u=_u(e,n,o,t,r,l,f,e.depth1,10),!(u<0));f--){for(f-=u,e.solLen=0,e.solution=new Iu,nL(e.solution,e.verbose,e.urfIdx,e.depth1),g=0;g<e.depth1+f;g++)Gu(e.solution,e.move[g]);for(a=e.preMoveLen-1;a>=0;a--)Gu(e.solution,e.preMoves[a]);e.solLen=e.solution.length_0}return f!=e.maxDep2?(e.maxDep2=ea(Pu,e.solLen-e.length1-1),Bu(e.probe,e.probeMin)?0:1):1}function Jm(e){var t,r,n,o,l,i,s,f,a,g,c,u,p,m,L;if(e.isRec=!1,Bu(e.probe,e.solution?e.probeMin:e.probeMax))return 0;for(e.probe=Sm(e.probe,{l:1,m:0,h:0}),n=e.valid1;n<e.depth1;n++)Dr(e.phase1Cubie[n],(X(),ge)[e.move[n]],e.phase1Cubie[n+1]),Bt(e.phase1Cubie[n],ge[e.move[n]],e.phase1Cubie[n+1]);for(e.valid1=e.depth1,s=Km(e.phase1Cubie[e.depth1]),f=s&15,s>>=4,a=Qm(e.phase1Cubie[e.depth1]),g=a&15,a>>=4,c=ft(e.phase1Cubie[e.depth1].ea,12,!0)%24,r=Fr(a,g,!1),t=Fr(s,f,!0),o=e.depth1==0?-1:e.move[e.depth1-1],l=e.preMoveLen==0?-1:e.preMoves[e.preMoveLen-1],L=0,m=(e.preMoveLen==0?1:2)*(e.depth1==0?1:2),u=0,p=(1<<m)-1;u<m;u++){if((p>>u&1)!=0){if(p&=~(1<<u),L=Zm(e,s,f,a,g,c,r,t),L==0||L>2)break;L==2&&(p&=4<<u)}if(p==0)break;(u&1)==0&&e.depth1>0?(i=(Ye(),Kn)[~~(o/3)*3+1],e.move[e.depth1-1]=bt[i]*2-e.move[e.depth1-1],c=(jr(),Nn)[c][i],s=_n[s][(X(),Ar)[f][i]],f=Xt[s&15][f],s>>=4,a=Pn[a][Ar[g][i]],g=Xt[a&15][g],a>>=4,t=Fr(s,f,!0),r=Fr(a,g,!1)):e.preMoveLen>0&&(i=(Ye(),Kn)[~~(l/3)*3+1],e.preMoves[e.preMoveLen-1]=bt[i]*2-e.preMoves[e.preMoveLen-1],c=(X(),ci)[(jr(),Nn)[ci[c]][i]],s=_n[t>>4][Ar[t&15][i]],t=s&-16|Xt[s&15][t&15],s=Fr(t>>4,t&15,!0),f=s&15,s>>=4,a=Pn[r>>4][Ar[r&15][i]],r=a&-16|Xt[a&15][r&15],a=Fr(r>>4,r&15,!1),g=a&15,a>>=4)}return e.depth1>0&&(e.move[e.depth1-1]=o),e.preMoveLen>0&&(e.preMoves[e.preMoveLen-1]=l),L==0?0:2}function Xm(e){var t;for(e.conjMask=0,e.selfSym=bu(e.cc),e.conjMask|=Xs(Ot(Kr(e.selfSym,16),{l:qe,m:0,h:0}),{l:0,m:0,h:0})?18:0,e.conjMask|=Xs(Ot(Kr(e.selfSym,32),{l:qe,m:0,h:0}),{l:0,m:0,h:0})?36:0,e.conjMask|=Xs(Ot(Kr(e.selfSym,48),{l:qe,m:0,h:0}),{l:0,m:0,h:0})?56:0,e.selfSym=Ot(e.selfSym,{l:et,m:et,h:15}),e.maxPreMoves=e.conjMask>7?0:20,t=0;t<6;t++)na(e.urfCubieCube[t],e.cc),hu(e.urfCoordCube[t],e.urfCubieCube[t],20),Uu(e.cc),t%3==2&&fi(e.cc)}function ku(e,t,r,n,o){var l,i,s,f,a,g;if(t.prun==0&&n<5)return e.allowShorter||n==0?(e.depth1-=n,a=Jm(e),e.depth1+=n,a):1;for(g=wu(Js(r)),l=0;l<18;l+=3)if(!(l==o||l==o-9)){for(s=0;s<3;s++)if(i=l+s,!(e.isRec&&i!=e.move[e.depth1-n]||g!=0&&(g&1<<i)!=0)){if(f=Cm(e.nodeUD[n],t,i),f>n)break;if(f==n)continue;if(f=Pm(e.nodeUD[n],t,i),f>n)break;if(f==n)continue;if(e.move[e.depth1-n]=i,e.valid1=ea(e.valid1,e.depth1-n),a=ku(e,e.nodeUD[n],r&Qr((X(),pi)[i]),n-1,l),a==0)return 0;if(a>=2)break}}return 1}function zu(e,t,r,n,o){var l,i,s;if(e.preMoveLen=e.maxPreMoves-t,(e.isRec?e.depth1==e.length1-e.preMoveLen:e.preMoveLen==0||(225207>>r&1)==0)&&(e.depth1=e.length1-e.preMoveLen,e.phase1Cubie[0]=n,e.allowShorter=e.depth1==ma&&e.preMoveLen!=0,hu(e.nodeUD[e.depth1+1],n,e.depth1)&&ku(e,e.nodeUD[e.depth1+1],o,e.depth1,-1)==0))return 0;if(t==0||e.preMoveLen+ma>=e.length1)return 1;for(s=wu(Js(o)),(t==1||e.preMoveLen+1+ma>=e.length1)&&(s|=225207),r=~~(r/3)*3,l=0;l<18;l++){if(l==r||l==r-9||l==r+9){l+=2;continue}if(!(e.isRec&&l!=e.preMoves[e.maxPreMoves-t]||(s&1<<l)!=0)&&(Dr((X(),ge)[l],n,e.preMoveCubes[t]),Bt(ge[l],n,e.preMoveCubes[t]),e.preMoves[e.maxPreMoves-t]=l,i=zu(e,t-1,l,e.preMoveCubes[t],o&Qr(pi[l])),i==0))return 0}return 1}function _u(e,t,r,n,o,l,i,s,f){var a,g,c,u,p,m,L,R,D,A,y;if(t==0&&n==0&&l==0)return i;for(D=(Ye(),Qo)[f],L=0;L<10;L++){if((D>>L&1)!=0){L+=66>>L&3;continue}if(R=(jr(),Nn)[l][L],g=_n[n][(X(),Ar)[o][L]],c=Xt[g&15][o],g>>=4,p=Pn[t][Ar[r][L]],m=Xt[p&15][r],p>>=4,u=Fr(p,m,!1),a=Fr(g,c,!0),A=st(Cn,(u>>4)*140+qr[In[a>>4]&255][at[u&15][a&15]]),A>i+1)return i-A+1;if(A>=i){L+=66>>L&3&i-A;continue}if(A=Br(st(ri,g*24+To[R][c]),st(Cn,p*140+qr[In[g]&255][at[m][c]])),A>=i){L+=66>>L&3&i-A;continue}if(y=_u(e,p,m,g,c,R,i-1,s+1,L),y>=0)return e.move[s]=bt[L],y;if(y<-2)break;y<-1&&(L+=66>>L&3)}return-1}function $m(e){for(e.length1=e.isRec?e.length1:0;e.length1<e.solLen;e.length1++)for(e.maxDep2=ea(Pu,e.solLen-e.length1-1),e.urfIdx=e.isRec?e.urfIdx:0;e.urfIdx<6;e.urfIdx++)if((e.conjMask&1<<e.urfIdx)==0&&zu(e,e.maxPreMoves,-30,e.urfCubieCube[e.urfIdx],Qr(Ot(e.selfSym,{l:qe,m:0,h:0})))==0)return e.solution?Ou(e.solution):"Error 8";return e.solution?Ou(e.solution):"Error 7"}function eL(e,t){var r;return r=tL(e,t),r!=0?"Error "+(r<0?-r:r):(e.solLen=22,e.probe={l:0,m:0,h:0},e.probeMax={l:3531008,m:23,h:0},e.probeMin={l:0,m:0,h:0},e.verbose=0,e.solution=null,e.isRec=!1,Au(!1),Xm(e),$m(e))}function tL(e,t){var r,n,o,l;for(n=0,o=J(re,se,0,54,7,1),r=vm(te(ee(Fe,1),De,0,7,[t.charCodeAt(4),t.charCodeAt(13),t.charCodeAt(22),t.charCodeAt(31),t.charCodeAt(40),t.charCodeAt(49)])),l=0;l<54;l++){if(o[l]=wm(r,km(t.charCodeAt(l)))<<24>>24,o[l]==-1)return-1;n+=1<<(o[l]<<2)}return n!=10066329?-1:(rL(o,e.cc),qm(e.cc))}function Cu(){var e,t,r;for(this.move=J(Ce,_e,0,31,7,1),this.nodeUD=J(ii,ae,31,21,0,1),this.nodeRL=J(ii,ae,31,21,0,1),this.nodeFB=J(ii,ae,31,21,0,1),this.cc=new ue,this.urfCubieCube=J(Ko,ae,7,6,0,1),this.urfCoordCube=J(ii,ae,31,6,0,1),this.phase1Cubie=J(Ko,ae,7,21,0,1),this.preMoveCubes=J(Ko,ae,7,21,0,1),this.preMoves=J(Ce,_e,0,20,7,1),t=0;t<21;t++)this.nodeUD[t]=new Mo,this.nodeRL[t]=new Mo,this.nodeFB[t]=new Mo,this.phase1Cubie[t]=new ue;for(r=0;r<6;r++)this.urfCubieCube[r]=new ue,this.urfCoordCube[r]=new Mo;for(e=0;e<20;e++)this.preMoveCubes[e+1]=new ue}function Ye(){if(!Mu){Mu=!0;var e,t,r,n,o,l;for(Zr=te(ee(re,2),ae,10,0,[te(ee(re,1),se,0,7,[8,9,20]),te(ee(re,1),se,0,7,[6,18,38]),te(ee(re,1),se,0,7,[0,36,47]),te(ee(re,1),se,0,7,[2,45,11]),te(ee(re,1),se,0,7,[29,26,15]),te(ee(re,1),se,0,7,[27,44,24]),te(ee(re,1),se,0,7,[33,53,42]),te(ee(re,1),se,0,7,[35,17,51])]),er=te(ee(re,2),ae,10,0,[te(ee(re,1),se,0,7,[5,10]),te(ee(re,1),se,0,7,[7,19]),te(ee(re,1),se,0,7,[3,37]),te(ee(re,1),se,0,7,[1,46]),te(ee(re,1),se,0,7,[32,16]),te(ee(re,1),se,0,7,[28,25]),te(ee(re,1),se,0,7,[30,43]),te(ee(re,1),se,0,7,[34,52]),te(ee(re,1),se,0,7,[23,12]),te(ee(re,1),se,0,7,[21,41]),te(ee(re,1),se,0,7,[50,39]),te(ee(re,1),se,0,7,[48,14])]),$t=tt(Ce,[ae,_e],[17,0],7,[13,13],2),Ba=te(ee(zm,1),ae,2,4,["U ","U2","U'","R ","R2","R'","F ","F2","F'","D ","D2","D'","L ","L2","L'","B ","B2","B'"]),bt=te(ee(Ce,1),_e,0,7,[0,1,2,4,7,9,10,11,13,16,3,5,6,8,12,14,15,17]),Kn=J(Ce,_e,0,18,7,1),Qo=J(Ce,_e,0,11,7,1),t=0;t<18;t++)Kn[bt[t]]=t;for(r=0;r<10;r++)for(n=~~(bt[r]/3),Qo[r]=0,o=0;o<10;o++)l=~~(bt[o]/3),Qo[r]|=(n==l||n%3==l%3&&n>=l?1:0)<<o;for(Qo[10]=0,e=0;e<13;e++)for($t[e][0]=$t[e][e]=1,o=1;o<e;o++)$t[e][o]=$t[e-1][o-1]+$t[e-1][o]}}function Wn(e,t,r){Ye();var n,o,l,i,s;for(n=e.length-1,l=0,s=4,o=n;o>=0;o--)i=Nu(e[o],r),(i&12)==t&&(l+=$t[o][s--]);return l}function La(e,t){Ye();var r,n;for(n=0,r=t-2;r>=0;r--)n^=e%(t-r),e=~~(e/(t-r));return n&1}function ft(e,t,r){Ye();var n,o,l,i;for(o=0,i={l:1323536,m:2777561,h:1043915},n=0;n<t-1;n++)l=Nu(e[n],r)<<2,o=(t-n)*o+Qr(Ot(Kr(i,l),{l:15,m:0,h:0})),i=Ru(i,$l({l:1118480,m:279620,h:69905},l));return o}function Nu(e,t){return t?e>>1:e&7}function Tu(e,t,r,n){Ye();var o,l,i,s;for(o=e.length-1,s=4,l=o,i=o;i>=0;i--)t>=$t[i][s]?(t-=$t[i][s--],e[i]=Li(e[i],s|r,n)):((l&12)==r&&(l-=4),e[i]=Li(e[i],l--,n))}function Yr(e,t,r,n){Ye();var o,l,i,s,f,a;for(a={l:1323536,m:2777561,h:1043915},o={l:0,m:0,h:0},s=2;s<=r;s++)o=$s($l(o,4),Js(t%s)),t=~~(t/s);for(l=0;l<r-1;l++)f=(Qr(o)&15)<<2,o=Kr(o,4),e[l]=Li(e[l],Qr(Ot(Kr(a,f),{l:15,m:0,h:0})),n),i=Ru($l({l:1,m:0,h:0},f),{l:1,m:0,h:0}),a=$s(Ot(a,i),Ot(Kr(a,4),{l:~i.l&et,m:~i.m&et,h:~i.h&mr}));e[r-1]=Li(e[r-1],Qr(Ot(a,{l:15,m:0,h:0})),n)}function Li(e,t,r){return(r?t<<1|e&1:t|e&-8)<<24>>24}function rL(e,t){Ye();var r,n,o,l,i,s,f,a;for(l=0;l<8;l++)t.ca[l]=0;for(i=0;i<12;i++)t.ea[i]=0;for(s=0;s<8;s++){for(a=0;a<3&&!(e[Zr[s][a]]==0||e[Zr[s][a]]==3);a++);for(r=e[Zr[s][(a+1)%3]],n=e[Zr[s][(a+2)%3]],f=0;f<8;f++)if(r==~~(Zr[f][1]/9)&&n==~~(Zr[f][2]/9)){t.ca[s]=Jl(a%3<<3|f);break}}for(o=0;o<12;o++)for(f=0;f<12;f++){if(e[er[o][0]]==~~(er[f][0]/9)&&e[er[o][1]]==~~(er[f][1]/9)){t.ea[o]=Jl(f<<1);break}if(e[er[o][0]]==~~(er[f][1]/9)&&e[er[o][1]]==~~(er[f][0]/9)){t.ea[o]=Jl(f<<1|1);break}}}function Gu(e,t){var r,n,o;if(e.length_0==0){e.moves[e.length_0++]=t;return}if(r=~~(t/3),n=~~(e.moves[e.length_0-1]/3),r==n){o=(t%3+e.moves[e.length_0-1]%3+1)%4,o==3?--e.length_0:e.moves[e.length_0-1]=r*3+o;return}if(e.length_0>1&&r%3==n%3&&r==~~(e.moves[e.length_0-2]/3)){o=(t%3+e.moves[e.length_0-2]%3+1)%4,o==3?(e.moves[e.length_0-2]=e.moves[e.length_0-1],--e.length_0):e.moves[e.length_0-2]=r*3+o;return}e.moves[e.length_0++]=t}function nL(e,t,r,n){e.verbose=t,e.urfIdx=r,e.depth1=n}function Ou(e){var t,r,n;if(r=new _m,n=(e.verbose&2)!=0?(e.urfIdx+3)%6:e.urfIdx,n<3)for(t=0;t<e.length_0;t++)(e.verbose&1)!=0&&t==e.depth1&&(r.string+=". "),du(Du(r,(Ye(),Ba)[(X(),mi)[n][e.moves[t]]]));else for(t=e.length_0-1;t>=0;t--)du(Du(r,(Ye(),Ba)[(X(),mi)[n][e.moves[t]]])),(e.verbose&1)!=0&&t==e.depth1&&(r.string+=". ");return r.string}function Iu(){this.moves=J(Ce,_e,0,31,7,1)}var ae,et,mr,Rm,qe,De,_e,Hs,Co,se,H,Zl,ei,zm,Fu,qr,ta,_n,Cn,Pn,Mn,ri,To,Nn,Tn,Gn,Rr,ni,dr,oi,li,ii,yu,Zt,Jt,On,Vr,sa,hr,ci,In,aa,Hr,Io,Ar,Xt,at,vu,fa,ua,Wo,ga,Eu,ge,pi,ca,pa,mi,Ko,Pu,ma,Mu,$t,Qo,Zr,er,Ba,Kn,bt,Ce,oL,re,lL,Fe,iL,sL,Ku=U(()=>{ae={3:1},et=4194303,mr=1048575,Rm=524288,qe=65535,De={11:1,3:1},_e={17:1,3:1},Hs=14540032,Co=286331153,se={10:1,3:1},Zl={};Po(1,null,{},hm);Po(79,1,{},Ys);H.createClassLiteralForArray=function(t){var r;return r=new Ys,r.modifiers=4,t>1?r.componentType=cu(this,t-1):r.componentType=this,r};H.isPrimitive=function(){return(this.modifiers&1)!=0};zm=Lr("java.lang","String",2);Fu=!1;Po(31,1,{31:1},Mo);H.flip=0;H.flipc=0;H.fsym=0;H.prun=0;H.slice_0=0;H.tsym=0;H.twist=0;H.twistc=0;li=0,ii=Lr("org.cubing.min2phase.client","CoordCube",31),yu=!1;Ko=Lr("org.cubing.min2phase.client","CubieCube",7);Po(72,1,{},Cu);H.allowShorter=!1;H.conjMask=0;H.depth1=0;H.isRec=!1;H.length1=0;H.maxDep2=0;H.maxPreMoves=0;H.preMoveLen=0;H.probe={l:0,m:0,h:0};H.probeMax={l:0,m:0,h:0};H.probeMin={l:0,m:0,h:0};H.selfSym={l:0,m:0,h:0};H.solLen=0;H.urfIdx=0;H.valid1=0;H.verbose=0;Pu=12,ma=7,Mu=!1;Po(150,1,{},Iu);H.depth1=0;H.length_0=0;H.urfIdx=0;H.verbose=0;Ce=Xl("int","I");Lr("com.google.gwt.lang","CollapsedPropertyHolder",252);Lr("com.google.gwt.lang","JavaClassHierarchySetupUtil",254);oL=Lr("com.google.gwt.lang","LongLibBase/LongEmul",null);Lr("com.google.gwt.lang","ModuleUtils",257);re=Xl("byte","B"),lL=Xl("long","J"),Fe=Xl("char","C");Lr("com.google.gwt.user.client.rpc","XsrfToken",null),Am("java.util","Map/Entry");iL=function(){Au(!1)},sL=function(e){return eL(new Cu,e)}});async function Qu(){let e=await ke["3x3x3"].kpuzzle(),t=e.startState();for(let r of fu)t=t.applyAlg(z.fromString((await Yt())(r)));return su(e,t)?t:Qu()}function ju(){return aL??(aL=Promise.resolve().then(()=>(Ku(),Wu)))}async function Ra(e){return Qe(),z.fromString((await ju()).solveState(ou(e)))}async function Qn(){return Ra(await Qu())}async function qu(){(await ju()).initialize()}async function Vu(){return zn(await Qn(),fL)}async function Yu(){let e=new pt,t=await Qn();return e.experimentalPushAlg(Hu),e.experimentalPushAlg(t),e.experimentalPushAlg(Hu),e.toAlg()}var aL,fL,Hu,da=U(()=>{Re();Ht();Nt();Mt();Yl();lu();au();uu();aL=null;fL=[[null,"Rw","Rw2","Rw'","Fw","Fw'"],[null,"Dw","Dw2","Dw'"]];Hu=new z("R' U' F")});function fe(e,...t){let r=t.length,n=e[t[r-1]];for(let o=r;o>0;o--)e[t[o]]=e[t[o-1]];return e[t[0]]=n,fe}function Zu(e,t,r,n){r=(r||8)-1;let o=1985229328,l=0;n??(n=0),n<0&&(t<<=1);for(let i=0;i<r;++i){let s=Da[r-i],f=~~(t/s);l^=f,t%=s,f<<=2,e[i]=o>>f&7;let a=(1<<f)-1;o=(o&a)+(o>>4&~a)}return n<0&&(l&1)!=0?(e[r]=e[r-1],e[r-1]=o&7):e[r]=o&7,e}var pe,Da,Ju=U(()=>{pe=[],Da=[1];for(let e=0;e<32;++e){pe[e]=[];for(let t=0;t<32;++t)pe[e][t]=0}for(let e=0;e<32;++e){pe[e][0]=pe[e][e]=1,Da[e+1]=Da[e]*(e+1);for(let t=1;t<e;++t)pe[e][t]=pe[e-1][t-1]+pe[e-1][t]}});var og={};ye(og,{initialize:()=>UB,random444Scramble:()=>bB});function T(e,t){let r=new Array(e);if(t!==void 0)for(let n=0;n<e;n++)r[n]=new Array(t);return r}function BL(e){return new jo[e]}function ct(e,t,r,...n){let o=jo[e];o&&!o.___clazz$?Y=o.prototype:(!o&&(o=jo[e]=function(){}),Y=o.prototype=t<0?{}:BL(t),Y.castableTypeMap$=r);for(let l of n)l.prototype=Y;o.___clazz$&&(Y.___clazz$=o.___clazz$,o.___clazz$=null)}function yr(e){let t={};for(let r=0,n=e.length;r<n;++r)t[e[r]]=1;return t}function t1(){}function RL(e,t){let r=r1(0,t);return n1(e.___clazz$,e.castableTypeMap$,e.queryId$,r),r}function r1(e,t){let r=new Array(t);if(e===3)for(let n=0;n<t;++n){let o={m:0,l:0,h:0};o.l=o.m=o.h=0,r[n]=o}else if(e>0){let n=[null,0,!1][e];for(let o=0;o<t;++o)r[o]=n}return r}function Aa(e,t,r,n,o){let l=r1(o,n);return n1(e,t,r,l),l}function n1(e,t,r,n){return l1(),DL(n,ya,Ua),n.___clazz$=e,n.castableTypeMap$=t,n.queryId$=r,n}function Bi(e,t,r){return e[t]=r}function l1(){o1||(o1=!0,ya=[],Ua=[],dL(new t1,ya,Ua))}function dL(e,t,r){let n=0,o;for(let l in e)(o=e[l])&&(t[n]=l,r[n]=o,++n)}function DL(e,t,r){l1();for(let n=0,o=t.length;n<o;++n)e[t[n]]=r[n]}function FL(e,t){return e.castableTypeMap$&&!!e.castableTypeMap$[t]}function hL(e,t){return e!==null&&FL(e,t)}function AL(){if(i1)return!1;i1=!0,hi=T(15582,36),Ai=T(15582),xt=T(15582),Vn=T(48,48),wt=T(48,36),qn=T(48),xa=T(48)}function ba(e){e.ct=T(24)}function s1(e,t){let r,n;if(hL(t,$u)){for(r=t,n=0;n<24;++n)if(e.ct[n]!==r.ct[n])return!1;return!0}return!1}function Ri(e){let t,r,n;for(r=0,n=8,t=23;t>=0;--t)e.ct[t]===1&&(r+=pe[t][n--]);return r}function di(e){let t,r;if(jn!==null)return jn[Ri(e)];for(r=0;r<48;++r){if(t=wL(Ri(e)),t!==-1)return t*64+r;ie(e,0),r%2==1&&ie(e,1),r%8==7&&ie(e,2),r%16==15&&ie(e,3)}}function St(e,t){let r=t%3;switch(t=~~(t/3),t){case 0:F(e.ct,0,1,2,3,r);break;case 1:F(e.ct,16,17,18,19,r);break;case 2:F(e.ct,8,9,10,11,r);break;case 3:F(e.ct,4,5,6,7,r);break;case 4:F(e.ct,20,21,22,23,r);break;case 5:F(e.ct,12,13,14,15,r);break;case 6:F(e.ct,0,1,2,3,r),F(e.ct,8,20,12,16,r),F(e.ct,9,21,13,17,r);break;case 7:F(e.ct,16,17,18,19,r),F(e.ct,1,15,5,9,r),F(e.ct,2,12,6,10,r);break;case 8:F(e.ct,8,9,10,11,r),F(e.ct,2,19,4,21,r),F(e.ct,3,16,5,22,r);break;case 9:F(e.ct,4,5,6,7,r),F(e.ct,10,18,14,22,r),F(e.ct,11,19,15,23,r);break;case 10:F(e.ct,20,21,22,23,r),F(e.ct,0,8,4,14,r),F(e.ct,3,11,7,13,r);break;case 11:F(e.ct,12,13,14,15,r),F(e.ct,1,20,7,18,r),F(e.ct,0,23,6,17,r)}}function ie(e,t){switch(t){case 0:St(e,19),St(e,28);break;case 1:St(e,21),St(e,32);break;case 2:F(e.ct,0,3,1,2,1),F(e.ct,8,11,9,10,1),F(e.ct,4,7,5,6,1),F(e.ct,12,15,13,14,1),F(e.ct,16,19,21,22,1),F(e.ct,17,18,20,23,1);break;case 3:St(e,18),St(e,29),St(e,24),St(e,35)}}function a1(e,t){let r;for(r=0;r<t;++r)ie(e,0),r%2==1&&ie(e,1),r%8==7&&ie(e,2),r%16==15&&ie(e,3)}function Sa(e,t){let r,n;for(n=8,r=23;r>=0;--r)e.ct[r]=0,t>=pe[r][n]&&(t-=pe[r][n--],e.ct[r]=1)}function Di(e,t){let r;for(r=0;r<24;++r)e.ct[r]=t.ct[r]}function qo(){let e;for(ba(this),e=0;e<8;++e)this.ct[e]=1;for(e=8;e<24;++e)this.ct[e]=0}function Fi(e,t){let r;for(ba(this),r=0;r<24;++r)this.ct[r]=~~(e.ct[r]/2)===t?1:0}function Vo(e){let t;for(ba(this),t=0;t<24;++t)this.ct[t]=e[t]}function yL(){let e,t,r=new qo,n=new qo;for(e=0;e<15582;++e)for(Sa(n,Ai[e]),t=0;t<36;++t)Di(r,n),St(r,t),hi[e][t]=di(r)}function UL(){let e,t,r,n,o,l,i,s;for(Oi(xt),xt[0]=0,t=0,r=1;r!==15582;)for(l=t>4,s=l?-1:t,e=l?t:-1,++t,n=0;n<15582;++n)if(xt[n]===s){for(i=0;i<27;++i)if(o=~~hi[n][i]>>>6,xt[o]===e)if(++r,l){xt[n]=t;break}else xt[o]=t}}function bL(e){let t,r,n,o=new Vo(e.ct);for(n=0;n<48;++n){for(t=!0,r=0;r<24;++r)if(o.ct[r]!==~~(r/4)){t=!1;break}if(t)return n;ie(o,0),n%2==1&&ie(o,1),n%8==7&&ie(o,2),n%16==15&&ie(o,3)}return-1}function SL(){let e,t,r,n=new qo;for(e=0;e<24;++e)n.ct[e]=e;let o=new Vo(n.ct),l=new Vo(n.ct),i=new Vo(n.ct);for(e=0;e<48;++e){for(t=0;t<48;++t){for(r=0;r<48;++r)s1(n,o)&&(Vn[e][t]=r,r===0&&(qn[e]=t)),ie(o,0),r%2==1&&ie(o,1),r%8==7&&ie(o,2),r%16==15&&ie(o,3);ie(n,0),t%2==1&&ie(n,1),t%8==7&&ie(n,2),t%16==15&&ie(n,3)}ie(n,0),e%2==1&&ie(n,1),e%8==7&&ie(n,2),e%16==15&&ie(n,3)}for(e=0;e<48;++e)for(Di(n,l),a1(n,qn[e]),t=0;t<36;++t)for(Di(o,n),St(o,t),a1(o,e),r=0;r<36;++r)if(Di(i,l),St(i,r),s1(i,o)){wt[e][t]=r;break}for(Sa(n,0),e=0;e<48;++e)xa[qn[e]]=Ri(n),ie(n,0),e%2==1&&ie(n,1),e%8==7&&ie(n,2),e%16==15&&ie(n,3)}function xL(){let e,t,r,n,o=new qo,l=T(22984);for(t=0;t<22984;t++)l[t]=0;for(e=0,t=0;t<735471;++t)if((l[~~t>>>5]&1<<(t&31))==0){for(Sa(o,t),n=0;n<48;++n)r=Ri(o),l[~~r>>>5]|=1<<(r&31),jn!==null&&(jn[r]=e<<6|qn[n]),ie(o,0),n%2==1&&ie(o,1),n%8==7&&ie(o,2),n%16==15&&ie(o,3);Ai[e++]=t}}function wL(e){let t=LB(Ai,e);return t>=0?t:-1}function vL(){f1||(f1=!0,Si=T(70,28),bi=T(6435,28),L1=T(70,16),p1=T(6435,16),rt=T(450450),m1=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,1,0,1,0,0,0])}function yi(e){let t,r,n;for(r=0,n=8,t=14;t>=0;--t)e.ct[t]!==e.ct[15]&&(r+=pe[t][n--]);return r}function Ui(e){let t,r,n;for(r=0,n=4,t=6;t>=0;--t)e.rl[t]!==e.rl[7]&&(r+=pe[t][n--]);return r*2+e.parity}function Hn(e,t){e.parity^=m1[t];let r=t%3;switch(t=~~(t/3),t){case 0:F(e.ct,0,1,2,3,r);break;case 1:F(e.rl,0,1,2,3,r);break;case 2:F(e.ct,8,9,10,11,r);break;case 3:F(e.ct,4,5,6,7,r);break;case 4:F(e.rl,4,5,6,7,r);break;case 5:F(e.ct,12,13,14,15,r);break;case 6:F(e.ct,0,1,2,3,r),F(e.rl,0,5,4,1,r),F(e.ct,8,9,12,13,r);break;case 7:F(e.rl,0,1,2,3,r),F(e.ct,1,15,5,9,r),F(e.ct,2,12,6,10,r);break;case 8:F(e.ct,8,9,10,11,r),F(e.rl,0,3,6,5,r),F(e.ct,3,2,5,4,r);break;case 9:F(e.ct,4,5,6,7,r),F(e.rl,3,2,7,6,r),F(e.ct,11,10,15,14,r);break;case 10:F(e.rl,4,5,6,7,r),F(e.ct,0,8,4,14,r),F(e.ct,3,11,7,13,r);break;case 11:F(e.ct,12,13,14,15,r),F(e.rl,1,4,7,2,r),F(e.ct,1,0,7,6,r)}}function Yn(e,t){switch(t){case 0:Hn(e,19),Hn(e,28);break;case 1:Hn(e,21),Hn(e,32);break;case 2:F(e.ct,0,3,1,2,1),F(e.ct,8,11,9,10,1),F(e.ct,4,7,5,6,1),F(e.ct,12,15,13,14,1),F(e.rl,0,3,5,6,1),F(e.rl,1,2,4,7,1)}}function u1(e,t,r){let n;for(n=0;n<16;++n)e.ct[n]=~~(t.ct[n]/2);for(n=0;n<8;++n)e.rl[n]=t.ct[n+16];e.parity=r}function g1(e,t){let r,n;for(n=8,e.ct[15]=0,r=14;r>=0;--r)t>=pe[r][n]?(t-=pe[r][n--],e.ct[r]=1):e.ct[r]=0}function c1(e,t){let r,n;for(e.parity=t&1,t>>>=1,n=4,e.rl[7]=0,r=6;r>=0;--r)t>=pe[r][n]?(t-=pe[r][n--],e.rl[r]=1):e.rl[r]=0}function wa(){this.rl=T(8),this.ct=T(16)}function EL(){let e,t,r,n,o,l,i,s,f,a,g=new wa;for(o=0;o<70;++o)for(s=0;s<28;++s)c1(g,o),Hn(g,Xr[s]),Si[o][s]=Ui(g);for(o=0;o<70;++o)for(c1(g,o),i=0;i<16;++i)L1[o][i]=Ui(g),Yn(g,0),i%2==1&&Yn(g,1),i%8==7&&Yn(g,2);for(o=0;o<6435;++o)for(g1(g,o),i=0;i<16;++i)p1[o][i]=yi(g)&65535,Yn(g,0),i%2==1&&Yn(g,1),i%8==7&&Yn(g,2);for(o=0;o<6435;++o)for(s=0;s<28;++s)g1(g,o),Hn(g,Xr[s]),bi[o][s]=yi(g)&65535;for(Oi(rt),rt[0]=rt[18]=rt[28]=rt[46]=rt[54]=rt[56]=0,r=0,n=6;n!==450450;){let c=r>6,u=c?-1:r,p=c?r:-1;for(++r,o=0;o<450450;++o)if(rt[o]===u){for(e=~~(o/70),f=o%70,s=0;s<23;++s)if(t=bi[e][s],a=Si[f][s],l=t*70+a,rt[l]===p)if(++n,c){rt[o]=r;break}else rt[l]=r}}}function kL(){B1||(B1=!0,Ho=T(29400,20),d1=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1],Ur=T(29400),ka=[0,9,14,23,27,28,41,42,46,55,60,69],za=T(70))}function va(e){let t,r,n,o;for(r=0,o=4,t=6;t>=0;--t)e.ud[t]!==e.ud[7]&&(r+=pe[t][o--]);for(r*=35,o=4,t=6;t>=0;--t)e.fb[t]!==e.fb[7]&&(r+=pe[t][o--]);r*=12;let l=e.fb[7]^e.ud[7];for(n=0,o=4,t=7;t>=0;--t)e.rl[t]!==l&&(n+=pe[t][o--]);return e.parity+2*(r+za[n])}function zL(e,t){switch(e.parity^=d1[t],t){case 0:case 1:case 2:F(e.ud,0,1,2,3,t%3);break;case 3:F(e.rl,0,1,2,3,1);break;case 4:case 5:case 6:F(e.fb,0,1,2,3,(t-1)%3);break;case 7:case 8:case 9:F(e.ud,4,5,6,7,(t-1)%3);break;case 10:F(e.rl,4,5,6,7,1);break;case 11:case 12:case 13:F(e.fb,4,5,6,7,(t+1)%3);break;case 14:F(e.ud,0,1,2,3,1),F(e.rl,0,5,4,1,1),F(e.fb,0,5,4,1,1);break;case 15:F(e.rl,0,1,2,3,1),F(e.fb,1,4,7,2,1),F(e.ud,1,6,5,2,1);break;case 16:F(e.fb,0,1,2,3,1),F(e.ud,3,2,5,4,1),F(e.rl,0,3,6,5,1);break;case 17:F(e.ud,4,5,6,7,1),F(e.rl,3,2,7,6,1),F(e.fb,3,2,7,6,1);break;case 18:F(e.rl,4,5,6,7,1),F(e.fb,0,3,6,5,1),F(e.ud,0,3,4,7,1);break;case 19:F(e.fb,4,5,6,7,1),F(e.ud,0,7,6,1,1),F(e.rl,1,4,7,2,1)}}function R1(e,t,r){let n,o=(t.ct[0]>t.ct[8]?1:0)^(t.ct[8]>t.ct[16]?1:0)^(t.ct[0]>t.ct[16]?1:0)?1:0;for(n=0;n<8;++n)e.ud[n]=t.ct[n]&1^1,e.fb[n]=t.ct[n+8]&1^1,e.rl[n]=t.ct[n+16]&1^1^o;e.parity=o^r}function _L(e,t){let r,n,o,l;for(e.parity=t&1,t>>>=1,o=ka[t%12],t=~~(t/12),l=4,r=7;r>=0;--r)e.rl[r]=0,o>=pe[r][l]&&(o-=pe[r][l--],e.rl[r]=1);for(n=t%35,t=~~(t/35),l=4,e.fb[7]=0,r=6;r>=0;--r)n>=pe[r][l]?(n-=pe[r][l--],e.fb[r]=1):e.fb[r]=0;for(l=4,e.ud[7]=0,r=6;r>=0;--r)t>=pe[r][l]?(t-=pe[r][l--],e.ud[r]=1):e.ud[r]=0}function Ea(){this.ud=T(8),this.rl=T(8),this.fb=T(8)}function CL(){let e,t,r,n;for(r=0;r<12;++r)za[ka[r]]=r;let o=new Ea;for(r=0;r<29400;++r)for(n=0;n<20;++n)_L(o,r),zL(o,n),Ho[r][n]=va(o)&65535;for(Oi(Ur),Ur[0]=0,e=0,t=1;t!==29400;){for(r=0;r<29400;++r)if(Ur[r]===e)for(n=0;n<17;++n)Ur[Ho[r][n]]===-1&&(Ur[Ho[r][n]]=e+1,++t);++e}}function PL(e,t){let r;for(r=0;r<24;++r)e.ct[r]=t.ct[r]}function ML(e,t){let r=t%3;switch(t=~~(t/3),t){case 0:F(e.ct,0,1,2,3,r);break;case 1:F(e.ct,16,17,18,19,r);break;case 2:F(e.ct,8,9,10,11,r);break;case 3:F(e.ct,4,5,6,7,r);break;case 4:F(e.ct,20,21,22,23,r);break;case 5:F(e.ct,12,13,14,15,r);break;case 6:F(e.ct,0,1,2,3,r),F(e.ct,8,20,12,16,r),F(e.ct,9,21,13,17,r);break;case 7:F(e.ct,16,17,18,19,r),F(e.ct,1,15,5,9,r),F(e.ct,2,12,6,10,r);break;case 8:F(e.ct,8,9,10,11,r),F(e.ct,2,19,4,21,r),F(e.ct,3,16,5,22,r);break;case 9:F(e.ct,4,5,6,7,r),F(e.ct,10,18,14,22,r),F(e.ct,11,19,15,23,r);break;case 10:F(e.ct,20,21,22,23,r),F(e.ct,0,8,4,14,r),F(e.ct,3,11,7,13,r);break;case 11:F(e.ct,12,13,14,15,r),F(e.ct,1,20,7,18,r),F(e.ct,0,23,6,17,r)}}function _a(){let e;for(this.ct=T(24),e=0;e<24;++e)this.ct[e]=~~(e/4)}function D1(e){let t,r,n;for(_a.call(this),t=0;t<23;++t)n=t+e(24-t),this.ct[n]!==this.ct[t]&&(r=this.ct[t],this.ct[t]=this.ct[n],this.ct[n]=r)}function NL(){F1||(F1=!0,Rt=T(18),OL())}function h1(e){e.cp=[0,1,2,3,4,5,6,7],e.co=[0,0,0,0,0,0,0,0]}function A1(e,t){let r;for(r=0;r<8;++r)e.cp[r]=t.cp[r],e.co[r]=t.co[r]}function TL(e,t){!e.temps&&(e.temps=new xi),y1(e,Rt[t],e.temps),A1(e,e.temps)}function GL(e,t){let r,n;for(n=0,r=6;r>=0;--r)n+=e.co[r]=t%3,t=~~(t/3);e.co[7]=(15-n)%3}function y1(e,t,r){let n,o,l,i;for(n=0;n<8;++n)r.cp[n]=e.cp[t.cp[n]],l=e.co[t.cp[n]],i=t.co[n],o=l,o=o+(l<3?i:6-i),o=o%3,(l>=3?1:0)^(i>=3?1:0)&&(o=o+3),r.co[n]=o}function xi(){h1(this)}function br(e,t){h1(this),Zu(this.cp,e),GL(this,t)}function U1(e){br.call(this,e(40320),e(2187))}function OL(){let e,t;for(Rt[0]=new br(15120,0),Rt[3]=new br(21021,1494),Rt[6]=new br(8064,1236),Rt[9]=new br(9,0),Rt[12]=new br(1230,412),Rt[15]=new br(224,137),e=0;e<18;e+=3)for(t=0;t<2;++t)Rt[e+t+1]=new xi,y1(Rt[e+t],Rt[e],Rt[e+t+1])}function IL(){b1||(b1=!0,vt=T(1937880),ki=T(1538),zi=T(1538),eo=T(11880),k1=[0,1,6,3,4,5,2,7],Na=T(160,12),Ta=T(160,12),Ma=[1,1,1,3,12,60,360,2520,20160,181440,1814400,19958400,239500800],Pa=[0,2,4,6,1,3,7,5,8,9,10,11])}function Zn(e,t,r,n,o){let l=e.edgeo[o];e.edgeo[o]=e.edge[n],e.edge[n]=e.edgeo[r],e.edgeo[r]=e.edge[t],e.edge[t]=l}function Jn(e,t){let r,n,o,l,i;for(e.isStd||v1(e),n=0,i=1985229328,l=47768,r=0;r<t;++r)o=e.edge[r]<<2,n*=12-r,o>=32?(n+=l>>o-32&15,l-=4368<<o-32):(n+=i>>o&15,l-=4369,i-=286331152<<o);return n}function S1(e){let t,r=Jn(e,4);t=eo[r];let n=t&7;t>>=3,vi(e,n);let o=Jn(e,10)%20160;return t*20160+o}function wi(e,t){switch(e.isStd=!1,t){case 0:fe(e.edge,0,4,1,5),fe(e.edgeo,0,4,1,5);break;case 1:Be(e.edge,0,4,1,5),Be(e.edgeo,0,4,1,5);break;case 2:fe(e.edge,0,5,1,4),fe(e.edgeo,0,5,1,4);break;case 3:Be(e.edge,5,10,6,11),Be(e.edgeo,5,10,6,11);break;case 4:fe(e.edge,0,11,3,8),fe(e.edgeo,0,11,3,8);break;case 5:Be(e.edge,0,11,3,8),Be(e.edgeo,0,11,3,8);break;case 6:fe(e.edge,0,8,3,11),fe(e.edgeo,0,8,3,11);break;case 7:fe(e.edge,2,7,3,6),fe(e.edgeo,2,7,3,6);break;case 8:Be(e.edge,2,7,3,6),Be(e.edgeo,2,7,3,6);break;case 9:fe(e.edge,2,6,3,7),fe(e.edgeo,2,6,3,7);break;case 10:Be(e.edge,4,8,7,9),Be(e.edgeo,4,8,7,9);break;case 11:fe(e.edge,1,9,2,10),fe(e.edgeo,1,9,2,10);break;case 12:Be(e.edge,1,9,2,10),Be(e.edgeo,1,9,2,10);break;case 13:fe(e.edge,1,10,2,9),fe(e.edgeo,1,10,2,9);break;case 14:Be(e.edge,0,4,1,5),Be(e.edgeo,0,4,1,5),fe(e.edge,9,11),fe(e.edgeo,8,10);break;case 15:Be(e.edge,5,10,6,11),Be(e.edgeo,5,10,6,11),fe(e.edge,1,3),fe(e.edgeo,0,2);break;case 16:Be(e.edge,0,11,3,8),Be(e.edgeo,0,11,3,8),fe(e.edge,5,7),fe(e.edgeo,4,6);break;case 17:Be(e.edge,2,7,3,6),Be(e.edgeo,2,7,3,6),fe(e.edge,8,10),fe(e.edgeo,9,11);break;case 18:Be(e.edge,4,8,7,9),Be(e.edgeo,4,8,7,9),fe(e.edge,0,2),fe(e.edgeo,1,3);break;case 19:Be(e.edge,1,9,2,10),Be(e.edgeo,1,9,2,10),fe(e.edge,4,6),fe(e.edgeo,5,7)}}function Xn(e,t){switch(e.isStd=!1,t){case 0:wi(e,14),wi(e,17);break;case 1:Zn(e,11,5,10,6),Zn(e,5,10,6,11),Zn(e,1,2,3,0),Zn(e,4,9,7,8),Zn(e,8,4,9,7),Zn(e,0,1,2,3);break;case 2:dt(e,4,5),dt(e,5,4),dt(e,11,8),dt(e,8,11),dt(e,7,6),dt(e,6,7),dt(e,9,10),dt(e,10,9),dt(e,1,1),dt(e,0,0),dt(e,3,3),dt(e,2,2)}}function vi(e,t){for(;t>=2;)t-=2,Xn(e,1),Xn(e,2);t!==0&&Xn(e,0)}function Yo(e,t){let r,n,o,l,i,s;for(i=1985229328,s=47768,o=0,r=0;r<11;++r)if(n=Ma[11-r],l=~~(t/n),t=t%n,o^=l,l<<=2,l>=32){l=l-32,e.edge[r]=s>>l&15;let f=(1<<l)-1;s=(s&f)+(s>>4&~f)}else{e.edge[r]=i>>l&15;let f=(1<<l)-1;i=(i&f)+(i>>>4&~f)+(s<<28),s=s>>4}for((o&1)==0?e.edge[11]=i:(e.edge[11]=e.edge[10],e.edge[10]=i),r=0;r<12;++r)e.edgeo[r]=r;e.isStd=!0}function x1(e,t){let r;for(r=0;r<12;++r)e.edge[r]=t.edge[r],e.edgeo[r]=t.edgeo[r];e.isStd=t.isStd}function w1(e,t){let r,n,o,l;for(e.temp===null&&(e.temp=T(12)),r=0;r<12;++r)e.temp[r]=r,e.edge[r]=t.ep[Pa[r]+12]%12;for(n=1,r=0;r<12;++r)for(;e.edge[r]!==r;)l=e.edge[r],e.edge[r]=e.edge[l],e.edge[l]=l,o=e.temp[r],e.temp[r]=e.temp[l],e.temp[l]=o,n^=1;for(r=0;r<12;++r)e.edge[r]=e.temp[t.ep[Pa[r]]%12];return n}function v1(e){let t;for(e.temp===null&&(e.temp=T(12)),t=0;t<12;++t)e.temp[e.edgeo[t]]=t;for(t=0;t<12;++t)e.edge[t]=e.temp[e.edge[t]],e.edgeo[t]=t;e.isStd=!0}function Be(e,t,r,n,o){let l;l=e[t],e[t]=e[n],e[n]=l,l=e[r],e[r]=e[o],e[o]=l}function dt(e,t,r){let n=e.edge[t];e.edge[t]=e.edgeo[r],e.edgeo[r]=n}function tr(){this.edge=T(12),this.edgeo=T(12)}function WL(){let e,t,r,n,o,l,i,s,f,a,g,c,u,p,m,L,R,D,A,y,k,E,Q=new tr,$=new tr,N=new tr;for(Oi(vt),s=0,Ei=1,Ca(vt,0,0);Ei!==31006080&&(m=s>9,i=s%3,l=(s+1)%3,a=m?3:i,e=m?i:3,!(s>=9));){for(c=0;c<31006080;c+=16)if(E=vt[~~c>>4],!(!m&&E===-1)){for(g=c,f=c+16;g<f;++g,E>>=2)if((E&3)===a){for(A=~~(g/20160),t=ki[A],n=g%20160,Yo(Q,t*20160+n),R=0;R<17;++R)if(r=$n(Q.edge,R<<3,4),y=eo[r],k=y&7,y>>=3,o=$n(Q.edge,R<<3|k,10)%20160,u=y*20160+o,Zo(vt,u)===e){if(Ca(vt,m?g:u,l),++Ei,m)break;if(D=zi[y],D!==1)for(x1($,Q),wi($,R),vi($,k),L=1;(D=~~D>>1&65535)!=0;++L)(D&1)==1&&(x1(N,$),vi(N,L),p=y*20160+Jn(N,10)%20160,Zo(vt,p)===e&&(Ca(vt,p,l),++Ei))}}}++s}}function Zo(e,t){return e[t>>4]>>((t&15)<<1)&3}function $n(e,t,r){let n,o,l,i,s,f=Ta[t],a=Na[t];for(o=0,s=1985229328,i=47768,n=0;n<r;++n)l=f[e[a[n]]]<<2,o*=12-n,l>=32?(o+=i>>l-32&15,i-=4368<<l-32):(o+=s>>l&15,i-=4369,s-=286331152<<l);return o}function E1(e){let t,r,n,o,l,i,s,f,a,g,c,u=new tr;if(i=0,l=Zo(vt,e),l===3)return 10;for(;e!==0;)for(l===0?l=2:--l,a=~~(e/20160),t=ki[a],n=e%20160,Yo(u,t*20160+n),f=0;f<17;++f)if(r=$n(u.edge,f<<3,4),g=eo[r],c=g&7,g>>=3,o=$n(u.edge,f<<3|c,10)%20160,s=g*20160+o,Zo(vt,s)===l){++i,e=s;break}return i}function KL(e,t){let r=Zo(vt,e);return r===3?10:(1227133513<<r>>t&3)+t-1}function QL(){let e,t,r,n=new tr;for(t=0;t<20;++t)for(r=0;r<8;++r){for(Yo(n,0),wi(n,t),vi(n,r),e=0;e<12;++e)Na[t<<3|r][e]=n.edge[e];for(v1(n),e=0;e<12;++e)Ta[t<<3|r][e]=n.temp[e]}}function jL(){let e,t,r,n,o=new tr,l=T(1485);for(t=0;t<1485;t++)l[t]=0;for(e=0,t=0;t<11880;++t)if((l[~~t>>>3]&1<<(t&7))==0){for(Yo(o,t*Ma[8]),n=0;n<8;++n)r=Jn(o,4),r===t&&(zi[e]=(zi[e]|1<<n)&65535),l[~~r>>3]=l[~~r>>3]|1<<(r&7),eo[r]=e<<3|k1[n],Xn(o,0),n%2==1&&(Xn(o,1),Xn(o,2));ki[e++]=t}}function Ca(e,t,r){e[t>>4]^=(3^r)<<((t&15)<<1)}function qL(){z1||(z1=!0)}function VL(e){let t,r,n;for(t=0,n=!1,r=0;r<12;++r)t|=1<<e.ep[r],n=n!==e.ep[r]>=12;return t&=~~t>>12,t===0&&!n}function HL(e,t){let r;for(r=0;r<24;++r)e.ep[r]=t.ep[r]}function YL(e,t){let r=t%3;switch(t=~~(t/3),t){case 0:F(e.ep,0,1,2,3,r),F(e.ep,12,13,14,15,r);break;case 1:F(e.ep,11,15,10,19,r),F(e.ep,23,3,22,7,r);break;case 2:F(e.ep,0,11,6,8,r),F(e.ep,12,23,18,20,r);break;case 3:F(e.ep,4,5,6,7,r),F(e.ep,16,17,18,19,r);break;case 4:F(e.ep,1,20,5,21,r),F(e.ep,13,8,17,9,r);break;case 5:F(e.ep,2,9,4,10,r),F(e.ep,14,21,16,22,r);break;case 6:F(e.ep,0,1,2,3,r),F(e.ep,12,13,14,15,r),F(e.ep,9,22,11,20,r);break;case 7:F(e.ep,11,15,10,19,r),F(e.ep,23,3,22,7,r),F(e.ep,2,16,6,12,r);break;case 8:F(e.ep,0,11,6,8,r),F(e.ep,12,23,18,20,r),F(e.ep,3,19,5,13,r);break;case 9:F(e.ep,4,5,6,7,r),F(e.ep,16,17,18,19,r),F(e.ep,8,23,10,21,r);break;case 10:F(e.ep,1,20,5,21,r),F(e.ep,13,8,17,9,r),F(e.ep,14,0,18,4,r);break;case 11:F(e.ep,2,9,4,10,r),F(e.ep,14,21,16,22,r),F(e.ep,7,15,1,17,r)}}function Ga(){let e;for(this.ep=T(24),e=0;e<24;++e)this.ep[e]=e}function _1(e){let t,r,n;for(Ga.call(this),t=0;t<23;++t)n=t+e(24-t),n!==t&&(r=this.ep[t],this.ep[t]=this.ep[n],this.ep[n]=r)}function ZL(){C1||(C1=!0,Oa=[35,1,34,2,4,6,22,5,19])}function P1(e){e.moveBuffer=T(60)}function JL(e,t){return e.value-t.value}function to(e,t){let r;for(HL(e.edge,t.edge),PL(e.center,t.center),A1(e.corner,t.corner),e.value=t.value,e.add1=t.add1,e.length1=t.length1,e.length2=t.length2,e.length3=t.length3,e.sym=t.sym,r=0;r<60;++r)e.moveBuffer[r]=t.moveBuffer[r];e.moveLength=t.moveLength,e.edgeAvail=t.edgeAvail,e.centerAvail=t.centerAvail,e.cornerAvail=t.cornerAvail}function Sr(e){for(;e.centerAvail<e.moveLength;)ML(e.center,e.moveBuffer[e.centerAvail++]);return e.center}function M1(e){for(;e.cornerAvail<e.moveLength;)TL(e.corner,e.moveBuffer[e.cornerAvail++]%18);return e.corner}function Jo(e){for(;e.edgeAvail<e.moveLength;)YL(e.edge,e.moveBuffer[e.edgeAvail++]);return e.edge}function XL(e){let t,r,n,o,l,i,s=new Array(e.moveLength-(e.add1?2:0));for(r=0,t=0;t<e.length1;++t)s[r++]=e.moveBuffer[t];for(i=e.sym,t=e.length1+(e.add1?2:0);t<e.moveLength;++t)wt[i][e.moveBuffer[t]]>=27?(s[r++]=wt[i][e.moveBuffer[t]]-9,o=Oa[wt[i][e.moveBuffer[t]]-27],i=Vn[i][o]):s[r++]=wt[i][e.moveBuffer[t]];let f=Vn[qn[i]][bL(Sr(e))];for(l="",i=f,t=r-1;t>=0;--t)n=s[t],n=~~(n/3)*3+(2-n%3),wt[i][n]>=27?(l=l+Ia[wt[i][n]-9]+" ",o=Oa[wt[i][n]-27],i=Vn[i][o]):l=l+Ia[wt[i][n]]+" ";return l}function Jr(e,t){e.moveBuffer[e.moveLength++]=t}function _i(){P1(this),this.edge=new Ga,this.center=new _a,this.corner=new xi}function Ci(e){_i.call(this),to(this,e)}function N1(e){P1(this),this.edge=new _1(e),this.center=new D1(e),this.corner=new U1(e)}function $L(e,t){return t.value-e.value}function Pi(e,t){return $L(e,t)}function T1(){}function eB(){if(G1)return;G1=!0;let e,t;for(Ia=["U ","U2 ","U' ","R ","R2 ","R' ","F ","F2 ","F' ","D ","D2 ","D' ","L ","L2 ","L' ","B ","B2 ","B' ","Uw ","Uw2","Uw'","Rw ","Rw2","Rw'","Fw ","Fw2","Fw'","Dw ","Dw2","Dw'","Lw ","Lw2","Lw'","Bw ","Bw2","Bw'"],Xr=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,19,21,22,23,25,28,30,31,32,34,36],Xo=[0,1,2,4,6,7,8,9,10,11,13,15,16,17,19,22,25,28,31,34,36],O1=T(37),I1=T(37),ro=T(37,36),Mi=T(29,28),Ni=T(21,20),Wa=T(36),$o=T(28),no=T(20),e=0;e<29;++e)O1[Xr[e]]=e;for(e=0;e<21;++e)I1[Xo[e]]=e;for(e=0;e<36;++e){for(t=0;t<36;++t)ro[e][t]=~~(e/3)==~~(t/3)||~~(e/3)%3==~~(t/3)%3&&e>t;ro[36][e]=!1}for(e=0;e<29;++e)for(t=0;t<28;++t)Mi[e][t]=ro[Xr[e]][Xr[t]];for(e=0;e<21;++e)for(t=0;t<20;++t)Ni[e][t]=ro[Xo[e]][Xo[t]];for(e=0;e<36;++e)for(Wa[e]=36,t=e;t<36;++t)if(!ro[e][t]){Wa[e]=t-1;break}for(e=0;e<28;++e)for($o[e]=28,t=e;t<28;++t)if(!Mi[e][t]){$o[e]=t-1;break}for(e=0;e<20;++e)for(no[e]=20,t=e;t<20;++t)if(!Ni[e][t]){no[e]=t-1;break}}function tB(e){let t,r,n,o,l,i,s,f,a,g,c,u;e.solution="";let p=di(new Fi(Sr(e.c),0)),m=di(new Fi(Sr(e.c),1)),L=di(new Fi(Sr(e.c),2)),R=xt[~~p>>6],D=xt[~~m>>6],A=xt[~~L>>6];for(e.p1SolsCnt=0,e.arr2idx=0,uB(e.p1sols.heap),e.length1=(R<D?R:D)<A?R<D?R:D:A;e.length1<100&&!(A<=e.length1&&Ti(e,~~L>>>6,L&63,e.length1,-1,0)||R<=e.length1&&Ti(e,~~p>>>6,p&63,e.length1,-1,0)||D<=e.length1&&Ti(e,~~m>>>6,m&63,e.length1,-1,0));++e.length1);let y=hB(e.p1sols,Aa(yB,yr([pL,Fa,ha]),e1,0,0));y.sort(function(Q,$){return Q.value-$.value}),t=9;do{e:for(f=y[0].value;f<100;++f)for(i=0;i<y.length&&!(y[i].value>f);++i)if(!(f-y[i].length1>t)&&(to(e.c1,y[i]),u1(e.ct2,Sr(e.c1),Gi(Jo(e.c1).ep)),c=yi(e.ct2),u=Ui(e.ct2),e.length1=y[i].length1,e.length2=f-y[i].length1,W1(e,c,u,e.length2,28,0)))break e;++t}while(f===100);e.arr2.sort(function(Q,$){return Q.value-$.value}),s=0,r=13;do{e:for(a=e.arr2[0].value;a<100;++a)for(i=0;i<Math.min(e.arr2idx,100)&&!(e.arr2[i].value>a);++i)if(!(a-e.arr2[i].length1-e.arr2[i].length2>r)&&(l=w1(e.e12,Jo(e.arr2[i])),R1(e.ct3,Sr(e.arr2[i]),l^Gi(M1(e.arr2[i]).cp)),n=va(e.ct3),o=Jn(e.e12,10),g=E1(S1(e.e12)),g<=a-e.arr2[i].length1-e.arr2[i].length2&&K1(e,o,n,g,a-e.arr2[i].length1-e.arr2[i].length2,20,0))){s=i;break e}++r}while(a===100);let k=new Ci(e.arr2[s]);e.length1=k.length1,e.length2=k.length2;let E=a-e.length1-e.length2;for(i=0;i<E;++i)Jr(k,Xo[e.move3[i]]);e.solution=XL(k)}function rB(e,t){let r,n;for(to(e.c1,e.c),r=0;r<e.length1;++r)Jr(e.c1,e.move1[r]);switch(xa[t]){case 0:Jr(e.c1,24),Jr(e.c1,35),e.move1[e.length1]=24,e.move1[e.length1+1]=35,e.add1=!0,t=19;break;case 12869:Jr(e.c1,18),Jr(e.c1,29),e.move1[e.length1]=18,e.move1[e.length1+1]=29,e.add1=!0,t=34;break;case 735470:e.add1=!1,t=0}u1(e.ct2,Sr(e.c1),Gi(Jo(e.c1).ep));let o=yi(e.ct2),l=Ui(e.ct2),i=rt[o*70+l];return e.c1.value=i+e.length1,e.c1.length1=e.length1,e.c1.add1=e.add1,e.c1.sym=t,++e.p1SolsCnt,e.p1sols.heap.size<500?n=new Ci(e.c1):(n=DB(e.p1sols),n.value>e.c1.value&&to(n,e.c1)),sB(e.p1sols,n),e.p1SolsCnt===1e4}function nB(e){let t;for(to(e.c2,e.c1),t=0;t<e.length2;++t)Jr(e.c2,e.move2[t]);if(!VL(Jo(e.c2)))return!1;let r=w1(e.e12,Jo(e.c2));R1(e.ct3,Sr(e.c2),r^Gi(M1(e.c2).cp));let n=va(e.ct3);Jn(e.e12,10);let o=E1(S1(e.e12));return e.arr2[e.arr2idx]?to(e.arr2[e.arr2idx],e.c2):e.arr2[e.arr2idx]=new Ci(e.c2),e.arr2[e.arr2idx].value=e.length1+e.length2+Math.max(o,Ur[n]),e.arr2[e.arr2idx].length2=e.length2,++e.arr2idx,e.arr2idx===e.arr2.length}function oB(e,t){return j1(),e.c=new N1(t),tB(e),e.solution}function Ti(e,t,r,n,o,l){let i,s,f,a,g,c;if(t===0)return n===0&&rB(e,r);for(i=0;i<27;i+=3)if(!(i===o||i===o-9||i===o-18))for(a=0;a<3;++a){if(f=i+a,s=hi[t][wt[r][f]],g=xt[~~s>>>6],g>=n){if(g>n)break;continue}if(c=Vn[r][s&63],s>>>=6,e.move1[l]=f,Ti(e,s,c,n-1,i,l+1))return!0}return!1}function W1(e,t,r,n,o,l){let i,s,f,a;if(t===0&&rt[r]===0)return n===0&&nB(e);for(s=0;s<23;++s){if(Mi[o][s]){s=$o[s];continue}if(i=bi[t][s],a=Si[r][s],f=rt[i*70+a],f>=n){f>n&&(s=$o[s]);continue}if(e.move2[l]=Xr[s],W1(e,i,a,n-1,s,l+1))return!0}return!1}function K1(e,t,r,n,o,l,i){let s,f,a,g,c,u,p,m,L;if(o===0)return t===0&&r===0;for(Yo(e.tempe[i],t),c=0;c<17;++c){if(Ni[l][c]){c=no[c];continue}if(a=Ho[r][c],u=Ur[a],u>=o){u>o&&c<14&&(c=no[c]);continue}if(g=$n(e.tempe[i].edge,c<<3,10),s=~~(g/20160),m=eo[s],L=m&7,m>>=3,f=$n(e.tempe[i].edge,c<<3|L,10)%20160,p=KL(m*20160+f,n),p>=o){p>o&&c<14&&(c=no[c]);continue}if(K1(e,g,a,p,o-1,c,i+1))return e.move3[i]=c,!0}return!1}function Q1(){let e;for(this.p1sols=new $1(new T1),this.move1=T(15),this.move2=T(20),this.move3=T(20),this.c1=new _i,this.c2=new _i,this.ct2=new wa,this.ct3=new Ea,this.e12=new tr,this.tempe=T(20),this.arr2=T(100),e=0;e<20;++e)this.tempe[e]=new tr}function j1(){q1||(SL(),jn=T(735471),xL(),yL(),jn=null,UL(),EL(),CL(),QL(),jL(),WL(),q1=!0)}function lB(){V1||(V1=!0)}function Gi(e){let t,r,n,o;for(o=0,t=0,n=e.length;t<n;++t)for(r=t;r<n;++r)e[t]>e[r]&&(o^=1);return o}function F(e,t,r,n,o,l){let i;switch(l){case 0:i=e[o],e[o]=e[n],e[n]=e[r],e[r]=e[t],e[t]=i;return;case 1:i=e[t],e[t]=e[n],e[n]=i,i=e[r],e[r]=e[o],e[o]=i;return;case 2:i=e[t],e[t]=e[r],e[r]=e[n],e[n]=e[o],e[o]=i;return}}function H1(){}function Y1(e,t,r,n){let o=new H1;return o.typeName=e+t,J1(r!==0?-r:0)&&X1(r!==0?-r:0,o),o.modifiers=4,o.superclass=Ka,o.componentType=n,o}function Z1(e,t,r,n){let o=new H1;return o.typeName=e+t,J1(r)&&X1(r,o),o.superclass=n,o}function iB(e){let t=jo[e.seedId];return e=null,t}function J1(e){return typeof e=="number"&&e>0}function X1(e,t){let r;if(t.seedId=e,e===2)r=String.prototype;else if(e>0){let n=iB(t);if(n)r=n.prototype;else{n=jo[e]=function(){},n.___clazz$=t;return}}else return;r.___clazz$=t}function sB(e,t){if(dB(e,t))return!0}function aB(e){e.array=Aa(eg,yr([Fa,ha]),Xu,0,0)}function fB(e,t){return Bi(e.array,e.size++,t),!0}function uB(e){e.array=Aa(eg,yr([Fa,ha]),Xu,0,0),e.size=0}function xr(e,t){return e.array[t]}function gB(e,t){let r=e.array[t];return mB(e.array,t,1),--e.size,r}function oo(e,t,r){let n=e.array[t];return Bi(e.array,t,r),n}function cB(e,t){let r;for(t.length<e.size&&(t=RL(t,e.size)),r=0;r<e.size;++r)Bi(t,r,e.array[r]);return t.length>e.size&&Bi(t,e.size,null),t}function pB(){aB(this),this.array.length=500}function mB(e,t,r){e.splice(t,r)}function LB(e,t){let r,n,o,l;for(n=0,r=e.length-1;n<=r;)if(o=n+(~~(r-n)>>1),l=e[o],l<t)n=o+1;else if(l>t)r=o-1;else return o;return-n-1}function Oi(e){BB(e,e.length)}function BB(e,t){let r;for(r=0;r<t;++r)e[r]=-1}function RB(e,t){let r,n,o,l,i=e.heap.size,s=xr(e.heap,t);for(;t*2+1<i&&(r=(n=2*t+1,o=n+1,l=n,o<i&&Pi(xr(e.heap,o),xr(e.heap,n))<0&&(l=o),l),!(Pi(s,xr(e.heap,r))<0));)oo(e.heap,t,xr(e.heap,r)),t=r;oo(e.heap,t,s)}function dB(e,t){let r,n;for(n=e.heap.size,fB(e.heap,t);n>0;){if(r=n,n=~~((n-1)/2),Pi(xr(e.heap,n),t)<=0)return oo(e.heap,r,t),!0;oo(e.heap,r,xr(e.heap,n))}return oo(e.heap,n,t),!0}function DB(e){if(e.heap.size===0)return null;let t=xr(e.heap,0);return FB(e),t}function FB(e){let t=gB(e.heap,e.heap.size-1);0<e.heap.size&&(oo(e.heap,0,t),RB(e,0))}function hB(e,t){return cB(e.heap,t)}function $1(e){this.heap=new pB,this.cmp=e}function ng(){rg||(rg=!0,eB(),lB(),AL(),vL(),kL(),IL(),NL(),qL(),ZL(),tg=new Q1)}function UB(){ng(),j1()}async function bB(){Qe(),ng();let e=z.fromString(oB(tg,await je()));return(await Qn()).concat(e)}var Y,jo,uL,Xu,Fa,$u,gL,cL,e1,pL,mL,LL,ha,o1,ya,Ua,i1,xt,hi,xa,jn,Ai,qn,wt,Vn,f1,bi,rt,p1,m1,Si,L1,B1,Ho,d1,Ur,ka,za,F1,Rt,b1,Pa,Ei,vt,Ma,Na,Ta,eo,ki,k1,zi,z1,C1,Oa,G1,ro,Mi,Ni,Xr,Ia,Xo,Wa,$o,no,O1,I1,q1,V1,Ka,eg,AB,yB,tg,rg,lg=U(()=>{Re();da();Ju();Nt();Mt();jo={},uL={},Xu=0,Fa=30,$u=21,gL=22,cL=23,e1=24,pL=25,mL=34,LL=26,ha=40;ct(1,-1,uL);Y.value=null;ct(73,1,{},t1);Y.queryId$=0;o1=!1;i1=!1;ct(153,1,yr([$u]),qo,Fi,Vo);jn=null,f1=!1;ct(154,1,{},wa);Y.parity=0;B1=!1;ct(155,1,{},Ea);Y.parity=0;ct(156,1,{},_a,D1);F1=!1;ct(157,1,yr([gL]),xi,br,U1);Y.temps=null;b1=!1;ct(158,1,yr([cL]),tr);Y.isStd=!0;Y.temp=null;Ei=0,z1=!1;ct(159,1,{},Ga,_1);C1=!1;ct(160,1,yr([e1,mL]),_i,Ci,N1);Y.compareTo$=function(t){return JL(this,t)};Y.add1=!1;Y.center=null;Y.centerAvail=0;Y.corner=null;Y.cornerAvail=0;Y.edge=null;Y.edgeAvail=0;Y.length1=0;Y.length2=0;Y.length3=0;Y.moveLength=0;Y.sym=0;Y.value=0;ct(161,1,{},T1);Y.compare=function(t,r){return Pi(t,r)};G1=!1;ct(163,1,yr([LL]),Q1);Y.add1=!1;Y.arr2idx=0;Y.c=null;Y.length1=0;Y.length2=0;Y.p1SolsCnt=0;Y.solution="";q1=!1,V1=!1;Y.val$outerIter=null;Y.size=0;ct(239,1,{},$1);Y.cmp=null;Y.heap=null;Ka=Z1("java.lang.","Object",1,null),eg=Y1("[Ljava.lang.","Object;",356,Ka),AB=Z1("cs.threephase.","FullCube",160,Ka),yB=Y1("[Lcs.threephase.","FullCube;",381,AB),rg=!1});var Ig={};ye(Ig,{randomFTOScrambleString:()=>bR});function el(e){if(e<2)return e;let t=1;for(let r=2;r<=e;r++)t*=r;return t}function Ii(e,t){if(t<0||t>e)return 0;if(t===0||t===e)return 1;let r=1;for(let n=0;n<t;n++)r=r*(e-n)/(n+1)|0;return r}function gg(e,t,r,n,o=e-t-r-n){return Ii(e,t+r)*Ii(t+r,t)*Ii(n+o,n)}function zB(e){e=e.slice();let t=e.length,r=el(t-1),n=0;for(;t>1;){t--;let o=e[0];n+=o*r;for(let l=0;l<t;l++){let i=e[l+1];e[l]=i-(i>o)}r/=t}return n}function _B(e){let t=e.length,r=0;for(let n=0;n<t-1;n++)for(let o=n;o<t;o++)e[n]>e[o]&&(r^=1);return r}function ja(e,t){let r=[],n=el(t-1)/2,o=0;for(let l=0;l<t-1;l++)r[l]=e/n|0,e%=n,n/=t-1-l;r[t-1]=0;for(let l=t-2;l>=0;l--)for(let i=l+1;i<t;i++)r[i]>=r[l]?r[i]++:o^=1;return o===1&&([r[t-2],r[t-1]]=[r[t-1],r[t-2]]),r}function $r(e){return zB(e)>>1}function qa(e,t){let r=[0];for(let n=1;n<e;n++){let o=t(n+1);r[n]=r[o],r[o]=n}return r}function cg(e,t){let r=qa(e,t);return _B(r)===1&&([r[0],r[1]]=[r[1],r[0]]),r}function CB(e){return e|=0,31-Math.clz32(e^e-1)}function pg(e,t){e|=0,t|=0;let r=e+" "+t;if(Va[r])return Va[r];let n=Ii(e,t),o=new Uint32Array(n),l=new Uint32Array(1<<e).fill(-1);for(let i=0,s=(1<<t)-1;i<n;i++){o[i]=s,l[s]=i;let f=s|s-1;s=f+1|(~f&-~f)-1>>CB(s)+1}return Va[r]=[o,l]}function PB(e){e|=0;let t=0;for(;e!==0;)e&=e-1,t++;return t}function mg(e){return e&=65535,e=(e|e<<8)&16711935,e=(e|e<<4)&252645135,e=(e|e<<2)&858993459,e=(e|e<<1)&1431655765,e}function MB(e,t){return mg(e)|mg(t)<<1}function lo(e,t,r,n,o){if(e|=0,t|=0,r|=0,n|=0,o|=0,e!==t+r+n+o)throw"generate_comb4_lookup_tables: invalid parameters";let l=[e,t,r,n,o].join(" ");if(Ha[l])return Ha[l];let[i,s]=pg(e,r+o),[f,a]=pg(e,n+o),g=gg(e,t,r,n,o),c=new Uint32Array(g),u=new Uint32Array(4**e).fill(-1);for(let p=0,m=0;p<f.length;p++){let L=f[p];for(let R=0;R<i.length;R++){let D=i[R];if(PB(D&L)===o){let A=MB(D,L);c[m]=A,u[A]=m,m++}}}return Ha[l]=[c,u]}function Ze(e,t){let r=[];for(let n=0;n<t.length;n++)r[n]=e[t[n]];return r}function io(e,t,r){let n=[];for(let o=0;o<r.length;o++)n[o]=e[t[r[o]]];return n}function Ya(e,t){let r=[];for(let n=0;n<t;n++)r[n]=n;for(let n of e)for(let o=0;o<n.length;o++)r[n[o]]=n[(o+1)%n.length];return r}function en(e,t){let r=e.length,n=Array(r).fill(0);for(let i=1;i<r;i++)n[i]=n[i-1]+t[i-1];let o=n[r-1]+t[r-1],l=Array(o);for(let i=0;i<r;i++)t[i]&&(l[n[i]]=n[e[i]]);return l}function Za(e){let t=e.length,r=Array(t);for(let n=0;n<t;n++)r[e[n]]=n;return r}function NB(e,t){for(;e&&t;)[e,t]=[t%e,e];return Math.abs(e+t)}function TB(e,t){return e*t/NB(e,t)}function GB(e){let t=1,r=e.length,n=Array(r).fill(!1),o=-1;for(;o=n.indexOf(!1,o+1),o!==-1;){let l=0,i=o;for(;!n[i];)n[i]=!0,i=e[i],l++;t=TB(t,l)}return t}function VB(e,t){for(let r=0;r<6;r++){if(e===Et[wr[r][0]]&&t===Et[wr[r][2]])return[r,0];if(e===Et[wr[r][2]]&&t===Et[wr[r][0]])return[r,1]}throw"unknown corner piece"}function HB(e,t){for(let r=0;r<12;r++)if(e===Et[vr[r][0]]&&t===Et[vr[r][1]]||t===Et[vr[r][0]]&&e===Et[vr[r][1]])return r;throw"unknown edge piece"}function Ja(e,t){return VB(e[wr[t][0]],e[wr[t][2]])}function Qi(e,t){return HB(e[vr[t][0]],e[vr[t][1]])}function YB(e,t,r,n){let o=wr[t],l=wr[r].map(i=>Et[i]);n%2!=0&&(l=[l[2],l[3],l[0],l[1]]);for(let i=0;i<4;i++)e[o[i]]=l[i]}function ZB(e,t,r){let n=vr[t],o=vr[r].map(l=>Et[l]);for(let l=0;l<2;l++)e[n[l]]=o[l]}function Rg(e){let t=e.map(f=>Et[f]),n=Array(6).fill().map((f,a)=>Ja(t,a)).map(([f,a])=>f+6*a),o=n.concat(n.map(f=>(f+6)%12)),l=Array(12).fill().map((f,a)=>Qi(t,a)),i=Array(12).fill().map((f,a)=>tn.indexOf(e[tn[a]])),s=Array(12).fill().map((f,a)=>so.indexOf(e[so[a]]));return{cp:o,ep:l,ap:i,bp:s}}function XB(e){let t=Array(72),r=cg(5,e);r.push(5);let n=Array(4).fill().map(s=>e(2));n.push(n.reduce((s,f)=>s^f)),n.push(0);for(let s=0;s<6;s++)YB(t,s,r[s],n[s]);let o=cg(12,e);for(let s=0;s<12;s++)ZB(t,s,o[s]);let l=qa(12,e).map(s=>s/3|0),i=qa(12,e).map(s=>4+(s/3|0));for(let s=0;s<12;s++)t[tn[s]]=l[s],t[so[s]]=i[s];return t}function Dg(e,t=!1){if(t){let l=0,i=1,s=2,f=3,a=4,g=5,c=6,u=7;e=e.map(L=>L.slice());let p=[l,i,s,f,a,g,c,u],m=[[l,f,g,c,a,u,i,s],[u,i,l,c,f,g,a,s],[u,a,s,i,f,l,c,g],[s,a,g,f,c,l,i,u]];m=m.concat(m.map(L=>Za(L)));for(let L=0;L<e.length;L++)if(e[L][0]<4)e[L][0]=p[e[L][0]];else{let R=p[e[L][0]],D=e[L][1];e[L][0]=R,p=Ze(D===1?m[R^4]:m[R],p)}}let r=t?"U L F R D BR B BL".split(" "):JB,n=["0","","'"];return e.map(([l,i])=>r[l]+n[i]).join(" ")}function Er(e,t){for(let[r,n]of t)for(let o=0;o<n;o++)e=Ze(e,dg[r]);return e}function Fg(e){return e.map(([t,r])=>[t,(3-r)%3]).reverse()}function ji(e,t=!1){if(e.length===0)return[];let r=[],n;for(let[o,l]of e)n&&n[0]===o?(n[1]+=l,n[1]%=3,n[1]===0&&(r.pop(),n=r.length===0?void 0:r[r.length-1])):r.length>=2&&(n[0]^o)==4&&r[r.length-2][0]===o?(r[r.length-2][1]+=l,r[r.length-2][1]%=3,r[r.length-2][1]===0&&r.splice(r.length-2,1)):(n=[o,l],r.push(n));return t&&""+e!=""+r&&console.log(\`simplified \${e} to \${r}\`),r}function $B(e){return Dg(Fg(rR(XB(e),!0)),!0)}function ao(e,t,r,n,o,l){let i=gg(e,t,r,n,o),s=l.length,[f,a]=lo(e,t,r,n,o),g=Array(s).fill().map(()=>new Uint32Array(i));for(let c=0;c<i;c++){let u=f[c],p=Array(e);for(let m=0;m<e;m++)p[m]=u>>2*m&3;for(let m=0;m<s;m++){let R=Ze(p,l[m]).reduce((D,A,y)=>D|A<<2*y,0);g[m][c]=a[R]}}return g}function hg(e){let t=e[0].length,r=e.length,n=Array(r).fill().map(()=>new Uint32Array(t));for(let o=0;o<t;o++)for(let l=0;l<r;l++)n[l][e[l][o]]=o;return n}function nn(e,t){let r=e[0].length,n=t[0].length,o=e.length,l=Array(o).fill().map(()=>new Uint32Array(r*n));for(let i=0;i<n;i++)for(let s=0;s<r;s++){let f=s+r*i;for(let a=0;a<o;a++)l[a][f]=e[a][s]+r*t[a][i]}return l}function eR(e,t){let r=e.length,n=e[0].length,o=new Uint8Array(n);o[t]=1;let l=!1;for(;!l;){l=!0;for(let s=0;s<n;s++)if(!!o[s])for(let f=0;f<r;f++)o[e[f][s]]||(o[e[f][s]]=1,l=!1)}let i=new Int32Array(n).fill(-1);for(let s=0,f=0;s<n;s++)!o[s]||(i[s]=f,f++);return[e.map(s=>en(s,o)),i]}function tR(e,t){let r=e.length,n=e[0].length,o=new Int32Array(n).fill(-1);t.forEach(f=>{o[f]=0});let l=[t];for(let f=0;f<l.length;f++){let a=l[f];for(let g=0;g<r;g++){let c=e[g][a[0]];if(o[c]!==-1)continue;let u=a.map(m=>e[g][m]),p=l.length;l.push(u);for(let m of u){if(o[m]!==-1)throw"quotienting failed";o[m]=p}}}let i=l.length,s=Array(r).fill().map(()=>new Int32Array(i));for(let f=0;f<r;f++)for(let a=0;a<i;a++)s[f][a]=o[e[f][l[a][0]]];return[s,o]}function Ag(e,t,r){let n=e[0].length,o=e.length,l=new Int32Array(n).fill(-1);l[t]=r,l[r]=t;let i=!1;for(;!i;){i=!0;for(let s=0;s<n;s++){if(l[s]===-1)continue;let f=l[s];for(let a=0;a<o;a++){let g=a^1,c=e[a][s],u=e[g][e[g][f]];if(l[c]===-1)i=!1,l[c]=u,l[u]=c;else if(l[c]!==u)throw"mirroring failed - is the initial map correct?"}}}return l}function yg(e,t){let r=e[0].length,n=e.length,o=new Int8Array(r).fill(-1);for(let s of t)o[s]=0;let l=0,i=!1;for(;!i;){i=!0;for(let s=0;s<r;s++)if(o[s]===l)for(let f=0;f<n;f++){let a=e[f][s];for(;a!==s;)o[a]===-1&&(i=!1,o[a]=l+1),a=e[f][a]}l++}return o}function rR(e,t=!1){let r=sR(e).next().value,n=Er(e,r),o=(t?yR:AR)(n),l=ji(r.concat(o),!1);return Er(e,l).join("")!==tl.join("")&&(console.log("solving failed!"),console.log(e),console.log(r),console.log(n),console.log(o),console.log(Er(e,l))),l}function oR(e){let[t,r]=lo(12,6,0,3,3),n=Array(12).fill().map((s,f)=>Qi(e,f)),o=n.indexOf(8)+12*n.indexOf(9)+12**2*n.indexOf(10)+12**3*n.indexOf(11),[l,i]=[tn,so].map(s=>{let f=s.map(a=>nR[e[a]]);return r[f.reduce((a,g,c)=>a|g<<2*c,0)]});return[o,l,i]}function Ug(){if(W.phase1_edge)return W.phase1_edge;let e=hg(rn.map(n=>n.ep)),t=nn(e,e),r=nn(t,t);return W.phase1_edge=r}function lR(){return nr.phase1_edge?nr.phase1_edge:nr.phase1_edge=yg(Ug(),[8+12*9+12**2*10+12**3*11])}function iR(){return W.phase1_centreA?W.phase1_centreA:W.phase1_centreA=ao(12,6,0,3,3,rn.map(e=>e.ap))}function bg(){return W.phase1_centreB?W.phase1_centreB:W.phase1_centreB=ao(12,6,0,3,3,rn.map(e=>e.bp))}function Sg(){if(nr.phase1_centre)return nr.phase1_centre;let[e,t]=lo(12,6,0,3,3),r=e.filter(n=>{let o=n>>12&3,l=n>>18&3;return o===2&&l===3}).map(n=>t[n]);return nr.phase1_centre=yg(bg(),r)}function*sR(e){let t=[Ug(),iR(),bg()],r=[lR(),Sg(),Sg()];yield*aR(oR(e),t,r,15)}function*aR(e,t,r,n){let o=e.length,l=0;for(let i=0;i<o;i++)l=Math.max(l,r[i][e[i]]);for(;l<=n;)yield*xg(e,t,r,l,-1),l++}function*xg(e,t,r,n,o){let l=3,i=8,s=Math.max(r[0][e[0]],r[1][e[1]],r[2][e[2]]);if(!(s>n)){if(n===0){yield[];return}if(!(s===0&&n===1))for(let f=0;f<i;f++){if(f===o||f===o-4)continue;let a=[];a[0]=t[0][f][e[0]],a[1]=t[1][f][e[1]],a[2]=t[2][f][e[2]];let g=1;for(;e.some((c,u)=>e[u]!=a[u]);){let c=xg(a,t,r,n-1,f);for(;;){let{value:u,done:p}=c.next();if(p)break;yield[[f,g]].concat(u)}a[0]=t[0][f][a[0]],a[1]=t[1][f][a[1]],a[2]=t[2][f][a[2]],g++}}}}function Xa(e){let[t,r]=lo(10,5,3,2,0),n=Array(8).fill().map((u,p)=>Qi(e,p)),o=n.indexOf(5)+8*n.indexOf(6)+8**2*n.indexOf(7),l=Array(5).fill().map((u,p)=>Ja(e,p)),i=Za(l.map(([u,p])=>u+5*p).concat(l.map(([u,p])=>u+5*(p^1)))),s=i.slice(0,5).map(u=>u%5),f=i.slice(0,5).map(u=>u/5|0),a=$r(s)*8+(f[0]^f[2])+2*(f[0]^f[3])+4*f[4],[g,c]=[tn,so].map(u=>{let p=Ze(u,uR).map(m=>fR[e[m]]);return r[p.reduce((m,L,R)=>m|L<<2*R,0)]});return kg(),Cg(),[g,c,_g[a]+40*Eg[o]]}function*qi(e){yield*LR(Xa(e),30)}function vg(){if(W.phase2_centre)return W.phase2_centre;let e=ao(10,5,3,2,0,rn.slice(0,4).map(r=>en(r.ap,wg))),t=ao(10,5,3,2,0,rn.slice(0,4).map(r=>en(r.bp,wg)));return W.phase2_centre=[e,t]}function kg(){if(W.phase2_edge)return W.phase2_edge;let e=hg(rn.slice(0,4).map(n=>n.ep.slice(0,8))),t=nn(e,nn(e,e)),r;return[r,Eg]=eR(t,501),W.phase2_edge=r}function zg(){if(W.phase2_corner)return W.phase2_corner;let t=el(5)/2*8,r=[!0,!0,!0,!0,!0,!1,!0,!0,!0,!0,!0,!1],n=Array(4).fill().map(()=>new Uint32Array(t)),o=rn.slice(0,4).map(l=>Za(en(l.cp,r)));for(let l=0;l<t;l++){let i=ja(l>>3,5),s=[0,0,l&1,l>>1&1,l>>2&1];s[1]=s[2]^s[3]^s[4];let f=Array(10);for(let a=0;a<5;a++)f[a]=i[a]+5*s[a],f[a+5]=i[a]+5*(s[a]^1);for(let a=0;a<4;a++){let g=Ze(o[a],f),c=g.slice(0,5).map(m=>m%5),u=g.slice(0,5).map(m=>m/5|0),p=(u[0]^u[2])+2*(u[0]^u[3])+4*u[4];n[a][l]=$r(c)*8+p}}return W.phase2_corner=n}function Cg(){return W.phase2_corner_compact||([W.phase2_corner_compact,_g]=tR(zg(),pR())),W.phase2_corner_compact}function $a(){if(W.phase2_ce)return W.phase2_ce;let e=Cg(),t=kg();return W.phase2_ce=nn(e,t)}function gR(){if(e2)return e2;let e=Xa(tl)[2];return e2=Ag($a(),e,e)}function cR(){let[e,t]=lo(10,5,3,2,0);return e.filter(r=>(r>>10&63)==41).map(r=>t[r])}function pR(){let e=zg(),t=e[0].length,r=Array(t).fill(!1);r[0]=!0;let n=!1;for(;!n;){n=!0;for(let o=0;o<t;o++)r[o]&&(r[e[0][o]]||(n=!1,r[e[0][o]]=!0),r[e[1][o]]||(n=!1,r[e[1][o]]=!0))}return r.map((o,l)=>l).filter(o=>r[o])}function mR(){if(nr.phase2_ace)return nr.phase2_ace;let[e,t]=vg(),r=$a(),n=2520,o=40*336,l=n*o,i=Xa(tl)[2],s=9,f=new Int8Array(l).fill(s);for(let a of cR())f[a+n*i]=0;for(let a=0;a<s-1;a++)for(let g=f.indexOf(a);g!==-1;g=f.indexOf(a,g+1)){let c=g%n,u=g/n|0;for(let p=0;p<4;p++){let m=e[p][c],L=r[p][u],R=m+n*L;f[R]===s&&(f[R]=a+1),m=e[p][m],L=r[p][L],R=m+n*L,f[R]===s&&(f[R]=a+1)}}return nr.phase2_ace=f}function*LR(e,t){let[r,n]=vg(),o=$a(),l=mR(),i=gR(),[s,f,a]=e,g=i[a],c=Math.max(l[s+2520*a],l[f+2520*g]);for(;c<=t;)yield*Pg(s,f,a,r,n,o,l,i,c,-1),c++}function*Pg(e,t,r,n,o,l,i,s,f,a){let g=Math.max(i[e+2520*r],i[t+2520*s[r]]);if(!(g>f)){if(f===0){yield[];return}else if(g===0)return;for(let c=0;c<4;c++){if(c===a)continue;let u=e,p=t,m=r;for(let L=1;L<=2;L++){u=n[c][u],p=o[c][p],m=l[c][m];let R=Pg(u,p,m,n,o,l,i,s,f-1,c);for(;;){let{value:D,done:A}=R.next();if(A)break;yield[[c,L]].concat(D)}}}}}function Hi(e){let[t,r]=lo(7,3,2,0,2),n=Array(5).fill().map((a,g)=>Qi(e,g)),o=$r(n),l=Array(4).fill().map((a,g)=>Ja(e,g)),i=$r(l.map(a=>a[0]))*2+l.find(a=>a[0]===0)[1],[s,f]=[tn,so].map(a=>{let g=Ze(a,BR).map(c=>e[c]%4);return r[g.reduce((c,u,p)=>c|u<<2*p,0)]});return[s+210*f,i+24*o]}function dR(){if(W.phase3_2gen_edge)return W.phase3_2gen_edge;let e=el(5)/2,t=Array(fo).fill().map(()=>new Uint32Array(e)),r=Vi.map(n=>n.ep.slice(0,5));for(let n=0;n<e;n++){let o=ja(n,5);for(let l=0;l<fo;l++)t[l][n]=$r(Ze(o,r[l]))}return W.phase3_2gen_edge=t}function DR(){if(W.phase3_2gen_corner)return W.phase3_2gen_corner;let t=el(4)/2*2,r=[!0,!0,!0,!0,!1,!1,!0,!0,!0,!0,!1,!1],n=Array(fo).fill().map(()=>new Uint32Array(t)),o=Vi.map(l=>en(l.cp,r).slice(0,4));for(let l=0;l<t;l+=2){let i=ja(l>>1,4),s=i.concat(i.map(f=>f+4));for(let f=0;f<fo;f++){let a=Ze(s,o[f]),g=a.map(u=>u%4),c=a.find(u=>u%4==0)>>2;n[f][l]=$r(g)*2+c,n[f][l+1]=$r(g)*2+(c^1)}}return W.phase3_2gen_corner=n}function Yi(){return W.phase3_2gen_corneredge?W.phase3_2gen_corneredge:W.phase3_2gen_corneredge=nn(DR(),dR())}function t2(){if(W.phase3_2gen_centre)return W.phase3_2gen_centre;let e=ao(7,3,2,0,2,Vi.map(r=>en(r.ap,Mg))),t=ao(7,3,2,0,2,Vi.map(r=>en(r.bp,Mg)));return W.phase3_2gen_centreA=e,W.phase3_2gen_centreB=t,W.phase3_2gen_centre=nn(e,t)}function Tg(){if(r2)return r2;let e=t2(),t=W.phase3_2gen_centreA,r=Yi(),n=t[0].length,o=r[0].length,l=n*o,i=25,s=or.map(u=>u.length),f=new Int8Array(l).fill(i),a=Hi(tl);f[a[0]%n+n*a[1]]=0;let g=0,c=!1;for(;!c&&g<i-1;){c=!0;let u=Array(fo).fill().map((D,A)=>A).filter(D=>s[D]+g<i);u.sort((D,A)=>s[D]-s[A]);let p=Ze(s,u),m=Ze(t,u),L=Ze(r,u),R=u.length;for(let D=f.indexOf(g);D!==-1;D=f.indexOf(g,D+1)){let A=D%n,y=D/n|0;for(let k=0;k<R;k++){let E=p[k],Q=m[k][A],$=L[k][y],N=Q+n*$;f[N]>g+E&&(c=!1,f[N]=g+E)}}g++}return r2=f}function Gg(){if(n2)return n2;let e=Yi().slice(0,2),t=Hi(tl);return n2=Ag(e,t[1],t[1])}function o2(e,t=Hi(e)){let[r,n]=t,o=r%210,l=Math.floor(r/210),i=t2(),s=W.phase3_2gen_centreA,f=W.phase3_2gen_centreB,a=Yi(),g=Tg(),c=Gg(),u=0;for(;;){let p=i2(o,l,n,s,f,a,g,c,u);for(let m of p)return m.map(L=>or[L]).flat();u++}}function Og(e,t=Hi(e)){let[r,n]=t,o=r%210,l=Math.floor(r/210),i=t2(),s=W.phase3_2gen_centreA,f=W.phase3_2gen_centreB,a=Yi(),g=Tg(),c=Gg(),u=o2(e).length,p=1/0,m;for(let L=u;L<=u+0;L++){let R=i2(o,l,n,s,f,a,g,c,L);for(let D of R){let A=D.map(E=>or[E]).flat(),y=ji(A),k=l2(y);k<p&&(p=k,m=y)}}return m}function FR(e){return(e-1)*(e-2)/2}function l2(e){let t=Dg(e,!0).replace(/'/g,"").split(" ");return e.length+hR(t).map(FR).reduce((r,n)=>r+n,0)}function hR(e){if(e.length<3)return[];let t=e.length,r=[];for(let l=0;l<t-2;l++)r[l]=e[l]===e[l+2];r.push(!1);let n=-1,o=[];for(;n<t-2&&(n=r.indexOf(!0,n+1),n!==-1);){let l=r.indexOf(!1,n+1);o.push(l-n),n=l}return o}function*i2(e,t,r,n,o,l,i,s,f,a=-1){let g=i[e+210*r],c=i[t+210*s[r]],u=Math.max(g,c);if(!(u>f)){if(f===0){yield[];return}if(u!==0)for(let p=0;p<fo;p++){if(p===a&&RR[p]<=3)continue;let m=n[p][e],L=o[p][t],R=l[p][r],D=f-or[p].length;if(D<0)continue;let A=i2(m,L,R,n,o,l,i,s,D,p);for(;;){let{value:y,done:k}=A.next();if(k)break;yield[p].concat(y)}}}}function AR(e,t=200,r=24){let n=[],o=qi(e),l=Ze(e,It).map(f=>f^1),i=qi(l),s=Array(1e3);for(let f=0;f<t;f++){{let{value:a,done:g}=o.next();if(!g){let c=Er(e,a),u=a.concat(o2(c));if(u.length<=r)return u;u.length<s.length&&(s=u)}}{let{value:a,done:g}=i.next();if(!g){let c=Er(l,a),u=a.concat(o2(c)).map(([p,m])=>[p^2,m]);if(u.length<=r)return u;u.length<s.length&&(s=u)}}}return s}function yR(e,t=20,r=30){let n=[],o=qi(e),l=Ze(e,It).map(a=>a^1),i=qi(l),s,f=1/0;for(let a=0;a<t;a++){{let{value:g,done:c}=o.next();if(!c){let u=Er(e,g),p=ji(g.concat(Og(u))),m=l2(p);if(m<=r)return p;m<f&&(s=p,f=m)}}{let{value:g,done:c}=i.next();if(!c){let u=Er(l,g),p=ji(g.concat(Og(u)));p=p.map(([L,R])=>[L^2,R]);let m=l2(p);if(m<=r)return p;m<f&&(s=p,f=m)}}}return s}async function bR(){return $B(await UR)}var n7,o7,Va,Ha,tl,rl,OB,It,l7,Wi,Lg,IB,WB,KB,Ki,QB,Bg,jB,qB,Et,wr,vr,tn,so,dg,JB,rn,W,nr,nR,fR,uR,wg,Eg,_g,e2,BR,Mg,or,fo,Ng,Vi,RR,r2,n2,UR,Wg=U(()=>{Nt();[n7,o7]=(()=>{let e=new Int8Array(256*8),t=new Int8Array(256*8);for(let o=0;o<256;o++)for(let l=0,i=0;l<8;l++)(o>>>l&1)!=0&&(e[l<<8|o]=i,t[i<<8|o]=l,i++);function r(o){let l=255,i=2520,s=0;for(let f=0;f<6;f++){let a=o[f];s+=e[l|a<<8]*i,l&=~(1<<a),i/=7-f}return s}function n(o,l){let i=255,s=2520,f=0;for(let a=0;a<6;a++){let g=o/s|0;o-=g*s,f^=g&1;let c=t[i|g<<8];l[a]=c,i&=~(1<<c),s/=7-a}return l[6]=t[i|f<<8],l[7]=t[i|(f^1)<<8],l}return[r,n]})();Va={};Ha={};tl=Array(72).fill().map((e,t)=>t/9|0),rl=Ya([[0,4,8],[1,6,3],[2,5,7],[9,22,35],[45,67,44],[47,68,43],[46,69,39],[50,70,38],[49,71,36]],72),OB=Ze(rl,rl),It=Array(72).fill().map((e,t)=>(t/18|0)*18+(t+9)%18),l7=Array(72).fill().map((e,t)=>(t/36|0)*36+(t+18)%36),Wi=Array(72).fill().map((e,t)=>(t+36)%72),Lg=io(Wi,OB,Wi),IB=io(It,rl,It),WB=io(It,Lg,It),KB=Ya([[10,24,30],[11,23,34],[12,19,33],[42,48,64],[41,52,65],[37,51,66]],72),Ki=Ze(rl,KB),QB=Ze(Ki,Ki),Bg=io(Wi,QB,Wi),jB=io(It,Ki,It),qB=io(It,Bg,It),Et=Array(72).fill().map((e,t)=>t/9|0),wr=[[0,45,9,36],[4,67,22,49],[8,44,35,71],[13,58,31,40],[17,53,26,62],[18,63,27,54]],vr=[[1,46],[3,39],[6,69],[10,37],[33,42],[12,48],[15,60],[24,51],[19,64],[28,55],[30,66],[21,57]],tn=Array(12).fill().map((e,t)=>(t/3|0)*9+[2,5,7][t%3]),so=tn.map(e=>e+36);dg=[rl,Lg,IB,WB,Ki,Bg,jB,qB],JB=["U","L","F","R","u","l","f","r"],rn=dg.map(Rg);W={},nr={},nR=[0,0,2,3,0,0,2,3];fR=[0,1,2,0,0,1,2,0],uR=[0,1,2,3,4,5,7,8,10,11],wg=[!0,!0,!0,!0,!0,!0,!1,!0,!0,!1,!0,!0];BR=[0,1,2,3,4,10,11],Mg=[!0,!0,!0,!0,!0,!1,!1,!1,!1,!1,!0,!0],or=[[[0,1]],[[1,1]],[[2,1],[0,1],[3,1],[0,2],[3,2],[2,2]],[[3,2],[1,2],[2,2],[1,1],[2,1],[3,1]],[[6,1],[0,1],[3,1],[0,2],[3,2],[6,2]],[[7,2],[1,2],[2,2],[1,1],[2,1],[7,1]],[[2,1],[0,1],[2,2],[0,1],[2,1],[0,1],[2,2]],[[3,2],[1,1],[3,1],[1,1],[3,2],[1,1],[3,1]],[[2,1],[3,1],[2,2],[1,2],[0,2],[2,1],[3,1],[2,2]],[[3,2],[2,2],[3,1],[0,1],[1,1],[3,2],[2,2],[3,1]],[[6,1],[0,1],[6,2],[0,2],[1,2],[6,1],[0,1],[6,2]],[[7,2],[1,2],[7,1],[1,1],[0,1],[7,2],[1,2],[7,1]],[[2,1],[3,2],[2,2],[3,1],[0,1],[2,2],[1,1],[2,1]],[[3,2],[2,1],[3,1],[2,2],[1,2],[3,1],[0,2],[3,2]],[[6,1],[0,2],[6,2],[7,1],[6,1],[1,2],[7,1],[6,1]],[[7,2],[1,1],[7,1],[6,2],[7,2],[0,1],[6,2],[7,2]],[[2,2],[1,2],[2,2],[3,2],[2,2],[3,2],[0,2],[3,2]],[[6,2],[7,2],[1,2],[0,2],[1,2],[0,2],[6,2],[7,2]]];or=or.concat(or.map(e=>Fg(e)));fo=or.length,Ng=or.map(e=>Er(Ya([],72),e)),Vi=Ng.map(Rg),RR=Ng.map(GB);UR=je()});var Kg={};ye(Kg,{randomFTOScrambleString:()=>SR,sgsDataFTO:()=>wR});async function SR(){let{randomFTOScrambleString:e}=await Promise.resolve().then(()=>(Wg(),Ig));return e()}async function wR(){return xR??(xR=vR())}async function vR(){return Gt(await ke.fto.kpuzzle(),\`SubgroupSizes 24 12 11 12 12 11 10 9 11 8 10 9 7 8 10 10 6 9 8 5 7 6 5 4 4 8 7 3 6 6 360
1149
1224
 
1150
1225
  Alg T
1151
1226
  Alg B
@@ -1764,7 +1839,7 @@ Alg BR' B U BR' R BR R' U' BR B'
1764
1839
  Alg F' BL' BR R' BR BL BR' R BR' F
1765
1840
  Alg BR L' BL BR' BL' BR' L U BR U'
1766
1841
  Alg U BR' U' BR BL' BR BL BR'
1767
- \`)}var AR,Ng=b(()=>{Vt();vn();AR=null});var $g={};ye($g,{randomMasterTetraminxScrambleString:()=>JR});function nl(e){if(e<2)return e;let t=1;for(let r=2;r<=e;r++)t*=r;return t}function nn(e){let t=Array(e);for(let r=0;r<e;r++)t[r]=r;return t}function bR(e){e=e.slice();let t=e.length,r=nl(t-1),n=0;for(;t>1;){t--;let o=e[0];n+=o*r;for(let l=0;l<t;l++){let i=e[l+1];e[l]=i-(i>o)}r/=t}return n}function Yi(e,t){let r=[],n=nl(t-1)/2,o=0;for(let l=0;l<t-1;l++)r[l]=e/n|0,e%=n,n/=t-1-l;r[t-1]=0;for(let l=t-2;l>=0;l--)for(let i=l+1;i<t;i++)r[i]>=r[l]?r[i]++:o^=1;return o===1&&([r[t-2],r[t-1]]=[r[t-1],r[t-2]]),r}function Wg(e){return bR(e)>>1}function on(e,t){let r=[];for(let n=0;n<t.length;n++)r[n]=e[t[n]];return r}function a0(e){let t=[];for(let r=0;r<e.length;r++)t[e[r]]=r;return t}function ol(e,t){let r=[];for(let n=0;n<t;n++)r[n]=n;for(let n=0;n<e.length;n++)r[e[n]]=e[(n+1)%e.length];return r}function vr(e,t){return e.length===0?nn(t):e.map(r=>ol(r,t)).reduce(on)}function wR(e,t){let r=Array(4);for(let i=0;i<4;i++)r[i]=(e.co[i]+t.co[i])%3;let n=on(e.mp,t.mp),o=on(e.wp,t.wp),l=on(e.cp,t.cp);return{co:r,mp:n,wp:o,cp:l}}function Kg(e,t){return e>=4&&t>=4?!0:e<4&&t<4?e===t:(e^t)==4}function MR(e){let t=["0","","'"];return e.map(([n,o])=>PR[n]+t[o]).join(" ")}function GR(e){let t=Array(4);for(let l=0;l<4;l++)t[l]=e(3);let r=Yi(e(nl(6)/2),6);for(let l=0,i=0;l<6;l++){let a=l===5?i:e(2);i^=a,r[l]+=a*6,r[l+6]=(r[l]+6)%12}let n=Yi(e(nl(12)/2),12),o=Yi(e(nl(4)/2),4);return{co:t,mp:r,wp:n,cp:o}}function TR(e){return NR(GR(e))}function IR(e,t=!0,r=!1){let n=MR(TR(e));if(!t)return n;let o=["u","l","r","b"],l=["0","","'"];if(!r){for(let u=0;u<4;u++){let m=e(3);m!==0&&(n+=" "+o[u]+l[m])}return n.trim()}let i=[],a=[],f=[];for(let u=0;u<4;u++)i[u]=e(3),a[u]=e(3),f[u]=(i[u]-a[u]+3)%3;let s=u=>u.filter(m=>m!==0).length;for(;!(s(a)>=1&&s(f)>=1&&s(a)+s(f)>=4);)for(let u=0;u<4;u++)a[u]=e(3),f[u]=(i[u]-a[u]+3)%3;let g=a.map((u,m)=>u!==0?o[m]+l[u]+" ":"").join(""),c=f.map((u,m)=>u!==0?" "+o[m]+l[u]:"").join("");return g+n+c}function NR(e){let t=WR(e),r=[Yg(),Zg()],n=[HR(),YR()],o=jR(t),l,i=new Set,a=performance.now();for(let f=0;f<22;f++){let{value:s,done:g}=o.next(),c=e;for(let[R,D]of s)for(let A=0;A<D;A++)c=wR(c,so[R]);let u=JSON.stringify(c);if(i.has(u))continue;i.add(u);let m=qR(c),p=l?l.length-s.length-1:999999,L=ZR(m,r,n,p).next().value;if(L!==void 0&&((l===void 0||l.length>s.length+L.length)&&(l=s.concat(L)),performance.now()-a>300))break}return l}function OR(e){return e[3^e.indexOf(3)]}function WR(e){let t=on(a0(e.mp),e.wp),r=(e.co.reduce((n,o)=>n+o)-OR(e.cp)+3)%3;return[0,1,2,3,4,5].map(n=>n+6*t.indexOf(n)+72*t.indexOf(n+6)+864*r)}function*jR(e){let t=0,r=Hg(),n=VR();for(;;)yield*qg(...e,r,n,t,-1),t++}function*qg(e,t,r,n,o,l,i,a,f,s){let g=ln,c=lr[e]+lr[t]+lr[r]+lr[n]+lr[o]+lr[l],u=Math.max(a[e%864+t*864],a[r%864+t*864],a[o%864+t*864],a[e%864+n*864],a[r%864+n*864],a[o%864+n*864],a[e%864+l*864],a[r%864+l*864],a[o%864+l*864],a[e%864+r*864],a[e%864+o*864],a[r%864+o*864],a[t%864+n*864],a[t%864+l*864],a[n%864+l*864],u0[c]);if(!(u>f)){if(f===0){yield[];return}if(!(u===0&&f===1))for(let m=0;m<g;m++){if(m===s||m<s&&Kg(m,s))continue;let p=e,L=t,R=r,D=n,A=o,y=l;for(let k=1;k<=2;k++){p=i[p][m],L=i[L][m],R=i[R][m],D=i[D][m],A=i[A][m],y=i[y][m];let E=qg(p,L,R,D,A,y,i,a,f-1,m);for(;;){let{value:Q,done:$}=E.next();if($)break;yield[[m,k]].concat(Q)}}}}}function qR(e){let t=e.mp,r=Wg(t.slice(0,6).map(i=>i%6)),n=t.slice(0,5).map((i,a)=>(i>=6)*2**a).reduce((i,a)=>i+a),o=e.co.map((i,a)=>i*3**a).reduce((i,a)=>i+a),l=e.cp.indexOf(0);return[r+360*l,n+32*o]}function Vg(){if(Ue.phase1pm)return Ue.phase1pm;let e=Array(6*12*12).fill().map(()=>Array(ln).fill(-1));for(let t=0;t<6;t++)for(let r=0;r<12;r++)for(let n=0;n<12;n++){if(r===n)continue;let o=t+6*r+72*n;for(let l=0;l<ln;l++){let i=Qg[l][t],a=s0[l][r],f=s0[l][n];i<6?e[o][l]=i+6*a+72*f:e[o][l]=i-6+6*f+72*a}}return Ue.phase1pm=e}function Hg(){if(Ue.phase1pcm)return Ue.phase1pcm;let e=Vg(),t=Array(e.length*3).fill().map(()=>Array(ln).fill(-1));for(let r=0;r<e.length;r++)for(let n=0;n<ln;n++){let o=e[r][n];t[r][n]=o+6*12*12*f0[n],t[r+6*12*12][n]=o+6*12*12*((f0[n]+1)%3),t[r+2*6*12*12][n]=o+6*12*12*((f0[n]+2)%3)}return Ue.phase1pcm=t}function VR(){if(Ue.phase1p2cp)return Ue.phase1p2cp;let e=Vg(),t=Hg(),r=new Int8Array((6*12*12)**2*3);r.fill(-1);let n=[0,1,2,3,4,5].map(l=>l+6*l+72*(l+6));for(let l=0;l<6;l++)for(let i=0;i<6;i++)l!==i&&(r[n[l]+864*n[i]]=0);let o=0;for(;;){let l=!1;for(let i=0;i<r.length;i++){if(r[i]!==o)continue;let a=i%864,f=Math.floor(i/864);for(let s=0;s<ln;s++){let g=a,c=f;for(let u=1;u<=2;u++){g=e[g][s],c=t[c][s];let m=g+864*c;r[m]===-1&&(l=!0,r[m]=o+1)}}}if(!l)break;o++}return Ue.phase1p2cp=r}function Yg(){if(Ue.phase2pm)return Ue.phase2pm;let e=Array(1440).fill().map(()=>Array(Zi));for(let t=0;t<360;t++){let r=Yi(t,6);for(let n=0;n<6;n++)r[n+6]=r[n]+6;for(let n=0;n<Zi;n++){let o=on(r,so[n].mp),l=Wg(o.slice(0,6).map(i=>i%6));for(let i=0;i<4;i++){let a=so[n].cp[i];e[t+360*a][n]=l+360*i}}}return Ue.phase2pm=e}function Zg(){if(Ue.phase2om)return Ue.phase2om;let e=Array(32*81).fill().map(()=>Array(Zi));for(let t=0;t<32;t++){let r=[0,1,2,3,4].map(o=>t>>o&1);r[5]=r.reduce((o,l)=>o^l);let n=[];for(let o=0;o<6;o++)n[o]=o+6*r[o],n[o+6]=o+6*(r[o]^1);for(let o=0;o<81;o++){let l=[0,1,2,3].map(i=>Math.floor(o/3**i)%3);for(let i=0;i<Zi;i++){let f=on(n,so[i].mp).slice(0,5).map(u=>+(u>=6)),s=0;for(let u=0;u<5;u++)s+=f[u]<<u;let g=l.map((u,m)=>(u+so[i].co[m])%3),c=0;for(let u=0;u<4;u++)c+=g[u]*3**u;e[t+32*o][i]=s+32*c}}}return Ue.phase2om=e}function HR(){return Ue.phase2pp?Ue.phase2pp:Ue.phase2pp=Xg(Yg(),[0])}function YR(){return Ue.phase2op?Ue.phase2op:Ue.phase2op=Xg(Zg(),[0])}function Xg(e,t){let r=e.length,n=e[0].length,o=Array(r).fill(-1),l=t.slice(),i=[],a=0;for(;l.length>0;){i.length=0;for(let f of l)if(o[f]===-1){o[f]=a;for(let s=0;s<n;s++){let g=e[f][s];for(;g!=f;)i.push(g),g=e[g][s]}}[l,i]=[i,l],a+=1}return o}function*ZR(e,t,r,n){let o=e.length,l=0;for(let i=0;i<o;i++)l=Math.max(l,r[i][e[i]]);for(;l<=n;)yield*Jg(e,t,r,l,-1),l++}function*Jg(e,t,r,n,o){let l=e.length,i=t[0][0].length,a=0;for(let f=0;f<l;f++)a=Math.max(a,r[f][e[f]]);if(!(a>n)){if(n===0){yield[];return}if(!(a===0&&n===1))for(let f=0;f<i;f++){if(f===o||f<o&&Kg(f,o))continue;let s=e.slice();for(let c=0;c<l;c++)s[c]=t[c][e[c]][f];let g=1;for(;e.some((c,u)=>e[u]!=s[u]);){let c=Jg(s,t,r,n-1,f);for(;;){let{value:u,done:m}=c.next();if(m)break;yield[[f,g]].concat(u)}for(let u=0;u<l;u++)s[u]=t[u][s[u]][f];g++}}}}async function JR(){return IR(await XR,!1)}var X8,J8,$8,xR,SR,vR,ER,kR,zR,_R,CR,so,PR,ln,Zi,KR,Qg,QR,s0,f0,jg,u0,lr,Ue,XR,ec=b(()=>{Mt();"use strict";[X8,J8]=(()=>{let e=new Int8Array(4096*12),t=new Int8Array(4096*12);for(let o=0;o<4096;o++)for(let l=0,i=0;l<12;l++)(o>>>l&1)!=0&&(e[l<<12|o]=i,t[i<<12|o]=l,i++);function r(o){let l=4095,i=19958400,a=0;for(let f=0;f<10;f++){let s=o[f];a+=e[l|s<<12]*i,l&=~(1<<s),i/=11-f}return a}function n(o,l){let i=4095,a=19958400,f=0;for(let s=0;s<10;s++){let g=o/a|0;o-=g*a,f^=g&1;let c=t[i|g<<12];l[s]=c,i&=~(1<<c),a/=11-s}return l[10]=t[i|f<<12],l[11]=t[i|(f^1)<<12],l}return[r,n]})();$8={co:[0,0,0,0],mp:nn(12),wp:nn(12),cp:[0,1,2,3]},xR={co:[2,0,0,0],mp:nn(12),wp:ol([1,9,11],12),cp:[0,1,2,3]},SR={co:[0,2,0,0],mp:nn(12),wp:ol([0,7,2],12),cp:[0,1,2,3]},vR={co:[0,0,2,0],mp:nn(12),wp:ol([3,6,10],12),cp:[0,1,2,3]},ER={co:[0,0,0,2],mp:nn(12),wp:ol([4,8,5],12),cp:[0,1,2,3]},kR={co:[2,0,0,0],mp:vr([[1,9,11],[7,3,5]],12),wp:vr([[1,9,11],[7,3,5]],12),cp:[0,2,3,1]},zR={co:[0,2,0,0],mp:vr([[0,7,2],[6,1,8]],12),wp:vr([[0,7,2],[6,1,8]],12),cp:[3,1,0,2]},_R={co:[0,0,2,0],mp:vr([[3,6,10],[9,0,4]],12),wp:vr([[3,6,10],[9,0,4]],12),cp:[1,3,2,0]},CR={co:[0,0,0,2],mp:vr([[4,8,5],[10,2,11]],12),wp:vr([[4,8,5],[10,2,11]],12),cp:[2,0,1,3]},so=[kR,zR,_R,CR,xR,SR,vR,ER],PR=["u","l","r","b","U","L","R","B"],ln=8,Zi=4;KR=[],Qg=[],QR=[],s0=[];for(let e=0;e<ln;e++){let t=so[e];KR[e]=t.mp,Qg[e]=a0(t.mp),QR[e]=t.wp,s0[e]=a0(t.wp)}f0=[0,0,0,0,2,2,2,2],jg=[[14,-1,-1,11,11,10,9,8,8,7,7,6,4,5,5,3,4,4,2,3,4,3,-1,-1,0],[13,-1,-1,11,10,10,9,8,8,7,7,6,4,5,5,3,4,4,2,3,3,1,-1,-1,6]],u0=new Int8Array(55);for(let e=0;e<25;e++)u0[e]=jg[0][e],u0[e+30]=jg[1][e];lr=new Int8Array(6*12*12*3);for(let e=0;e<6;e++)for(let t=0;t<12;t++)for(let r=0;r<12;r++){let n=e+6*t+72*r,o=2;t===e?o++:t===(e+6)%12&&o--,r===(e+6)%12?o++:r===e&&o--,lr[n]=o,lr[n+6*12*12]=lr[n+2*6*12*12]=o+5}Ue={};XR=Qe()});var nc={};ye(nc,{cachedMegaminxKPuzzleWithoutMO:()=>ll,cachedSGSDataMegaminx:()=>rd,sgsDataMegaminx:()=>rc});async function $R(){let e=Sn("megaminx",{allMoves:!0,addRotations:!0}),t=new Oe(e.getKPuzzleDefinition(!0),{experimentalPGNotation:new Ir(e,e.getOrbitsDef(!0))});return t.definition.name="megaminx",t}async function ll(){return ed??(ed=$R())}async function rd(){return td??(td=rc())}async function rc(){return Tt(await ll(),\`SubgroupSizes 12 5 60 58 60 56 54 57 52 50 54 48 46 51 44 42 48 40 45 38 36 42 34 32 39 30 36 28 26 33 24 30 22 20 27 18 24 16 14 21 12 18 10 15 8 6 2 12 9 3
1842
+ \`)}var xR,Qg=U(()=>{Ht();kn();xR=null});var nc={};ye(nc,{randomMasterTetraminxScrambleString:()=>nd});function nl(e){if(e<2)return e;let t=1;for(let r=2;r<=e;r++)t*=r;return t}function on(e){let t=Array(e);for(let r=0;r<e;r++)t[r]=r;return t}function ER(e){e=e.slice();let t=e.length,r=nl(t-1),n=0;for(;t>1;){t--;let o=e[0];n+=o*r;for(let l=0;l<t;l++){let i=e[l+1];e[l]=i-(i>o)}r/=t}return n}function Zi(e,t){let r=[],n=nl(t-1)/2,o=0;for(let l=0;l<t-1;l++)r[l]=e/n|0,e%=n,n/=t-1-l;r[t-1]=0;for(let l=t-2;l>=0;l--)for(let i=l+1;i<t;i++)r[i]>=r[l]?r[i]++:o^=1;return o===1&&([r[t-2],r[t-1]]=[r[t-1],r[t-2]]),r}function qg(e){return ER(e)>>1}function ln(e,t){let r=[];for(let n=0;n<t.length;n++)r[n]=e[t[n]];return r}function s2(e){let t=[];for(let r=0;r<e.length;r++)t[e[r]]=r;return t}function ol(e,t){let r=[];for(let n=0;n<t;n++)r[n]=n;for(let n=0;n<e.length;n++)r[e[n]]=e[(n+1)%e.length];return r}function kr(e,t){return e.length===0?on(t):e.map(r=>ol(r,t)).reduce(ln)}function kR(e,t){let r=Array(4);for(let i=0;i<4;i++)r[i]=(e.co[i]+t.co[i])%3;let n=ln(e.mp,t.mp),o=ln(e.wp,t.wp),l=ln(e.cp,t.cp);return{co:r,mp:n,wp:o,cp:l}}function Vg(e,t){return e>=4&&t>=4?!0:e<4&&t<4?e===t:(e^t)==4}function IR(e){let t=["0","","'"];return e.map(([n,o])=>OR[n]+t[o]).join(" ")}function WR(e){let t=Array(4);for(let l=0;l<4;l++)t[l]=e(3);let r=Zi(e(nl(6)/2),6);for(let l=0,i=0;l<6;l++){let s=l===5?i:e(2);i^=s,r[l]+=s*6,r[l+6]=(r[l]+6)%12}let n=Zi(e(nl(12)/2),12),o=Zi(e(nl(4)/2),4);return{co:t,mp:r,wp:n,cp:o}}function KR(e){return jR(WR(e))}function QR(e,t=!0,r=!1){let n=IR(KR(e));if(!t)return n;let o=["u","l","r","b"],l=["0","","'"];if(!r){for(let u=0;u<4;u++){let p=e(3);p!==0&&(n+=" "+o[u]+l[p])}return n.trim()}let i=[],s=[],f=[];for(let u=0;u<4;u++)i[u]=e(3),s[u]=e(3),f[u]=(i[u]-s[u]+3)%3;let a=u=>u.filter(p=>p!==0).length;for(;!(a(s)>=1&&a(f)>=1&&a(s)+a(f)>=4);)for(let u=0;u<4;u++)s[u]=e(3),f[u]=(i[u]-s[u]+3)%3;let g=s.map((u,p)=>u!==0?o[p]+l[u]+" ":"").join(""),c=f.map((u,p)=>u!==0?" "+o[p]+l[u]:"").join("");return g+n+c}function jR(e){let t=VR(e),r=[$g(),ec()],n=[$R(),ed()],o=ZR(t),l,i=new Set,s=performance.now();for(let f=0;f<22;f++){let{value:a,done:g}=o.next(),c=e;for(let[R,D]of a)for(let A=0;A<D;A++)c=kR(c,uo[R]);let u=JSON.stringify(c);if(i.has(u))continue;i.add(u);let p=JR(c),m=l?l.length-a.length-1:999999,L=td(p,r,n,m).next().value;if(L!==void 0&&((l===void 0||l.length>a.length+L.length)&&(l=a.concat(L)),performance.now()-s>300))break}return l}function qR(e){return e[3^e.indexOf(3)]}function VR(e){let t=ln(s2(e.mp),e.wp),r=(e.co.reduce((n,o)=>n+o)-qR(e.cp)+3)%3;return[0,1,2,3,4,5].map(n=>n+6*t.indexOf(n)+72*t.indexOf(n+6)+864*r)}function*ZR(e){let t=0,r=Xg(),n=XR();for(;;)yield*Zg(...e,r,n,t,-1),t++}function*Zg(e,t,r,n,o,l,i,s,f,a){let g=sn,c=lr[e]+lr[t]+lr[r]+lr[n]+lr[o]+lr[l],u=Math.max(s[e%864+t*864],s[r%864+t*864],s[o%864+t*864],s[e%864+n*864],s[r%864+n*864],s[o%864+n*864],s[e%864+l*864],s[r%864+l*864],s[o%864+l*864],s[e%864+r*864],s[e%864+o*864],s[r%864+o*864],s[t%864+n*864],s[t%864+l*864],s[n%864+l*864],u2[c]);if(!(u>f)){if(f===0){yield[];return}if(!(u===0&&f===1))for(let p=0;p<g;p++){if(p===a||p<a&&Vg(p,a))continue;let m=e,L=t,R=r,D=n,A=o,y=l;for(let k=1;k<=2;k++){m=i[m][p],L=i[L][p],R=i[R][p],D=i[D][p],A=i[A][p],y=i[y][p];let E=Zg(m,L,R,D,A,y,i,s,f-1,p);for(;;){let{value:Q,done:$}=E.next();if($)break;yield[[p,k]].concat(Q)}}}}}function JR(e){let t=e.mp,r=qg(t.slice(0,6).map(i=>i%6)),n=t.slice(0,5).map((i,s)=>(i>=6)*2**s).reduce((i,s)=>i+s),o=e.co.map((i,s)=>i*3**s).reduce((i,s)=>i+s),l=e.cp.indexOf(0);return[r+360*l,n+32*o]}function Jg(){if(Ue.phase1pm)return Ue.phase1pm;let e=Array(6*12*12).fill().map(()=>Array(sn).fill(-1));for(let t=0;t<6;t++)for(let r=0;r<12;r++)for(let n=0;n<12;n++){if(r===n)continue;let o=t+6*r+72*n;for(let l=0;l<sn;l++){let i=Hg[l][t],s=a2[l][r],f=a2[l][n];i<6?e[o][l]=i+6*s+72*f:e[o][l]=i-6+6*f+72*s}}return Ue.phase1pm=e}function Xg(){if(Ue.phase1pcm)return Ue.phase1pcm;let e=Jg(),t=Array(e.length*3).fill().map(()=>Array(sn).fill(-1));for(let r=0;r<e.length;r++)for(let n=0;n<sn;n++){let o=e[r][n];t[r][n]=o+6*12*12*f2[n],t[r+6*12*12][n]=o+6*12*12*((f2[n]+1)%3),t[r+2*6*12*12][n]=o+6*12*12*((f2[n]+2)%3)}return Ue.phase1pcm=t}function XR(){if(Ue.phase1p2cp)return Ue.phase1p2cp;let e=Jg(),t=Xg(),r=new Int8Array((6*12*12)**2*3);r.fill(-1);let n=[0,1,2,3,4,5].map(l=>l+6*l+72*(l+6));for(let l=0;l<6;l++)for(let i=0;i<6;i++)l!==i&&(r[n[l]+864*n[i]]=0);let o=0;for(;;){let l=!1;for(let i=0;i<r.length;i++){if(r[i]!==o)continue;let s=i%864,f=Math.floor(i/864);for(let a=0;a<sn;a++){let g=s,c=f;for(let u=1;u<=2;u++){g=e[g][a],c=t[c][a];let p=g+864*c;r[p]===-1&&(l=!0,r[p]=o+1)}}}if(!l)break;o++}return Ue.phase1p2cp=r}function $g(){if(Ue.phase2pm)return Ue.phase2pm;let e=Array(1440).fill().map(()=>Array(Ji));for(let t=0;t<360;t++){let r=Zi(t,6);for(let n=0;n<6;n++)r[n+6]=r[n]+6;for(let n=0;n<Ji;n++){let o=ln(r,uo[n].mp),l=qg(o.slice(0,6).map(i=>i%6));for(let i=0;i<4;i++){let s=uo[n].cp[i];e[t+360*s][n]=l+360*i}}}return Ue.phase2pm=e}function ec(){if(Ue.phase2om)return Ue.phase2om;let e=Array(32*81).fill().map(()=>Array(Ji));for(let t=0;t<32;t++){let r=[0,1,2,3,4].map(o=>t>>o&1);r[5]=r.reduce((o,l)=>o^l);let n=[];for(let o=0;o<6;o++)n[o]=o+6*r[o],n[o+6]=o+6*(r[o]^1);for(let o=0;o<81;o++){let l=[0,1,2,3].map(i=>Math.floor(o/3**i)%3);for(let i=0;i<Ji;i++){let f=ln(n,uo[i].mp).slice(0,5).map(u=>+(u>=6)),a=0;for(let u=0;u<5;u++)a+=f[u]<<u;let g=l.map((u,p)=>(u+uo[i].co[p])%3),c=0;for(let u=0;u<4;u++)c+=g[u]*3**u;e[t+32*o][i]=a+32*c}}}return Ue.phase2om=e}function $R(){return Ue.phase2pp?Ue.phase2pp:Ue.phase2pp=tc($g(),[0])}function ed(){return Ue.phase2op?Ue.phase2op:Ue.phase2op=tc(ec(),[0])}function tc(e,t){let r=e.length,n=e[0].length,o=Array(r).fill(-1),l=t.slice(),i=[],s=0;for(;l.length>0;){i.length=0;for(let f of l)if(o[f]===-1){o[f]=s;for(let a=0;a<n;a++){let g=e[f][a];for(;g!=f;)i.push(g),g=e[g][a]}}[l,i]=[i,l],s+=1}return o}function*td(e,t,r,n){let o=e.length,l=0;for(let i=0;i<o;i++)l=Math.max(l,r[i][e[i]]);for(;l<=n;)yield*rc(e,t,r,l,-1),l++}function*rc(e,t,r,n,o){let l=e.length,i=t[0][0].length,s=0;for(let f=0;f<l;f++)s=Math.max(s,r[f][e[f]]);if(!(s>n)){if(n===0){yield[];return}if(!(s===0&&n===1))for(let f=0;f<i;f++){if(f===o||f<o&&Vg(f,o))continue;let a=e.slice();for(let c=0;c<l;c++)a[c]=t[c][e[c]][f];let g=1;for(;e.some((c,u)=>e[u]!=a[u]);){let c=rc(a,t,r,n-1,f);for(;;){let{value:u,done:p}=c.next();if(p)break;yield[[f,g]].concat(u)}for(let u=0;u<l;u++)a[u]=t[u][a[u]][f];g++}}}}async function nd(){return QR(await rd,!1)}var L7,B7,R7,zR,_R,CR,PR,MR,NR,TR,GR,uo,OR,sn,Ji,HR,Hg,YR,a2,f2,Yg,u2,lr,Ue,rd,oc=U(()=>{Nt();"use strict";[L7,B7]=(()=>{let e=new Int8Array(4096*12),t=new Int8Array(4096*12);for(let o=0;o<4096;o++)for(let l=0,i=0;l<12;l++)(o>>>l&1)!=0&&(e[l<<12|o]=i,t[i<<12|o]=l,i++);function r(o){let l=4095,i=19958400,s=0;for(let f=0;f<10;f++){let a=o[f];s+=e[l|a<<12]*i,l&=~(1<<a),i/=11-f}return s}function n(o,l){let i=4095,s=19958400,f=0;for(let a=0;a<10;a++){let g=o/s|0;o-=g*s,f^=g&1;let c=t[i|g<<12];l[a]=c,i&=~(1<<c),s/=11-a}return l[10]=t[i|f<<12],l[11]=t[i|(f^1)<<12],l}return[r,n]})();R7={co:[0,0,0,0],mp:on(12),wp:on(12),cp:[0,1,2,3]},zR={co:[2,0,0,0],mp:on(12),wp:ol([1,9,11],12),cp:[0,1,2,3]},_R={co:[0,2,0,0],mp:on(12),wp:ol([0,7,2],12),cp:[0,1,2,3]},CR={co:[0,0,2,0],mp:on(12),wp:ol([3,6,10],12),cp:[0,1,2,3]},PR={co:[0,0,0,2],mp:on(12),wp:ol([4,8,5],12),cp:[0,1,2,3]},MR={co:[2,0,0,0],mp:kr([[1,9,11],[7,3,5]],12),wp:kr([[1,9,11],[7,3,5]],12),cp:[0,2,3,1]},NR={co:[0,2,0,0],mp:kr([[0,7,2],[6,1,8]],12),wp:kr([[0,7,2],[6,1,8]],12),cp:[3,1,0,2]},TR={co:[0,0,2,0],mp:kr([[3,6,10],[9,0,4]],12),wp:kr([[3,6,10],[9,0,4]],12),cp:[1,3,2,0]},GR={co:[0,0,0,2],mp:kr([[4,8,5],[10,2,11]],12),wp:kr([[4,8,5],[10,2,11]],12),cp:[2,0,1,3]},uo=[MR,NR,TR,GR,zR,_R,CR,PR],OR=["u","l","r","b","U","L","R","B"],sn=8,Ji=4;HR=[],Hg=[],YR=[],a2=[];for(let e=0;e<sn;e++){let t=uo[e];HR[e]=t.mp,Hg[e]=s2(t.mp),YR[e]=t.wp,a2[e]=s2(t.wp)}f2=[0,0,0,0,2,2,2,2],Yg=[[14,-1,-1,11,11,10,9,8,8,7,7,6,4,5,5,3,4,4,2,3,4,3,-1,-1,0],[13,-1,-1,11,10,10,9,8,8,7,7,6,4,5,5,3,4,4,2,3,3,1,-1,-1,6]],u2=new Int8Array(55);for(let e=0;e<25;e++)u2[e]=Yg[0][e],u2[e+30]=Yg[1][e];lr=new Int8Array(6*12*12*3);for(let e=0;e<6;e++)for(let t=0;t<12;t++)for(let r=0;r<12;r++){let n=e+6*t+72*r,o=2;t===e?o++:t===(e+6)%12&&o--,r===(e+6)%12?o++:r===e&&o--,lr[n]=o,lr[n+6*12*12]=lr[n+2*6*12*12]=o+5}Ue={};rd=je()});var sc={};ye(sc,{cachedMegaminxKPuzzleWithoutMO:()=>ll,cachedSGSDataMegaminx:()=>sd,sgsDataMegaminx:()=>ic});async function od(){let e=vn("megaminx",{allMoves:!0,addRotations:!0}),t=new Ee(e.getKPuzzleDefinition(!0),{experimentalPGNotation:new Or(e,e.getOrbitsDef(!0))});return t.definition.name="megaminx",t}async function ll(){return ld??(ld=od())}async function sd(){return id??(id=ic())}async function ic(){return Gt(await ll(),\`SubgroupSizes 12 5 60 58 60 56 54 57 52 50 54 48 46 51 44 42 48 40 45 38 36 42 34 32 39 30 36 28 26 33 24 30 22 20 27 18 24 16 14 21 12 18 10 15 8 6 2 12 9 3
1768
1843
 
1769
1844
  Alg Rv
1770
1845
  Alg Rv2
@@ -3284,7 +3359,7 @@ Alg L' BL2 L2' F' L2 BL2' L2' F L2'
3284
3359
  Alg U BL2' U R U' BL2 U' L U2 R' U2' L'
3285
3360
  Alg U BR U' L2 F L' U BR' U' L F' L2'
3286
3361
  Alg U L' BL2 L' FL' L BL2' L U' L2' FL L2
3287
- Alg U BR2' U R' U2' L U2 R U' BR2 U' L'\`)}var ed,td,g0=b(()=>{Je();ko();vn();ed=null;td=null});var ac={};ye(ac,{sgsDataPyraminx:()=>ic,sgsDataPyraminxFixedOrientation:()=>c0});async function ic(){return ld??(ld=id())}async function c0(){return{ordering:(await ic()).ordering.slice(2)}}async function id(){return Tt(await ve.pyraminx.kpuzzle(),\`SubgroupSizes 12 9 12 3 10 3 8 6 2 3 3 3 3
3362
+ Alg U BR2' U R' U2' L U2 R U' BR2 U' L'\`)}var ld,id,g2=U(()=>{He();En();kn();ld=null;id=null});var gc={};ye(gc,{sgsDataPyraminx:()=>uc,sgsDataPyraminxFixedOrientation:()=>c2});async function uc(){return ud??(ud=gd())}async function c2(){return{ordering:(await uc()).ordering.slice(2)}}async function gd(){return Gt(await ke.pyraminx.kpuzzle(),\`SubgroupSizes 12 9 12 3 10 3 8 6 2 3 3 3 3
3288
3363
 
3289
3364
  Alg B
3290
3365
  Alg B'
@@ -3361,7 +3436,7 @@ Alg r
3361
3436
  Alg r'
3362
3437
 
3363
3438
  Alg u
3364
- Alg u'\`)}var ld,m0=b(()=>{Vt();vn();ld=null});var gc={};ye(gc,{sgsDataSkewb:()=>uc,sgsDataSkewbFixedCorner:()=>L0,skewbKPuzzleWithoutMOCached:()=>Xi});async function ud(){let e=Sn("skewb",{allMoves:!0,addRotations:!0});return new Oe(e.getKPuzzleDefinition(!0),{experimentalPGNotation:new Ir(e,e.getOrbitsDef(!0))})}async function Xi(){return gd??(gd=ud())}async function uc(){return cd??(cd=md())}async function L0(){return{ordering:(await uc()).ordering.slice(1)}}async function md(){return Tt(await Xi(),\`SubgroupSizes 24 6 5 12 9 3 4 9 3 3
3439
+ Alg u'\`)}var ud,p2=U(()=>{Ht();kn();ud=null});var Lc={};ye(Lc,{sgsDataSkewb:()=>mc,sgsDataSkewbFixedCorner:()=>L2,skewbKPuzzleWithoutMOCached:()=>Xi});async function Ld(){let e=vn("skewb",{allMoves:!0,addRotations:!0});return new Ee(e.getKPuzzleDefinition(!0),{experimentalPGNotation:new Or(e,e.getOrbitsDef(!0))})}async function Xi(){return Bd??(Bd=Ld())}async function mc(){return Rd??(Rd=dd())}async function L2(){return{ordering:(await mc()).ordering.slice(1)}}async function dd(){return Gt(await Xi(),\`SubgroupSizes 24 6 5 12 9 3 4 9 3 3
3365
3440
 
3366
3441
  Alg y
3367
3442
  Alg y2
@@ -3439,9 +3514,9 @@ Alg U L U' B' U L' U' B
3439
3514
  Alg U' B L U L B' U' L'
3440
3515
 
3441
3516
  Alg U R' U' L B R' B' R
3442
- Alg R' U' R U B' U' B L\`)}var gd,cd,B0=b(()=>{Je();ko();vn();gd=null;cd=null});var Ac={};ye(Ac,{getRandomSquare1ScrambleString:()=>Nd});function dd(e,t){e.ul=t.ul,e.ur=t.ur,e.dl=t.dl,e.dr=t.dr,e.ml=t.ml}function pc(e,t){var r;t<<=2,t>24?(t=48-t,r=e.ul,e.ul=(~~e.ul>>t|e.ur<<24-t)&16777215,e.ur=(~~e.ur>>t|r<<24-t)&16777215):t>0?(r=e.ul,e.ul=(e.ul<<t|~~e.ur>>24-t)&16777215,e.ur=(e.ur<<t|~~r>>24-t)&16777215):t==0?(r=e.ur,e.ur=e.dl,e.dl=r,e.ml=1-e.ml):t>=-24?(t=-t,r=e.dl,e.dl=(e.dl<<t|~~e.dr>>24-t)&16777215,e.dr=(e.dr<<t|~~r>>24-t)&16777215):t<-24&&(t=48+t,r=e.dl,e.dl=(~~e.dl>>t|e.dr<<24-t)&16777215,e.dr=(~~e.dr>>t|r<<24-t)&16777215)}function Dd(e){var t,r,n,o,l;for(n=0,e.arr[0]=Ot(e,0),o=1;o<24;++o)Ot(e,o)!=e.arr[n]&&(e.arr[++n]=Ot(e,o));for(l=0,t=0;t<16;++t)for(r=t+1;r<16;++r)e.arr[t]>e.arr[r]&&(l^=1);return l}function Fd(e){var t,r,n,o;return o=e.ur&1118481,o|=~~o>>3,o|=~~o>>6,o=o&15|~~o>>12&48,n=e.ul&1118481,n|=~~n>>3,n|=~~n>>6,n=n&15|~~n>>12&48,r=e.dr&1118481,r|=~~r>>3,r|=~~r>>6,r=r&15|~~r>>12&48,t=e.dl&1118481,t|=~~t>>3,t|=~~t>>6,t=t&15|~~t>>12&48,il(Dd(e)<<24|n<<18|o<<12|t<<6|r)}function hd(e,t){var r,n;for(r=0;r<8;++r)e.prm[r]=~~(~~Ot(e,r*3+1)>>1<<24)>>24;for(t.cornperm=ul(e.prm),t.topEdgeFirst=Ot(e,0)==Ot(e,1),r=t.topEdgeFirst?2:0,n=0;n<4;r+=3,++n)e.prm[n]=~~(~~Ot(e,r)>>1<<24)>>24;for(t.botEdgeFirst=Ot(e,12)==Ot(e,13),r=t.botEdgeFirst?14:12;n<8;r+=3,++n)e.prm[n]=~~(~~Ot(e,r)>>1<<24)>>24;t.edgeperm=ul(e.prm),t.ml=e.ml}function Ot(e,t){var r;return t<6?r=~~e.ul>>(5-t<<2):t<12?r=~~e.ur>>(11-t<<2):t<18?r=~~e.dl>>(17-t<<2):r=~~e.dr>>(23-t<<2),~~((r&15)<<24)>>24}function d0(e,t,r){t<6?(e.ul&=~(15<<(5-t<<2)),e.ul|=r<<(5-t<<2)):t<12?(e.ur&=~(15<<(11-t<<2)),e.ur|=r<<(11-t<<2)):t<18?(e.dl&=~(15<<(17-t<<2)),e.dl|=r<<(17-t<<2)):(e.dr&=~(15<<(23-t<<2)),e.dr|=r<<(23-t<<2))}function D0(){this.arr=[],this.prm=[]}async function Ad(){let e=await Qe();var t,r,n,o,l,i,a,f,s;for(t=new D0,n=fo[e(3678)],l=19088743<<1|286331153,o=19088743<<1,a=i=8,r=0;r<24;r++)(n>>r&1)==0?(f=e(i)<<2,d0(t,23-r,o>>f&15),s=(1<<f)-1,o=(o&s)+(o>>4&~s),--i):(f=e(a)<<2,d0(t,23-r,l>>f&15),d0(t,22-r,l>>f&15),s=(1<<f)-1,l=(l&s)+(l>>4&~s),--a,++r);return t.ml=e(2),t}function yd(){}function Ud(e){var t,r,n,o,l,i;for(dd(e.Search_d,e.Search_c),n=0;n<e.Search_length1;++n)pc(e.Search_d,e.Search_move[n]);for(hd(e.Search_d,e.Search_sq),r=e.Search_sq.edgeperm,t=e.Search_sq.cornperm,l=e.Search_sq.ml,i=Math.max(he[e.Search_sq.edgeperm<<1|l],he[e.Search_sq.cornperm<<1|l]),n=i;n<e.Search_maxlen2;++n)if($i(e,r,t,e.Search_sq.topEdgeFirst,e.Search_sq.botEdgeFirst,l,n,e.Search_length1,0)){for(o=0;o<n;++o)pc(e.Search_d,e.Search_move[e.Search_length1+o]);return e.Search_sol_string=bd(e,n+e.Search_length1),!0}return!1}function bd(e,t){for(var r="",n=0,o=0,l=t-1;l>=0;l--){var i=e.Search_move[l];i>0?(i=12-i,n=i>6?i-12:i):i<0?(i=12+i,o=i>6?i-12:i):(n==0&&o==0?r+=" / ":r+="("+n+", "+o+") / ",n=o=0)}return(n!==0||o!==0)&&(r+="("+n+", "+o+")"),r}function Ji(e,t,r,n,o,l){var i,a,f;if(r==0&&n<4)return n==0&&Ud(e);if(l!=0&&(f=ea[t],a=_e[f],a<n&&(e.Search_move[o]=0,Ji(e,f,a,n-1,o+1,0))))return!0;if(f=t,l<=0){for(i=0;i+=sl[f],f=~~i>>4,i&=15,!(i>=12||(a=_e[f],a>n));)if(a<n&&(e.Search_move[o]=i,Ji(e,f,a,n-1,o+1,1)))return!0}if(f=t,l<=1){for(i=0;i+=al[f],f=~~i>>4,i&=15,!(i>=6||(a=_e[f],a>n));)if(a<n&&(e.Search_move[o]=-i,Ji(e,f,a,n-1,o+1,2)))return!0}return!1}function $i(e,t,r,n,o,l,i,a,f){var s,g,c,u,m,p,L;if(i==0&&!n&&o||f!=0&&n==o&&(c=gl[t],g=gl[r],he[c<<1|1-l]<i&&he[g<<1|1-l]<i&&(e.Search_move[a]=0,$i(e,c,g,n,o,1-l,i-1,a+1,0))))return!0;if(f<=0)for(L=!n,c=L?fn[t]:t,g=L?r:fn[r],u=L?1:2,m=he[c<<1|l],p=he[g<<1|l];u<12&&m<=i&&m<=i;){if(m<i&&p<i&&(e.Search_move[a]=u,$i(e,c,g,L,o,l,i-1,a+1,1)))return!0;L=!L,L?(c=fn[c],m=he[c<<1|l],u+=1):(g=fn[g],p=he[g<<1|l],u+=2)}if(f<=1)for(s=!o,c=s?an[t]:t,g=s?r:an[r],u=s?1:2,m=he[c<<1|l],p=he[g<<1|l];u<(i>3?6:12)&&m<=i&&m<=i;){if(m<i&&p<i&&(e.Search_move[a]=-u,$i(e,c,g,n,s,l,i-1,a+1,2)))return!0;s=!s,s?(c=an[c],m=he[c<<1|l],u+=1):(g=an[g],p=he[g<<1|l],u+=2)}return!1}function wd(e,t){var r;for(e.Search_c=t,r=Fd(t),e.Search_length1=_e[r];e.Search_length1<100&&(e.Search_maxlen2=Math.min(31-e.Search_length1,17),!Ji(e,r,_e[r],e.Search_length1,0,-1));++e.Search_length1);return e.Search_sol_string}function Lc(){this.Search_move=[],this.Search_d=new D0,this.Search_sq=new Dc}function xd(){}function Sd(){Bc||(Bc=!0,fl=[0,3,6,12,15,24,27,30,48,51,54,60,63],fo=[],_e=[],sl=[],al=[],ea=[],kd())}function vd(e){var t,r;t=0,r=0;do(e.bottom&2048)==0?(t+=1,e.bottom=e.bottom<<1):(t+=2,e.bottom=e.bottom<<2^12291),r=1-r;while((un(e.bottom&63)&1)!=0);return(un(e.bottom)&2)==0&&(e.Shape_parity^=r),t}function F0(e){var t;return t=hc(fo,e.top<<12|e.bottom)<<1|e.Shape_parity,t}function h0(e,t){e.Shape_parity=t&1,e.top=fo[~~t>>1],e.bottom=e.top&4095,e.top>>=12}function Ed(e){var t,r;t=0,r=0;do(e.top&2048)==0?(t+=1,e.top=e.top<<1):(t+=2,e.top=e.top<<2^12291),r=1-r;while((un(e.top&63)&1)!=0);return(un(e.top)&2)==0&&(e.Shape_parity^=r),t}function Rc(){}function il(e){var t;return t=hc(fo,e&16777215)<<1|~~e>>24,t}function kd(){var e,t,r,n,o,l,i,a,f,s,g,c,u,m,p,L;for(e=0,i=0;i<28561;++i)l=fl[i%13],r=fl[~~(i/13)%13],c=fl[~~(~~(i/13)/13)%13],g=fl[~~(~~(~~(i/13)/13)/13)],u=g<<18|c<<12|r<<6|l,un(u)==16&&(fo[e++]=u);for(s=new Rc,i=0;i<7356;++i)h0(s,i),sl[i]=Ed(s),sl[i]|=F0(s)<<4,h0(s,i),al[i]=vd(s),al[i]|=F0(s)<<4,h0(s,i),L=s.top&63,m=un(L),p=un(s.bottom&4032),s.Shape_parity^=1&~~(m&p)>>1,s.top=s.top&4032|~~s.bottom>>6&63,s.bottom=s.bottom&63|L<<6,ea[i]=F0(s);for(i=0;i<7536;++i)_e[i]=-1;for(_e[il(14378715)]=0,_e[il(31157686)]=0,_e[il(23967451)]=0,_e[il(7191990)]=0,n=4,o=0,t=-1;n!=o;)for(o=n,++t,i=0;i<7536;++i)if(_e[i]==t){f=0,a=i;do a=sl[a],f+=a&15,a>>=4,_e[a]==-1&&(++n,_e[a]=t+1);while(f!=12);f=0,a=i;do a=al[a],f+=a&15,a>>=4,_e[a]==-1&&(++n,_e[a]=t+1);while(f!=12);a=ea[i],_e[a]==-1&&(++n,_e[a]=t+1)}}function zd(){}function _d(){if(!dc){dc=!0,he=[],gl=[],fn=[],an=[],Fc=[1,1,2,6,24,120,720,5040],sn=[];for(var e=0;e<12;++e)sn[e]=[];Cd()}}function Dc(){}function ul(e){var t,r,n,o;for(r=0,o=1985229328,t=0;t<7;++t)n=e[t]<<2,r=(8-t)*r+(~~o>>n&7),o-=286331152<<n;return r&65535}function Cd(){var e,t,r,n,o,l,i,a,f,s,g,c,u;for(o=0;o<12;++o)for(sn[o][0]=1,sn[o][o]=1,f=1;f<o;++f)sn[o][f]=sn[o-1][f-1]+sn[o-1][f];for(c=[],o=0;o<40320;++o)A0(c,o),u=c[2],c[2]=c[4],c[4]=u,u=c[3],c[3]=c[5],c[5]=u,gl[o]=ul(c),A0(c,o),u=c[0],c[0]=c[1],c[1]=c[2],c[2]=c[3],c[3]=u,fn[o]=ul(c),A0(c,o),u=c[4],c[4]=c[5],c[5]=c[6],c[6]=c[7],c[7]=u,an[o]=ul(c);for(o=0;o<80640;++o)he[o]=-1;for(he[0]=0,t=0,r=1;r<80640;){a=t>=11,n=a?-1:t,e=a?t:-1,++t;e:for(o=0;o<80640;++o)if(he[o]==n){if(l=~~o>>1,g=o&1,i=gl[l]<<1|1-g,he[i]==e&&(++r,he[a?o:i]=~~(t<<24)>>24,a))continue e;for(i=l,s=0;s<4;++s)if(i=fn[i],he[i<<1|g]==e&&(++r,he[a?o:i<<1|g]=~~(t<<24)>>24,a))continue e;for(s=0;s<4;++s)if(i=an[i],he[i<<1|g]==e&&(++r,he[a?o:i<<1|g]=~~(t<<24)>>24,a))continue e}}}function A0(e,t){var r,n,o,l,i;for(i=1985229328,r=0;r<7;++r)o=Fc[7-r],l=~~(t/o),t-=l*o,l<<=2,e[r]=~~((~~i>>l&7)<<24)>>24,n=(1<<l)-1,i=(i&n)+(~~i>>4&~n);e[7]=~~(i<<24)>>24}function Pd(){}function un(e){return e-=~~e>>1&1431655765,e=(~~e>>2&858993459)+(e&858993459),e=(~~e>>4)+e&252645135,e+=~~e>>8,e+=~~e>>16,e&63}function hc(e,t){var r,n,o,l;for(n=0,r=e.length-1;n<=r;)if(o=n+(~~(r-n)>>1),l=e[o],l<t)n=o+1;else if(l>t)r=o-1;else return o;return-n-1}async function Nd(){return(await Id()).scramble_string}var xe,Bc,al,fo,_e,sl,ea,fl,dc,an,sn,he,fn,gl,Fc,y0,Md,Gd,Td,Id,yc=b(()=>{Mt();xe=D0.prototype=yd.prototype;xe.dl=10062778;xe.dr=14536702;xe.ml=0;xe.ul=70195;xe.ur=4544119;xe=Lc.prototype=xd.prototype;xe.Search_c=null;xe.Search_length1=0;xe.Search_maxlen2=0;xe.Search_sol_string=null;Bc=!1;xe=Rc.prototype=zd.prototype;xe.bottom=0;xe.Shape_parity=0;xe.top=0;dc=!1;xe=Dc.prototype=Pd.prototype;xe.botEdgeFirst=!1;xe.cornperm=0;xe.edgeperm=0;xe.ml=0;xe.topEdgeFirst=!1;y0=!1,Md=function(e,t,r){y0||(Sd(),_d()),r&&r("Done initializing Square-1."),y0=!0,e!=null&&e()},Gd=async function(){return y0||Md(),Ad()},Td=function(e){var t=new Lc;return wd(t,e)},Id=async function(){var e=await Gd(),t=Td(e);return{state:e,scramble_string:t}}});var x0=Symbol("Comlink.proxy"),kc=Symbol("Comlink.endpoint"),zc=Symbol("Comlink.releaseProxy"),na=Symbol("Comlink.thrown"),S0=e=>typeof e=="object"&&e!==null||typeof e=="function",_c={canHandle:e=>S0(e)&&e[x0],serialize(e){let{port1:t,port2:r}=new MessageChannel;return uo(e,t),[r,[r]]},deserialize(e){return e.start(),Mc(e)}},Cc={canHandle:e=>S0(e)&&na in e,serialize({value:e}){let t;return e instanceof Error?t={isError:!0,value:{message:e.message,name:e.name,stack:e.stack}}:t={isError:!1,value:e},[t,[]]},deserialize(e){throw e.isError?Object.assign(new Error(e.value.message),e.value):e.value}},v0=new Map([["proxy",_c],["throw",Cc]]);function uo(e,t=self){t.addEventListener("message",function r(n){if(!n||!n.data)return;let{id:o,type:l,path:i}=Object.assign({path:[]},n.data),a=(n.data.argumentList||[]).map(Er),f;try{let s=i.slice(0,-1).reduce((c,u)=>c[u],e),g=i.reduce((c,u)=>c[u],e);switch(l){case"GET":f=g;break;case"SET":s[i.slice(-1)[0]]=Er(n.data.value),f=!0;break;case"APPLY":f=g.apply(s,a);break;case"CONSTRUCT":{let c=new g(...a);f=Ic(c)}break;case"ENDPOINT":{let{port1:c,port2:u}=new MessageChannel;uo(e,u),f=Tc(c,[c])}break;case"RELEASE":f=void 0;break;default:return}}catch(s){f={value:s,[na]:0}}Promise.resolve(f).catch(s=>({value:s,[na]:0})).then(s=>{let[g,c]=la(s);t.postMessage(Object.assign(Object.assign({},g),{id:o}),c),l==="RELEASE"&&(t.removeEventListener("message",r),E0(t))})}),t.start&&t.start()}function Pc(e){return e.constructor.name==="MessagePort"}function E0(e){Pc(e)&&e.close()}function Mc(e,t){return oa(e,[],t)}function cl(e){if(e)throw new Error("Proxy has been released and is not useable")}function oa(e,t=[],r=function(){}){let n=!1,o=new Proxy(r,{get(l,i){if(cl(n),i===zc)return()=>gn(e,{type:"RELEASE",path:t.map(a=>a.toString())}).then(()=>{E0(e),n=!0});if(i==="then"){if(t.length===0)return{then:()=>o};let a=gn(e,{type:"GET",path:t.map(f=>f.toString())}).then(Er);return a.then.bind(a)}return oa(e,[...t,i])},set(l,i,a){cl(n);let[f,s]=la(a);return gn(e,{type:"SET",path:[...t,i].map(g=>g.toString()),value:f},s).then(Er)},apply(l,i,a){cl(n);let f=t[t.length-1];if(f===kc)return gn(e,{type:"ENDPOINT"}).then(Er);if(f==="bind")return oa(e,t.slice(0,-1));let[s,g]=k0(a);return gn(e,{type:"APPLY",path:t.map(c=>c.toString()),argumentList:s},g).then(Er)},construct(l,i){cl(n);let[a,f]=k0(i);return gn(e,{type:"CONSTRUCT",path:t.map(s=>s.toString()),argumentList:a},f).then(Er)}});return o}function Gc(e){return Array.prototype.concat.apply([],e)}function k0(e){let t=e.map(la);return[t.map(r=>r[0]),Gc(t.map(r=>r[1]))]}var z0=new WeakMap;function Tc(e,t){return z0.set(e,t),e}function Ic(e){return Object.assign(e,{[x0]:!0})}function la(e){for(let[t,r]of v0)if(r.canHandle(e)){let[n,o]=r.serialize(e);return[{type:"HANDLER",name:t,value:n},o]}return[{type:"RAW",value:e},z0.get(e)||[]]}function Er(e){switch(e.type){case"HANDLER":return v0.get(e.name).deserialize(e.value);case"RAW":return e.value}}function gn(e,t,r){return new Promise(n=>{let o=Nc();e.addEventListener("message",function l(i){!i.data||!i.data.id||i.data.id!==o||(e.removeEventListener("message",l),n(i.data))}),e.start&&e.start(),e.postMessage(Object.assign({id:o},t),r)})}function Nc(){return new Array(4).fill(0).map(()=>Math.floor(Math.random()*Number.MAX_SAFE_INTEGER).toString(16)).join("-")}var Kc=typeof globalThis.Worker=="undefined"&&typeof globalThis.WorkerNavigator=="undefined",Qc="w-orker-_threa-ds",jc=()=>Qc.replace(/-/g,"");async function qc(){let{parentPort:e}=await import(jc()).catch();return(await Promise.resolve().then(()=>(C0(),_0))).default(e)}function P0(e){Kc?(async()=>{uo(e,await qc())})():uo(e)}Je();Vt();Ht();Je();Vt();Mt();Ht();Re();Re();var ja=class extends dn{constructor(t){super();this.metric=t}traverseAlg(t){let r=0;for(let n of t.units())r+=this.traverseUnit(n);return r}traverseGrouping(t){let r=t.alg;return this.traverseAlg(r)*Math.abs(t.amount)}traverseMove(t){return this.metric(t)}traverseCommutator(t){return 2*(this.traverseAlg(t.A)+this.traverseAlg(t.B))}traverseConjugate(t){return 2*this.traverseAlg(t.A)+this.traverseAlg(t.B)}traversePause(t){return 0}traverseNewline(t){return 0}traverseLineComment(t){return 0}};function Of(e){return"A"<=e&&e<="Z"}function Hm(e){let t=e.family;return Of(t[0])&&t[t.length-1]==="v"||t==="x"||t==="y"||t==="z"||t==="T"?0:1}function Ym(e){let t=e.family;return Of(t[0])&&t[t.length-1]==="v"||t==="x"||t==="y"||t==="z"||t==="T"?0:Math.abs(e.amount)}var Wf=new ja(Hm),qa=Wf.traverseAlg.bind(Wf),Kf=new ja(Ym),Zm=Kf.traverseAlg.bind(Kf);Re();var Qf=class extends dn{traverseAlg(t){let r=0;for(let n of t.units())r+=this.traverseUnit(n);return r}traverseGrouping(t){return this.traverseAlg(t.alg)*Math.abs(t.amount)}traverseMove(t){return 1}traverseCommutator(t){return 2*(this.traverseAlg(t.A)+this.traverseAlg(t.B))}traverseConjugate(t){return 2*this.traverseAlg(t.A)+this.traverseAlg(t.B)}traversePause(t){return 1}traverseNewline(t){return 0}traverseLineComment(t){return 0}},jf=new Qf,Xm=jf.traverseAlg.bind(jf);Mt();var Jm=2,$m=!0,ep=!1;function tp(e,t){let r=[];return t.forEach(function(n){let o=new B(n);if(o.amount!==1)throw new Error("SGS cannot handle def moves with an amount other than 1 yet.");let l=e.identityTransformation();for(let i=1;l=l.applyMove(o),!l.isIdentityTransformation();i++)r.push({move:o.modified({amount:i}),transformation:l})}),r}var Gt=class{constructor(t,r,n){this.kpuzzle=t;this.sgs=r;this.searchMoves=tp(this.kpuzzle,n??Object.keys(this.kpuzzle.definition.moves))}async solve(t,r=Jm,n){let o=t.experimentalToTransformation();if(!o)throw new Error("distinguishable pieces are not supported in tremble solver yt");let l=null,i=1e6,a=(f,s,g)=>{if(s===0){let c=this.sgsPhaseSolve(f,i);if(!c)return;let u=g.concat(c).simplify({collapseMoves:!0,quantumMoveOrder:n}),m=qa(u);(l===null||m<i)&&(ep&&(console.log(\`New best (\${m} moves): \${u.toString()}\`),console.log(\`Tremble moves are: \${g.toString()}\`)),l=u,i=m);return}for(let c of this.searchMoves)a(f.applyTransformation(c.transformation),s-1,g.concat([c.move]))};for(let f=0;f<=r;f++)a(o,f,new z);if(l===null)throw new Error("SGS search failed.");return l}sgsPhaseSolve(t,r){let n=new mt,o=t;for(let l of this.sgs.ordering){let i=l.pieceOrdering,a="",f=o.invert();for(let g=0;g<i.length;g++){let c=i[g],u=c.orbitName,m=c.permutationIdx;a+=\` \${f.transformationData[u].permutation[m]} \${f.transformationData[u].orientation[m]}\`}let s=l.lookup[a];if(!s)throw new Error("Missing algorithm in sgs or esgs?");if(n.experimentalPushAlg(s.alg),n.experimentalNumUnits()>=r)return null;if(o=o.applyTransformation(s.transformation),$m)for(let g=0;g<i.length;g++){let c=i[g],u=c.orbitName,m=c.permutationIdx;if(o.transformationData[u].permutation[m]!==m||o.transformationData[u].orientation[m]!==0)throw new Error("bad SGS :-(")}}return n.toAlg()}};async function Vl(e,t){let r=await Yt(),n=e.identityTransformation();for(let o of t.ordering){let l=r(Object.values(o.lookup));n=n.applyTransformation(l.transformation)}return n.toKState()}var op=3,Yf=null;async function Zf(){return Yf||(Yf=(async()=>{let e=await(await Promise.resolve().then(()=>(Hf(),Vf))).cachedData222();return new Gt(await ve["2x2x2"].kpuzzle(),e,"URFLBD".split(""))})())}async function Xf(){await Zf()}async function Va(e){return gt(),await(await Zf()).solve(e,op,()=>4)}async function lp(e,t,r,n){let o=await Qe();await Nf(r.stateData[t].pieces);let l=e.definition.orbits[t],i=r.stateData[t].orientation,a=0;for(let f=0;f<l.numPieces;f++){let s=o(l.numOrientations);i[f]=s,a+=s}n&&"orientationSum"in n&&(i[0]=((i[0]+n.orientationSum-a)%l.numOrientations+l.numOrientations)%l.numOrientations)}async function ip(){let e=await ve["2x2x2"].kpuzzle(),t=new pe(e,JSON.parse(JSON.stringify(e.startState().stateData)));return await lp(e,"CORNERS",t,{orientationSum:0}),t}async function Jf(){return await Va(await ip())}ds();Hl();var hB=[[null,"x","x2","x'","z","z'"],[null,"y","y2","y'"]],AB=null;function rg(){return AB??(AB=Promise.resolve().then(()=>(tg(),eg)))}async function ng(){return(await rg()).initialize()}async function Qs(){return(await rg()).random444Scramble()}async function og(){return En(await Qs(),hB)}Hl();Re();Mt();function yB(e){switch(e){case 5:return 60;case 6:return 80;default:return 100}}var UB=[["U","D"],["L","R"],["F","B"]],lg=new Map;function bB(e){let t=lg.get(e);if(t)return t;let r=[];for(let n of UB){let o=[];r.push(o);for(let l of n){o.push(new P(l)),e>3&&o.push(new P(\`\${l}w\`));for(let i=3;i<=e/2;i++)o.push(new P(\`\${l}w\`,i))}}return lg.set(e,r),r}async function rr(e){let t=await Qe(),r=await Yt(),n=r,o=bB(e),l=yB(e),i=new mt,a=0,f=new Set;for(;i.experimentalNumUnits()<l;){let s=t(3);s!==a&&f.clear(),a=s;let g=r(o[a]),c=g.toString();f.has(c)||(f.add(c),i.push(new B(g,n([1,2,-1]))))}return i.toAlg()}var wB=[[null,"3Rw","3Rw2","3Rw'","3Fw","3Fw'"],[null,"3Dw","3Dw2","3Dw'"]];async function ig(){return En(await rr(5),wB)}Re();Vt();Ht();async function Og(){let{randomFTOScrambleString:e}=await Promise.resolve().then(()=>(Ng(),Ig));return new z(await e())}Re();async function tc(){let{randomMasterTetraminxScrambleString:e}=await Promise.resolve().then(()=>(ec(),$g));return new z(await e())}Je();Ht();g0();var nd=2,oc=null;async function od(){return oc||(oc=(async()=>{let t=await(await Promise.resolve().then(()=>(g0(),nc))).cachedSGSDataMegaminx();return new Gt(await ll(),t,["U","R","F","L","BR","BL","FR","FL","DR","DL","B","D"])})())}async function lc(e){gt();let t=await od(),r=JSON.parse(JSON.stringify(e.stateData));r.CENTERS.orientation=new Array(12).fill(0);let n=new pe(await ll(),r);return await t.solve(n,nd,()=>5)}Vt();Ht();m0();var ad=3,sc=null;async function sd(){return sc||(sc=(async()=>{let t=await(await Promise.resolve().then(()=>(m0(),ac))).sgsDataPyraminx();return new Gt(await ve.pyraminx.kpuzzle(),t,"RLUB".split(""))})())}async function p0(e){return gt(),await(await sd()).solve(e,ad,()=>3)}async function fd(){return Vl(await ve.pyraminx.kpuzzle(),await c0())}async function fc(){return p0(await fd())}Je();Ht();B0();var pd=3,cc=null;async function Ld(){return cc||(cc=(async()=>{let e=await Promise.resolve().then(()=>(B0(),gc)),t=await e.sgsDataSkewb();return new Gt(await e.skewbKPuzzleWithoutMOCached(),t,"RLUB".split(""))})())}function Bd(e){return new pe(e.kpuzzle,{CORNERS:e.stateData.CORNERS,CENTERS:{pieces:e.stateData.CENTERS.pieces,orientation:new Array(6).fill(0)}})}async function R0(e){return gt(),await(await Ld()).solve(Bd(e),pd,n=>n.family==="y"?4:3)}async function Rd(){return Vl(await Xi(),await L0())}async function mc(){return R0(await Rd())}Re();var Od=null;function Wd(){return Od??(Od=Promise.resolve().then(()=>(yc(),Ac)))}async function Uc(){return z.fromString(await(await Wd()).getRandomSquare1ScrambleString())}Pf(!0);var bc=!0;function Kd(e){bc=e}function wc(){return(typeof performance=="undefined"?Date:performance).now()}async function Ce(e,t){if(!bc)return t();let r=wc(),n=t();n?.then&&await n;let o=wc();return console.warn(\`\${e}: \${Math.round(o-r)}ms\`),n}var U0={initialize:async e=>{switch(e){case"222":return Ce("preInitialize222",Xf);case"333":case"333oh":case"333ft":return Ce("initialize333",Wu);case"444":return Ce("initialize444",ng);default:throw new Error(\`unsupported event: \${e}\`)}},randomScrambleForEvent:async e=>{switch(e){case"222":return Ce("random222Scramble",Jf);case"333":case"333oh":case"333ft":return Ce("random333Scramble",Wn);case"333fm":return Ce("random333FewestMovesScramble",ju);case"333bf":case"333mb":return Ce("random333OrientedScramble",Ku);case"444":return Ce("random444Scramble",Qs);case"444bf":return Ce("random444OrientedScramble",og);case"555":return Ce("bigCubeScramble(5)",rr.bind(rr,5));case"555bf":return Ce("oriented555RandomMoves",ig);case"666":return Ce("bigCubeScramble(6)",rr.bind(rr,6));case"777":return Ce("bigCubeScramble(7)",rr.bind(rr,7));case"skewb":return Ce("randomSkewbFixedCornerScramble",mc);case"pyram":return Ce("randomPyraminxScrambleFixedOrientation",fc);case"sq1":return Ce("getRandomSquare1Scramble",Uc);case"fto":return Ce("randomFTOScramble",Og);case"master_tetraminx":return Ce("randomMasterTetraminxScramble",tc);default:throw new Error(\`unsupported event: \${e}\`)}},randomScrambleStringForEvent:async e=>(await U0.randomScrambleForEvent(e)).toString(),solve333ToString:async e=>{let t=new pe(await ve["3x3x3"].kpuzzle(),e);return(await Rs(t)).toString()},solve222ToString:async e=>{let t=new pe(await ve["2x2x2"].kpuzzle(),e);return(await Va(t)).toString()},solveSkewbToString:async e=>{let t=new pe(await ve.skewb.kpuzzle(),e);return(await R0(t)).toString()},solvePyraminxToString:async e=>{let t=new pe(await ve.pyraminx.kpuzzle(),e);return(await p0(t)).toString()},solveMegaminxToString:async e=>{let t=new pe(await ve.megaminx.kpuzzle(),e);return(await lc(t)).toString()},setDebugMeasurePerf:async e=>{Kd(e)}};P0(U0);
3517
+ Alg R' U' R U B' U' B L\`)}var Bd,Rd,B2=U(()=>{He();En();kn();Bd=null;Rd=null});var Sc={};ye(Sc,{getRandomSquare1ScrambleString:()=>jd});function yd(e,t){e.ul=t.ul,e.ur=t.ur,e.dl=t.dl,e.dr=t.dr,e.ml=t.ml}function dc(e,t){var r;t<<=2,t>24?(t=48-t,r=e.ul,e.ul=(~~e.ul>>t|e.ur<<24-t)&16777215,e.ur=(~~e.ur>>t|r<<24-t)&16777215):t>0?(r=e.ul,e.ul=(e.ul<<t|~~e.ur>>24-t)&16777215,e.ur=(e.ur<<t|~~r>>24-t)&16777215):t==0?(r=e.ur,e.ur=e.dl,e.dl=r,e.ml=1-e.ml):t>=-24?(t=-t,r=e.dl,e.dl=(e.dl<<t|~~e.dr>>24-t)&16777215,e.dr=(e.dr<<t|~~r>>24-t)&16777215):t<-24&&(t=48+t,r=e.dl,e.dl=(~~e.dl>>t|e.dr<<24-t)&16777215,e.dr=(~~e.dr>>t|r<<24-t)&16777215)}function Ud(e){var t,r,n,o,l;for(n=0,e.arr[0]=Wt(e,0),o=1;o<24;++o)Wt(e,o)!=e.arr[n]&&(e.arr[++n]=Wt(e,o));for(l=0,t=0;t<16;++t)for(r=t+1;r<16;++r)e.arr[t]>e.arr[r]&&(l^=1);return l}function bd(e){var t,r,n,o;return o=e.ur&1118481,o|=~~o>>3,o|=~~o>>6,o=o&15|~~o>>12&48,n=e.ul&1118481,n|=~~n>>3,n|=~~n>>6,n=n&15|~~n>>12&48,r=e.dr&1118481,r|=~~r>>3,r|=~~r>>6,r=r&15|~~r>>12&48,t=e.dl&1118481,t|=~~t>>3,t|=~~t>>6,t=t&15|~~t>>12&48,il(Ud(e)<<24|n<<18|o<<12|t<<6|r)}function Sd(e,t){var r,n;for(r=0;r<8;++r)e.prm[r]=~~(~~Wt(e,r*3+1)>>1<<24)>>24;for(t.cornperm=ul(e.prm),t.topEdgeFirst=Wt(e,0)==Wt(e,1),r=t.topEdgeFirst?2:0,n=0;n<4;r+=3,++n)e.prm[n]=~~(~~Wt(e,r)>>1<<24)>>24;for(t.botEdgeFirst=Wt(e,12)==Wt(e,13),r=t.botEdgeFirst?14:12;n<8;r+=3,++n)e.prm[n]=~~(~~Wt(e,r)>>1<<24)>>24;t.edgeperm=ul(e.prm),t.ml=e.ml}function Wt(e,t){var r;return t<6?r=~~e.ul>>(5-t<<2):t<12?r=~~e.ur>>(11-t<<2):t<18?r=~~e.dl>>(17-t<<2):r=~~e.dr>>(23-t<<2),~~((r&15)<<24)>>24}function d2(e,t,r){t<6?(e.ul&=~(15<<(5-t<<2)),e.ul|=r<<(5-t<<2)):t<12?(e.ur&=~(15<<(11-t<<2)),e.ur|=r<<(11-t<<2)):t<18?(e.dl&=~(15<<(17-t<<2)),e.dl|=r<<(17-t<<2)):(e.dr&=~(15<<(23-t<<2)),e.dr|=r<<(23-t<<2))}function D2(){this.arr=[],this.prm=[]}async function xd(){let e=await je();var t,r,n,o,l,i,s,f,a;for(t=new D2,n=go[e(3678)],l=19088743<<1|286331153,o=19088743<<1,s=i=8,r=0;r<24;r++)(n>>r&1)==0?(f=e(i)<<2,d2(t,23-r,o>>f&15),a=(1<<f)-1,o=(o&a)+(o>>4&~a),--i):(f=e(s)<<2,d2(t,23-r,l>>f&15),d2(t,22-r,l>>f&15),a=(1<<f)-1,l=(l&a)+(l>>4&~a),--s,++r);return t.ml=e(2),t}function wd(){}function vd(e){var t,r,n,o,l,i;for(yd(e.Search_d,e.Search_c),n=0;n<e.Search_length1;++n)dc(e.Search_d,e.Search_move[n]);for(Sd(e.Search_d,e.Search_sq),r=e.Search_sq.edgeperm,t=e.Search_sq.cornperm,l=e.Search_sq.ml,i=Math.max(he[e.Search_sq.edgeperm<<1|l],he[e.Search_sq.cornperm<<1|l]),n=i;n<e.Search_maxlen2;++n)if(es(e,r,t,e.Search_sq.topEdgeFirst,e.Search_sq.botEdgeFirst,l,n,e.Search_length1,0)){for(o=0;o<n;++o)dc(e.Search_d,e.Search_move[e.Search_length1+o]);return e.Search_sol_string=Ed(e,n+e.Search_length1),!0}return!1}function Ed(e,t){for(var r="",n=0,o=0,l=t-1;l>=0;l--){var i=e.Search_move[l];i>0?(i=12-i,n=i>6?i-12:i):i<0?(i=12+i,o=i>6?i-12:i):(n==0&&o==0?r+=" / ":r+="("+n+", "+o+") / ",n=o=0)}return(n!==0||o!==0)&&(r+="("+n+", "+o+")"),r}function $i(e,t,r,n,o,l){var i,s,f;if(r==0&&n<4)return n==0&&vd(e);if(l!=0&&(f=ts[t],s=Pe[f],s<n&&(e.Search_move[o]=0,$i(e,f,s,n-1,o+1,0))))return!0;if(f=t,l<=0){for(i=0;i+=al[f],f=~~i>>4,i&=15,!(i>=12||(s=Pe[f],s>n));)if(s<n&&(e.Search_move[o]=i,$i(e,f,s,n-1,o+1,1)))return!0}if(f=t,l<=1){for(i=0;i+=sl[f],f=~~i>>4,i&=15,!(i>=6||(s=Pe[f],s>n));)if(s<n&&(e.Search_move[o]=-i,$i(e,f,s,n-1,o+1,2)))return!0}return!1}function es(e,t,r,n,o,l,i,s,f){var a,g,c,u,p,m,L;if(i==0&&!n&&o||f!=0&&n==o&&(c=gl[t],g=gl[r],he[c<<1|1-l]<i&&he[g<<1|1-l]<i&&(e.Search_move[s]=0,es(e,c,g,n,o,1-l,i-1,s+1,0))))return!0;if(f<=0)for(L=!n,c=L?un[t]:t,g=L?r:un[r],u=L?1:2,p=he[c<<1|l],m=he[g<<1|l];u<12&&p<=i&&p<=i;){if(p<i&&m<i&&(e.Search_move[s]=u,es(e,c,g,L,o,l,i-1,s+1,1)))return!0;L=!L,L?(c=un[c],p=he[c<<1|l],u+=1):(g=un[g],m=he[g<<1|l],u+=2)}if(f<=1)for(a=!o,c=a?an[t]:t,g=a?r:an[r],u=a?1:2,p=he[c<<1|l],m=he[g<<1|l];u<(i>3?6:12)&&p<=i&&p<=i;){if(p<i&&m<i&&(e.Search_move[s]=-u,es(e,c,g,n,a,l,i-1,s+1,2)))return!0;a=!a,a?(c=an[c],p=he[c<<1|l],u+=1):(g=an[g],m=he[g<<1|l],u+=2)}return!1}function kd(e,t){var r;for(e.Search_c=t,r=bd(t),e.Search_length1=Pe[r];e.Search_length1<100&&(e.Search_maxlen2=Math.min(31-e.Search_length1,17),!$i(e,r,Pe[r],e.Search_length1,0,-1));++e.Search_length1);return e.Search_sol_string}function Dc(){this.Search_move=[],this.Search_d=new D2,this.Search_sq=new yc}function zd(){}function _d(){Fc||(Fc=!0,fl=[0,3,6,12,15,24,27,30,48,51,54,60,63],go=[],Pe=[],al=[],sl=[],ts=[],Md())}function Cd(e){var t,r;t=0,r=0;do(e.bottom&2048)==0?(t+=1,e.bottom=e.bottom<<1):(t+=2,e.bottom=e.bottom<<2^12291),r=1-r;while((gn(e.bottom&63)&1)!=0);return(gn(e.bottom)&2)==0&&(e.Shape_parity^=r),t}function F2(e){var t;return t=bc(go,e.top<<12|e.bottom)<<1|e.Shape_parity,t}function h2(e,t){e.Shape_parity=t&1,e.top=go[~~t>>1],e.bottom=e.top&4095,e.top>>=12}function Pd(e){var t,r;t=0,r=0;do(e.top&2048)==0?(t+=1,e.top=e.top<<1):(t+=2,e.top=e.top<<2^12291),r=1-r;while((gn(e.top&63)&1)!=0);return(gn(e.top)&2)==0&&(e.Shape_parity^=r),t}function hc(){}function il(e){var t;return t=bc(go,e&16777215)<<1|~~e>>24,t}function Md(){var e,t,r,n,o,l,i,s,f,a,g,c,u,p,m,L;for(e=0,i=0;i<28561;++i)l=fl[i%13],r=fl[~~(i/13)%13],c=fl[~~(~~(i/13)/13)%13],g=fl[~~(~~(~~(i/13)/13)/13)],u=g<<18|c<<12|r<<6|l,gn(u)==16&&(go[e++]=u);for(a=new hc,i=0;i<7356;++i)h2(a,i),al[i]=Pd(a),al[i]|=F2(a)<<4,h2(a,i),sl[i]=Cd(a),sl[i]|=F2(a)<<4,h2(a,i),L=a.top&63,p=gn(L),m=gn(a.bottom&4032),a.Shape_parity^=1&~~(p&m)>>1,a.top=a.top&4032|~~a.bottom>>6&63,a.bottom=a.bottom&63|L<<6,ts[i]=F2(a);for(i=0;i<7536;++i)Pe[i]=-1;for(Pe[il(14378715)]=0,Pe[il(31157686)]=0,Pe[il(23967451)]=0,Pe[il(7191990)]=0,n=4,o=0,t=-1;n!=o;)for(o=n,++t,i=0;i<7536;++i)if(Pe[i]==t){f=0,s=i;do s=al[s],f+=s&15,s>>=4,Pe[s]==-1&&(++n,Pe[s]=t+1);while(f!=12);f=0,s=i;do s=sl[s],f+=s&15,s>>=4,Pe[s]==-1&&(++n,Pe[s]=t+1);while(f!=12);s=ts[i],Pe[s]==-1&&(++n,Pe[s]=t+1)}}function Nd(){}function Td(){if(!Ac){Ac=!0,he=[],gl=[],un=[],an=[],Uc=[1,1,2,6,24,120,720,5040],fn=[];for(var e=0;e<12;++e)fn[e]=[];Gd()}}function yc(){}function ul(e){var t,r,n,o;for(r=0,o=1985229328,t=0;t<7;++t)n=e[t]<<2,r=(8-t)*r+(~~o>>n&7),o-=286331152<<n;return r&65535}function Gd(){var e,t,r,n,o,l,i,s,f,a,g,c,u;for(o=0;o<12;++o)for(fn[o][0]=1,fn[o][o]=1,f=1;f<o;++f)fn[o][f]=fn[o-1][f-1]+fn[o-1][f];for(c=[],o=0;o<40320;++o)A2(c,o),u=c[2],c[2]=c[4],c[4]=u,u=c[3],c[3]=c[5],c[5]=u,gl[o]=ul(c),A2(c,o),u=c[0],c[0]=c[1],c[1]=c[2],c[2]=c[3],c[3]=u,un[o]=ul(c),A2(c,o),u=c[4],c[4]=c[5],c[5]=c[6],c[6]=c[7],c[7]=u,an[o]=ul(c);for(o=0;o<80640;++o)he[o]=-1;for(he[0]=0,t=0,r=1;r<80640;){s=t>=11,n=s?-1:t,e=s?t:-1,++t;e:for(o=0;o<80640;++o)if(he[o]==n){if(l=~~o>>1,g=o&1,i=gl[l]<<1|1-g,he[i]==e&&(++r,he[s?o:i]=~~(t<<24)>>24,s))continue e;for(i=l,a=0;a<4;++a)if(i=un[i],he[i<<1|g]==e&&(++r,he[s?o:i<<1|g]=~~(t<<24)>>24,s))continue e;for(a=0;a<4;++a)if(i=an[i],he[i<<1|g]==e&&(++r,he[s?o:i<<1|g]=~~(t<<24)>>24,s))continue e}}}function A2(e,t){var r,n,o,l,i;for(i=1985229328,r=0;r<7;++r)o=Uc[7-r],l=~~(t/o),t-=l*o,l<<=2,e[r]=~~((~~i>>l&7)<<24)>>24,n=(1<<l)-1,i=(i&n)+(~~i>>4&~n);e[7]=~~(i<<24)>>24}function Od(){}function gn(e){return e-=~~e>>1&1431655765,e=(~~e>>2&858993459)+(e&858993459),e=(~~e>>4)+e&252645135,e+=~~e>>8,e+=~~e>>16,e&63}function bc(e,t){var r,n,o,l;for(n=0,r=e.length-1;n<=r;)if(o=n+(~~(r-n)>>1),l=e[o],l<t)n=o+1;else if(l>t)r=o-1;else return o;return-n-1}async function jd(){return(await Qd()).scramble_string}var we,Fc,sl,go,Pe,al,ts,fl,Ac,an,fn,he,un,gl,Uc,y2,Id,Wd,Kd,Qd,xc=U(()=>{Nt();we=D2.prototype=wd.prototype;we.dl=10062778;we.dr=14536702;we.ml=0;we.ul=70195;we.ur=4544119;we=Dc.prototype=zd.prototype;we.Search_c=null;we.Search_length1=0;we.Search_maxlen2=0;we.Search_sol_string=null;Fc=!1;we=hc.prototype=Nd.prototype;we.bottom=0;we.Shape_parity=0;we.top=0;Ac=!1;we=yc.prototype=Od.prototype;we.botEdgeFirst=!1;we.cornperm=0;we.edgeperm=0;we.ml=0;we.topEdgeFirst=!1;y2=!1,Id=function(e,t,r){y2||(_d(),Td()),r&&r("Done initializing Square-1."),y2=!0,e!=null&&e()},Wd=async function(){return y2||Id(),xd()},Kd=function(e){var t=new Dc;return kd(t,e)},Qd=async function(){var e=await Wd(),t=Kd(e);return{state:e,scramble_string:t}}});var x2=Symbol("Comlink.proxy"),Pc=Symbol("Comlink.endpoint"),Mc=Symbol("Comlink.releaseProxy"),os=Symbol("Comlink.thrown"),w2=e=>typeof e=="object"&&e!==null||typeof e=="function",Nc={canHandle:e=>w2(e)&&e[x2],serialize(e){let{port1:t,port2:r}=new MessageChannel;return co(e,t),[r,[r]]},deserialize(e){return e.start(),Oc(e)}},Tc={canHandle:e=>w2(e)&&os in e,serialize({value:e}){let t;return e instanceof Error?t={isError:!0,value:{message:e.message,name:e.name,stack:e.stack}}:t={isError:!1,value:e},[t,[]]},deserialize(e){throw e.isError?Object.assign(new Error(e.value.message),e.value):e.value}},v2=new Map([["proxy",Nc],["throw",Tc]]);function co(e,t=self){t.addEventListener("message",function r(n){if(!n||!n.data)return;let{id:o,type:l,path:i}=Object.assign({path:[]},n.data),s=(n.data.argumentList||[]).map(zr),f;try{let a=i.slice(0,-1).reduce((c,u)=>c[u],e),g=i.reduce((c,u)=>c[u],e);switch(l){case"GET":f=g;break;case"SET":a[i.slice(-1)[0]]=zr(n.data.value),f=!0;break;case"APPLY":f=g.apply(a,s);break;case"CONSTRUCT":{let c=new g(...s);f=Kc(c)}break;case"ENDPOINT":{let{port1:c,port2:u}=new MessageChannel;co(e,u),f=Wc(c,[c])}break;case"RELEASE":f=void 0;break;default:return}}catch(a){f={value:a,[os]:0}}Promise.resolve(f).catch(a=>({value:a,[os]:0})).then(a=>{let[g,c]=is(a);t.postMessage(Object.assign(Object.assign({},g),{id:o}),c),l==="RELEASE"&&(t.removeEventListener("message",r),E2(t))})}),t.start&&t.start()}function Gc(e){return e.constructor.name==="MessagePort"}function E2(e){Gc(e)&&e.close()}function Oc(e,t){return ls(e,[],t)}function cl(e){if(e)throw new Error("Proxy has been released and is not useable")}function ls(e,t=[],r=function(){}){let n=!1,o=new Proxy(r,{get(l,i){if(cl(n),i===Mc)return()=>cn(e,{type:"RELEASE",path:t.map(s=>s.toString())}).then(()=>{E2(e),n=!0});if(i==="then"){if(t.length===0)return{then:()=>o};let s=cn(e,{type:"GET",path:t.map(f=>f.toString())}).then(zr);return s.then.bind(s)}return ls(e,[...t,i])},set(l,i,s){cl(n);let[f,a]=is(s);return cn(e,{type:"SET",path:[...t,i].map(g=>g.toString()),value:f},a).then(zr)},apply(l,i,s){cl(n);let f=t[t.length-1];if(f===Pc)return cn(e,{type:"ENDPOINT"}).then(zr);if(f==="bind")return ls(e,t.slice(0,-1));let[a,g]=k2(s);return cn(e,{type:"APPLY",path:t.map(c=>c.toString()),argumentList:a},g).then(zr)},construct(l,i){cl(n);let[s,f]=k2(i);return cn(e,{type:"CONSTRUCT",path:t.map(a=>a.toString()),argumentList:s},f).then(zr)}});return o}function Ic(e){return Array.prototype.concat.apply([],e)}function k2(e){let t=e.map(is);return[t.map(r=>r[0]),Ic(t.map(r=>r[1]))]}var z2=new WeakMap;function Wc(e,t){return z2.set(e,t),e}function Kc(e){return Object.assign(e,{[x2]:!0})}function is(e){for(let[t,r]of v2)if(r.canHandle(e)){let[n,o]=r.serialize(e);return[{type:"HANDLER",name:t,value:n},o]}return[{type:"RAW",value:e},z2.get(e)||[]]}function zr(e){switch(e.type){case"HANDLER":return v2.get(e.name).deserialize(e.value);case"RAW":return e.value}}function cn(e,t,r){return new Promise(n=>{let o=Qc();e.addEventListener("message",function l(i){!i.data||!i.data.id||i.data.id!==o||(e.removeEventListener("message",l),n(i.data))}),e.start&&e.start(),e.postMessage(Object.assign({id:o},t),r)})}function Qc(){return new Array(4).fill(0).map(()=>Math.floor(Math.random()*Number.MAX_SAFE_INTEGER).toString(16)).join("-")}function jc(e){let t=new WeakMap;return{postMessage:e.postMessage.bind(e),addEventListener:(r,n)=>{let o=l=>{"handleEvent"in n?n.handleEvent({data:l}):n({data:l})};e.on("message",o),t.set(n,o)},removeEventListener:(r,n)=>{let o=t.get(n);!o||(e.off("message",o),t.delete(n))},nodeWorker:e}}var _2=jc;var qc=typeof globalThis.Worker=="undefined"&&typeof globalThis.WorkerNavigator=="undefined",Vc="w-orker-_threa-ds",Hc=()=>Vc.replace(/-/g,"");async function Yc(){let{parentPort:e}=await import(Hc()).catch();return _2(e)}function C2(e){qc?(async()=>{co(e,await Yc())})():co(e)}He();Ht();Mt();He();Ht();Nt();Mt();Re();Re();var js=class extends Dn{constructor(t){super();this.metric=t}traverseAlg(t){let r=0;for(let n of t.units())r+=this.traverseUnit(n);return r}traverseGrouping(t){let r=t.alg;return this.traverseAlg(r)*Math.abs(t.amount)}traverseMove(t){return this.metric(t)}traverseCommutator(t){return 2*(this.traverseAlg(t.A)+this.traverseAlg(t.B))}traverseConjugate(t){return 2*this.traverseAlg(t.A)+this.traverseAlg(t.B)}traversePause(t){return 0}traverseNewline(t){return 0}traverseLineComment(t){return 0}};function jf(e){return"A"<=e&&e<="Z"}function $p(e){let t=e.family;return jf(t[0])&&t[t.length-1]==="v"||t==="x"||t==="y"||t==="z"||t==="T"?0:1}function em(e){let t=e.family;return jf(t[0])&&t[t.length-1]==="v"||t==="x"||t==="y"||t==="z"||t==="T"?0:Math.abs(e.amount)}var qf=new js($p),qs=qf.traverseAlg.bind(qf),Vf=new js(em),tm=Vf.traverseAlg.bind(Vf);Re();var Hf=class extends Dn{traverseAlg(t){let r=0;for(let n of t.units())r+=this.traverseUnit(n);return r}traverseGrouping(t){return this.traverseAlg(t.alg)*Math.abs(t.amount)}traverseMove(t){return 1}traverseCommutator(t){return 2*(this.traverseAlg(t.A)+this.traverseAlg(t.B))}traverseConjugate(t){return 2*this.traverseAlg(t.A)+this.traverseAlg(t.B)}traversePause(t){return 1}traverseNewline(t){return 0}traverseLineComment(t){return 0}},Yf=new Hf,rm=Yf.traverseAlg.bind(Yf);Nt();var nm=2,om=!0,lm=!1;function im(e,t){let r=[];return t.forEach(function(n){let o=new B(n);if(o.amount!==1)throw new Error("SGS cannot handle def moves with an amount other than 1 yet.");let l=e.identityTransformation();for(let i=1;l=l.applyMove(o),!l.isIdentityTransformation();i++)r.push({move:o.modified({amount:i}),transformation:l})}),r}var Tt=class{constructor(t,r,n){this.kpuzzle=t;this.sgs=r;this.searchMoves=im(this.kpuzzle,n??Object.keys(this.kpuzzle.definition.moves))}async solve(t,r=nm,n){let o=t.experimentalToTransformation();if(!o)throw new Error("distinguishable pieces are not supported in tremble solver yt");let l=null,i=1e6,s=(f,a,g)=>{if(a===0){let c=this.sgsPhaseSolve(f,i);if(!c)return;let u=g.concat(c).simplify({collapseMoves:!0,quantumMoveOrder:n}),p=qs(u);(l===null||p<i)&&(lm&&(console.log(\`New best (\${p} moves): \${u.toString()}\`),console.log(\`Tremble moves are: \${g.toString()}\`)),l=u,i=p);return}for(let c of this.searchMoves)s(f.applyTransformation(c.transformation),a-1,g.concat([c.move]))};for(let f=0;f<=r;f++)s(o,f,new z);if(l===null)throw new Error("SGS search failed.");return l}sgsPhaseSolve(t,r){let n=new pt,o=t;for(let l of this.sgs.ordering){let i=l.pieceOrdering,s="",f=o.invert();for(let g=0;g<i.length;g++){let c=i[g],u=c.orbitName,p=c.permutationIdx;s+=\` \${f.transformationData[u].permutation[p]} \${f.transformationData[u].orientation[p]}\`}let a=l.lookup[s];if(!a)throw new Error("Missing algorithm in sgs or esgs?");if(n.experimentalPushAlg(a.alg),n.experimentalNumUnits()>=r)return null;if(o=o.applyTransformation(a.transformation),om)for(let g=0;g<i.length;g++){let c=i[g],u=c.orbitName,p=c.permutationIdx;if(o.transformationData[u].permutation[p]!==p||o.transformationData[u].orientation[p]!==0)throw new Error("bad SGS :-(")}}return n.toAlg()}};async function Hl(e,t){let r=await Yt(),n=e.identityTransformation();for(let o of t.ordering){let l=r(Object.values(o.lookup));n=n.applyTransformation(l.transformation)}return n.toKState()}var fm=3,$f=null;async function eu(){return $f||($f=(async()=>{let e=await(await Promise.resolve().then(()=>(Xf(),Jf))).cachedData222();return new Tt(await ke["2x2x2"].kpuzzle(),e,"URFLBD".split(""))})())}async function tu(){await eu()}async function Vs(e){return Qe(),await(await eu()).solve(e,fm,()=>4)}async function um(e,t,r,n){let o=await je();await Qf(r.stateData[t].pieces);let l=e.definition.orbits[t],i=r.stateData[t].orientation,s=0;for(let f=0;f<l.numPieces;f++){let a=o(l.numOrientations);i[f]=a,s+=a}n&&"orientationSum"in n&&(i[0]=((i[0]+n.orientationSum-s)%l.numOrientations+l.numOrientations)%l.numOrientations)}async function gm(){let e=await ke["2x2x2"].kpuzzle(),t=new me(e,JSON.parse(JSON.stringify(e.startState().stateData)));return await um(e,"CORNERS",t,{orientationSum:0}),t}async function ru(){return await Vs(await gm())}da();Yl();var SB=[[null,"x","x2","x'","z","z'"],[null,"y","y2","y'"]],xB=null;function ig(){return xB??(xB=Promise.resolve().then(()=>(lg(),og)))}async function sg(){return(await ig()).initialize()}async function Qa(){return(await ig()).random444Scramble()}async function ag(){return zn(await Qa(),SB)}Yl();Re();Nt();function wB(e){switch(e){case 5:return 60;case 6:return 80;default:return 100}}var vB=[["U","D"],["L","R"],["F","B"]],fg=new Map;function EB(e){let t=fg.get(e);if(t)return t;let r=[];for(let n of vB){let o=[];r.push(o);for(let l of n){o.push(new P(l)),e>3&&o.push(new P(\`\${l}w\`));for(let i=3;i<=e/2;i++)o.push(new P(\`\${l}w\`,i))}}return fg.set(e,r),r}async function rr(e){let t=await je(),r=await Yt(),n=r,o=EB(e),l=wB(e),i=new pt,s=0,f=new Set;for(;i.experimentalNumUnits()<l;){let a=t(3);a!==s&&f.clear(),s=a;let g=r(o[s]),c=g.toString();f.has(c)||(f.add(c),i.push(new B(g,n([1,2,-1]))))}return i.toAlg()}var kB=[[null,"3Rw","3Rw2","3Rw'","3Fw","3Fw'"],[null,"3Dw","3Dw2","3Dw'"]];async function ug(){return zn(await rr(5),kB)}Re();Ht();Mt();async function jg(){Qe();let{randomFTOScrambleString:e}=await Promise.resolve().then(()=>(Qg(),Kg));return new z(await e())}Re();Mt();async function lc(){let{randomMasterTetraminxScrambleString:e}=await Promise.resolve().then(()=>(oc(),nc));return Qe(),new z(await e())}He();Mt();g2();var ad=2,ac=null;async function fd(){return ac||(ac=(async()=>{let t=await(await Promise.resolve().then(()=>(g2(),sc))).cachedSGSDataMegaminx();return new Tt(await ll(),t,["U","R","F","L","BR","BL","FR","FL","DR","DL","B","D"])})())}async function fc(e){Qe();let t=await fd(),r=JSON.parse(JSON.stringify(e.stateData));r.CENTERS.orientation=new Array(12).fill(0);let n=new me(await ll(),r);return await t.solve(n,ad,()=>5)}Ht();Mt();p2();var cd=3,cc=null;async function pd(){return cc||(cc=(async()=>{let t=await(await Promise.resolve().then(()=>(p2(),gc))).sgsDataPyraminx();return new Tt(await ke.pyraminx.kpuzzle(),t,"RLUB".split(""))})())}async function m2(e){return Qe(),await(await pd()).solve(e,cd,()=>3)}async function md(){return Qe(),Hl(await ke.pyraminx.kpuzzle(),await c2())}async function pc(){return m2(await md())}He();Mt();B2();var Dd=3,Bc=null;async function Fd(){return Bc||(Bc=(async()=>{let e=await Promise.resolve().then(()=>(B2(),Lc)),t=await e.sgsDataSkewb();return new Tt(await e.skewbKPuzzleWithoutMOCached(),t,"RLUB".split(""))})())}function hd(e){return new me(e.kpuzzle,{CORNERS:e.stateData.CORNERS,CENTERS:{pieces:e.stateData.CENTERS.pieces,orientation:new Array(6).fill(0)}})}async function R2(e){return Qe(),await(await Fd()).solve(hd(e),Dd,n=>n.family==="y"?4:3)}async function Ad(){return Hl(await Xi(),await L2())}async function Rc(){return R2(await Ad())}Re();var qd=null;function Vd(){return qd??(qd=Promise.resolve().then(()=>(xc(),Sc)))}async function wc(){return z.fromString(await(await Vd()).getRandomSquare1ScrambleString())}Gf(!0);var vc=!0;function Hd(e){vc=e}function Ec(){return(typeof performance=="undefined"?Date:performance).now()}async function Me(e,t){if(!vc)return t();let r=Ec(),n=t();n?.then&&await n;let o=Ec();return console.warn(\`\${e}: \${Math.round(o-r)}ms\`),n}var U2={initialize:async e=>{switch(e){case"222":return Me("preInitialize222",tu);case"333":case"333oh":case"333ft":return Me("initialize333",qu);case"444":return Me("initialize444",sg);default:throw new Error(\`unsupported event: \${e}\`)}},randomScrambleForEvent:async e=>{switch(e){case"222":return Me("random222Scramble",ru);case"333":case"333oh":case"333ft":return Me("random333Scramble",Qn);case"333fm":return Me("random333FewestMovesScramble",Yu);case"333bf":case"333mb":return Me("random333OrientedScramble",Vu);case"444":return Me("random444Scramble",Qa);case"444bf":return Me("random444OrientedScramble",ag);case"555":return Me("bigCubeScramble(5)",rr.bind(rr,5));case"555bf":return Me("oriented555RandomMoves",ug);case"666":return Me("bigCubeScramble(6)",rr.bind(rr,6));case"777":return Me("bigCubeScramble(7)",rr.bind(rr,7));case"skewb":return Me("randomSkewbFixedCornerScramble",Rc);case"pyram":return Me("randomPyraminxScrambleFixedOrientation",pc);case"sq1":return Me("getRandomSquare1Scramble",wc);case"fto":return Me("randomFTOScramble",jg);case"master_tetraminx":return Me("randomMasterTetraminxScramble",lc);default:throw new Error(\`unsupported event: \${e}\`)}},randomScrambleStringForEvent:async e=>(await U2.randomScrambleForEvent(e)).toString(),solve333ToString:async e=>{let t=new me(await ke["3x3x3"].kpuzzle(),e);return(await Ra(t)).toString()},solve222ToString:async e=>{let t=new me(await ke["2x2x2"].kpuzzle(),e);return(await Vs(t)).toString()},solveSkewbToString:async e=>{let t=new me(await ke.skewb.kpuzzle(),e);return(await R2(t)).toString()},solvePyraminxToString:async e=>{let t=new me(await ke.pyraminx.kpuzzle(),e);return(await m2(t)).toString()},solveMegaminxToString:async e=>{let t=new me(await ke.megaminx.kpuzzle(),e);return(await fc(t)).toString()},setDebugMeasurePerf:async e=>{Hd(e)}};C2(U2);
3443
3518
  `;
3444
3519
  export {
3445
3520
  workerSource
3446
3521
  };
3447
- //# sourceMappingURL=worker-inside-generated-string-OBSDMXAS.js.map
3522
+ //# sourceMappingURL=worker-inside-generated-string-CSXWVF2Y.js.map