cubing 0.32.0 → 0.32.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/esm/{chunk-QSTEXHX6.js → chunk-ILVYXTHD.js} +7 -8
- package/dist/esm/chunk-ILVYXTHD.js.map +7 -0
- package/dist/esm/{chunk-VCOWJQSD.js → chunk-OEHG3BF3.js} +6 -5
- package/dist/esm/chunk-OEHG3BF3.js.map +7 -0
- package/dist/esm/scramble/index.js +1 -2
- package/dist/esm/search/index.js +2 -3
- package/dist/esm/{search-dynamic-sgs-unofficial-5SZWN2CW.js → search-dynamic-sgs-unofficial-LORSO7LF.js} +2 -4
- package/dist/esm/search-dynamic-sgs-unofficial-LORSO7LF.js.map +7 -0
- package/dist/esm/{search-dynamic-solve-4x4x4-2P5MFI3L.js → search-dynamic-solve-4x4x4-BJLOSTR2.js} +3 -5
- package/dist/esm/search-dynamic-solve-4x4x4-BJLOSTR2.js.map +7 -0
- package/dist/esm/{search-dynamic-solve-fto-WS5S4S6Z.js → search-dynamic-solve-fto-L5CX2BTQ.js} +2 -5
- package/dist/esm/search-dynamic-solve-fto-L5CX2BTQ.js.map +7 -0
- package/dist/esm/{search-dynamic-solve-kilominx-FZGO4SCA.js → search-dynamic-solve-kilominx-FBEDWIPR.js} +2 -4
- package/dist/esm/search-dynamic-solve-kilominx-FBEDWIPR.js.map +7 -0
- package/dist/esm/{search-dynamic-solve-master_tetraminx-XM2AZB2D.js → search-dynamic-solve-master_tetraminx-4R5R7LC5.js} +2 -5
- package/dist/esm/search-dynamic-solve-master_tetraminx-4R5R7LC5.js.map +7 -0
- package/dist/esm/{search-dynamic-solve-sq1-BMSU2UG2.js → search-dynamic-solve-sq1-CBPKRTVA.js} +2 -5
- package/dist/esm/search-dynamic-solve-sq1-CBPKRTVA.js.map +7 -0
- package/dist/esm/{search-worker-inside-generated-string-EVS44GHX.js → search-worker-inside-generated-string-DV5JEWBV.js} +25 -25
- package/dist/esm/{search-worker-inside-generated-string-EVS44GHX.js.map → search-worker-inside-generated-string-DV5JEWBV.js.map} +1 -1
- package/dist/esm/{search-worker-js-entry-P6QKWWFE.js → search-worker-js-entry-M6ECI442.js} +17 -17
- package/dist/esm/search-worker-js-entry-M6ECI442.js.map +7 -0
- package/dist/esm/{search-worker-ts-entry-BBHCSUXE.js → search-worker-ts-entry-TZANLWZL.js} +2 -2
- package/dist/esm/{search-worker-ts-entry-BBHCSUXE.js.map → search-worker-ts-entry-TZANLWZL.js.map} +0 -0
- package/dist/esm/twisty/index.js +46 -4
- package/dist/esm/twisty/index.js.map +3 -3
- package/dist/types/{TwizzleLink-b28e5d4f.d.ts → TwizzleLink-14811bbe.d.ts} +1 -1
- package/dist/types/puzzles/index.d.ts +2 -2
- package/dist/types/twisty/index.d.ts +2 -2
- package/package.json +2 -1
- package/dist/esm/alg/index.d.ts +0 -1
- package/dist/esm/bluetooth/index.d.ts +0 -1
- package/dist/esm/chunk-MH4KS76F.js +0 -60
- package/dist/esm/chunk-MH4KS76F.js.map +0 -7
- package/dist/esm/chunk-QSTEXHX6.js.map +0 -7
- package/dist/esm/chunk-VCOWJQSD.js.map +0 -7
- package/dist/esm/kpuzzle/index.d.ts +0 -1
- package/dist/esm/notation/index.d.ts +0 -1
- package/dist/esm/protocol/index.d.ts +0 -1
- package/dist/esm/puzzle-geometry/index.d.ts +0 -1
- package/dist/esm/puzzles/index.d.ts +0 -1
- package/dist/esm/scramble/index.d.ts +0 -1
- package/dist/esm/search/index.d.ts +0 -1
- package/dist/esm/search-dynamic-sgs-unofficial-5SZWN2CW.js.map +0 -7
- package/dist/esm/search-dynamic-solve-4x4x4-2P5MFI3L.js.map +0 -7
- package/dist/esm/search-dynamic-solve-fto-WS5S4S6Z.js.map +0 -7
- package/dist/esm/search-dynamic-solve-kilominx-FZGO4SCA.js.map +0 -7
- package/dist/esm/search-dynamic-solve-master_tetraminx-XM2AZB2D.js.map +0 -7
- package/dist/esm/search-dynamic-solve-sq1-BMSU2UG2.js.map +0 -7
- package/dist/esm/search-worker-js-entry-P6QKWWFE.js.map +0 -7
- package/dist/esm/stream/index.d.ts +0 -1
- package/dist/esm/twisty/index.d.ts +0 -1
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
// src/cubing/search/search-worker-inside-generated-string.js
|
|
2
|
-
var workerSource = `"use strict";var
|
|
3
|
-
\`)||r.includes("\\r"))throw new Error("LineComment cannot contain newline");V(this,Sr,r)}get text(){return R(this,Sr)}isIdentical(r){let n=r;return r.is(Xs)&&R(this,Sr)===R(n,Sr)}invert(){return this}*experimentalExpand(r=1,n=1/0){yield this}toString(){return\`//\${R(this,Sr)}\`}},Ft=Xs;Sr=new WeakMap});var $e,ql=A(()=>{"use strict";
|
|
4
|
-
\`}isIdentical(t){return t.is($e)}invert(){return this}*experimentalExpand(t=1,r=1/0){yield this}}});var Ae,Wn=A(()=>{"use strict";
|
|
5
|
-
\`)){l.push(et(new $e,s,R(this,G))),o=!1,n=R(this,G);continue e}else if(this.tryConsumeNext("/"))if(this.tryConsumeNext("/")){i(s);let[a]=this.parseRegex(aL);l.push(et(new Ft(a),s,R(this,G))),o=!1,n=R(this,G);continue e}else{l.push(et(new B("_SLASH_"),s,R(this,G))),o=!0,n=R(this,G);continue e}else if(this.tryConsumeNext(".")){i(s),l.push(et(new Ae,s,R(this,G))),o=!0,n=R(this,G);continue e}else throw new Error(\`Unexpected character: \${this.popNext()}\`)}if(R(this,G)!==R(this,st).length)throw new Error("did not finish parsing?");if(t.length>0)throw new Error("expected stopping");return et(l.toAlg(),r,n)}parseQuantumMoveImpl(){let[,,,t,r,n]=this.parseRegex(sL);return new _(n,ei(r,void 0),ei(t,void 0))}parseMoveImpl(){let t=R(this,G);if(this.tryConsumeNext("/"))return et(new B("_SLASH_"),t,R(this,G));let r=this.parseQuantumMoveImpl(),[n,l]=this.parseAmountAndTrackEmptyAbsAmount(),o=this.parseMoveSuffix();if(o){if(n<0)throw new Error("uh-oh");if((o==="++"||o==="--")&&n!==1)throw new Error("Pochmann ++ or -- moves cannot have an amount other than 1.");if((o==="++"||o==="--")&&!l)throw new Error("Pochmann ++ or -- moves cannot have an amount written as a number.");if((o==="+"||o==="-")&&l)throw new Error("Clock dial moves must have an amount written as a natural number followed by + or -.");o.startsWith("+")&&(r=r.modified({family:\`\${r.family}_\${o==="+"?"PLUS":"PLUSPLUS"}_\`})),o.startsWith("-")&&(r=r.modified({family:\`\${r.family}_\${o==="-"?"PLUS":"PLUSPLUS"}_\`}),n*=-1)}return et(new B(r,n),t,R(this,G))}parseMoveSuffix(){return this.tryConsumeNext("+")?this.tryConsumeNext("+")?"++":"+":this.tryConsumeNext("-")?this.tryConsumeNext("-")?"--":"-":null}parseAmountAndTrackEmptyAbsAmount(){let t=R(this,G),[,r,n]=this.parseRegex(Y2);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[ei(r,1)*(n==="'"?-1:1),!r]}parseAmount(){let t=R(this,G),[,r,n]=this.parseRegex(Y2);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 ei(r,1)*(n==="'"?-1:1)}parseRegex(t){let r=t.exec(this.remaining());if(r===null)throw new Error("internal parsing error");return V(this,G,R(this,G)+r[0].length),r}tryRegex(t){let r=t.exec(this.remaining());return r===null?null:(V(this,G,R(this,G)+r[0].length),r)}remaining(){return R(this,st).slice(R(this,G))}popNext(){let t=R(this,st)[R(this,G)];return Ws(this,G)._++,t}tryConsumeNext(t){return R(this,st)[R(this,G)]===t?(Ws(this,G)._++,!0):!1}mustConsumeNext(t){let r=this.popNext();if(r!==t)throw new Error(\`expected \\\`\${t}\\\` while parsing, encountered \${r}\`);return r}};st=new WeakMap,G=new WeakMap,Kn=new WeakMap});function ti(e){rf.has(e)||(console.warn(e),rf.add(e))}var rf,Ys=A(()=>{"use strict";rf=new Set});var rn,$s=A(()=>{"use strict";Kt();qs();rn=class{constructor(t,r=1){if(this.quantum=t,this.amount=r,!Number.isInteger(this.amount)||this.amount<-2147483648||this.amount>2147483647)throw new Error(\`AlgNode amount absolute value must be a non-negative integer below \${Ql}.\`)}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),l=H2(t,this.amount<0);for(let o=0;o<n;o++)yield*this.quantum.experimentalExpand(l,r)}}});var ir,He,Xe,ni,_,Ge,Qn,B,jt=A(()=>{"use strict";or();Kt();qs();Zs();Ys();$s();ni=class extends Kl{constructor(r,n,l){super();Y(this,ir,void 0);Y(this,He,void 0);Y(this,Xe,void 0);if(V(this,ir,r),V(this,He,n??null),V(this,Xe,l??null),Object.freeze(this),R(this,He)!==null&&(!Number.isInteger(R(this,He))||R(this,He)<1||R(this,He)>2147483647))throw new Error(\`QuantumMove inner layer must be a positive integer below \${Ql}.\`);if(R(this,Xe)!==null&&(!Number.isInteger(R(this,Xe))||R(this,Xe)<1||R(this,Xe)>2147483647))throw new Error(\`QuantumMove outer layer must be a positive integer below \${Ql}.\`);if(R(this,Xe)!==null&&R(this,He)!==null&&R(this,He)<=R(this,Xe))throw new Error("QuantumMove outer layer must be smaller than inner layer.");if(R(this,Xe)!==null&&R(this,He)===null)throw new Error("QuantumMove with an outer layer must have an inner layer")}static fromString(r){return ef(r)}modified(r){return new ni(r.family??R(this,ir),r.innerLayer??R(this,He),r.outerLayer??R(this,Xe))}isIdentical(r){let n=r;return r.is(ni)&&R(this,ir)===R(n,ir)&&R(this,He)===R(n,He)&&R(this,Xe)===R(n,Xe)}get family(){return R(this,ir)}get outerLayer(){return R(this,Xe)}get innerLayer(){return R(this,He)}experimentalExpand(){throw new Error("experimentalExpand() cannot be called on a \`QuantumMove\` directly.")}toString(){let r=R(this,ir);return R(this,He)!==null&&(r=String(R(this,He))+r,R(this,Xe)!==null&&(r=\`\${String(R(this,Xe))}-\${r}\`)),r}},_=ni;ir=new WeakMap,He=new WeakMap,Xe=new WeakMap;Qn=class extends Te{constructor(...r){super();Y(this,Ge,void 0);if(typeof r[0]=="string")if(r[1]??null){V(this,Ge,new rn(_.fromString(r[0]),r[1]));return}else return Qn.fromString(r[0]);V(this,Ge,new rn(r[0],r[1]))}isIdentical(r){let n=r.as(Qn);return!!n&&R(this,Ge).isIdentical(R(n,Ge))}invert(){return tf(this,new Qn(R(this,Ge).quantum,-this.amount))}*experimentalExpand(r=1){r===1?yield this:yield this.modified({amount:-this.amount})}get quantum(){return R(this,Ge).quantum}modified(r){return new Qn(R(this,Ge).quantum.modified(r),r.amount??this.amount)}static fromString(r){return $2(r)}get amount(){return R(this,Ge).amount}get type(){return ti("deprecated: type"),"blockMove"}get family(){return R(this,Ge).quantum.family??void 0}get outerLayer(){return R(this,Ge).quantum.outerLayer??void 0}get innerLayer(){return R(this,Ge).quantum.innerLayer??void 0}toString(){if(this.family==="_SLASH_")return"/";if(this.family.endsWith("_PLUS_"))return R(this,Ge).quantum.toString().slice(0,-6)+Math.abs(this.amount)+(this.amount<0?"-":"+");if(this.family.endsWith("_PLUSPLUS_")){let r=Math.abs(this.amount);return R(this,Ge).quantum.toString().slice(0,-10)+(r===1?"":r)+(this.amount<0?"--":"++")}return R(this,Ge).quantum.toString()+R(this,Ge).suffix()}},B=Qn;Ge=new WeakMap});var ea,nf,at,li,Me,Hl=A(()=>{"use strict";Qt();or();Kt();jt();$s();ea=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 _("U_SQ_")),this.quantumD_SQ_||(this.quantumD_SQ_=new _("D_SQ_"));let r=t.alg;if(r.experimentalNumChildAlgNodes()===2){let[n,l]=r.childAlgNodes();if(n.as(B)?.quantum.isIdentical(this.quantumU_SQ_)&&l.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,l]}}return null}},nf=new ea,li=class extends Te{constructor(r,n){super();Y(this,at,void 0);let l=Ar(r);V(this,at,new rn(l,n))}isIdentical(r){let n=r;return r.is(li)&&R(this,at).isIdentical(R(n,at))}get alg(){return R(this,at).quantum}get amount(){return R(this,at).amount}get experimentalRepetitionSuffix(){return R(this,at).suffix()}invert(){return new li(R(this,at).quantum,-R(this,at).amount)}*experimentalExpand(r=1,n){n??(n=1/0),n===0?yield r===1?this:this.invert():yield*R(this,at).experimentalExpand(r,n-1)}static fromString(){throw new Error("unimplemented")}toString(){return nf.format(this)??\`(\${R(this,at).quantum.toString()})\${R(this,at).suffix()}\`}experimentalAsSquare1Tuple(){return nf.tuple(this)}},Me=li;at=new WeakMap});var jn=A(()=>{"use strict";Hl();jl();On();Gn();jt();ql();Wn()});function wt(e,t){return e instanceof t}function lf(e){return wt(e,Me)||wt(e,Ft)||wt(e,Ne)||wt(e,Pe)||wt(e,B)||wt(e,$e)||wt(e,Ae)}var ta=A(()=>{"use strict";jn()});function of(e,t,r){if(t.is(Me))return e.traverseGrouping(t,r);if(t.is(B))return e.traverseMove(t,r);if(t.is(Ne))return e.traverseCommutator(t,r);if(t.is(Pe))return e.traverseConjugate(t,r);if(t.is(Ae))return e.traversePause(t,r);if(t.is($e))return e.traverseNewline(t,r);if(t.is(Ft))return e.traverseLineComment(t,r);throw new Error("unknown AlgNode")}function sf(e){if(e.is(Me)||e.is(B)||e.is(Ne)||e.is(Pe)||e.is(Ae)||e.is($e)||e.is(Ft))return e;throw new Error("internal error: expected AlgNode")}function kt(e,t){let r=new e(...t??[]);return r.traverseAlg.bind(r)}var xr,nn,ra=A(()=>{"use strict";On();Gn();Hl();jl();jt();ql();Wn();xr=class{traverseAlgNode(t,r){return of(this,t,r)}traverseIntoAlgNode(t,r){return sf(this.traverseAlgNode(t,r))}},nn=class extends xr{traverseAlgNode(t){return of(this,t,void 0)}traverseIntoAlgNode(t){return sf(this.traverseAlgNode(t))}}});var cL,qn,na=A(()=>{"use strict";cL="any-direction",qn=class{constructor(t={}){this.config=t}cancelQuantum(){let{cancel:t}=this.config;return t===!0?cL:t===!1?"none":t?.directional??"none"}cancelAny(){return this.config.cancel&&this.cancelQuantum()!=="none"}cancelPuzzleSpecificModWrap(){let{cancel:t}=this.config;return t===!0||t===!1?"canonical-centered":t?.puzzleSpecificModWrap?t?.puzzleSpecificModWrap:t?.directional==="same-direction"?"preserve-sign":"canonical-centered"}puzzleSpecificSimplifyOptions(){return this.config.puzzleLoader?.puzzleSpecificSimplifyOptions??this.config.puzzleSpecificSimplifyOptions}}});function pL(e,t){return e*Math.sign(t.amount)>=0}function mL(e,t,r){return((e-r)%t+t)%t+r}function la(e,t,r){let n=new qn(r),l=Array.from(e.childAlgNodes()),o=[t];function i(){return new E([...l,...o])}function s(a){if(n.cancelPuzzleSpecificModWrap()==="none")return a;let f=n.puzzleSpecificSimplifyOptions()?.quantumMoveOrder;if(!f)return a;let g=f(t.quantum),u;switch(n.cancelPuzzleSpecificModWrap()){case"gravity":{u=-Math.floor((g-(a.amount<0?0:1))/2);break}case"canonical-centered":{u=-Math.floor((g-1)/2);break}case"canonical-positive":{u=0;break}case"preserve-sign":{u=a.amount<0?1-g:0;break}default:throw new Error("Unknown mod wrap")}let c=mL(a.amount,g,u);return a.modified({amount:c})}if(n.cancelAny()){let a,f=n.puzzleSpecificSimplifyOptions()?.axis;if(f)a=L=>f.areQuantumMovesSameAxis(t.quantum,L.quantum);else{let L=t.quantum.toString();a=m=>m.quantum.toString()===L}let g=n.cancelQuantum()==="same-direction",u=new Map;u.set(t.quantum.toString(),Math.sign(t.amount));let c;for(c=l.length-1;c>=0;c--){let L=l[c].as(B);if(!L||!a(L))break;let m=L.quantum.toString();if(g){let d=u.get(m);if(d&&!pL(d,L))break;u.set(m,Math.sign(L.amount))}}let p=[...l.splice(c+1),t];if(f)o=f.simplifySameAxisMoves(p,n.cancelPuzzleSpecificModWrap()!=="none");else{let L=p.reduce((m,d)=>m+d.amount,0);if(u.size!==1)throw new Error("Internal error: multiple quantums when one was expected");o=[new B(t.quantum,L)]}}return o=o.map(a=>s(a)).filter(a=>a.amount!==0),i()}function oa(e,t,r){let n=t.as(B);return n?la(e,n,r):new E([...e.childAlgNodes(),t])}var ia=A(()=>{"use strict";Qt();jt();na()});var oi,Jl,aa,ln,Xl,Zl,fa,sa,ua,af=A(()=>{"use strict";Qt();On();Gn();Hl();jt();Wn();ra();ia();na();sa=class extends xr{constructor(){super(...arguments);Y(this,Jl);Y(this,ln);Y(this,Zl);Y(this,oi,void 0)}*traverseAlg(r,n){if(n.depth===0){yield*r.childAlgNodes();return}let l=[],o=lr(this,ln,Xl).call(this,n);for(let i of r.childAlgNodes())for(let s of this.traverseAlgNode(i,o))l=Array.from(oa(new E(l),s,o).childAlgNodes());for(let i of l)yield i}*traverseGrouping(r,n){if(n.depth===0){yield r;return}if(r.amount===0)return;let l=new Me(this.traverseAlg(r.alg,lr(this,ln,Xl).call(this,n)),r.amount);if(l.alg.experimentalIsEmpty())return;let o=lr(this,Jl,aa).call(this).get(r);o&&(l.experimentalNISSPlaceholder=o,o.experimentalNISSGrouping=l),yield l}*traverseMove(r,n){yield r}*traverseCommutator(r,n){if(n.depth===0){yield r;return}let l=lr(this,ln,Xl).call(this,n),o=new Ne(this.traverseAlg(r.A,l),this.traverseAlg(r.B,l));o.A.experimentalIsEmpty()||o.B.experimentalIsEmpty()||o.A.isIdentical(o.B)||o.A.isIdentical(o.B.invert())||lr(this,Zl,fa).call(this,o.A,o.B,n)||(yield o)}*traverseConjugate(r,n){if(n.depth===0){yield r;return}let l=lr(this,ln,Xl).call(this,n),o=new Pe(this.traverseAlg(r.A,l),this.traverseAlg(r.B,l));if(!o.B.experimentalIsEmpty()){if(o.A.experimentalIsEmpty()||o.A.isIdentical(o.B)||o.A.isIdentical(o.B.invert())||lr(this,Zl,fa).call(this,o.A,o.B,n)){yield*r.B.childAlgNodes();return}yield o}}*traversePause(r,n){if(r.experimentalNISSGrouping){let l=new Ae;lr(this,Jl,aa).call(this).set(r.experimentalNISSGrouping,l),yield l}else yield r}*traverseNewline(r,n){yield r}*traverseLineComment(r,n){yield r}};oi=new WeakMap,Jl=new WeakSet,aa=function(){return R(this,oi)??V(this,oi,new Map)},ln=new WeakSet,Xl=function(r){return{...r,depth:r.depth?r.depth-1:null}},Zl=new WeakSet,fa=function(r,n,l){if(r.experimentalNumChildAlgNodes()===1&&n.experimentalNumChildAlgNodes()===1){let o=Array.from(r.childAlgNodes())[0]?.as(B),i=Array.from(n.childAlgNodes())[0]?.as(B);if(!(o&&i))return!1;if(i.quantum.isIdentical(o.quantum)||new qn(l).puzzleSpecificSimplifyOptions()?.axis?.areQuantumMovesSameAxis(o.quantum,i.quantum))return!0}return!1};ua=kt(sa)});var ga=A(()=>{"use strict";af();ia()});function ff(e){if(!e)return[];if(wt(e,E))return e.childAlgNodes();if(typeof e=="string")return Js(e).childAlgNodes();let t=e;if(typeof t[Symbol.iterator]=="function")return t;throw new Error("Invalid AlgNode")}function Ar(e){return wt(e,E)?e:new E(e)}function LL(e,t){return e.is($e)||t.is($e)||t.as(Me)?.experimentalNISSPlaceholder?"":e.is(Ft)&&!t.is($e)?\`
|
|
6
|
-
\`:" "}var ft,on,E,Qt=A(()=>{"use strict";or();ta();Kt();Zs();ga();jn();jl();jt();ql();Ys();on=class extends Te{constructor(r){super();Y(this,ft,void 0);V(this,ft,Array.from(ff(r)));for(let n of R(this,ft))if(!lf(n))throw new Error("An alg can only contain alg nodes.")}isIdentical(r){let n=r;if(!r.is(on))return!1;let l=Array.from(R(this,ft)),o=Array.from(R(n,ft));if(l.length!==o.length)return!1;for(let i=0;i<l.length;i++)if(!l[i].isIdentical(o[i]))return!1;return!0}invert(){return new on(J2(Array.from(R(this,ft)).map(r=>r.invert())))}*experimentalExpand(r=1,n){n??(n=1/0);for(let l of X2(R(this,ft),r))yield*l.experimentalExpand(r,n)}expand(r){return new on(this.experimentalExpand(1,r?.depth??1/0))}*experimentalLeafMoves(){for(let r of this.experimentalExpand())r.is(B)&&(yield r)}concat(r){return new on(Array.from(R(this,ft)).concat(Array.from(ff(r))))}experimentalIsEmpty(){for(let r of R(this,ft))return!1;return!0}static fromString(r){return Js(r)}units(){return this.childAlgNodes()}*childAlgNodes(){for(let r of R(this,ft))yield r}experimentalNumUnits(){return this.experimentalNumChildAlgNodes()}experimentalNumChildAlgNodes(){return Array.from(R(this,ft)).length}get type(){return ti("deprecated: type"),"sequence"}toString(){let r="",n=null;for(let l of R(this,ft)){n&&(r+=LL(n,l));let o=l.as(Ae)?.experimentalNISSGrouping;if(o){if(o.amount!==-1)throw new Error("Invalid NISS Grouping amount!");r+=\`^(\${o.alg.toString()})\`}else l.as(Me)?.experimentalNISSPlaceholder||(r+=l.toString());n=l}return r}experimentalSimplify(r){return new on(ua(this,r??{}))}simplify(r){return this.experimentalSimplify(r)}},E=on;ft=new WeakMap});var BL,uf=A(()=>{"use strict";Qt();jn();On();Gn();jt();Wn();BL={Sune:new E([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 E([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 E([new Ne(new E([new B("R",1),new B("U",1),new B("R",-2)]),new E([new Pe(new E([new B("R",1)]),new E([new B("U",1)]))]))]),Niklas:new E([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 E([new B("x",-1),new Ne(new E([new Pe(new E([new B("R",1)]),new E([new B("U",-1)]))]),new E([new B("D",1)])),new Ne(new E([new Pe(new E([new B("R",1)]),new E([new B("U",1)]))]),new E([new B("D",1)])),new B("x",1)]),FURURFCompact:new E([new Pe(new E([new B("F",1)]),new E([new Ne(new E([new B("U",1)]),new E([new B("R",1)]))]))]),APermCompact:new E([new Pe(new E([new B("R",2)]),new E([new Ne(new E([new B("F",2)]),new E([new B("R",-1),new B("B",-1),new B("R",1)]))]))]),FURURFMoves:new E([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 E([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 E([new Pe(new E([new B("F",1)]),new E([new Me(new E([new Ne(new E([new B("R",1)]),new E([new B("U",1)]))]),3)]))]),TriplePause:new E([new Ae,new Ae,new Ae])}});var pA,gf=A(()=>{"use strict";jn();jt();pA={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'"),192:new Ae}});var cf=A(()=>{"use strict"});var fe=A(()=>{"use strict";Qt();Vs();ra();uf();gf();jn();cf();ga();ta();Hs()});function $l(e,t,r){let n={};for(let l in e.orbits){let o=e.orbits[l],i=t[l],s=r[l];if(Yl(o.numOrientations,s))n[l]=i;else if(Yl(o.numOrientations,i))n[l]=s;else{let a=new Array(o.numPieces);if(o.numOrientations===1){for(let f=0;f<o.numPieces;f++)a[f]=i.permutation[s.permutation[f]];n[l]={permutation:a,orientation:i.orientation}}else{let f=new Array(o.numPieces);for(let g=0;g<o.numPieces;g++)f[g]=(i.orientation[s.permutation[g]]+s.orientation[g])%o.numOrientations,a[g]=i.permutation[s.permutation[g]];n[l]={permutation:a,orientation:f}}}}return n}function ca(e,t,r){let n={};for(let l in e.orbits){let o=e.orbits[l],i=t[l],s=r[l];if(Yl(o.numOrientations,s))n[l]=i;else{let a=new Array(o.numPieces);if(o.numOrientations===1){for(let f=0;f<o.numPieces;f++)a[f]=i.pieces[s.permutation[f]];n[l]={pieces:a,orientation:i.orientation}}else{let f=new Array(o.numPieces);for(let g=0;g<o.numPieces;g++)f[g]=(i.orientation[s.permutation[g]]+s.orientation[g])%o.numOrientations,a[g]=i.pieces[s.permutation[g]];n[l]={pieces:a,orientation:f}}}}return n}var ii=A(()=>{"use strict";eo()});function dL(e){let t=pf.get(e);if(t)return t;let r=new Array(e),n=new Array(e);for(let o=0;o<e;o++)r[o]=o,n[o]=0;let l={permutation:r,orientation:n};return mf&&(Object.freeze(r),Object.freeze(n),Object.freeze(l)),pf.set(e,l),l}function Lf(e){let t={};for(let[r,n]of Object.entries(e.orbits))t[r]=dL(n.numPieces);return mf&&Object.freeze(t),t}function Bf(e,t){let r=t.quantum.toString(),n=e.definition.moves[r];if(!n){let i=e.definition.experimentalDerivedMoves?.[r];i&&(n=e.algToTransformation(i).transformationData)}if(n)return vr(e,n,t.amount);let l=e.definition.moves[t.toString()];if(l)return l;let o=e.definition.moves[t.invert().toString()];if(o)return vr(e,o,-1);throw new Error(\`Invalid move for KPuzzle (\${e.name()}): \${t}\`)}var mf,pf,pa=A(()=>{"use strict";eo();mf=!1,pf=new Map});var me,si=A(()=>{"use strict";ii();to();me=class{constructor(t,r){this.kpuzzle=t;this.stateData=r}toJSON(){return{experimentalPuzzleName:this.kpuzzle.name(),stateData:this.stateData}}static fromTransformation(t){let r=ca(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=ca(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 l={permutation:n.pieces,orientation:n.orientation};t[r]=l}return new yt(this.kpuzzle,t)}experimentalIsSolved(t){if(!this.kpuzzle.definition.experimentalIsStateSolved)throw new Error("\`KState.experimentalIsSolved()\` is not supported for this puzzle at the moment.");return this.kpuzzle.definition.experimentalIsStateSolved(this,t)}}});var sn,Ur,yt,to=A(()=>{"use strict";eo();ii();pa();si();Ur=class{constructor(t,r){this.kpuzzle=t;this.transformationData=r;Y(this,sn,void 0)}toJSON(){return{experimentalPuzzleName:this.kpuzzle.name(),transformationData:this.transformationData}}invert(){return new Ur(this.kpuzzle,ma(this.kpuzzle,this.transformationData))}isIdentityTransformation(){return R(this,sn)??V(this,sn,this.isIdentical(this.kpuzzle.identityTransformation()))}static experimentalConstructIdentity(t){let r=new Ur(t,Lf(t.definition));return V(r,sn,!0),r}isIdentical(t){return df(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 R(this,sn)?new Ur(this.kpuzzle,t.transformationData):R(t,sn)?new Ur(this.kpuzzle,this.transformationData):new Ur(this.kpuzzle,$l(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 Rf(this.kpuzzle.definition,this)}selfMultiply(t){return new Ur(this.kpuzzle,vr(this.kpuzzle,this.transformationData,t))}},yt=Ur;sn=new WeakMap});function Yl(e,t){let{permutation:r}=t,n=r.length;for(let l=0;l<n;l++)if(r[l]!==l)return!1;if(e>1){let{orientation:l}=t;for(let o=0;o<n;o++)if(l[o]!==0)return!1}return!0}function RL(e,t,r,n={}){for(let l=0;l<e.numPieces;l++)if(!n?.ignoreOrientation&&t.orientation[l]!==r.orientation[l]||!n?.ignorePermutation&&t.permutation[l]!==r.permutation[l])return!1;return!0}function df(e,t,r){for(let[n,l]of Object.entries(e.definition.orbits))if(!RL(l,t[n],r[n]))return!1;return!0}function ma(e,t){let r={};for(let n in e.definition.orbits){let l=e.definition.orbits[n],o=t[n];if(Yl(l.numOrientations,o))r[n]=o;else if(l.numOrientations===1){let i=new Array(l.numPieces);for(let s=0;s<l.numPieces;s++)i[o.permutation[s]]=s;r[n]={permutation:i,orientation:o.orientation}}else{let i=new Array(l.numPieces),s=new Array(l.numPieces);for(let a=0;a<l.numPieces;a++){let f=o.permutation[a];i[f]=a,s[f]=(l.numOrientations-o.orientation[a]+l.numOrientations)%l.numOrientations}r[n]={permutation:i,orientation:s}}}return r}function vr(e,t,r){if(r===1)return t;if(r<0)return vr(e,ma(e,t),-r);if(r===0){let{transformationData:o}=e.identityTransformation();return o}let n=t;r!==2&&(n=vr(e,t,Math.floor(r/2)));let l=$l(e.definition,n,n);return r%2===0?l:$l(e.definition,t,l)}function Ba(e,t){return t?Ba(t,e%t):e}function Rf(e,t){let r=1;for(let n in e.orbits){let l=e.orbits[n],o=t.transformationData[n],i=new Array(l.numPieces);for(let s=0;s<l.numPieces;s++)if(!i[s]){let a=s,f=0,g=0;for(;i[a]=!0,f=f+o.orientation[a],g=g+1,a=o.permutation[a],a!==s;);f!==0&&(g=g*l.numOrientations/Ba(l.numOrientations,Math.abs(f))),r=r*g/Ba(r,g)}}return r}var La,hf,eo=A(()=>{"use strict";fe();fe();ii();to();La=class extends xr{traverseAlg(t,r){let n=null;for(let l of t.childAlgNodes())n?n=n.applyTransformation(this.traverseAlgNode(l,r)):n=this.traverseAlgNode(l,r);return n??r.identityTransformation()}traverseGrouping(t,r){let n=this.traverseAlg(t.alg,r);return new yt(r,vr(r,n.transformationData,t.amount))}traverseMove(t,r){return r.moveToTransformation(t)}traverseCommutator(t,r){let n=this.traverseAlg(t.A,r),l=this.traverseAlg(t.B,r);return n.applyTransformation(l).applyTransformation(n.invert()).applyTransformation(l.invert())}traverseConjugate(t,r){let n=this.traverseAlg(t.A,r),l=this.traverseAlg(t.B,r);return n.applyTransformation(l).applyTransformation(n.invert())}traversePause(t,r){return r.identityTransformation()}traverseNewline(t,r){return r.identityTransformation()}traverseLineComment(t,r){return r.identityTransformation()}},hf=kt(La)});var Vn,ai,Fe,Df=A(()=>{"use strict";fe();eo();pa();si();to();Fe=class{constructor(t,r){this.definition=t;Y(this,Vn,new Map);Y(this,ai,void 0);this.experimentalPGNotation=r?.experimentalPGNotation}name(){return this.definition.name}identityTransformation(){return yt.experimentalConstructIdentity(this)}moveToTransformation(t){typeof t=="string"&&(t=new B(t));let r=t.toString(),n=R(this,Vn).get(r);if(n)return new yt(this,n);if(this.experimentalPGNotation){let o=this.experimentalPGNotation.lookupMove(t);if(!o)throw new Error(\`could not map to internal move: \${t}\`);return R(this,Vn).set(r,o),new yt(this,o)}let l=Bf(this,t);return R(this,Vn).set(r,l),new yt(this,l)}algToTransformation(t){return typeof t=="string"&&(t=new E(t)),hf(t,this)}toTransformation(t){return typeof t=="string"?this.algToTransformation(t):t?.is?.(E)?this.algToTransformation(t):t?.is?.(B)?this.moveToTransformation(t):t}startState(){return new me(this,this.definition.startStateData)}canConvertStateToUniqueTransformation(){return R(this,ai)??V(this,ai,(()=>{for(let[t,r]of Object.entries(this.definition.orbits)){let n=new Array(r.numPieces).fill(!1);for(let l of this.definition.startStateData[t].pieces)n[l]=!0;for(let l of n)if(!l)return!1}return!0})())}};Vn=new WeakMap,ai=new WeakMap});var We=A(()=>{"use strict";Df();si();to()});var Ff,hL,yf=A(()=>{"use strict";Ff={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"}},hL={...Ff,fto:{puzzleID:"fto",eventName:"Face-Turning Octahedron"},master_tetraminx:{puzzleID:"master_tetraminx",eventName:"Master Tetraminx"},kilominx:{puzzleID:"kilominx",eventName:"Kilominx"},redi_cube:{puzzleID:"redi_cube",eventName:"Redi Cube"}}});function Af(e){return DL[e]}var sr,qt,Je,Hn,fi,an,DL,Xn,Jn,ro=A(()=>{"use strict";sr=class{constructor(t,r){this.stickerings=new Map;for(let[n,l]of Object.entries(t.definition.orbits))this.stickerings.set(n,new Array(l.numPieces).fill(r))}},qt="regular",Je="ignored",Hn="oriented",fi="invisible",an="dim",DL={["Regular"]:{facelets:[qt,qt,qt,qt,qt]},["Ignored"]:{facelets:[Je,Je,Je,Je,Je]},["OrientationStickers"]:{facelets:[Hn,Hn,Hn,Hn,Hn]},["IgnoreNonPrimary"]:{facelets:[qt,Je,Je,Je,Je]},["Invisible"]:{facelets:[fi,fi,fi,fi]},["PermuteNonPrimary"]:{facelets:[an,qt,qt,qt,qt]},["Dim"]:{facelets:[an,an,an,an,an]},["Ignoriented"]:{facelets:[an,Je,Je,Je,Je]},["OrientationWithoutPermutation"]:{facelets:[Hn,Je,Je,Je,Je]}};Xn=class extends sr{constructor(t){super(t,"Regular")}set(t,r){for(let[n,l]of this.stickerings.entries())for(let o=0;o<l.length;o++)t.stickerings.get(n)[o]&&(l[o]=r);return this}toStickeringMask(){let t={orbits:{}};for(let[r,n]of this.stickerings.entries()){let l=[],o={pieces:l};t.orbits[r]=o;for(let i of n)l.push(Af(i))}return t}},Jn=class{constructor(t){this.kpuzzle=t}and(t){let r=new sr(this.kpuzzle,!1);for(let[n,l]of Object.entries(this.kpuzzle.definition.orbits)){e:for(let o=0;o<l.numPieces;o++){r.stickerings.get(n)[o]=!0;for(let i of t)if(!i.stickerings.get(n)[o]){r.stickerings.get(n)[o]=!1;continue e}}}return r}or(t){let r=new sr(this.kpuzzle,!1);for(let[n,l]of Object.entries(this.kpuzzle.definition.orbits)){e:for(let o=0;o<l.numPieces;o++){r.stickerings.get(n)[o]=!1;for(let i of t)if(i.stickerings.get(n)[o]){r.stickerings.get(n)[o]=!0;continue e}}}return r}not(t){let r=new sr(this.kpuzzle,!1);for(let[n,l]of Object.entries(this.kpuzzle.definition.orbits))for(let o=0;o<l.numPieces;o++)r.stickerings.get(n)[o]=!t.stickerings.get(n)[o];return r}all(){return this.and(this.moves([]))}move(t){let r=this.kpuzzle.moveToTransformation(t),n=new sr(this.kpuzzle,!1);for(let[l,o]of Object.entries(this.kpuzzle.definition.orbits))for(let i=0;i<o.numPieces;i++)(r.transformationData[l].permutation[i]!==i||r.transformationData[l].orientation[i]!==0)&&(n.stickerings.get(l)[i]=!0);return n}moves(t){return t.map(r=>this.move(r))}orbits(t){let r=new sr(this.kpuzzle,!1);for(let n of t)r.stickerings.get(n).fill(!0);return r}orbitPrefix(t){let r=new sr(this.kpuzzle,!1);for(let n in this.kpuzzle.definition.orbits)n.startsWith(t)&&r.stickerings.get(n).fill(!0);return r}}});var da,Ra=A(()=>{"use strict";da={full:{groups:{"3x3x3":"Stickering"}},OLL:{groups:{"3x3x3":"Last Layer"}},PLL:{groups:{"3x3x3":"Last Layer"}},LL:{groups:{"3x3x3":"Last Layer"}},EOLL:{groups:{"3x3x3":"Last Layer"}},COLL:{groups:{"3x3x3":"Last Layer"}},OCLL:{groups:{"3x3x3":"Last Layer"}},CLL:{groups:{"3x3x3":"Last Layer"}},ELL:{groups:{"3x3x3":"Last Layer"}},ZBLL:{groups:{"3x3x3":"Last Layer"}},LS:{groups:{"3x3x3":"Last Slot"}},ELS:{groups:{"3x3x3":"Last Slot"}},CLS:{groups:{"3x3x3":"Last Slot"}},ZBLS:{groups:{"3x3x3":"Last Slot"}},VLS:{groups:{"3x3x3":"Last Slot"}},WVLS:{groups:{"3x3x3":"Last Slot"}},F2L:{groups:{"3x3x3":"CFOP (Fridrich)"}},Daisy:{groups:{"3x3x3":"CFOP (Fridrich)"}},Cross:{groups:{"3x3x3":"CFOP (Fridrich)"}},EO:{groups:{"3x3x3":"ZZ"}},EOline:{groups:{"3x3x3":"ZZ"}},EOcross:{groups:{"3x3x3":"ZZ"}},CMLL:{groups:{"3x3x3":"Roux"}},L10P:{groups:{"3x3x3":"Roux"}},L6E:{groups:{"3x3x3":"Roux"}},L6EO:{groups:{"3x3x3":"Roux"}},"2x2x2":{groups:{"3x3x3":"Petrus"}},"2x2x3":{groups:{"3x3x3":"Petrus"}},"Void Cube":{groups:{"3x3x3":"Miscellaneous"}},invisible:{groups:{"3x3x3":"Miscellaneous"}},picture:{groups:{"3x3x3":"Miscellaneous"}},"centers-only":{groups:{"3x3x3":"Miscellaneous"}},"experimental-centers-U":{},"experimental-centers-U-D":{},"experimental-centers-U-L-D":{},"experimental-centers-U-L-B-D":{},"experimental-centers":{},"experimental-fto-fc":{groups:{fto:"Bencisco"}},"experimental-fto-f2t":{groups:{fto:"Bencisco"}},"experimental-fto-sc":{groups:{fto:"Bencisco"}},"experimental-fto-l2c":{groups:{fto:"Bencisco"}},"experimental-fto-lbt":{groups:{fto:"Bencisco"}},"experimental-fto-l3t":{groups:{fto:"Bencisco"}}}});async function ar(e,t){let r=await e.kpuzzle(),n=new Xn(r),l=new Jn(r),o=()=>l.move("U"),i=()=>l.or(l.moves(["U","D"])),s=()=>l.or(l.moves(["L","R"])),a=()=>l.not(s()),f=()=>l.not(o()),g=()=>l.orbitPrefix("CENTER"),u=()=>l.orbitPrefix("EDGE"),c=()=>l.or([l.orbitPrefix("CORNER"),l.orbitPrefix("C4RNER"),l.orbitPrefix("C5RNER")]),p=()=>l.or([a(),l.and([o(),u()])]),L=()=>l.and([o(),g()]),m=()=>l.and([l.and(l.moves(["F","R"])),u()]),d=()=>l.and([l.and(l.moves(["F","R"])),c(),l.not(o())]),D=()=>l.or([d(),m()]);function F(){n.set(f(),"Dim")}function S(){n.set(o(),"PermuteNonPrimary"),n.set(L(),"Dim")}function v(){n.set(o(),"IgnoreNonPrimary"),n.set(L(),"Regular")}function U(){n.set(o(),"Ignoriented"),n.set(L(),"Dim")}switch(t){case"full":break;case"PLL":{F(),S();break}case"CLS":{F(),n.set(d(),"Regular"),n.set(o(),"Ignoriented"),n.set(l.and([o(),g()]),"Dim"),n.set(l.and([o(),c()]),"IgnoreNonPrimary");break}case"OLL":{F(),v();break}case"EOLL":{F(),v(),n.set(l.and([o(),c()]),"Ignored");break}case"COLL":{F(),n.set(l.and([o(),u()]),"Ignoriented"),n.set(l.and([o(),g()]),"Dim"),n.set(l.and([o(),c()]),"Regular");break}case"OCLL":{F(),U(),n.set(l.and([o(),c()]),"IgnoreNonPrimary");break}case"CLL":{F(),n.set(l.not(l.and([c(),o()])),"Dim");break}case"ELL":{F(),n.set(o(),"Dim"),n.set(l.and([o(),u()]),"Regular");break}case"ELS":{F(),v(),n.set(l.and([o(),c()]),"Ignored"),n.set(m(),"Regular"),n.set(d(),"Ignored");break}case"LL":{F();break}case"F2L":{n.set(o(),"Ignored");break}case"ZBLL":{F(),n.set(o(),"PermuteNonPrimary"),n.set(L(),"Dim"),n.set(l.and([o(),c()]),"Regular");break}case"ZBLS":{F(),n.set(D(),"Regular"),v(),n.set(l.and([o(),c()]),"Ignored");break}case"VLS":{F(),n.set(D(),"Regular"),v();break}case"WVLS":{F(),n.set(D(),"Regular"),n.set(l.and([o(),u()]),"Ignoriented"),n.set(l.and([o(),g()]),"Dim"),n.set(l.and([o(),c()]),"IgnoreNonPrimary");break}case"LS":{F(),n.set(D(),"Regular"),n.set(o(),"Ignored"),n.set(L(),"Dim");break}case"EO":{n.set(c(),"Ignored"),n.set(u(),"OrientationWithoutPermutation");break}case"EOline":{n.set(c(),"Ignored"),n.set(u(),"OrientationWithoutPermutation"),n.set(l.and(l.moves(["D","M"])),"Regular");break}case"EOcross":{n.set(u(),"OrientationWithoutPermutation"),n.set(l.move("D"),"Regular"),n.set(c(),"Ignored");break}case"CMLL":{n.set(f(),"Dim"),n.set(p(),"Ignored"),n.set(l.and([o(),c()]),"Regular");break}case"L10P":{n.set(l.not(p()),"Dim"),n.set(l.and([c(),o()]),"Regular");break}case"L6E":{n.set(l.not(p()),"Dim");break}case"L6EO":{n.set(l.not(p()),"Dim"),n.set(p(),"OrientationWithoutPermutation"),n.set(l.and([g(),i()]),"OrientationStickers");break}case"Daisy":{n.set(l.all(),"Ignored"),n.set(g(),"Dim"),n.set(l.and([l.move("D"),g()]),"Regular"),n.set(l.and([l.move("U"),u()]),"IgnoreNonPrimary");break}case"Cross":{n.set(l.all(),"Ignored"),n.set(g(),"Dim"),n.set(l.and([l.move("D"),g()]),"Regular"),n.set(l.and([l.move("D"),u()]),"Regular");break}case"2x2x2":{n.set(l.or(l.moves(["U","F","R"])),"Ignored"),n.set(l.and([l.or(l.moves(["U","F","R"])),g()]),"Dim");break}case"2x2x3":{n.set(l.all(),"Dim"),n.set(l.or(l.moves(["U","F","R"])),"Ignored"),n.set(l.and([l.or(l.moves(["U","F","R"])),g()]),"Dim"),n.set(l.and([l.move("F"),l.not(l.or(l.moves(["U","R"])))]),"Regular");break}case"Void Cube":{n.set(g(),"Invisible");break}case"picture":case"invisible":{n.set(l.all(),"Invisible");break}case"centers-only":{n.set(l.not(g()),"Ignored");break}default:console.warn(\`Unsupported stickering for \${e.id}: \${t}. Setting all pieces to dim.\`),n.set(l.and(l.moves([])),"Dim")}return n.toStickeringMask()}async function Zn(){let e=[];for(let[t,r]of Object.entries(da))r.groups&&"3x3x3"in r.groups&&e.push(t);return e}var no=A(()=>{"use strict";ro();Ra()});function pe(e){let t=null;return()=>t??(t=e())}var At=A(()=>{"use strict"});function Ke(e){return new fr(t=>{t(e())})}var fr,_t=A(()=>{"use strict";fr=class extends Promise{constructor(t){super(r=>{r()}),this._executor=t}static from(t){return new fr(r=>{r(t())})}static resolve(t){return new fr(r=>{r(t)})}static reject(t){return new fr((r,n)=>{n(t)})}then(t,r){return this._promise=this._promise||new Promise(this._executor),this._promise.then(t,r)}catch(t){return this._promise=this._promise||new Promise(this._executor),this._promise.catch(t)}}});var Yn,xf=A(()=>{"use strict";Yn=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 l=0;this.prefixFree&&l<t.length;l++)n!==l&&t[n].startsWith(t[l])&&(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 l=-1;for(let o=0;o<this.facenames.length;o++)t.substr(n).startsWith(this.facenames[o])&&(l<0||this.facenames[o].length>this.facenames[l].length)&&(l=o);if(l>=0)r.push(l),n+=this.facenames[l].length;else throw new Error(\`Could not split \${t} into face names.\`)}return r}joinByFaceIndices(t){let r="",n=[];for(let l=0;l<t.length;l++)n.push(r),n.push(this.facenames[t[l]]),this.prefixFree||(r="_");return n.join("")}spinmatch(t,r){if(t===r)return!0;try{let n=this.splitByFaceNames(t),l=this.splitByFaceNames(r);if(n.length!==l.length&&n.length<3)return!1;for(let o=0;o<n.length;o++){for(let s=0;s<o;s++)if(n[o]===n[s])return!1;let i=!1;for(let s=0;s<l.length;s++)if(n[o]===l[s]){i=!0;break}if(!i)return!1}return!0}catch{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 l=this.gripnames[n];if(this.spinmatch(r,l))return l}return t}}});var fn,vf=A(()=>{"use strict";fn=class{notationToInternal(t){return t}notationToExternal(t){return t}}});var lo,Uf=A(()=>{"use strict";fe();lo=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 _("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 _("T",t.innerLayer,t.outerLayer),t.amount):this.child.notationToExternal(t)}}});var $n,bf=A(()=>{"use strict";fe();$n=class{constructor(t,r){this.internalNames=t;this.externalNames=r}convertString(t,r,n){let l="";(t.endsWith("v")||t.endsWith("v"))&&t<="_"&&(l=t.slice(t.length-1),t=t.slice(0,t.length-1));let o=t.toUpperCase(),i=!1;return t!==o&&(i=!0,t=o),t=n.joinByFaceIndices(r.splitByFaceNames(t)),i&&(t=t.toLowerCase()),t+l}convert(t,r,n){let l=t.family,o=this.convertString(l,r,n);return l===o?t:new B(new _(o,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 oo,Ef=A(()=>{"use strict";fe();oo=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 _("L",3,2),-2*t.amount);if(t.family==="R--")return new B(new _("L",3,2),2*t.amount);if(t.family==="D++")return new B(new _("U",3,2),-2*t.amount);if(t.family==="D--")return new B(new _("U",3,2),2*t.amount);if(t.family==="R_PLUSPLUS_")return new B(new _("L",3,2),-2*t.amount);if(t.family==="D_PLUSPLUS_")return new B(new _("U",3,2),-2*t.amount)}if(t.family==="y")return new B("Uv",t.amount);if(t.family==="x"&&Math.abs(t.amount)===2)return new B("ERv",t.amount/2)}return this.child.notationToInternal(t)}notationToExternal(t){return t.family==="ERv"&&Math.abs(t.amount)===1?new B(new _("x",t.innerLayer,t.outerLayer),t.amount*2):t.family==="ILv"&&Math.abs(t.amount)===1?new B(new _("x",t.innerLayer,t.outerLayer),-t.amount*2):t.family==="Uv"?new B(new _("y",t.innerLayer,t.outerLayer),t.amount):t.family==="Dv"?new B("y",-t.amount):this.child.notationToExternal(t)}}});var io,wf=A(()=>{"use strict";fe();io=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 _("D",(this.slices+1)/2),t.amount):r==="M"?t=new B(new _("L",(this.slices+1)/2),t.amount):r==="S"&&(t=new B(new _("F",(this.slices+1)/2),t.amount))),this.slices>2&&(r==="e"?t=new B(new _("D",this.slices-1,2),t.amount):r==="m"?t=new B(new _("L",this.slices-1,2),t.amount):r==="s"&&(t=new B(new _("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 FL,yL,kf,_f,zf,el,so,Cf=A(()=>{"use strict";fe();FL={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"},yL={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"},kf={U:"FRL",L:"FLD",R:"FDR",B:"DLR"},_f=new _("y"),zf=new _("Dv"),el=class{constructor(t){this.child=t;this.wcaHack=!1;this.map=FL}notationToInternal(t){if(this.wcaHack&&t.innerLayer===2&&t.outerLayer===null){let n=kf[t.family];if(n)return new B(new _(n,t.innerLayer,t.outerLayer),t.amount)}let r=this.map[t.family];return r?new B(new _(r,t.innerLayer,t.outerLayer),t.amount):_f.isIdentical(t.quantum)?new B(zf,-t.amount):null}notationToExternal(t){if(this.wcaHack&&t.innerLayer===2&&t.outerLayer===null){for(let[r,n]of Object.entries(kf))if(this.child.spinmatch(t.family,n))return new B(new _(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 _(r,t.innerLayer,t.outerLayer),t.amount);return zf.isIdentical(t.quantum)?new B(_f,-t.amount):null}},so=class extends el{constructor(r){super(r);this.wcaHack=!0;this.map=yL}}});var Nf,ha,Pf,AL,Da,Mf,SL,Fa,Of,xL,ao,If=A(()=>{"use strict";fe();Nf={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"},ha=new _("x"),Pf=new _("Rv"),AL=new _("Lv"),Da=new _("y"),Mf=new _("Uv"),SL=new _("Dv"),Fa=new _("z"),Of=new _("Fv"),xL=new _("Bv"),ao=class{constructor(t){this.child=t}notationToInternal(t){if(t.innerLayer||t.outerLayer)return null;let r=Nf[t.family];return r?new B(new _(r,t.outerLayer,t.innerLayer),t.amount):ha.isIdentical(t.quantum)?new B(Pf,t.amount):Da.isIdentical(t.quantum)?new B(Mf,t.amount):Fa.isIdentical(t.quantum)?new B(Of,t.amount):null}notationToExternal(t){for(let[r,n]of Object.entries(Nf))if(this.child.spinmatchv(t.family,n))return new B(new _(r,t.innerLayer,t.outerLayer),t.amount);return Pf.isIdentical(t.quantum)?new B(ha,t.amount):AL.isIdentical(t.quantum)?new B(ha,-t.amount):Mf.isIdentical(t.quantum)?new B(Da,t.amount):SL.isIdentical(t.quantum)?new B(Da,-t.amount):Of.isIdentical(t.quantum)?new B(Fa,t.amount):xL.isIdentical(t.quantum)?new B(Fa,-t.amount):null}}});var ya=A(()=>{"use strict";vf();Uf();bf();Ef();wf();Cf();If()});function Tf(e){let t=0,r={};for(;t<e.length&&e[t][0]==="-";){let l=e[t++];if(l==="--rotations")r.addRotations=!0;else if(l==="--allmoves")r.allMoves=!0;else if(l==="--outerblockmoves")r.outerBlockMoves=!0;else if(l==="--vertexmoves")r.vertexMoves=!0;else if(l==="--nocorners")r.includeCornerOrbits=!1;else if(l==="--noedges")r.includeEdgeOrbits=!1;else if(l==="--noorientation")r.fixedOrientation=!0;else if(l==="--nocenters")r.includeCenterOrbits=!1;else if(l==="--omit")r.excludeOrbits=e[t].split(","),t++;else if(l==="--moves")r.moveList=e[t].split(","),t++;else if(l==="--optimize")r.optimizeOrbits=!0;else if(l==="--scramble")r.scrambleAmount=100;else if(l==="--fixcorner")r.fixedPieceType="v";else if(l==="--fixedge")r.fixedPieceType="e";else if(l==="--fixcenter")r.fixedPieceType="f";else if(l==="--orientcenters")r.orientCenters=!0;else if(l==="--puzzleorientation")r.puzzleOrientation=JSON.parse(e[t]),t++;else throw new Error(\`Bad option: \${l}\`)}return{puzzleDescription:fo(e.slice(t).join(" ")),options:r}}var ui,Aa=A(()=>{"use strict";uo();ui=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 br(e){if(!Sa[e]){let t=Array(e);for(let r=0;r<e;r++)t[r]=0;Sa[e]=t}return Sa[e]}function Vt(e){if(!xa[e]){let t=Array(e);for(let r=0;r<e;r++)t[r]=r;xa[e]=t}return xa[e]}function Gf(e){return new dt(Vt(e))}function Wf(e){let t=BigInt(1);for(;e>1;)t*=BigInt(e),e--;return t}function vL(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 va(e,t){return e/vL(e,t)*t}var Sa,xa,dt,gi=A(()=>{"use strict";Sa=[],xa=[];dt=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 dt(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 dt(r)}inv(){let t=Array(this.n);for(let r=0;r<this.n;r++)t[this.p[r]]=r;return new dt(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 l=new Array;for(let o=n;!r[o];o=this.p[o])l.push(1+o),r[o]=!0;t.push(\`(\${l.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 l=0;for(let o=n;!r[o];o=this.p[o])l++,r[o]=!0;t=va(t,l)}return t}}});function ci(e,t){let r=B.fromString(t),n=e.notationToExternal(r);return n===null||r===n?t:n.toString()}function Kf(e,t){let r=e.moveops.length;if(r>30)throw new Error("Canon info too big for bitmask");let n=[],l=[];for(let i=0;i<r;i++){let s=e.moveops[i];n.push(s.order());let a=0;for(let f=0;f<r;f++){if(f===i)continue;let g=e.moveops[f];s.mul(g).equal(g.mul(s))&&(a|=1<<f)}l.push(a)}let o={};o[0]=1;for(let i=0;i<100;i++){let s=0,a={},f=0;for(let g in o){let u=+g,c=o[u];s+=c,f++;for(let p=0;p<n.length;p++)if((u>>p&1)===0&&(u&l[p]&(1<<p)-1)===0){let L=u&l[p]|1<<p;a[L]===void 0&&(a[L]=0),a[L]+=(n[p]-1)*c}}t(\`\${i}: canonseq \${s} states \${f}\`),o=a}}var tl,UL,un,zt,Ht,pi,ur,gn,mi,Qf=A(()=>{"use strict";fe();ya();gi();tl=class{constructor(t,r){this.size=t;this.mod=r}reassemblySize(){return Wf(this.size)*BigInt(this.mod)**BigInt(this.size)}},UL=0;un=class{constructor(t,r,n,l,o,i,s){this.orbitnames=t;this.orbitdefs=r;this.solved=n;this.movenames=l;this.moveops=o;this.isRotation=i;this.forcenames=s}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 l=0;l<t.length;l++)n[t[l]]=r.orbits[l].toKPuzzle();return n}describeSet(t,r,n){let l=this.orbitdefs[t].size,o=new Array(l);for(let i=0;i<l;i++)o[i]=[];for(let i=0;i<this.movenames.length;i++){if(this.isRotation[i])continue;let s=this.movenames[i];this.forcenames[i]||(s=ci(n,s),s[s.length-1]==="'"&&(s=s.substring(0,s.length-1)));let a=this.moveops[i].orbits[t];for(let f=0;f<l;f++)(a.perm[f]!==f||a.ori[f]!==0)&&o[f].push(s)}for(let i=0;i<l;i++)r.push(\`# \${i+1} \${o[i].join(" ")}\`)}toKsolve(t,r=new fn){let n=[];n.push(\`Name \${t}\`),n.push("");for(let l=0;l<this.orbitnames.length;l++)n.push(\`Set \${this.orbitnames[l]} \${this.orbitdefs[l].size} \${this.orbitdefs[l].mod}\`),this.describeSet(l,n,r);n.push(""),n.push("Solved");for(let l=0;l<this.orbitnames.length;l++)this.solved.orbits[l].appendDefinition(n,this.orbitnames[l],!1,!1);n.push("End");for(let l=0;l<this.movenames.length;l++){n.push("");let o=this.movenames[l];this.forcenames[l]||(o=ci(r,this.movenames[l]));let i=!1;o[o.length-1]==="'"&&(i=!0,o=o.substring(0,o.length-1)),n.push(\`Move \${o}\`);for(let s=0;s<this.orbitnames.length;s++)i?this.moveops[l].orbits[s].inv().appendDefinition(n,this.orbitnames[s],!0):this.moveops[l].orbits[s].appendDefinition(n,this.orbitnames[s],!0);n.push("End")}return n}toKPuzzleDefinition(t){let r={},n={};for(let o=0;o<this.orbitnames.length;o++){r[this.orbitnames[o]]={numPieces:this.orbitdefs[o].size,numOrientations:this.orbitdefs[o].mod};let i=this.solved.orbits[o].toKPuzzle();n[this.orbitnames[o]]={pieces:i.permutation,orientation:i.orientation}}let l={};if(t)for(let o=0;o<this.movenames.length;o++)l[this.movenames[o]]=this.transformToKTransformationData(this.moveops[o]);return{name:\`PG3D #\${++UL}\`,orbits:r,startStateData:n,moves:l}}optimize(){let t=[],r=[],n=[],l=[];for(let o=0;o<this.moveops.length;o++)l.push([]);for(let o=0;o<this.orbitdefs.length;o++){let i=this.orbitdefs[o].mod,s=this.orbitdefs[o].size,a=new mi(s),f=new Array(this.orbitdefs[o].size);for(let p=0;p<s;p++)f[p]=!1;for(let p=0;p<this.moveops.length;p++)if(!this.isRotation[p])for(let L=0;L<s;L++)(this.moveops[p].orbits[o].perm[L]!==L||this.moveops[p].orbits[o].ori[L]!==0)&&(f[L]=!0,a.union(L,this.moveops[p].orbits[o].perm[L]));let g=!0;if(i>1){g=!1;let p=new mi(this.orbitdefs[o].size*i);for(let L=0;L<this.moveops.length;L++)for(let m=0;m<s;m++)if(this.moveops[L].orbits[o].perm[m]!==m||this.moveops[L].orbits[o].ori[m]!==0)for(let d=0;d<i;d++)p.union(m*i+d,this.moveops[L].orbits[o].perm[m]*i+(d+this.moveops[L].orbits[o].ori[m])%i);for(let L=0;!g&&L<s;L++)for(let m=1;m<i;m++)p.find(L*i)===p.find(L*i+m)&&(g=!0);for(let L=0;!g&&L<s;L++)for(let m=0;m<L;m++)this.solved.orbits[o].perm[L]===this.solved.orbits[o].perm[m]&&(g=!0)}let u=-1,c=!1;for(let p=0;p<this.orbitdefs[o].size;p++)if(f[p]){let L=a.find(p);u<0?u=L:u!==L&&(c=!0)}for(let p=0;p<this.orbitdefs[o].size;p++){if(!f[p]||a.find(p)!==p)continue;let m=[],d=[],D=0;for(let F=0;F<this.orbitdefs[o].size;F++)a.find(F)===p&&(m[D]=F,d[F]=D,D++);if(c?t.push(\`\${this.orbitnames[o]}_p\${p}\`):t.push(this.orbitnames[o]),g){r.push(new tl(D,this.orbitdefs[o].mod)),n.push(this.solved.orbits[o].remapVS(m,D));for(let F=0;F<this.moveops.length;F++)l[F].push(this.moveops[F].orbits[o].remap(m,d,D))}else{r.push(new tl(D,1)),n.push(this.solved.orbits[o].remapVS(m,D).killOri());for(let F=0;F<this.moveops.length;F++)l[F].push(this.moveops[F].orbits[o].remap(m,d,D).killOri())}}}return new un(t,r,new gn(n),this.movenames,l.map(o=>new ur(o)),this.isRotation,this.forcenames)}scramble(t){this.solved=this.solved.mul(this.getScrambleTransformation(t))}getScrambleTransformation(t){t<100&&(t=100);let r=[];for(let l=0;l<this.moveops.length;l++)r[l]=this.moveops[l];for(let l=0;l<r.length;l++){let o=Math.floor(Math.random()*r.length),i=r[l];r[l]=r[o],r[o]=i}t<r.length&&(t=r.length);for(let l=0;l<t;l++){let o=Math.floor(Math.random()*r.length),i=Math.floor(Math.random()*r.length),s=Math.floor(Math.random()*this.moveops.length);r[o]=r[o].mul(r[i]).mul(this.moveops[s]),Math.random()<.1&&(r[o]=r[o].mul(this.moveops[s]))}let n=r[0];for(let l=1;l<r.length;l++)n=n.mul(r[l]);return n}reassemblySize(){let t=BigInt(1);for(let r=0;r<this.orbitdefs.length;r++)t*=this.orbitdefs[r].reassemblySize();return t}},zt=class{constructor(t,r,n){this.perm=t;this.ori=r;this.orimod=n}static e(t,r){return new zt(Vt(t),br(t),r)}mul(t){let r=this.perm.length,n=new Array(r);if(this.orimod===1){for(let l=0;l<r;l++)n[l]=this.perm[t.perm[l]];return new zt(n,this.ori,this.orimod)}else{let l=new Array(r);for(let o=0;o<r;o++)n[o]=this.perm[t.perm[o]],l[o]=(this.ori[t.perm[o]]+t.ori[o])%this.orimod;return new zt(n,l,this.orimod)}}inv(){let t=this.perm.length,r=new Array(t),n=new Array(t);for(let l=0;l<t;l++)r[this.perm[l]]=l,n[this.perm[l]]=(this.orimod-this.ori[l])%this.orimod;return new zt(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 dt(this.perm);let r=this.perm.length,n=new Array(r*t);for(let l=0;l<r;l++)for(let o=0;o<t;o++)n[l*t+o]=t*this.perm[l]+(this.ori[l]+o)%t;return new dt(n)}identicalPieces(){let t=[],r=this.perm.length,n=[];for(let l=0;l<r;l++){let o=this.perm[l];if(t[o]===void 0){let i=[l];t[o]=!0;for(let s=l+1;s<r;s++)this.perm[s]===o&&i.push(s);n.push(i)}}return n}order(){return this.toPerm().order()}isIdentity(){let t=this.perm.length;if(this.perm===Vt(t)&&this.ori===br(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===br(t))return!0;for(let r=0;r<t;r++)if(this.ori[r]!==0)return!1;return!0}remap(t,r,n){let l=new Array(n),o=new Array(n);for(let i=0;i<n;i++)l[i]=r[this.perm[t[i]]],o[i]=this.ori[t[i]];return new zt(l,o,this.orimod)}remapVS(t,r){let n=new Array(r),l=new Array(r),o=0,i=[];for(let s=0;s<r;s++){let a=this.perm[t[s]];i[a]===void 0&&(i[a]=o++),n[s]=i[a],l[s]=this.ori[t[s]]}return new zt(n,l,this.orimod)}appendDefinition(t,r,n,l=!0){if(!(l&&this.isIdentity())&&(t.push(r),t.push(this.perm.map(o=>o+1).join(" ")),!this.zeroOris()))if(n){let o=new Array(this.ori.length);for(let i=0;i<o.length;i++)o[this.perm[i]]=this.ori[i];t.push(o.join(" "))}else t.push(this.ori.join(" "))}toKPuzzle(){let t=this.perm.length;return this.isIdentity()?(zt.kcache[t]||(zt.kcache[t]={permutation:Vt(t),orientation:br(t)}),zt.kcache[t]):{permutation:this.perm,orientation:this.ori}}},Ht=zt;Ht.kcache=[];pi=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 l of this.orbits){let o=l.toPerm();t.push(o),r+=o.n}let n=new Array(r);r=0;for(let l of t){for(let o=0;o<l.n;o++)n[r+o]=r+l.p[o];r+=l.n}return new dt(n)}identicalPieces(){let t=[],r=0;for(let n of this.orbits){let l=n.orimod,o=n.identicalPieces();for(let i=0;i<o.length;i++)t.push(o[i].map(s=>s*l+r));r+=l*n.perm.length}return t}order(){let t=1;for(let r of this.orbits)t=va(t,r.order());return t}},ur=class extends pi{constructor(t){super(t)}mul(t){return new ur(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,l=this.e();for(;t>0;)t&1&&(l=l.mul(n)),t>1&&(n=n.mul(n)),t>>=1;return l}inv(){return new ur(this.internalInv())}e(){return new ur(this.orbits.map(t=>Ht.e(t.perm.length,t.orimod)))}},gn=class extends pi{constructor(t){super(t)}mul(t){return new gn(this.internalMul(t))}},mi=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),l=this.find(r);n<l?this.heads[l]=n:n>l&&(this.heads[n]=l)}}});var Li,jf=A(()=>{"use strict";Li={"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 Bi(e){let t=new W(0,0,0,0);for(let r=0;r<e.length;r++)t=t.sum(e[r]);return t.smul(1/e.length)}function qf(e,t,r,n){let l=n[e].intersect3(n[t],n[r]);if(!l)return l;for(let o=0;o<n.length;o++)if(o!==e&&o!==t&&o!==r){let i=n[o].b*l.b+n[o].c*l.c+n[o].d*l.d;if(n[o].a>0&&i>n[o].a||n[o].a<0&&i<n[o].a)return!1}return l}var W,di=A(()=>{"use strict";W=class{constructor(t,r,n,l){this.a=t;this.b=r;this.c=n;this.d=l}mul(t){return new W(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 W(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 W(this.a/t,this.b/t,this.c/t,this.d/t)}makenormal(){return new W(0,this.b,this.c,this.d).normalize()}normalizeplane(){let t=Math.hypot(this.b,this.c,this.d);return new W(this.a/t,this.b/t,this.c/t,this.d/t)}smul(t){return new W(this.a*t,this.b*t,this.c*t,this.d*t)}sum(t){return new W(this.a+t.a,this.b+t.b,this.c+t.c,this.d+t.d)}sub(t){return new W(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 W(this.a,-this.b,-this.c,-this.d)}det3x3(t,r,n,l,o,i,s,a,f){return t*(o*f-i*a)+r*(i*s-l*f)+n*(l*a-o*s)}rotateplane(t){let r=t.mul(new W(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 W(0,1,0,0)).normalize():r<t&&r<n?this.cross(new W(0,0,1,0)).normalize():this.cross(new W(0,0,0,1)).normalize()}pointrotation(t){let r=this.normalize();if(t=t.normalize(),r.sub(t).len()<1e-9)return new W(1,0,0,0);let n=r.sum(t);n.len()<1e-9?n=n.orthogonal():n=n.normalize();let l=r.cross(n);return l.a=r.dot(n),l}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)<1e-9?!1:new W(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>1e-9?1:t<-1e-9?-1:0}cutface(t){let r=this.a,n=0,l=null;for(let o=0;o<t.length;o++)n|=1<<this.side(t[o].dot(this)-r)+1;if((n&5)===5){l=[];let o=t.map(i=>this.side(i.dot(this)-r));for(let i=-1;i<=1;i+=2){let s=[];for(let a=0;a<t.length;a++){(o[a]===i||o[a]===0)&&s.push(t[a]);let f=(a+1)%t.length;if(o[a]+o[f]===0&&o[a]!==0){let g=t[a].dot(this)-r,u=t[f].dot(this)-r,c=g/(g-u),p=t[a].smul(1-c).sum(t[f].smul(c));s.push(p)}}l.push(s)}}return l}cutfaces(t){let r=[];for(let n=0;n<t.length;n++){let l=t[n],o=this.cutface(l);o?(r.push(o[0]),r.push(o[1])):r.push(l)}return r}faceside(t){let r=this.a;for(let n=0;n<t.length;n++){let l=this.side(t[n].dot(this)-r);if(l!==0)return l}throw new Error("Could not determine side of plane in faceside")}sameplane(t){let r=this.normalize(),n=t.normalize();return r.dist(n)<1e-9||r.dist(n.smul(-1))<1e-9}makecut(t){return new W(t,this.b,this.c,this.d)}}});function Vf(){let e=Math.sqrt(.5);return[new W(e,e,0,0),new W(e,0,e,0)]}function Hf(){return[new W(.5,.5,.5,.5),new W(.5,.5,.5,-.5)]}function Xf(){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 W(Math.cos(e),t*Math.sin(e),r*Math.sin(e),0),new W(.5,.5,.5,.5)]}function Jf(){let e=.16666666666666666+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 W(Math.cos(n),e*Math.sin(n),t*Math.sin(n),0),new W(Math.cos(n),-e*Math.sin(n),t*Math.sin(n),0)]}function Zf(){let e=Math.sqrt(.5);return[new W(.5,.5,.5,.5),new W(e,0,0,e)]}function Yf(e){let t=[new W(1,0,0,0)];for(let r=0;r<t.length;r++)for(let n=0;n<e.length;n++){let l=e[n].mul(t[r]),o=l.smul(-1),i=!1;for(let s=0;s<t.length;s++)if(l.dist(t[s])<Ri||o.dist(t[s])<Ri){i=!0;break}i||t.push(l)}return t}function Ua(e,t){let r=[],n=[];for(let l=0;l<t.length;l++){let o=e.rotateplane(t[l]),i=!1;for(let s=0;s<r.length;s++)if(o.dist(r[s])<Ri){i=!0;break}i||(r.push(o),n.push(t[l]))}return n}function ba(e){let t=[];for(let r=1;r<e.length;r++)for(let n=r+1;n<e.length;n++){let l=qf(0,r,n,e);if(l){let o=!1;for(let i=0;i<t.length;i++)if(l.dist(t[i])<Ri){o=!0;break}o||t.push(l)}}for(;;){let r=!1;for(let n=0;n<t.length;n++){let l=(n+1)%t.length;if(e[0].dot(t[n].cross(t[l]))<0){let o=t[n];t[n]=t[l],t[l]=o,r=!0}}if(!r)break}return t}var Ri,$f=A(()=>{"use strict";di();Ri=1e-9});function hi(e,t){let r=e[0].p.length,n=Gf(r),l=[],o=[],i=[],s=[],a=[];function f(p){for(let L=p.p.length-1;L>=0;L--){let m=p.p[L];if(m!==L){if(!l[L][m])return!1;p=p.mul(o[L][m])}}return!0}function g(p,L,m){s[p].push(L),a[p].push(m);for(let d=0;d<l[p].length;d++)l[p][d]&&u(p,l[p][d].mul(L),m+i[p][d])}function u(p,L,m){let d=L.p[p];if(!l[p][d]){l[p][d]=L,o[p][d]=L.inv(),i[p][d]=m;for(let F=0;F<s[p].length;F++)u(p,L.mul(s[p][F]),m+a[p][F]);return}let D=L.mul(o[p][d]);f(D)||g(p-1,D,m+i[p][d])}function c(){l=[],o=[],s=[],i=[],a=[];for(let m=0;m<r;m++)l.push([]),o.push([]),i.push([]),s.push([]),a.push([]),l[m][m]=n,o[m][m]=n,i[m][m]=0;let p=0,L=BigInt(1);for(let m=0;m<e.length;m++){g(r-1,e[m],1),L=BigInt(1);let d=0,D=0,F=[],S=new Ea;for(let v=0;v<r;v++){let U=0,P=0;for(let C=0;C<r;C++)l[v][C]&&(U++,P+=i[v][C],v!==C&&p++);d+=s[v].length,L*=BigInt(U),U>1&&S.multiply(U);let Z=P/U;F.push(Z),D+=Z}t(\`\${m}: sz \${L} T \${d} sol \${D} none \${p} mults \${S.toString()}\`)}return L}return c()}var Ea,wa=A(()=>{"use strict";gi();Ea=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 bL(e,t){let r=[];for(let n of e)for(let l of t)r.push(l.rotate(n));return r}function kL(){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 _L(){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 CL(){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 Di(e,t){for(let r=0;r<e.length;r++)if(e[r][0].dist(t)<be)return r;throw new Error("Element not found")}function e1(){return Li}function t1(e){return Li[e]}function fo(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 l=1;l<t.length;l+=2){if(t[l]!=="f"&&t[l]!=="v"&&t[l]!=="e")return null;n.push({cutType:t[l],distance:parseFloat(t[l+1])})}return{shape:r,cuts:n}}function _a(e,t={}){let r=fo(e);if(r===null)throw new Error("Could not parse the puzzle description");let n=new go(r,Object.assign({},{allMoves:!0},t));return n.allstickers(),n.genperms(),n}function l1(e,t){return _a(Li[e],t)}function NL(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 l=e[0],o="";if(t[0]===0&&t[1]===r)l=\`\${l}v\`;else if(t[0]===t[1])t[1]>0&&(o=String(t[1]+1));else if(t[0]===0)l=l.toLowerCase(),t[1]>1&&(o=String(t[1]+1));else throw new Error(\`We only support slice and outer block moves right now. \${t}\`);return[o+l,n]}function PL(e,t){let r=[],n=0;for(;n<e.length;){n>0&&n<e.length&&e[n]==="_"&&n++;let l="";for(let o of t)e.substr(n).startsWith(o[1])&&o[1].length>l.length&&(l=o[1]);if(l!=="")r.push(l),n+=l.length;else throw new Error(\`Could not split \${e} into face names.\`)}return r}function Fi(e,t){return[e.b/t,-e.c/t,e.d/t]}function ka(e,t){let r=[],n=e.length;for(let l=0;l<n;l++){let o=Fi(e.get(n-l-1),t);r[3*l]=o[0],r[3*l+1]=o[1],r[3*l+2]=o[2]}return r}var Er,rl,be,EL,wL,zL,r1,n1,go,yi,uo=A(()=>{"use strict";fe();xf();ya();Aa();gi();Qf();jf();$f();di();wa();Er=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 W(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 l=0;l<this.length;l++)t+=this.coords[3*l],r+=this.coords[3*l+1],n+=this.coords[3*l+2];return new W(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 Er(r)}rotateforward(){let t=[];for(let r=1;r<this.length;r++)t.push(this.get(r));return t.push(this.get(0)),new Er(t)}},rl=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 rl(r[0]),this.right=new rl(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 Er(this.face)):r?(this.left?.collect(t,!1),this.right?.collect(t,!0)):(this.right?.collect(t,!1),this.left?.collect(t,!0)),t}};be=1e-9,EL="PuzzleGeometry 0.1 Copyright 2018 Tomas Rokicki.",wL=!1;zL={4:{v:["DFR","DLF","DRL","FLR"],e:["FR","LF","DF","DL","RD","RL"],c:["DF","FD","RL","LR"]},6:{v:["URF","UBR","ULB","UFL","DFR","DRB","DBL","DLF"],e:["UF","UR","UB","UL","DF","DR","DB","DL","FR","FL","BR","BL"],c:["UB","LU","FU","RU","BU","DF"]},8:{v:["UBBBRR","URFL","ULBLBB","DBRBBBL","DBLLF","DFRBR"],e:["UL","UBB","UR","BRD","BLD","FD","BRR","FR","FL","BLL","BLBB","BRBB"],c:["BBU","LU","RU","BRD","FD","BLD","DF","UBB"]},12:{v:["URF","UFL","ULBL","UBLBR","UBRR","DEBF","DBFI","DIA","DAC","DCE","LAI","ALF","FCA","CFR","REC","ERBR","BRBFE","BFBRBL","BLIBF","IBLL"],e:["UF","UR","UBR","UBL","UL","ER","EBR","EBF","ED","EC","IBF","IBL","IL","IA","ID","AC","CF","FA","BFBR","BRBL","BLBF","CD","AD","AL","FL","FR","CR","BFD","BRR","BLL"],c:["UF","FU","DBF","BFD","AD","CD","BRU","BLU","LA","RA","EBR","IBL"]},20:{v:["FLPQU","FUGER","FRCAL","HCREI","ISBDH","JSIEG","BSJMK","MQPOK","ONDBK","NOPLA","UQMJG","DNACH"],e:["FU","FL","FR","EG","ER","EI","SJ","SI","SB","KM","KB","KO","PQ","PO","PL","UG","JG","MQ","UQ","HC","HD","ND","NA","JM","CA","AL","CR","HI","DB","NO"],c:["FU","UF","GE","EG","JS","SJ","MK","KM","QP","PQ","LA","AL","RC","CR","IH","HI","BD","DB","ON","NO"]}};r1=["c","t","o","d","i"],n1=["f","v","e"];go=class{constructor(t,r){this.puzzleDescription=t;this.cmovesbyslice=[];this.duplicatedFaces=[];this.duplicatedCubies=[];this.fixedCubie=-1;this.net=[];this.colors=[];this.notationMapper=new fn;this.addNotationMapper="";this.setReidOrder=!1;let n="genperms";this.options=new ui(r),this.options.verbosity>0&&console.log(this.header("# ")),this.create(t)}create(t){let{shape:r,cuts:n}=t;this.moveplanes=[],this.moveplanes2=[],this.faces=[],this.cubies=[];let l=null;switch(r){case"c":{l=Vf();break}case"o":{l=Zf();break}case"i":{l=Jf();break}case"t":{l=Hf();break}case"d":{l=Xf();break}default:throw new Error(\`Bad shape argument: \${r}\`)}this.rotations=Yf(l),this.options.verbosity&&console.log(\`# Rotations: \${this.rotations.length}\`);let o=l[0];this.baseplanerot=Ua(o,this.rotations);let i=this.baseplanerot.map(y=>o.rotateplane(y));this.baseplanes=i,this.baseFaceCount=i.length;let s=kL()[i.length];this.net=s,this.colors=_L()[i.length],this.options.verbosity>0&&console.log(\`# Base planes: \${i.length}\`);let a=ba(i),f=new W(0,0,0,0);this.options.verbosity>0&&console.log(\`# Face vertices: \${a.length}\`);let g=i[0].makenormal(),u=a[0].sum(a[1]).makenormal(),c=a[0].makenormal(),p=new W(1,g.b,g.c,g.d);this.options.verbosity>0&&console.log(\`# Boundary is \${p}\`);let m=Ua(p,this.rotations).map(y=>p.rotateplane(y)),d=ba(m);this.edgedistance=d[0].sum(d[1]).smul(.5).dist(f),this.vertexdistance=d[0].dist(f);let D=[],F=[],S=!1,v=!1,U=!1;for(let y of n){let k=null,T=0;switch(y.cutType){case"f":{k=g,T=1,S=!0;break}case"v":{k=c,T=this.vertexdistance,U=!0;break}case"e":{k=u,T=this.edgedistance,v=!0;break}default:throw new Error(\`Bad cut argument: \${y.cutType}\`)}D.push(k.makecut(y.distance)),F.push(y.distance<T)}this.options.addRotations&&(S||D.push(g.makecut(10)),U||D.push(c.makecut(10)),v||D.push(u.makecut(10))),this.basefaces=[];for(let y of this.baseplanerot){let k=y.rotateface(d);this.basefaces.push(new Er(k))}let P=[],Z=[],C=[],Q=[],x=d.length;function z(y,k,T){for(let O of y)if(O[0].dist(k)<be){O.push(T);return}y.push([k,T])}for(let y=0;y<this.baseplanerot.length;y++){let k=this.baseplanerot[y].rotateface(d);for(let T=0;T<k.length;T++){let O=(T+1)%k.length,te=k[T].sum(k[O]).smul(.5);z(Q,te,y)}}let N=[];for(let y=0;y<this.baseplanerot.length;y++){let k=this.baseplanerot[y].rotateface(d),T=[];for(let O=0;O<k.length;O++){let te=(O+1)%k.length,ae=k[O].sum(k[te]).smul(.5),Ie=Q[Di(Q,ae)];if(y===Ie[1])T.push(Ie[2]);else if(y===Ie[2])T.push(Ie[1]);else throw new Error("Could not find edge")}N.push(T)}let b={},w=[];w.push(s[0][0]),b[s[0][0]]=0,w[N[0][0]]=s[0][1],b[s[0][1]]=N[0][0];for(let y of s){let k=y[0],T=b[k];if(T===void 0)throw new Error("Bad edge description; first edge not connected");let O=-1;for(let te=0;te<N[T].length;te++){let ae=w[N[T][te]];if(ae!==void 0&&ae===y[1]){O=te;break}}if(O<0)throw new Error("First element of a net not known");for(let te=2;te<y.length;te++){if(y[te]==="")continue;let ae=N[T][(te+O-1)%x],Ie=w[ae];if(Ie!==void 0&&Ie!==y[te])throw new Error("Face mismatch in net");w[ae]=y[te],b[y[te]]=ae}}for(let y=0;y<this.baseplanerot.length;y++){let k=this.baseplanerot[y].rotateface(d),T=p.rotateplane(this.baseplanerot[y]),O=w[y];P.push([k,O]),Z.push([T,O])}for(let y=0;y<this.baseplanerot.length;y++){let k=this.baseplanerot[y].rotateface(d),T=w[y];for(let O=0;O<k.length;O++){let te=(O+1)%k.length,ae=k[O].sum(k[te]).smul(.5),Ie=(O+2)%k.length,Tm=k[te].sum(k[Ie]).smul(.5),Gm=Di(Q,ae),Wm=Di(Q,Tm);z(C,k[te],[T,Wm,Gm])}}this.swizzler=new Yn(P.map(y=>y[1]));let M=this.swizzler.prefixFree?"":"_",j=zL[this.baseFaceCount],q=[];for(let y=0;y<this.baseFaceCount;y++)q[1<<y]=y;{let y=j.v;for(let k of y){let T=this.swizzler.splitByFaceNames(k),O=0;for(let te of T)O|=1<<te;q[O]=T[0]}}{let y=j.e;for(let k of y){let T=this.swizzler.splitByFaceNames(k),O=0;for(let te of T)O|=1<<te;q[O]=T[0]}}{let y=j.c;for(let k of y){let T=this.swizzler.splitByFaceNames(k),O=1<<T[0]|1<<this.baseFaceCount;q[O]=T[1]}}for(let y=0;y<Q.length;y++){if(Q[y].length!==3)throw new Error(\`Bad length in edge names \${Q[y]}\`);let k=Q[y][1],T=Q[y][2],O=w[k],te=w[T],ae=1<<k|1<<T;q[ae]===k?O=O+M+te:O=te+M+O,Q[y]=[Q[y][0],O]}for(let y=0;y<C.length;y++){let k=0;if(C[y].length<4)throw new Error("Bad length in vertex names");for(let ae=1;ae<C[y].length;ae++)k|=1<<b[C[y][ae][0]];let T=q[k],O=-1;for(let ae=1;ae<C[y].length;ae++)T===b[C[y][ae][0]]&&(O=ae);if(O<0)throw new Error("Internal error; couldn't find face name when fixing corners");let te="";for(let ae=1;ae<C[y].length;ae++){ae===1?te=C[y][O][0]:te=te+M+C[y][O][0];for(let Ie=1;Ie<C[y].length;Ie++)if(C[y][O][1]===C[y][Ie][2]){O=Ie;break}}C[y]=[C[y][0],te]}this.markedface=q,this.options.verbosity>1&&(console.log(\`# Face names: \${P.map(y=>y[1]).join(" ")}\`),console.log(\`# Edge names: \${Q.map(y=>y[1]).join(" ")}\`),console.log(\`# Vertex names: \${C.map(y=>y[1]).join(" ")}\`));let se=[];for(let y of Z)se.push([y[0].makenormal(),y[1],"f"]);for(let y of Q)se.push([y[0].makenormal(),y[1],"e"]);for(let y of C)se.push([y[0].makenormal(),y[1],"v"]);this.facenames=P,this.faceplanes=Z,this.edgenames=Q,this.vertexnames=C,this.geonormals=se;let De=se.map(y=>y[1]);this.swizzler.setGripNames(De),this.options.verbosity>0&&console.log(\`# Distances: face \${1} edge \${this.edgedistance} vertex \${this.vertexdistance}\`);for(let y=0;y<D.length;y++)for(let k of this.rotations){let T=D[y].rotateplane(k),O=!1;for(let te of this.moveplanes)if(T.sameplane(te)){O=!0;break}O||(this.moveplanes.push(T),F[y]&&this.moveplanes2.push(T))}let Ue=new rl(d),Ye=this.moveplanes2.slice(),Et=31;for(let y=0;y<Ye.length;y++){let k=y+Math.floor((Ye.length-y)*(Et/65536));Ue=Ue.split(Ye[k]),Ye[k]=Ye[y],Et=(Et*1657+101)%65536}let Re=Ue.collect([],!0);this.faces=Re,this.options.verbosity>0&&console.log(\`# Faces is now \${Re.length}\`),this.stickersperface=Re.length;let Dt=[],it=Bi(d);for(let y of this.rotations){let k=y.rotateface(d);it.dist(Bi(k))<be&&Dt.push(y)}let mt=new Array(Re.length),Ce=[];for(let y=0;y<Re.length;y++){let k=Re[y].centermass();Ce.push([it.dist(k),k,y])}Ce.sort((y,k)=>y[0]-k[0]);for(let y=0;y<Re.length;y++){let k=Ce[y][2];if(!mt[k]){mt[k]=!0;for(let T of Dt){let O=Re[k].rotate(T),te=O.centermass();for(let ae=y+1;ae<Re.length&&!(Ce[ae][0]-Ce[y][0]>be);ae++){let Ie=Ce[ae][2];if(!mt[Ie]&&te.dist(Ce[ae][1])<be){mt[Ie]=!0,Re[Ie]=O;break}}}}}this.shortedge=1e99;for(let y of Re)for(let k=0;k<y.length;k++){let T=(k+1)%y.length,O=y.get(k).dist(y.get(T));O<this.shortedge&&(this.shortedge=O)}this.options.verbosity>0&&console.log(\`# Short edge is \${this.shortedge}\`),r==="c"&&S&&!v&&!U&&(this.addNotationMapper="NxNxNCubeMapper",this.setReidOrder=!0),r==="c"&&U&&!S&&!v&&(this.addNotationMapper="SkewbMapper"),r==="t"&&(U||S)&&!v&&(this.addNotationMapper="PyraminxOrTetraminxMapper"),r==="o"&&S&&(this.notationMapper=new $n(this.swizzler,new Yn(["F","D","L","BL","R","U","BR","B"])),v||U||(this.addNotationMapper="FTOMapper")),r==="d"&&S&&(this.addNotationMapper="MegaminxMapper",this.notationMapper=new $n(this.swizzler,new Yn(["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 l of this.moveplanesets)if(l.length>0){let o=t.dot(l[0]),i=0,s=1;for(;s*2<=l.length;)s*=2;for(;s>0;s>>=1)i+s<=l.length&&o>l[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 l of this.moveplanesets)if(l.length>0){let o=r.dot(l[0]),i=0,s=1;for(;s*2<=l.length;)s*=2;for(;s>0;s>>=1)i+s<=l.length&&o>l[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 l=0;l+1<n.length;l++){let o=this.facelisthash.get(r)[l];if(Math.abs(t.dist(this.facecentermass[o]))<be)return o}return n[n.length-1]}project2d(t,r,n){let l=this.facenames[t][0],o=(r+1)%l.length,i=this.baseplanes[t],s=l[o].sub(l[r]),a=s.len();s=s.normalize();let f=s.cross(i).normalize(),g=n[1].sub(n[0]),u=g.len()/a;g=g.normalize();let c=g.b,p=g.c,L=s.smul(c).sub(f.smul(p)).smul(u),m=f.smul(c).sum(s.smul(p)).smul(u),d=new W(0,n[0].b-L.dot(l[r]),n[0].c-m.dot(l[r]),0);return[L,m,d]}allstickers(){let t="allstickers";this.faces=bL(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 x=0;x<this.faces.length;x++)this.facecentermass[x]=this.faces[x].centermass();let r=[],n=[];for(let x of this.moveplanes){let z=x.makenormal(),N=!1;for(let b of n)z.sameplane(b.makenormal())&&(N=!0);N||(n.push(z),r.push([]))}for(let x of this.moveplanes2){let z=x.makenormal();for(let N=0;N<n.length;N++)if(z.sameplane(n[N])){r[N].push(x);break}}for(let x=0;x<r.length;x++){let z=r[x].map(b=>b.normalizeplane()),N=n[x];for(let b=0;b<z.length;b++)z[b].makenormal().dist(N)>be&&(z[b]=z[b].smul(-1));z.sort((b,w)=>b.a-w.a),r[x]=z}this.moveplanesets=r,this.moveplanenormals=n;let l=r.map(x=>x.length);this.options.verbosity>0&&console.log(\`# Move plane sets: \${l}\`);let o=[];for(let x=0;x<r.length;x++)o.push([]);for(let x of this.rotations){if(Math.abs(Math.abs(x.a)-1)<be)continue;let z=x.makenormal();for(let N=0;N<r.length;N++)if(z.sameplane(n[N])){o[N].push(x);break}}this.moverotations=o;for(let x=0;x<o.length;x++){let z=o[x],N=z[0].makenormal();for(let b=0;b<z.length;b++)N.dist(z[b].makenormal())>be&&(z[b]=z[b].smul(-1));z.sort((b,w)=>b.angle()-w.angle()),o[x][0].dot(n[x])<0&&z.reverse()}let i=o.map(x=>1+x.length);this.movesetorders=i;let s=[],a="?";for(let x=0;x<r.length;x++){let z=n[x],N=null,b=null;for(let w of this.geonormals){let M=z.dot(w[0]);Math.abs(M-1)<be?(b=[w[1],w[2]],a=w[2]):Math.abs(M+1)<be&&(N=[w[1],w[2]],a=w[2])}if(b===null||N===null)throw new Error("Saw positive or negative sides as null");s.push([b[0],b[1],N[0],N[1],1+r[x].length]),this.addNotationMapper==="NxNxNCubeMapper"&&a==="f"&&(this.notationMapper=new io(1+r[x].length),this.addNotationMapper=""),this.addNotationMapper==="SkewbMapper"&&r[0].length===1&&(this.notationMapper=new ao(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 el(this.swizzler),this.addNotationMapper=""):(this.notationMapper=new so(this.swizzler),this.addNotationMapper="")),this.addNotationMapper==="MegaminxMapper"&&a==="f"&&(1+r[x].length===3&&(this.notationMapper=new oo(this.notationMapper)),this.addNotationMapper=""),this.addNotationMapper==="FTOMapper"&&a==="f"&&(1+r[x].length===3&&(this.notationMapper=new lo(this.notationMapper,this.swizzler)),this.addNotationMapper="")}this.movesetgeos=s;let f=new Map,g=this.faces;for(let x=0;x<g.length;x++){let z=g[x],N=this.keyface(z);if(!f.get(N))f.set(N,[x]);else{let b=f.get(N);if(b.push(x),b.length===this.baseFaceCount){this.options.verbosity>0&&console.log("# Splitting core.");for(let w=0;w<b.length;w++){let M=\`\${N} \${w}\`;f.set(M,[b[w]])}}}}this.facelisthash=f,this.options.verbosity>0&&console.log(\`# Cubies: \${f.size}\`);let u=[],c=[],p=[];for(let x of f.values())if(x.length!==this.baseFaceCount){if(x.length>1){let z=x.map(j=>g[j].centermass()),N=Bi(z);for(let j=0;x.length>2;j++){let q=!1;for(let se=0;se<x.length;se++){let De=(se+1)%x.length;if(N.dot(z[se].cross(z[De]))<0){let Ue=z[se];z[se]=z[De],z[De]=Ue;let Ye=x[se];x[se]=x[De],x[De]=Ye,q=!0}}if(!q)break;if(j>1e3)throw new Error("Bad epsilon math; too close to border")}let b=0;for(let j of x)b|=1<<Math.floor(j/this.stickersperface);let w=this.markedface[b],M=-1;for(let j=0;j<x.length;j++)Math.floor(x[j]/this.stickersperface)===w&&(M=j);if(M<0)throw new Error("Could not find marked face in list");if(M!==0){let j=x.slice();for(let q=0;q<x.length;q++)x[q]=j[(M+q)%x.length]}}for(let z=0;z<x.length;z++){let N=x[z];c[N]=u.length,p[N]=z}u.push(x)}this.cubies=u,this.facetocubie=c,this.facetoord=p;let L=["?","CENTERS","EDGES","CORNERS","C4RNER","C5RNER"],m=[],d=[0,0,0,0,0,0],D=[],F=[],S=0,v=[],U=[],P=[],Z=[],C=x=>u[x].map(z=>this.getfaceindex(z)).join(" "),Q=[];for(let x=0;x<u.length;x++){let z=u[x];if(z.length===0||F[x])continue;let N={},b=0;P.push(0),Q.push([]);let w=z.length,M=d[w]++,j=L[w];(j===void 0||w===this.baseFaceCount)&&(j="CORE"),j=j+(M===0?"":M+1),m[S]=j,D[S]=w;let q=[x],se=0;for(F[x]=!0;se<q.length;){let De=q[se++],Ue=C(De);if((z.length>1||N[Ue]===void 0)&&(N[Ue]=b++),Z[De]=N[Ue],v[De]=S,Q[S].push(De),U[De]=P[S]++,q.length<this.rotations.length){let Ye=this.facecentermass[u[De][0]];for(let Et of o){let Re=this.facetocubie[this.findface(Ye.rotatepoint(Et[0]))];F[Re]||(q.push(Re),F[Re]=!0)}}}S++}if(this.setReidOrder&&4<=this.stickersperface&&this.stickersperface<=9){let x=[["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"]],z={};for(let N of x)for(let b=0;b<N.length;b++){let w=0;for(let M=0;M<N[b].length;M++)w|=1<<N[b].charCodeAt(M)-65;z[w]=b}for(let N of Q)for(let b of N){let w=0;for(let M of u[b])w|=1<<this.facenames[this.getfaceindex(M)][1].charCodeAt(0)-65;U[b]=z[w]}}if(this.cubiesetnums=v,this.cubieordnums=U,this.cubiesetnames=m,this.cubieords=P,this.orbitoris=D,this.cubievaluemap=Z,this.cubiesetcubies=Q,this.options.fixedPieceType!==null){for(let x=0;x<u.length;x++)if(this.options.fixedPieceType==="v"&&u[x].length>2||this.options.fixedPieceType==="e"&&u[x].length===2||this.options.fixedPieceType==="f"&&u[x].length===1){this.fixedCubie=x;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 \${P}\`)}unswizzle(t){let r=this.notationMapper.notationToInternal(t);return r===null?null:r.modified({family: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 l=n[4],o,i;if(n[2]!==void 0){if(n[3]===void 0)throw new Error("Missing second number in range");o=parseInt(n[2],10)}n[3]!==void 0&&(i=parseInt(n[3],10));let s="1",a=1;return n[5]!==void 0&&(s=n[5],s[0]==="'"&&(s=\`-\${s.substring(1)}\`),a=parseInt(s,10)),new B(new _(l,i,o),a)}parseMove(t){let r=this.notationMapper.notationToInternal(t);if(r===null)throw new Error(\`Bad move \${t.family}\`);t=r;let n=t.family,l=!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),l=!0}n.endsWith("w")&&n[0]<="Z"&&(n=n.slice(0,-1).toLowerCase());let o,i=-1,s=this.swizzler.unswizzle(n),a=!1;for(let u=0;u<this.movesetgeos.length;u++){let c=this.movesetgeos[u];s===c[0]&&(a=!0,o=c,i=u),s===c[2]&&(a=!1,o=c,i=u)}let f=1,g=1;if(n.toUpperCase()!==n&&(g=2),o===void 0)throw new Error(\`Bad grip in move \${t.family}\`);if(t.outerLayer!==void 0&&(f=t.outerLayer),t.innerLayer!==void 0&&(t.outerLayer===void 0?(g=t.innerLayer,n<="Z"?f=g:f=1):g=t.innerLayer),f--,g--,l&&(f=0,g=this.moveplanesets[i].length),f<0||f>this.moveplanesets[i].length||g<0||g>this.moveplanesets[i].length)throw new Error(\`Bad slice spec \${f} \${g} vs \${this.moveplanesets[i].length}\`);if(!wL&&f===0&&g===this.moveplanesets[i].length&&!l)throw new Error("! full puzzle rotations must be specified with v suffix.");return[void 0,i,f,g,a,t.amount]}parsemove(t){let r=this.parseMove(this.stringToBlockMove(t));return r[0]=t,r}genperms(){let t="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 l=this.cubies[n][0],o=this.getfaceindex(l),i=this.basefaces[o].centermass();if(i.dist(this.facecentermass[l])<be){let s=1<<o|1<<this.baseFaceCount,a=this.markedface[s],f=this.baseplanes[a].makenormal(),g=-1,u=-1;for(let L=0;L<this.faces[l].length;L++){let m=this.faces[l].get(L),d=f.dot(m.sub(i));d>g&&(g=d,u=L)}let c=(u+1)%this.faces[l].length;if(Math.abs(f.dot(this.faces[l].get(c).sub(i))-g)<be&&(u=c),u!==0){let L=[];for(let m=0;m<this.faces[l].length;m++)L.push(this.faces[l].get((m+u)%this.faces[l].length));this.faces[l]=new Er(L)}let p=this.basefaces[o].length;for(let L=1;L<p;L++)this.cubies[n].push(this.cubies[n][L-1]);this.duplicatedFaces[l]=p,this.duplicatedCubies[n]=p,this.orbitoris[this.cubiesetnums[n]]=p}}}for(let n=0;n<this.moveplanesets.length;n++){let l=this.moveplanesets[n],o=[],i=[l.length+1,0],s=1;for(;s*2<=l.length;)s*=2;for(let g=0;g<this.faces.length;g++){let u=0;if(l.length>0){let c=this.facecentermass[g].dot(l[0]);for(let p=s;p>0;p>>=1)u+p<=l.length&&c>l[u+p-1].a&&(u+=p);u=l.length-u}for(o.push(u);i.length<=u;)i.push(0);i[u]++}let a=new Array(i.length);for(let g=0;g<i.length;g++)a[g]=[];let f=[];for(let g=0;g<this.faces.length;g++){if(o[g]<0)continue;let u=[this.facetocubie[g],this.facetoord[g]],c=this.facecentermass[g],p=c,L=g,m=o[L];for(;;){o[L]=-1;let d=c.rotatepoint(this.moverotations[n][0]);if(d.dist(p)<be)break;L=this.findface(d),u.push(this.facetocubie[L],this.facetoord[L]),c=d}if(u.length>2&&this.options.orientCenters&&(this.cubies[u[0]].length===1||this.duplicatedCubies[u[0]]>1)&&this.facecentermass[g].dist(this.basefaces[this.getfaceindex(g)].centermass())<be){let d=this.faces[this.cubies[u[0]][0]];for(let D=0;D<u.length;D+=2){let F=this.faces[this.cubies[u[D]][0]],S=-1;for(let v=0;v<d.length;v++)if(F.get(v).dist(d.get(0))<be){S=v;break}if(S<0)throw new Error("Couldn't find rotation of center faces; ignoring for now.");u[D+1]=S,d=d.rotate(this.moverotations[n][0])}}if(u.length===2&&this.options.orientCenters)for(let d=1;d<this.movesetorders[n];d++)m===0?u.push(u[0],d):u.push(u[0],(this.movesetorders[n]-d)%this.movesetorders[n]);if(u.length>2&&!f[u[0]]){if(u.length!==2*this.movesetorders[n])throw new Error("Bad length in perm gen");for(let d of u)a[m].push(d)}for(let d=0;d<u.length;d+=2)f[u[d]]=!0}for(let g=0;g<a.length;g++)a[g]=a[g].slice();r.push(a)}if(this.cmovesbyslice=r,this.options.moveList){let n=[];for(let l of this.options.moveList)n.push(this.parsemove(l));this.parsedmovelist=n}this.facelisthash.clear(),this.facecentermass=[]}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 l of this.parsedmovelist)l[1]===t&&(l[4]?n.push([l[2],l[3]]):n.push([r-l[3],r-l[2]]),n.push(l[5]));else if(this.options.vertexMoves&&!this.options.allMoves){let l=this.movesetgeos[t];if(l[1]!==l[3])for(let o=0;o<r;o++)l[1]!=="v"?(this.options.outerBlockMoves?n.push([o+1,r]):n.push([o+1]),n.push(1)):(this.options.outerBlockMoves?n.push([0,o]):n.push([o,o]),n.push(1))}else for(let l=0;l<=r;l++)!this.options.allMoves&&l+l===r||(this.options.outerBlockMoves?l+l>r?n.push([l,r]):n.push([0,l]):n.push([l,l]),n.push(1));if(this.fixedCubie>=0){let l=this.keyface3(this.faces[this.cubies[this.fixedCubie][0]])[t],o=[];for(let i=0;i<n.length;i+=2){let s=n[i];if(l>=s[0]&&l<=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 a=!1;for(let f=0;f<o.length;f+=2)if(o[f][0]===s[0]&&o[f][1]===s[1]&&o[f+1]===n[i+1]){a=!0;break}a||(o.push(s),o.push(n[i+1]))}n=o}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+EL+\`
|
|
2
|
+
var workerSource = `"use strict";var Wm=Object.defineProperty;var A=(e,t)=>()=>(e&&(t=e(e=0)),t);var Lt=(e,t)=>{for(var r in t)Wm(e,r,{get:t[r],enumerable:!0})};var Gs=(e,t,r)=>{if(!t.has(e))throw TypeError("Cannot "+r)};var R=(e,t,r)=>(Gs(e,t,"read from private field"),r?r.call(e):t.get(e)),Z=(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)},V=(e,t,r,n)=>(Gs(e,t,"write to private field"),n?n.call(e,r):t.set(e,r),r),Ws=(e,t,r,n)=>({set _(l){V(e,t,l,r)},get _(){return R(e,t,n)}}),nr=(e,t,r)=>(Gs(e,t,"access private method"),r);var lL,Kl,Te,lr=A(()=>{"use strict";lL=!1,Kl=class{is(t){return this instanceof t}as(t){return this instanceof t?this:null}},Te=class extends Kl{constructor(){super(),lL&&Object.defineProperty(this,"_debugStr",{get:()=>this.toString()})}get log(){return console.log.bind(console,this,this.toString())}}});function q2(e,t=!0){if(!t)return e;switch(e){case 1:return-1;case-1:return 1}}function V2(e,t){return t===-1?Array.from(e).reverse():e}function H2(e){return Array.from(e).reverse()}var Kt=A(()=>{"use strict"});var Ql,qs=A(()=>{"use strict";Ql="2^31 - 1"});var Yr,Bt,Vs=A(()=>{"use strict";Qt();Bt=class{constructor(){Z(this,Yr,[])}push(t){R(this,Yr).push(t)}experimentalPushAlg(t){for(let r of t.childAlgNodes())this.push(r)}experimentalNumAlgNodes(){return R(this,Yr).length}toAlg(){return new E(R(this,Yr))}reset(){V(this,Yr,[])}};Yr=new WeakMap});var X2,Hs=A(()=>{"use strict";X2={caratNISSNotationEnabled:!1}});var $r,en,Yo,Ne,On=A(()=>{"use strict";Qt();lr();Kt();Yo=class extends Te{constructor(r,n){super();Z(this,$r,void 0);Z(this,en,void 0);V(this,$r,Ar(r)),V(this,en,Ar(n))}get A(){return R(this,$r)}get B(){return R(this,en)}isIdentical(r){let n=r.as(Yo);return!!(n?.A.isIdentical(this.A)&&n?.B.isIdentical(this.B))}invert(){return new Yo(R(this,en),R(this,$r))}*experimentalExpand(r=1,n){n??(n=1/0),n===0?yield r===1?this:this.invert():r===1?(yield*this.A.experimentalExpand(1,n-1),yield*this.B.experimentalExpand(1,n-1),yield*this.A.experimentalExpand(-1,n-1),yield*this.B.experimentalExpand(-1,n-1)):(yield*this.B.experimentalExpand(1,n-1),yield*this.A.experimentalExpand(1,n-1),yield*this.B.experimentalExpand(-1,n-1),yield*this.A.experimentalExpand(-1,n-1))}toString(){return\`[\${R(this,$r).toString()}, \${R(this,en).toString()}]\`}},Ne=Yo;$r=new WeakMap,en=new WeakMap});var In,Tn,$o,Pe,Gn=A(()=>{"use strict";Qt();lr();Kt();$o=class extends Te{constructor(r,n){super();Z(this,In,void 0);Z(this,Tn,void 0);V(this,In,Ar(r)),V(this,Tn,Ar(n))}get A(){return R(this,In)}get B(){return R(this,Tn)}isIdentical(r){let n=r.as($o);return!!(n?.A.isIdentical(this.A)&&n?.B.isIdentical(this.B))}invert(){return new $o(R(this,In),R(this,Tn).invert())}*experimentalExpand(r,n){n??(n=1/0),n===0?yield r===1?this:this.invert():(yield*this.A.experimentalExpand(1,n-1),yield*this.B.experimentalExpand(r,n-1),yield*this.A.experimentalExpand(-1,n-1))}toString(){return\`[\${this.A}: \${this.B}]\`}},Pe=$o;In=new WeakMap,Tn=new WeakMap});var Sr,Xs,Ft,jl=A(()=>{"use strict";lr();Kt();Xs=class extends Te{constructor(r){super();Z(this,Sr,void 0);if(r.includes(\`
|
|
3
|
+
\`)||r.includes("\\r"))throw new Error("LineComment cannot contain newline");V(this,Sr,r)}get text(){return R(this,Sr)}isIdentical(r){let n=r;return r.is(Xs)&&R(this,Sr)===R(n,Sr)}invert(){return this}*experimentalExpand(r=1,n=1/0){yield this}toString(){return\`//\${R(this,Sr)}\`}},Ft=Xs;Sr=new WeakMap});var $e,ql=A(()=>{"use strict";lr();Kt();$e=class extends Te{toString(){return\`
|
|
4
|
+
\`}isIdentical(t){return t.is($e)}invert(){return this}*experimentalExpand(t=1,r=1/0){yield this}}});var Ae,Wn=A(()=>{"use strict";lr();Kt();Ae=class extends Te{toString(){return"."}isIdentical(r){return r.is(Ae)}invert(){return this}*experimentalExpand(r=1,n=1/0){yield this}}});function ei(e,t){return e?parseInt(e):t}function Js(e){return new Vl().parseAlg(e)}function Z2(e){return new Vl().parseMove(e)}function Y2(e){return new Vl().parseQuantumMove(e)}function et(e,t,r){let n=e;return n.startCharIndex=t,n.endCharIndex=r,n}function $2(e,t){return"startCharIndex"in e&&(t.startCharIndex=e.startCharIndex),"endCharIndex"in e&&(t.endCharIndex=e.endCharIndex),t}var J2,oL,iL,sL,aL,fL,st,G,Kn,Vl,Zs=A(()=>{"use strict";Qt();Vs();Hs();On();Gn();Hl();jl();jt();ql();Wn();J2=/^(\\d+)?('?)/,oL=/^[_\\dA-Za-z]/,iL=/^((([1-9]\\d*)-)?([1-9]\\d*))?([_A-Za-z]+)?/,sL=/^[^\\n]*/,aL=/^(-?\\d+), ?/,fL=/^(-?\\d+)\\)/;Vl=class{constructor(){Z(this,st,"");Z(this,G,0);Z(this,Kn,[])}parseAlg(t){V(this,st,t),V(this,G,0);let r=this.parseAlgWithStopping([]);this.mustBeAtEndOfInput();let n=Array.from(r.childAlgNodes());if(R(this,Kn).length>0)for(let s of R(this,Kn).reverse())n.push(s);let l=new E(n),{startCharIndex:o,endCharIndex:i}=r;return et(l,o,i),l}parseMove(t){V(this,st,t),V(this,G,0);let r=this.parseMoveImpl();return this.mustBeAtEndOfInput(),r}parseQuantumMove(t){V(this,st,t),V(this,G,0);let r=this.parseQuantumMoveImpl();return this.mustBeAtEndOfInput(),r}mustBeAtEndOfInput(){if(R(this,G)!==R(this,st).length)throw new Error("parsing unexpectedly ended early")}parseAlgWithStopping(t){let r=R(this,G),n=R(this,G),l=new Bt,o=!1,i=s=>{if(o)throw new Error(\`Unexpected character at index \${s}. Are you missing a space?\`)};e:for(;R(this,G)<R(this,st).length;){let s=R(this,G);if(t.includes(R(this,st)[R(this,G)]))return et(l.toAlg(),r,n);if(this.tryConsumeNext(" ")){o=!1,l.experimentalNumAlgNodes()===0&&(r=R(this,G));continue e}else if(oL.test(R(this,st)[R(this,G)])){i(s);let a=this.parseMoveImpl();l.push(a),o=!0,n=R(this,G);continue e}else if(this.tryConsumeNext("(")){i(s);let a=this.tryRegex(aL);if(a){let f=a[1],g=R(this,G),u=this.parseRegex(fL),c=et(new B(new _("U_SQ_"),parseInt(f)),s+1,s+1+f.length),p=et(new B(new _("D_SQ_"),parseInt(u[1])),g,R(this,G)-1),L=et(new E([c,p]),s+1,R(this,G)-1);l.push(et(new Me(L),s,R(this,G))),o=!0,n=R(this,G);continue e}else{let f=this.parseAlgWithStopping([")"]);this.mustConsumeNext(")");let g=this.parseAmount();l.push(et(new Me(f,g),s,R(this,G))),o=!0,n=R(this,G);continue e}}else if(this.tryConsumeNext("^")){if(!X2.caratNISSNotationEnabled)throw new Error("Alg contained a carat but carat NISS notation is not enabled.");this.mustConsumeNext("(");let a=this.parseAlgWithStopping([")"]);this.popNext();let f=new Me(a,-1),g=new Ae;f.experimentalNISSPlaceholder=g,g.experimentalNISSGrouping=f,R(this,Kn).push(f),l.push(g)}else if(this.tryConsumeNext("[")){i(s);let a=this.parseAlgWithStopping([",",":"]),f=this.popNext(),g=this.parseAlgWithStopping(["]"]);switch(this.mustConsumeNext("]"),f){case":":{l.push(et(new Pe(a,g),s,R(this,G))),o=!0,n=R(this,G);continue e}case",":{l.push(et(new Ne(a,g),s,R(this,G))),o=!0,n=R(this,G);continue e}default:throw new Error("unexpected parsing error")}}else if(this.tryConsumeNext(\`
|
|
5
|
+
\`)){l.push(et(new $e,s,R(this,G))),o=!1,n=R(this,G);continue e}else if(this.tryConsumeNext("/"))if(this.tryConsumeNext("/")){i(s);let[a]=this.parseRegex(sL);l.push(et(new Ft(a),s,R(this,G))),o=!1,n=R(this,G);continue e}else{l.push(et(new B("_SLASH_"),s,R(this,G))),o=!0,n=R(this,G);continue e}else if(this.tryConsumeNext(".")){i(s),l.push(et(new Ae,s,R(this,G))),o=!0,n=R(this,G);continue e}else throw new Error(\`Unexpected character: \${this.popNext()}\`)}if(R(this,G)!==R(this,st).length)throw new Error("did not finish parsing?");if(t.length>0)throw new Error("expected stopping");return et(l.toAlg(),r,n)}parseQuantumMoveImpl(){let[,,,t,r,n]=this.parseRegex(iL);return new _(n,ei(r,void 0),ei(t,void 0))}parseMoveImpl(){let t=R(this,G);if(this.tryConsumeNext("/"))return et(new B("_SLASH_"),t,R(this,G));let r=this.parseQuantumMoveImpl(),[n,l]=this.parseAmountAndTrackEmptyAbsAmount(),o=this.parseMoveSuffix();if(o){if(n<0)throw new Error("uh-oh");if((o==="++"||o==="--")&&n!==1)throw new Error("Pochmann ++ or -- moves cannot have an amount other than 1.");if((o==="++"||o==="--")&&!l)throw new Error("Pochmann ++ or -- moves cannot have an amount written as a number.");if((o==="+"||o==="-")&&l)throw new Error("Clock dial moves must have an amount written as a natural number followed by + or -.");o.startsWith("+")&&(r=r.modified({family:\`\${r.family}_\${o==="+"?"PLUS":"PLUSPLUS"}_\`})),o.startsWith("-")&&(r=r.modified({family:\`\${r.family}_\${o==="-"?"PLUS":"PLUSPLUS"}_\`}),n*=-1)}return et(new B(r,n),t,R(this,G))}parseMoveSuffix(){return this.tryConsumeNext("+")?this.tryConsumeNext("+")?"++":"+":this.tryConsumeNext("-")?this.tryConsumeNext("-")?"--":"-":null}parseAmountAndTrackEmptyAbsAmount(){let t=R(this,G),[,r,n]=this.parseRegex(J2);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[ei(r,1)*(n==="'"?-1:1),!r]}parseAmount(){let t=R(this,G),[,r,n]=this.parseRegex(J2);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 ei(r,1)*(n==="'"?-1:1)}parseRegex(t){let r=t.exec(this.remaining());if(r===null)throw new Error("internal parsing error");return V(this,G,R(this,G)+r[0].length),r}tryRegex(t){let r=t.exec(this.remaining());return r===null?null:(V(this,G,R(this,G)+r[0].length),r)}remaining(){return R(this,st).slice(R(this,G))}popNext(){let t=R(this,st)[R(this,G)];return Ws(this,G)._++,t}tryConsumeNext(t){return R(this,st)[R(this,G)]===t?(Ws(this,G)._++,!0):!1}mustConsumeNext(t){let r=this.popNext();if(r!==t)throw new Error(\`expected \\\`\${t}\\\` while parsing, encountered \${r}\`);return r}};st=new WeakMap,G=new WeakMap,Kn=new WeakMap});function ti(e){ef.has(e)||(console.warn(e),ef.add(e))}var ef,Ys=A(()=>{"use strict";ef=new Set});var rn,$s=A(()=>{"use strict";Kt();qs();rn=class{constructor(t,r=1){if(this.quantum=t,this.amount=r,!Number.isInteger(this.amount)||this.amount<-2147483648||this.amount>2147483647)throw new Error(\`AlgNode amount absolute value must be a non-negative integer below \${Ql}.\`)}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),l=q2(t,this.amount<0);for(let o=0;o<n;o++)yield*this.quantum.experimentalExpand(l,r)}}});var or,He,Xe,ni,_,Ge,Qn,B,jt=A(()=>{"use strict";lr();Kt();qs();Zs();Ys();$s();ni=class extends Kl{constructor(r,n,l){super();Z(this,or,void 0);Z(this,He,void 0);Z(this,Xe,void 0);if(V(this,or,r),V(this,He,n??null),V(this,Xe,l??null),Object.freeze(this),R(this,He)!==null&&(!Number.isInteger(R(this,He))||R(this,He)<1||R(this,He)>2147483647))throw new Error(\`QuantumMove inner layer must be a positive integer below \${Ql}.\`);if(R(this,Xe)!==null&&(!Number.isInteger(R(this,Xe))||R(this,Xe)<1||R(this,Xe)>2147483647))throw new Error(\`QuantumMove outer layer must be a positive integer below \${Ql}.\`);if(R(this,Xe)!==null&&R(this,He)!==null&&R(this,He)<=R(this,Xe))throw new Error("QuantumMove outer layer must be smaller than inner layer.");if(R(this,Xe)!==null&&R(this,He)===null)throw new Error("QuantumMove with an outer layer must have an inner layer")}static fromString(r){return Y2(r)}modified(r){return new ni(r.family??R(this,or),r.innerLayer??R(this,He),r.outerLayer??R(this,Xe))}isIdentical(r){let n=r;return r.is(ni)&&R(this,or)===R(n,or)&&R(this,He)===R(n,He)&&R(this,Xe)===R(n,Xe)}get family(){return R(this,or)}get outerLayer(){return R(this,Xe)}get innerLayer(){return R(this,He)}experimentalExpand(){throw new Error("experimentalExpand() cannot be called on a \`QuantumMove\` directly.")}toString(){let r=R(this,or);return R(this,He)!==null&&(r=String(R(this,He))+r,R(this,Xe)!==null&&(r=\`\${String(R(this,Xe))}-\${r}\`)),r}},_=ni;or=new WeakMap,He=new WeakMap,Xe=new WeakMap;Qn=class extends Te{constructor(...r){super();Z(this,Ge,void 0);if(typeof r[0]=="string")if(r[1]??null){V(this,Ge,new rn(_.fromString(r[0]),r[1]));return}else return Qn.fromString(r[0]);V(this,Ge,new rn(r[0],r[1]))}isIdentical(r){let n=r.as(Qn);return!!n&&R(this,Ge).isIdentical(R(n,Ge))}invert(){return $2(this,new Qn(R(this,Ge).quantum,-this.amount))}*experimentalExpand(r=1){r===1?yield this:yield this.modified({amount:-this.amount})}get quantum(){return R(this,Ge).quantum}modified(r){return new Qn(R(this,Ge).quantum.modified(r),r.amount??this.amount)}static fromString(r){return Z2(r)}get amount(){return R(this,Ge).amount}get type(){return ti("deprecated: type"),"blockMove"}get family(){return R(this,Ge).quantum.family??void 0}get outerLayer(){return R(this,Ge).quantum.outerLayer??void 0}get innerLayer(){return R(this,Ge).quantum.innerLayer??void 0}toString(){if(this.family==="_SLASH_")return"/";if(this.family.endsWith("_PLUS_"))return R(this,Ge).quantum.toString().slice(0,-6)+Math.abs(this.amount)+(this.amount<0?"-":"+");if(this.family.endsWith("_PLUSPLUS_")){let r=Math.abs(this.amount);return R(this,Ge).quantum.toString().slice(0,-10)+(r===1?"":r)+(this.amount<0?"--":"++")}return R(this,Ge).quantum.toString()+R(this,Ge).suffix()}},B=Qn;Ge=new WeakMap});var ea,tf,at,li,Me,Hl=A(()=>{"use strict";Qt();lr();Kt();jt();$s();ea=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 _("U_SQ_")),this.quantumD_SQ_||(this.quantumD_SQ_=new _("D_SQ_"));let r=t.alg;if(r.experimentalNumChildAlgNodes()===2){let[n,l]=r.childAlgNodes();if(n.as(B)?.quantum.isIdentical(this.quantumU_SQ_)&&l.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,l]}}return null}},tf=new ea,li=class extends Te{constructor(r,n){super();Z(this,at,void 0);let l=Ar(r);V(this,at,new rn(l,n))}isIdentical(r){let n=r;return r.is(li)&&R(this,at).isIdentical(R(n,at))}get alg(){return R(this,at).quantum}get amount(){return R(this,at).amount}get experimentalRepetitionSuffix(){return R(this,at).suffix()}invert(){return new li(R(this,at).quantum,-R(this,at).amount)}*experimentalExpand(r=1,n){n??(n=1/0),n===0?yield r===1?this:this.invert():yield*R(this,at).experimentalExpand(r,n-1)}static fromString(){throw new Error("unimplemented")}toString(){return tf.format(this)??\`(\${R(this,at).quantum.toString()})\${R(this,at).suffix()}\`}experimentalAsSquare1Tuple(){return tf.tuple(this)}},Me=li;at=new WeakMap});var jn=A(()=>{"use strict";Hl();jl();On();Gn();jt();ql();Wn()});function wt(e,t){return e instanceof t}function rf(e){return wt(e,Me)||wt(e,Ft)||wt(e,Ne)||wt(e,Pe)||wt(e,B)||wt(e,$e)||wt(e,Ae)}var ta=A(()=>{"use strict";jn()});function nf(e,t,r){if(t.is(Me))return e.traverseGrouping(t,r);if(t.is(B))return e.traverseMove(t,r);if(t.is(Ne))return e.traverseCommutator(t,r);if(t.is(Pe))return e.traverseConjugate(t,r);if(t.is(Ae))return e.traversePause(t,r);if(t.is($e))return e.traverseNewline(t,r);if(t.is(Ft))return e.traverseLineComment(t,r);throw new Error("unknown AlgNode")}function lf(e){if(e.is(Me)||e.is(B)||e.is(Ne)||e.is(Pe)||e.is(Ae)||e.is($e)||e.is(Ft))return e;throw new Error("internal error: expected AlgNode")}function kt(e,t){let r=new e(...t??[]);return r.traverseAlg.bind(r)}var xr,nn,ra=A(()=>{"use strict";On();Gn();Hl();jl();jt();ql();Wn();xr=class{traverseAlgNode(t,r){return nf(this,t,r)}traverseIntoAlgNode(t,r){return lf(this.traverseAlgNode(t,r))}},nn=class extends xr{traverseAlgNode(t){return nf(this,t,void 0)}traverseIntoAlgNode(t){return lf(this.traverseAlgNode(t))}}});var gL,qn,na=A(()=>{"use strict";gL="any-direction",qn=class{constructor(t={}){this.config=t}cancelQuantum(){let{cancel:t}=this.config;return t===!0?gL:t===!1?"none":t?.directional??"none"}cancelAny(){return this.config.cancel&&this.cancelQuantum()!=="none"}cancelPuzzleSpecificModWrap(){let{cancel:t}=this.config;return t===!0||t===!1?"canonical-centered":t?.puzzleSpecificModWrap?t?.puzzleSpecificModWrap:t?.directional==="same-direction"?"preserve-sign":"canonical-centered"}puzzleSpecificSimplifyOptions(){return this.config.puzzleLoader?.puzzleSpecificSimplifyOptions??this.config.puzzleSpecificSimplifyOptions}}});function cL(e,t){return e*Math.sign(t.amount)>=0}function pL(e,t,r){return((e-r)%t+t)%t+r}function la(e,t,r){let n=new qn(r),l=Array.from(e.childAlgNodes()),o=[t];function i(){return new E([...l,...o])}function s(a){if(n.cancelPuzzleSpecificModWrap()==="none")return a;let f=n.puzzleSpecificSimplifyOptions()?.quantumMoveOrder;if(!f)return a;let g=f(t.quantum),u;switch(n.cancelPuzzleSpecificModWrap()){case"gravity":{u=-Math.floor((g-(a.amount<0?0:1))/2);break}case"canonical-centered":{u=-Math.floor((g-1)/2);break}case"canonical-positive":{u=0;break}case"preserve-sign":{u=a.amount<0?1-g:0;break}default:throw new Error("Unknown mod wrap")}let c=pL(a.amount,g,u);return a.modified({amount:c})}if(n.cancelAny()){let a,f=n.puzzleSpecificSimplifyOptions()?.axis;if(f)a=L=>f.areQuantumMovesSameAxis(t.quantum,L.quantum);else{let L=t.quantum.toString();a=m=>m.quantum.toString()===L}let g=n.cancelQuantum()==="same-direction",u=new Map;u.set(t.quantum.toString(),Math.sign(t.amount));let c;for(c=l.length-1;c>=0;c--){let L=l[c].as(B);if(!L||!a(L))break;let m=L.quantum.toString();if(g){let d=u.get(m);if(d&&!cL(d,L))break;u.set(m,Math.sign(L.amount))}}let p=[...l.splice(c+1),t];if(f)o=f.simplifySameAxisMoves(p,n.cancelPuzzleSpecificModWrap()!=="none");else{let L=p.reduce((m,d)=>m+d.amount,0);if(u.size!==1)throw new Error("Internal error: multiple quantums when one was expected");o=[new B(t.quantum,L)]}}return o=o.map(a=>s(a)).filter(a=>a.amount!==0),i()}function oa(e,t,r){let n=t.as(B);return n?la(e,n,r):new E([...e.childAlgNodes(),t])}var ia=A(()=>{"use strict";Qt();jt();na()});var oi,Jl,aa,ln,Xl,Zl,fa,sa,ua,of=A(()=>{"use strict";Qt();On();Gn();Hl();jt();Wn();ra();ia();na();sa=class extends xr{constructor(){super(...arguments);Z(this,Jl);Z(this,ln);Z(this,Zl);Z(this,oi,void 0)}*traverseAlg(r,n){if(n.depth===0){yield*r.childAlgNodes();return}let l=[],o=nr(this,ln,Xl).call(this,n);for(let i of r.childAlgNodes())for(let s of this.traverseAlgNode(i,o))l=Array.from(oa(new E(l),s,o).childAlgNodes());for(let i of l)yield i}*traverseGrouping(r,n){if(n.depth===0){yield r;return}if(r.amount===0)return;let l=new Me(this.traverseAlg(r.alg,nr(this,ln,Xl).call(this,n)),r.amount);if(l.alg.experimentalIsEmpty())return;let o=nr(this,Jl,aa).call(this).get(r);o&&(l.experimentalNISSPlaceholder=o,o.experimentalNISSGrouping=l),yield l}*traverseMove(r,n){yield r}*traverseCommutator(r,n){if(n.depth===0){yield r;return}let l=nr(this,ln,Xl).call(this,n),o=new Ne(this.traverseAlg(r.A,l),this.traverseAlg(r.B,l));o.A.experimentalIsEmpty()||o.B.experimentalIsEmpty()||o.A.isIdentical(o.B)||o.A.isIdentical(o.B.invert())||nr(this,Zl,fa).call(this,o.A,o.B,n)||(yield o)}*traverseConjugate(r,n){if(n.depth===0){yield r;return}let l=nr(this,ln,Xl).call(this,n),o=new Pe(this.traverseAlg(r.A,l),this.traverseAlg(r.B,l));if(!o.B.experimentalIsEmpty()){if(o.A.experimentalIsEmpty()||o.A.isIdentical(o.B)||o.A.isIdentical(o.B.invert())||nr(this,Zl,fa).call(this,o.A,o.B,n)){yield*r.B.childAlgNodes();return}yield o}}*traversePause(r,n){if(r.experimentalNISSGrouping){let l=new Ae;nr(this,Jl,aa).call(this).set(r.experimentalNISSGrouping,l),yield l}else yield r}*traverseNewline(r,n){yield r}*traverseLineComment(r,n){yield r}};oi=new WeakMap,Jl=new WeakSet,aa=function(){return R(this,oi)??V(this,oi,new Map)},ln=new WeakSet,Xl=function(r){return{...r,depth:r.depth?r.depth-1:null}},Zl=new WeakSet,fa=function(r,n,l){if(r.experimentalNumChildAlgNodes()===1&&n.experimentalNumChildAlgNodes()===1){let o=Array.from(r.childAlgNodes())[0]?.as(B),i=Array.from(n.childAlgNodes())[0]?.as(B);if(!(o&&i))return!1;if(i.quantum.isIdentical(o.quantum)||new qn(l).puzzleSpecificSimplifyOptions()?.axis?.areQuantumMovesSameAxis(o.quantum,i.quantum))return!0}return!1};ua=kt(sa)});var ga=A(()=>{"use strict";of();ia()});function sf(e){if(!e)return[];if(wt(e,E))return e.childAlgNodes();if(typeof e=="string")return Js(e).childAlgNodes();let t=e;if(typeof t[Symbol.iterator]=="function")return t;throw new Error("Invalid AlgNode")}function Ar(e){return wt(e,E)?e:new E(e)}function mL(e,t){return e.is($e)||t.is($e)||t.as(Me)?.experimentalNISSPlaceholder?"":e.is(Ft)&&!t.is($e)?\`
|
|
6
|
+
\`:" "}var ft,on,E,Qt=A(()=>{"use strict";lr();ta();Kt();Zs();ga();jn();jl();jt();ql();Ys();on=class extends Te{constructor(r){super();Z(this,ft,void 0);V(this,ft,Array.from(sf(r)));for(let n of R(this,ft))if(!rf(n))throw new Error("An alg can only contain alg nodes.")}isIdentical(r){let n=r;if(!r.is(on))return!1;let l=Array.from(R(this,ft)),o=Array.from(R(n,ft));if(l.length!==o.length)return!1;for(let i=0;i<l.length;i++)if(!l[i].isIdentical(o[i]))return!1;return!0}invert(){return new on(H2(Array.from(R(this,ft)).map(r=>r.invert())))}*experimentalExpand(r=1,n){n??(n=1/0);for(let l of V2(R(this,ft),r))yield*l.experimentalExpand(r,n)}expand(r){return new on(this.experimentalExpand(1,r?.depth??1/0))}*experimentalLeafMoves(){for(let r of this.experimentalExpand())r.is(B)&&(yield r)}concat(r){return new on(Array.from(R(this,ft)).concat(Array.from(sf(r))))}experimentalIsEmpty(){for(let r of R(this,ft))return!1;return!0}static fromString(r){return Js(r)}units(){return this.childAlgNodes()}*childAlgNodes(){for(let r of R(this,ft))yield r}experimentalNumUnits(){return this.experimentalNumChildAlgNodes()}experimentalNumChildAlgNodes(){return Array.from(R(this,ft)).length}get type(){return ti("deprecated: type"),"sequence"}toString(){let r="",n=null;for(let l of R(this,ft)){n&&(r+=mL(n,l));let o=l.as(Ae)?.experimentalNISSGrouping;if(o){if(o.amount!==-1)throw new Error("Invalid NISS Grouping amount!");r+=\`^(\${o.alg.toString()})\`}else l.as(Me)?.experimentalNISSPlaceholder||(r+=l.toString());n=l}return r}experimentalSimplify(r){return new on(ua(this,r??{}))}simplify(r){return this.experimentalSimplify(r)}},E=on;ft=new WeakMap});var LL,af=A(()=>{"use strict";Qt();jn();On();Gn();jt();Wn();LL={Sune:new E([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 E([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 E([new Ne(new E([new B("R",1),new B("U",1),new B("R",-2)]),new E([new Pe(new E([new B("R",1)]),new E([new B("U",1)]))]))]),Niklas:new E([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 E([new B("x",-1),new Ne(new E([new Pe(new E([new B("R",1)]),new E([new B("U",-1)]))]),new E([new B("D",1)])),new Ne(new E([new Pe(new E([new B("R",1)]),new E([new B("U",1)]))]),new E([new B("D",1)])),new B("x",1)]),FURURFCompact:new E([new Pe(new E([new B("F",1)]),new E([new Ne(new E([new B("U",1)]),new E([new B("R",1)]))]))]),APermCompact:new E([new Pe(new E([new B("R",2)]),new E([new Ne(new E([new B("F",2)]),new E([new B("R",-1),new B("B",-1),new B("R",1)]))]))]),FURURFMoves:new E([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 E([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 E([new Pe(new E([new B("F",1)]),new E([new Me(new E([new Ne(new E([new B("R",1)]),new E([new B("U",1)]))]),3)]))]),TriplePause:new E([new Ae,new Ae,new Ae])}});var mA,ff=A(()=>{"use strict";jn();jt();mA={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'"),192:new Ae}});var uf=A(()=>{"use strict"});var fe=A(()=>{"use strict";Qt();Vs();ra();af();ff();jn();uf();ga();ta();Hs()});function $l(e,t,r){let n={};for(let l in e.orbits){let o=e.orbits[l],i=t[l],s=r[l];if(Yl(o.numOrientations,s))n[l]=i;else if(Yl(o.numOrientations,i))n[l]=s;else{let a=new Array(o.numPieces);if(o.numOrientations===1){for(let f=0;f<o.numPieces;f++)a[f]=i.permutation[s.permutation[f]];n[l]={permutation:a,orientation:i.orientation}}else{let f=new Array(o.numPieces);for(let g=0;g<o.numPieces;g++)f[g]=(i.orientation[s.permutation[g]]+s.orientation[g])%o.numOrientations,a[g]=i.permutation[s.permutation[g]];n[l]={permutation:a,orientation:f}}}}return n}function ca(e,t,r){let n={};for(let l in e.orbits){let o=e.orbits[l],i=t[l],s=r[l];if(Yl(o.numOrientations,s))n[l]=i;else{let a=new Array(o.numPieces);if(o.numOrientations===1){for(let f=0;f<o.numPieces;f++)a[f]=i.pieces[s.permutation[f]];n[l]={pieces:a,orientation:i.orientation}}else{let f=new Array(o.numPieces);for(let g=0;g<o.numPieces;g++)f[g]=(i.orientation[s.permutation[g]]+s.orientation[g])%o.numOrientations,a[g]=i.pieces[s.permutation[g]];n[l]={pieces:a,orientation:f}}}}return n}var ii=A(()=>{"use strict";eo()});function BL(e){let t=gf.get(e);if(t)return t;let r=new Array(e),n=new Array(e);for(let o=0;o<e;o++)r[o]=o,n[o]=0;let l={permutation:r,orientation:n};return cf&&(Object.freeze(r),Object.freeze(n),Object.freeze(l)),gf.set(e,l),l}function pf(e){let t={};for(let[r,n]of Object.entries(e.orbits))t[r]=BL(n.numPieces);return cf&&Object.freeze(t),t}function mf(e,t){let r=t.quantum.toString(),n=e.definition.moves[r];if(!n){let i=e.definition.experimentalDerivedMoves?.[r];i&&(n=e.algToTransformation(i).transformationData)}if(n)return vr(e,n,t.amount);let l=e.definition.moves[t.toString()];if(l)return l;let o=e.definition.moves[t.invert().toString()];if(o)return vr(e,o,-1);throw new Error(\`Invalid move for KPuzzle (\${e.name()}): \${t}\`)}var cf,gf,pa=A(()=>{"use strict";eo();cf=!1,gf=new Map});var me,si=A(()=>{"use strict";ii();to();me=class{constructor(t,r){this.kpuzzle=t;this.stateData=r}toJSON(){return{experimentalPuzzleName:this.kpuzzle.name(),stateData:this.stateData}}static fromTransformation(t){let r=ca(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=ca(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 l={permutation:n.pieces,orientation:n.orientation};t[r]=l}return new yt(this.kpuzzle,t)}experimentalIsSolved(t){if(!this.kpuzzle.definition.experimentalIsStateSolved)throw new Error("\`KState.experimentalIsSolved()\` is not supported for this puzzle at the moment.");return this.kpuzzle.definition.experimentalIsStateSolved(this,t)}}});var sn,Ur,yt,to=A(()=>{"use strict";eo();ii();pa();si();Ur=class{constructor(t,r){this.kpuzzle=t;this.transformationData=r;Z(this,sn,void 0)}toJSON(){return{experimentalPuzzleName:this.kpuzzle.name(),transformationData:this.transformationData}}invert(){return new Ur(this.kpuzzle,ma(this.kpuzzle,this.transformationData))}isIdentityTransformation(){return R(this,sn)??V(this,sn,this.isIdentical(this.kpuzzle.identityTransformation()))}static experimentalConstructIdentity(t){let r=new Ur(t,pf(t.definition));return V(r,sn,!0),r}isIdentical(t){return Lf(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 R(this,sn)?new Ur(this.kpuzzle,t.transformationData):R(t,sn)?new Ur(this.kpuzzle,this.transformationData):new Ur(this.kpuzzle,$l(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 Bf(this.kpuzzle.definition,this)}selfMultiply(t){return new Ur(this.kpuzzle,vr(this.kpuzzle,this.transformationData,t))}},yt=Ur;sn=new WeakMap});function Yl(e,t){let{permutation:r}=t,n=r.length;for(let l=0;l<n;l++)if(r[l]!==l)return!1;if(e>1){let{orientation:l}=t;for(let o=0;o<n;o++)if(l[o]!==0)return!1}return!0}function dL(e,t,r,n={}){for(let l=0;l<e.numPieces;l++)if(!n?.ignoreOrientation&&t.orientation[l]!==r.orientation[l]||!n?.ignorePermutation&&t.permutation[l]!==r.permutation[l])return!1;return!0}function Lf(e,t,r){for(let[n,l]of Object.entries(e.definition.orbits))if(!dL(l,t[n],r[n]))return!1;return!0}function ma(e,t){let r={};for(let n in e.definition.orbits){let l=e.definition.orbits[n],o=t[n];if(Yl(l.numOrientations,o))r[n]=o;else if(l.numOrientations===1){let i=new Array(l.numPieces);for(let s=0;s<l.numPieces;s++)i[o.permutation[s]]=s;r[n]={permutation:i,orientation:o.orientation}}else{let i=new Array(l.numPieces),s=new Array(l.numPieces);for(let a=0;a<l.numPieces;a++){let f=o.permutation[a];i[f]=a,s[f]=(l.numOrientations-o.orientation[a]+l.numOrientations)%l.numOrientations}r[n]={permutation:i,orientation:s}}}return r}function vr(e,t,r){if(r===1)return t;if(r<0)return vr(e,ma(e,t),-r);if(r===0){let{transformationData:o}=e.identityTransformation();return o}let n=t;r!==2&&(n=vr(e,t,Math.floor(r/2)));let l=$l(e.definition,n,n);return r%2===0?l:$l(e.definition,t,l)}function Ba(e,t){return t?Ba(t,e%t):e}function Bf(e,t){let r=1;for(let n in e.orbits){let l=e.orbits[n],o=t.transformationData[n],i=new Array(l.numPieces);for(let s=0;s<l.numPieces;s++)if(!i[s]){let a=s,f=0,g=0;for(;i[a]=!0,f=f+o.orientation[a],g=g+1,a=o.permutation[a],a!==s;);f!==0&&(g=g*l.numOrientations/Ba(l.numOrientations,Math.abs(f))),r=r*g/Ba(r,g)}}return r}var La,df,eo=A(()=>{"use strict";fe();fe();ii();to();La=class extends xr{traverseAlg(t,r){let n=null;for(let l of t.childAlgNodes())n?n=n.applyTransformation(this.traverseAlgNode(l,r)):n=this.traverseAlgNode(l,r);return n??r.identityTransformation()}traverseGrouping(t,r){let n=this.traverseAlg(t.alg,r);return new yt(r,vr(r,n.transformationData,t.amount))}traverseMove(t,r){return r.moveToTransformation(t)}traverseCommutator(t,r){let n=this.traverseAlg(t.A,r),l=this.traverseAlg(t.B,r);return n.applyTransformation(l).applyTransformation(n.invert()).applyTransformation(l.invert())}traverseConjugate(t,r){let n=this.traverseAlg(t.A,r),l=this.traverseAlg(t.B,r);return n.applyTransformation(l).applyTransformation(n.invert())}traversePause(t,r){return r.identityTransformation()}traverseNewline(t,r){return r.identityTransformation()}traverseLineComment(t,r){return r.identityTransformation()}},df=kt(La)});var Vn,ai,Fe,Rf=A(()=>{"use strict";fe();eo();pa();si();to();Fe=class{constructor(t,r){this.definition=t;Z(this,Vn,new Map);Z(this,ai,void 0);this.experimentalPGNotation=r?.experimentalPGNotation}name(){return this.definition.name}identityTransformation(){return yt.experimentalConstructIdentity(this)}moveToTransformation(t){typeof t=="string"&&(t=new B(t));let r=t.toString(),n=R(this,Vn).get(r);if(n)return new yt(this,n);if(this.experimentalPGNotation){let o=this.experimentalPGNotation.lookupMove(t);if(!o)throw new Error(\`could not map to internal move: \${t}\`);return R(this,Vn).set(r,o),new yt(this,o)}let l=mf(this,t);return R(this,Vn).set(r,l),new yt(this,l)}algToTransformation(t){return typeof t=="string"&&(t=new E(t)),df(t,this)}toTransformation(t){return typeof t=="string"?this.algToTransformation(t):t?.is?.(E)?this.algToTransformation(t):t?.is?.(B)?this.moveToTransformation(t):t}startState(){return new me(this,this.definition.startStateData)}canConvertStateToUniqueTransformation(){return R(this,ai)??V(this,ai,(()=>{for(let[t,r]of Object.entries(this.definition.orbits)){let n=new Array(r.numPieces).fill(!1);for(let l of this.definition.startStateData[t].pieces)n[l]=!0;for(let l of n)if(!l)return!1}return!0})())}};Vn=new WeakMap,ai=new WeakMap});var We=A(()=>{"use strict";Rf();si();to()});var hf,RL,Df=A(()=>{"use strict";hf={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"}},RL={...hf,fto:{puzzleID:"fto",eventName:"Face-Turning Octahedron"},master_tetraminx:{puzzleID:"master_tetraminx",eventName:"Master Tetraminx"},kilominx:{puzzleID:"kilominx",eventName:"Kilominx"},redi_cube:{puzzleID:"redi_cube",eventName:"Redi Cube"}}});function Ff(e){return hL[e]}var ir,qt,Je,Hn,fi,an,hL,Xn,Jn,ro=A(()=>{"use strict";ir=class{constructor(t,r){this.stickerings=new Map;for(let[n,l]of Object.entries(t.definition.orbits))this.stickerings.set(n,new Array(l.numPieces).fill(r))}},qt="regular",Je="ignored",Hn="oriented",fi="invisible",an="dim",hL={["Regular"]:{facelets:[qt,qt,qt,qt,qt]},["Ignored"]:{facelets:[Je,Je,Je,Je,Je]},["OrientationStickers"]:{facelets:[Hn,Hn,Hn,Hn,Hn]},["IgnoreNonPrimary"]:{facelets:[qt,Je,Je,Je,Je]},["Invisible"]:{facelets:[fi,fi,fi,fi]},["PermuteNonPrimary"]:{facelets:[an,qt,qt,qt,qt]},["Dim"]:{facelets:[an,an,an,an,an]},["Ignoriented"]:{facelets:[an,Je,Je,Je,Je]},["OrientationWithoutPermutation"]:{facelets:[Hn,Je,Je,Je,Je]}};Xn=class extends ir{constructor(t){super(t,"Regular")}set(t,r){for(let[n,l]of this.stickerings.entries())for(let o=0;o<l.length;o++)t.stickerings.get(n)[o]&&(l[o]=r);return this}toStickeringMask(){let t={orbits:{}};for(let[r,n]of this.stickerings.entries()){let l=[],o={pieces:l};t.orbits[r]=o;for(let i of n)l.push(Ff(i))}return t}},Jn=class{constructor(t){this.kpuzzle=t}and(t){let r=new ir(this.kpuzzle,!1);for(let[n,l]of Object.entries(this.kpuzzle.definition.orbits)){e:for(let o=0;o<l.numPieces;o++){r.stickerings.get(n)[o]=!0;for(let i of t)if(!i.stickerings.get(n)[o]){r.stickerings.get(n)[o]=!1;continue e}}}return r}or(t){let r=new ir(this.kpuzzle,!1);for(let[n,l]of Object.entries(this.kpuzzle.definition.orbits)){e:for(let o=0;o<l.numPieces;o++){r.stickerings.get(n)[o]=!1;for(let i of t)if(i.stickerings.get(n)[o]){r.stickerings.get(n)[o]=!0;continue e}}}return r}not(t){let r=new ir(this.kpuzzle,!1);for(let[n,l]of Object.entries(this.kpuzzle.definition.orbits))for(let o=0;o<l.numPieces;o++)r.stickerings.get(n)[o]=!t.stickerings.get(n)[o];return r}all(){return this.and(this.moves([]))}move(t){let r=this.kpuzzle.moveToTransformation(t),n=new ir(this.kpuzzle,!1);for(let[l,o]of Object.entries(this.kpuzzle.definition.orbits))for(let i=0;i<o.numPieces;i++)(r.transformationData[l].permutation[i]!==i||r.transformationData[l].orientation[i]!==0)&&(n.stickerings.get(l)[i]=!0);return n}moves(t){return t.map(r=>this.move(r))}orbits(t){let r=new ir(this.kpuzzle,!1);for(let n of t)r.stickerings.get(n).fill(!0);return r}orbitPrefix(t){let r=new ir(this.kpuzzle,!1);for(let n in this.kpuzzle.definition.orbits)n.startsWith(t)&&r.stickerings.get(n).fill(!0);return r}}});var da,Ra=A(()=>{"use strict";da={full:{groups:{"3x3x3":"Stickering"}},OLL:{groups:{"3x3x3":"Last Layer"}},PLL:{groups:{"3x3x3":"Last Layer"}},LL:{groups:{"3x3x3":"Last Layer"}},EOLL:{groups:{"3x3x3":"Last Layer"}},COLL:{groups:{"3x3x3":"Last Layer"}},OCLL:{groups:{"3x3x3":"Last Layer"}},CLL:{groups:{"3x3x3":"Last Layer"}},ELL:{groups:{"3x3x3":"Last Layer"}},ZBLL:{groups:{"3x3x3":"Last Layer"}},LS:{groups:{"3x3x3":"Last Slot"}},ELS:{groups:{"3x3x3":"Last Slot"}},CLS:{groups:{"3x3x3":"Last Slot"}},ZBLS:{groups:{"3x3x3":"Last Slot"}},VLS:{groups:{"3x3x3":"Last Slot"}},WVLS:{groups:{"3x3x3":"Last Slot"}},F2L:{groups:{"3x3x3":"CFOP (Fridrich)"}},Daisy:{groups:{"3x3x3":"CFOP (Fridrich)"}},Cross:{groups:{"3x3x3":"CFOP (Fridrich)"}},EO:{groups:{"3x3x3":"ZZ"}},EOline:{groups:{"3x3x3":"ZZ"}},EOcross:{groups:{"3x3x3":"ZZ"}},CMLL:{groups:{"3x3x3":"Roux"}},L10P:{groups:{"3x3x3":"Roux"}},L6E:{groups:{"3x3x3":"Roux"}},L6EO:{groups:{"3x3x3":"Roux"}},"2x2x2":{groups:{"3x3x3":"Petrus"}},"2x2x3":{groups:{"3x3x3":"Petrus"}},"Void Cube":{groups:{"3x3x3":"Miscellaneous"}},invisible:{groups:{"3x3x3":"Miscellaneous"}},picture:{groups:{"3x3x3":"Miscellaneous"}},"centers-only":{groups:{"3x3x3":"Miscellaneous"}},"experimental-centers-U":{},"experimental-centers-U-D":{},"experimental-centers-U-L-D":{},"experimental-centers-U-L-B-D":{},"experimental-centers":{},"experimental-fto-fc":{groups:{fto:"Bencisco"}},"experimental-fto-f2t":{groups:{fto:"Bencisco"}},"experimental-fto-sc":{groups:{fto:"Bencisco"}},"experimental-fto-l2c":{groups:{fto:"Bencisco"}},"experimental-fto-lbt":{groups:{fto:"Bencisco"}},"experimental-fto-l3t":{groups:{fto:"Bencisco"}}}});async function sr(e,t){let r=await e.kpuzzle(),n=new Xn(r),l=new Jn(r),o=()=>l.move("U"),i=()=>l.or(l.moves(["U","D"])),s=()=>l.or(l.moves(["L","R"])),a=()=>l.not(s()),f=()=>l.not(o()),g=()=>l.orbitPrefix("CENTER"),u=()=>l.orbitPrefix("EDGE"),c=()=>l.or([l.orbitPrefix("CORNER"),l.orbitPrefix("C4RNER"),l.orbitPrefix("C5RNER")]),p=()=>l.or([a(),l.and([o(),u()])]),L=()=>l.and([o(),g()]),m=()=>l.and([l.and(l.moves(["F","R"])),u()]),d=()=>l.and([l.and(l.moves(["F","R"])),c(),l.not(o())]),D=()=>l.or([d(),m()]);function F(){n.set(f(),"Dim")}function S(){n.set(o(),"PermuteNonPrimary"),n.set(L(),"Dim")}function v(){n.set(o(),"IgnoreNonPrimary"),n.set(L(),"Regular")}function U(){n.set(o(),"Ignoriented"),n.set(L(),"Dim")}switch(t){case"full":break;case"PLL":{F(),S();break}case"CLS":{F(),n.set(d(),"Regular"),n.set(o(),"Ignoriented"),n.set(l.and([o(),g()]),"Dim"),n.set(l.and([o(),c()]),"IgnoreNonPrimary");break}case"OLL":{F(),v();break}case"EOLL":{F(),v(),n.set(l.and([o(),c()]),"Ignored");break}case"COLL":{F(),n.set(l.and([o(),u()]),"Ignoriented"),n.set(l.and([o(),g()]),"Dim"),n.set(l.and([o(),c()]),"Regular");break}case"OCLL":{F(),U(),n.set(l.and([o(),c()]),"IgnoreNonPrimary");break}case"CLL":{F(),n.set(l.not(l.and([c(),o()])),"Dim");break}case"ELL":{F(),n.set(o(),"Dim"),n.set(l.and([o(),u()]),"Regular");break}case"ELS":{F(),v(),n.set(l.and([o(),c()]),"Ignored"),n.set(m(),"Regular"),n.set(d(),"Ignored");break}case"LL":{F();break}case"F2L":{n.set(o(),"Ignored");break}case"ZBLL":{F(),n.set(o(),"PermuteNonPrimary"),n.set(L(),"Dim"),n.set(l.and([o(),c()]),"Regular");break}case"ZBLS":{F(),n.set(D(),"Regular"),v(),n.set(l.and([o(),c()]),"Ignored");break}case"VLS":{F(),n.set(D(),"Regular"),v();break}case"WVLS":{F(),n.set(D(),"Regular"),n.set(l.and([o(),u()]),"Ignoriented"),n.set(l.and([o(),g()]),"Dim"),n.set(l.and([o(),c()]),"IgnoreNonPrimary");break}case"LS":{F(),n.set(D(),"Regular"),n.set(o(),"Ignored"),n.set(L(),"Dim");break}case"EO":{n.set(c(),"Ignored"),n.set(u(),"OrientationWithoutPermutation");break}case"EOline":{n.set(c(),"Ignored"),n.set(u(),"OrientationWithoutPermutation"),n.set(l.and(l.moves(["D","M"])),"Regular");break}case"EOcross":{n.set(u(),"OrientationWithoutPermutation"),n.set(l.move("D"),"Regular"),n.set(c(),"Ignored");break}case"CMLL":{n.set(f(),"Dim"),n.set(p(),"Ignored"),n.set(l.and([o(),c()]),"Regular");break}case"L10P":{n.set(l.not(p()),"Dim"),n.set(l.and([c(),o()]),"Regular");break}case"L6E":{n.set(l.not(p()),"Dim");break}case"L6EO":{n.set(l.not(p()),"Dim"),n.set(p(),"OrientationWithoutPermutation"),n.set(l.and([g(),i()]),"OrientationStickers");break}case"Daisy":{n.set(l.all(),"Ignored"),n.set(g(),"Dim"),n.set(l.and([l.move("D"),g()]),"Regular"),n.set(l.and([l.move("U"),u()]),"IgnoreNonPrimary");break}case"Cross":{n.set(l.all(),"Ignored"),n.set(g(),"Dim"),n.set(l.and([l.move("D"),g()]),"Regular"),n.set(l.and([l.move("D"),u()]),"Regular");break}case"2x2x2":{n.set(l.or(l.moves(["U","F","R"])),"Ignored"),n.set(l.and([l.or(l.moves(["U","F","R"])),g()]),"Dim");break}case"2x2x3":{n.set(l.all(),"Dim"),n.set(l.or(l.moves(["U","F","R"])),"Ignored"),n.set(l.and([l.or(l.moves(["U","F","R"])),g()]),"Dim"),n.set(l.and([l.move("F"),l.not(l.or(l.moves(["U","R"])))]),"Regular");break}case"Void Cube":{n.set(g(),"Invisible");break}case"picture":case"invisible":{n.set(l.all(),"Invisible");break}case"centers-only":{n.set(l.not(g()),"Ignored");break}default:console.warn(\`Unsupported stickering for \${e.id}: \${t}. Setting all pieces to dim.\`),n.set(l.and(l.moves([])),"Dim")}return n.toStickeringMask()}async function Zn(){let e=[];for(let[t,r]of Object.entries(da))r.groups&&"3x3x3"in r.groups&&e.push(t);return e}var no=A(()=>{"use strict";ro();Ra()});function pe(e){let t=null;return()=>t??(t=e())}var At=A(()=>{"use strict"});function Ke(e){return new ar(t=>{t(e())})}var ar,_t=A(()=>{"use strict";ar=class extends Promise{constructor(t){super(r=>{r()}),this._executor=t}static from(t){return new ar(r=>{r(t())})}static resolve(t){return new ar(r=>{r(t)})}static reject(t){return new ar((r,n)=>{n(t)})}then(t,r){return this._promise=this._promise||new Promise(this._executor),this._promise.then(t,r)}catch(t){return this._promise=this._promise||new Promise(this._executor),this._promise.catch(t)}}});var Yn,Af=A(()=>{"use strict";Yn=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 l=0;this.prefixFree&&l<t.length;l++)n!==l&&t[n].startsWith(t[l])&&(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 l=-1;for(let o=0;o<this.facenames.length;o++)t.substr(n).startsWith(this.facenames[o])&&(l<0||this.facenames[o].length>this.facenames[l].length)&&(l=o);if(l>=0)r.push(l),n+=this.facenames[l].length;else throw new Error(\`Could not split \${t} into face names.\`)}return r}joinByFaceIndices(t){let r="",n=[];for(let l=0;l<t.length;l++)n.push(r),n.push(this.facenames[t[l]]),this.prefixFree||(r="_");return n.join("")}spinmatch(t,r){if(t===r)return!0;try{let n=this.splitByFaceNames(t),l=this.splitByFaceNames(r);if(n.length!==l.length&&n.length<3)return!1;for(let o=0;o<n.length;o++){for(let s=0;s<o;s++)if(n[o]===n[s])return!1;let i=!1;for(let s=0;s<l.length;s++)if(n[o]===l[s]){i=!0;break}if(!i)return!1}return!0}catch{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 l=this.gripnames[n];if(this.spinmatch(r,l))return l}return t}}});var fn,Sf=A(()=>{"use strict";fn=class{notationToInternal(t){return t}notationToExternal(t){return t}}});var lo,xf=A(()=>{"use strict";fe();lo=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 _("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 _("T",t.innerLayer,t.outerLayer),t.amount):this.child.notationToExternal(t)}}});var $n,vf=A(()=>{"use strict";fe();$n=class{constructor(t,r){this.internalNames=t;this.externalNames=r}convertString(t,r,n){let l="";(t.endsWith("v")||t.endsWith("v"))&&t<="_"&&(l=t.slice(t.length-1),t=t.slice(0,t.length-1));let o=t.toUpperCase(),i=!1;return t!==o&&(i=!0,t=o),t=n.joinByFaceIndices(r.splitByFaceNames(t)),i&&(t=t.toLowerCase()),t+l}convert(t,r,n){let l=t.family,o=this.convertString(l,r,n);return l===o?t:new B(new _(o,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 oo,Uf=A(()=>{"use strict";fe();oo=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 _("L",3,2),-2*t.amount);if(t.family==="R--")return new B(new _("L",3,2),2*t.amount);if(t.family==="D++")return new B(new _("U",3,2),-2*t.amount);if(t.family==="D--")return new B(new _("U",3,2),2*t.amount);if(t.family==="R_PLUSPLUS_")return new B(new _("L",3,2),-2*t.amount);if(t.family==="D_PLUSPLUS_")return new B(new _("U",3,2),-2*t.amount)}if(t.family==="y")return new B("Uv",t.amount);if(t.family==="x"&&Math.abs(t.amount)===2)return new B("ERv",t.amount/2)}return this.child.notationToInternal(t)}notationToExternal(t){return t.family==="ERv"&&Math.abs(t.amount)===1?new B(new _("x",t.innerLayer,t.outerLayer),t.amount*2):t.family==="ILv"&&Math.abs(t.amount)===1?new B(new _("x",t.innerLayer,t.outerLayer),-t.amount*2):t.family==="Uv"?new B(new _("y",t.innerLayer,t.outerLayer),t.amount):t.family==="Dv"?new B("y",-t.amount):this.child.notationToExternal(t)}}});var io,bf=A(()=>{"use strict";fe();io=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 _("D",(this.slices+1)/2),t.amount):r==="M"?t=new B(new _("L",(this.slices+1)/2),t.amount):r==="S"&&(t=new B(new _("F",(this.slices+1)/2),t.amount))),this.slices>2&&(r==="e"?t=new B(new _("D",this.slices-1,2),t.amount):r==="m"?t=new B(new _("L",this.slices-1,2),t.amount):r==="s"&&(t=new B(new _("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 DL,FL,Ef,wf,kf,el,so,_f=A(()=>{"use strict";fe();DL={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"},FL={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"},Ef={U:"FRL",L:"FLD",R:"FDR",B:"DLR"},wf=new _("y"),kf=new _("Dv"),el=class{constructor(t){this.child=t;this.wcaHack=!1;this.map=DL}notationToInternal(t){if(this.wcaHack&&t.innerLayer===2&&t.outerLayer===null){let n=Ef[t.family];if(n)return new B(new _(n,t.innerLayer,t.outerLayer),t.amount)}let r=this.map[t.family];return r?new B(new _(r,t.innerLayer,t.outerLayer),t.amount):wf.isIdentical(t.quantum)?new B(kf,-t.amount):null}notationToExternal(t){if(this.wcaHack&&t.innerLayer===2&&t.outerLayer===null){for(let[r,n]of Object.entries(Ef))if(this.child.spinmatch(t.family,n))return new B(new _(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 _(r,t.innerLayer,t.outerLayer),t.amount);return kf.isIdentical(t.quantum)?new B(wf,-t.amount):null}},so=class extends el{constructor(r){super(r);this.wcaHack=!0;this.map=FL}}});var zf,ha,Cf,yL,Da,Nf,AL,Fa,Pf,SL,ao,Mf=A(()=>{"use strict";fe();zf={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"},ha=new _("x"),Cf=new _("Rv"),yL=new _("Lv"),Da=new _("y"),Nf=new _("Uv"),AL=new _("Dv"),Fa=new _("z"),Pf=new _("Fv"),SL=new _("Bv"),ao=class{constructor(t){this.child=t}notationToInternal(t){if(t.innerLayer||t.outerLayer)return null;let r=zf[t.family];return r?new B(new _(r,t.outerLayer,t.innerLayer),t.amount):ha.isIdentical(t.quantum)?new B(Cf,t.amount):Da.isIdentical(t.quantum)?new B(Nf,t.amount):Fa.isIdentical(t.quantum)?new B(Pf,t.amount):null}notationToExternal(t){for(let[r,n]of Object.entries(zf))if(this.child.spinmatchv(t.family,n))return new B(new _(r,t.innerLayer,t.outerLayer),t.amount);return Cf.isIdentical(t.quantum)?new B(ha,t.amount):yL.isIdentical(t.quantum)?new B(ha,-t.amount):Nf.isIdentical(t.quantum)?new B(Da,t.amount):AL.isIdentical(t.quantum)?new B(Da,-t.amount):Pf.isIdentical(t.quantum)?new B(Fa,t.amount):SL.isIdentical(t.quantum)?new B(Fa,-t.amount):null}}});var ya=A(()=>{"use strict";Sf();xf();vf();Uf();bf();_f();Mf()});function Of(e){let t=0,r={};for(;t<e.length&&e[t][0]==="-";){let l=e[t++];if(l==="--rotations")r.addRotations=!0;else if(l==="--allmoves")r.allMoves=!0;else if(l==="--outerblockmoves")r.outerBlockMoves=!0;else if(l==="--vertexmoves")r.vertexMoves=!0;else if(l==="--nocorners")r.includeCornerOrbits=!1;else if(l==="--noedges")r.includeEdgeOrbits=!1;else if(l==="--noorientation")r.fixedOrientation=!0;else if(l==="--nocenters")r.includeCenterOrbits=!1;else if(l==="--omit")r.excludeOrbits=e[t].split(","),t++;else if(l==="--moves")r.moveList=e[t].split(","),t++;else if(l==="--optimize")r.optimizeOrbits=!0;else if(l==="--scramble")r.scrambleAmount=100;else if(l==="--fixcorner")r.fixedPieceType="v";else if(l==="--fixedge")r.fixedPieceType="e";else if(l==="--fixcenter")r.fixedPieceType="f";else if(l==="--orientcenters")r.orientCenters=!0;else if(l==="--puzzleorientation")r.puzzleOrientation=JSON.parse(e[t]),t++;else throw new Error(\`Bad option: \${l}\`)}return{puzzleDescription:fo(e.slice(t).join(" ")),options:r}}var ui,Aa=A(()=>{"use strict";uo();ui=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 br(e){if(!Sa[e]){let t=Array(e);for(let r=0;r<e;r++)t[r]=0;Sa[e]=t}return Sa[e]}function Vt(e){if(!xa[e]){let t=Array(e);for(let r=0;r<e;r++)t[r]=r;xa[e]=t}return xa[e]}function If(e){return new dt(Vt(e))}function Tf(e){let t=BigInt(1);for(;e>1;)t*=BigInt(e),e--;return t}function xL(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 va(e,t){return e/xL(e,t)*t}var Sa,xa,dt,gi=A(()=>{"use strict";Sa=[],xa=[];dt=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 dt(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 dt(r)}inv(){let t=Array(this.n);for(let r=0;r<this.n;r++)t[this.p[r]]=r;return new dt(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 l=new Array;for(let o=n;!r[o];o=this.p[o])l.push(1+o),r[o]=!0;t.push(\`(\${l.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 l=0;for(let o=n;!r[o];o=this.p[o])l++,r[o]=!0;t=va(t,l)}return t}}});function ci(e,t){let r=B.fromString(t),n=e.notationToExternal(r);return n===null||r===n?t:n.toString()}function Gf(e,t){let r=e.moveops.length;if(r>30)throw new Error("Canon info too big for bitmask");let n=[],l=[];for(let i=0;i<r;i++){let s=e.moveops[i];n.push(s.order());let a=0;for(let f=0;f<r;f++){if(f===i)continue;let g=e.moveops[f];s.mul(g).equal(g.mul(s))&&(a|=1<<f)}l.push(a)}let o={};o[0]=1;for(let i=0;i<100;i++){let s=0,a={},f=0;for(let g in o){let u=+g,c=o[u];s+=c,f++;for(let p=0;p<n.length;p++)if((u>>p&1)===0&&(u&l[p]&(1<<p)-1)===0){let L=u&l[p]|1<<p;a[L]===void 0&&(a[L]=0),a[L]+=(n[p]-1)*c}}t(\`\${i}: canonseq \${s} states \${f}\`),o=a}}var tl,vL,un,zt,Ht,pi,fr,gn,mi,Wf=A(()=>{"use strict";fe();ya();gi();tl=class{constructor(t,r){this.size=t;this.mod=r}reassemblySize(){return Tf(this.size)*BigInt(this.mod)**BigInt(this.size)}},vL=0;un=class{constructor(t,r,n,l,o,i,s){this.orbitnames=t;this.orbitdefs=r;this.solved=n;this.movenames=l;this.moveops=o;this.isRotation=i;this.forcenames=s}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 l=0;l<t.length;l++)n[t[l]]=r.orbits[l].toKPuzzle();return n}describeSet(t,r,n){let l=this.orbitdefs[t].size,o=new Array(l);for(let i=0;i<l;i++)o[i]=[];for(let i=0;i<this.movenames.length;i++){if(this.isRotation[i])continue;let s=this.movenames[i];this.forcenames[i]||(s=ci(n,s),s[s.length-1]==="'"&&(s=s.substring(0,s.length-1)));let a=this.moveops[i].orbits[t];for(let f=0;f<l;f++)(a.perm[f]!==f||a.ori[f]!==0)&&o[f].push(s)}for(let i=0;i<l;i++)r.push(\`# \${i+1} \${o[i].join(" ")}\`)}toKsolve(t,r=new fn){let n=[];n.push(\`Name \${t}\`),n.push("");for(let l=0;l<this.orbitnames.length;l++)n.push(\`Set \${this.orbitnames[l]} \${this.orbitdefs[l].size} \${this.orbitdefs[l].mod}\`),this.describeSet(l,n,r);n.push(""),n.push("Solved");for(let l=0;l<this.orbitnames.length;l++)this.solved.orbits[l].appendDefinition(n,this.orbitnames[l],!1,!1);n.push("End");for(let l=0;l<this.movenames.length;l++){n.push("");let o=this.movenames[l];this.forcenames[l]||(o=ci(r,this.movenames[l]));let i=!1;o[o.length-1]==="'"&&(i=!0,o=o.substring(0,o.length-1)),n.push(\`Move \${o}\`);for(let s=0;s<this.orbitnames.length;s++)i?this.moveops[l].orbits[s].inv().appendDefinition(n,this.orbitnames[s],!0):this.moveops[l].orbits[s].appendDefinition(n,this.orbitnames[s],!0);n.push("End")}return n}toKPuzzleDefinition(t){let r={},n={};for(let o=0;o<this.orbitnames.length;o++){r[this.orbitnames[o]]={numPieces:this.orbitdefs[o].size,numOrientations:this.orbitdefs[o].mod};let i=this.solved.orbits[o].toKPuzzle();n[this.orbitnames[o]]={pieces:i.permutation,orientation:i.orientation}}let l={};if(t)for(let o=0;o<this.movenames.length;o++)l[this.movenames[o]]=this.transformToKTransformationData(this.moveops[o]);return{name:\`PG3D #\${++vL}\`,orbits:r,startStateData:n,moves:l}}optimize(){let t=[],r=[],n=[],l=[];for(let o=0;o<this.moveops.length;o++)l.push([]);for(let o=0;o<this.orbitdefs.length;o++){let i=this.orbitdefs[o].mod,s=this.orbitdefs[o].size,a=new mi(s),f=new Array(this.orbitdefs[o].size);for(let p=0;p<s;p++)f[p]=!1;for(let p=0;p<this.moveops.length;p++)if(!this.isRotation[p])for(let L=0;L<s;L++)(this.moveops[p].orbits[o].perm[L]!==L||this.moveops[p].orbits[o].ori[L]!==0)&&(f[L]=!0,a.union(L,this.moveops[p].orbits[o].perm[L]));let g=!0;if(i>1){g=!1;let p=new mi(this.orbitdefs[o].size*i);for(let L=0;L<this.moveops.length;L++)for(let m=0;m<s;m++)if(this.moveops[L].orbits[o].perm[m]!==m||this.moveops[L].orbits[o].ori[m]!==0)for(let d=0;d<i;d++)p.union(m*i+d,this.moveops[L].orbits[o].perm[m]*i+(d+this.moveops[L].orbits[o].ori[m])%i);for(let L=0;!g&&L<s;L++)for(let m=1;m<i;m++)p.find(L*i)===p.find(L*i+m)&&(g=!0);for(let L=0;!g&&L<s;L++)for(let m=0;m<L;m++)this.solved.orbits[o].perm[L]===this.solved.orbits[o].perm[m]&&(g=!0)}let u=-1,c=!1;for(let p=0;p<this.orbitdefs[o].size;p++)if(f[p]){let L=a.find(p);u<0?u=L:u!==L&&(c=!0)}for(let p=0;p<this.orbitdefs[o].size;p++){if(!f[p]||a.find(p)!==p)continue;let m=[],d=[],D=0;for(let F=0;F<this.orbitdefs[o].size;F++)a.find(F)===p&&(m[D]=F,d[F]=D,D++);if(c?t.push(\`\${this.orbitnames[o]}_p\${p}\`):t.push(this.orbitnames[o]),g){r.push(new tl(D,this.orbitdefs[o].mod)),n.push(this.solved.orbits[o].remapVS(m,D));for(let F=0;F<this.moveops.length;F++)l[F].push(this.moveops[F].orbits[o].remap(m,d,D))}else{r.push(new tl(D,1)),n.push(this.solved.orbits[o].remapVS(m,D).killOri());for(let F=0;F<this.moveops.length;F++)l[F].push(this.moveops[F].orbits[o].remap(m,d,D).killOri())}}}return new un(t,r,new gn(n),this.movenames,l.map(o=>new fr(o)),this.isRotation,this.forcenames)}scramble(t){this.solved=this.solved.mul(this.getScrambleTransformation(t))}getScrambleTransformation(t){t<100&&(t=100);let r=[];for(let l=0;l<this.moveops.length;l++)r[l]=this.moveops[l];for(let l=0;l<r.length;l++){let o=Math.floor(Math.random()*r.length),i=r[l];r[l]=r[o],r[o]=i}t<r.length&&(t=r.length);for(let l=0;l<t;l++){let o=Math.floor(Math.random()*r.length),i=Math.floor(Math.random()*r.length),s=Math.floor(Math.random()*this.moveops.length);r[o]=r[o].mul(r[i]).mul(this.moveops[s]),Math.random()<.1&&(r[o]=r[o].mul(this.moveops[s]))}let n=r[0];for(let l=1;l<r.length;l++)n=n.mul(r[l]);return n}reassemblySize(){let t=BigInt(1);for(let r=0;r<this.orbitdefs.length;r++)t*=this.orbitdefs[r].reassemblySize();return t}},zt=class{constructor(t,r,n){this.perm=t;this.ori=r;this.orimod=n}static e(t,r){return new zt(Vt(t),br(t),r)}mul(t){let r=this.perm.length,n=new Array(r);if(this.orimod===1){for(let l=0;l<r;l++)n[l]=this.perm[t.perm[l]];return new zt(n,this.ori,this.orimod)}else{let l=new Array(r);for(let o=0;o<r;o++)n[o]=this.perm[t.perm[o]],l[o]=(this.ori[t.perm[o]]+t.ori[o])%this.orimod;return new zt(n,l,this.orimod)}}inv(){let t=this.perm.length,r=new Array(t),n=new Array(t);for(let l=0;l<t;l++)r[this.perm[l]]=l,n[this.perm[l]]=(this.orimod-this.ori[l])%this.orimod;return new zt(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 dt(this.perm);let r=this.perm.length,n=new Array(r*t);for(let l=0;l<r;l++)for(let o=0;o<t;o++)n[l*t+o]=t*this.perm[l]+(this.ori[l]+o)%t;return new dt(n)}identicalPieces(){let t=[],r=this.perm.length,n=[];for(let l=0;l<r;l++){let o=this.perm[l];if(t[o]===void 0){let i=[l];t[o]=!0;for(let s=l+1;s<r;s++)this.perm[s]===o&&i.push(s);n.push(i)}}return n}order(){return this.toPerm().order()}isIdentity(){let t=this.perm.length;if(this.perm===Vt(t)&&this.ori===br(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===br(t))return!0;for(let r=0;r<t;r++)if(this.ori[r]!==0)return!1;return!0}remap(t,r,n){let l=new Array(n),o=new Array(n);for(let i=0;i<n;i++)l[i]=r[this.perm[t[i]]],o[i]=this.ori[t[i]];return new zt(l,o,this.orimod)}remapVS(t,r){let n=new Array(r),l=new Array(r),o=0,i=[];for(let s=0;s<r;s++){let a=this.perm[t[s]];i[a]===void 0&&(i[a]=o++),n[s]=i[a],l[s]=this.ori[t[s]]}return new zt(n,l,this.orimod)}appendDefinition(t,r,n,l=!0){if(!(l&&this.isIdentity())&&(t.push(r),t.push(this.perm.map(o=>o+1).join(" ")),!this.zeroOris()))if(n){let o=new Array(this.ori.length);for(let i=0;i<o.length;i++)o[this.perm[i]]=this.ori[i];t.push(o.join(" "))}else t.push(this.ori.join(" "))}toKPuzzle(){let t=this.perm.length;return this.isIdentity()?(zt.kcache[t]||(zt.kcache[t]={permutation:Vt(t),orientation:br(t)}),zt.kcache[t]):{permutation:this.perm,orientation:this.ori}}},Ht=zt;Ht.kcache=[];pi=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 l of this.orbits){let o=l.toPerm();t.push(o),r+=o.n}let n=new Array(r);r=0;for(let l of t){for(let o=0;o<l.n;o++)n[r+o]=r+l.p[o];r+=l.n}return new dt(n)}identicalPieces(){let t=[],r=0;for(let n of this.orbits){let l=n.orimod,o=n.identicalPieces();for(let i=0;i<o.length;i++)t.push(o[i].map(s=>s*l+r));r+=l*n.perm.length}return t}order(){let t=1;for(let r of this.orbits)t=va(t,r.order());return t}},fr=class extends pi{constructor(t){super(t)}mul(t){return new fr(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,l=this.e();for(;t>0;)t&1&&(l=l.mul(n)),t>1&&(n=n.mul(n)),t>>=1;return l}inv(){return new fr(this.internalInv())}e(){return new fr(this.orbits.map(t=>Ht.e(t.perm.length,t.orimod)))}},gn=class extends pi{constructor(t){super(t)}mul(t){return new gn(this.internalMul(t))}},mi=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),l=this.find(r);n<l?this.heads[l]=n:n>l&&(this.heads[n]=l)}}});var Li,Kf=A(()=>{"use strict";Li={"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 Bi(e){let t=new W(0,0,0,0);for(let r=0;r<e.length;r++)t=t.sum(e[r]);return t.smul(1/e.length)}function Qf(e,t,r,n){let l=n[e].intersect3(n[t],n[r]);if(!l)return l;for(let o=0;o<n.length;o++)if(o!==e&&o!==t&&o!==r){let i=n[o].b*l.b+n[o].c*l.c+n[o].d*l.d;if(n[o].a>0&&i>n[o].a||n[o].a<0&&i<n[o].a)return!1}return l}var W,di=A(()=>{"use strict";W=class{constructor(t,r,n,l){this.a=t;this.b=r;this.c=n;this.d=l}mul(t){return new W(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 W(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 W(this.a/t,this.b/t,this.c/t,this.d/t)}makenormal(){return new W(0,this.b,this.c,this.d).normalize()}normalizeplane(){let t=Math.hypot(this.b,this.c,this.d);return new W(this.a/t,this.b/t,this.c/t,this.d/t)}smul(t){return new W(this.a*t,this.b*t,this.c*t,this.d*t)}sum(t){return new W(this.a+t.a,this.b+t.b,this.c+t.c,this.d+t.d)}sub(t){return new W(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 W(this.a,-this.b,-this.c,-this.d)}det3x3(t,r,n,l,o,i,s,a,f){return t*(o*f-i*a)+r*(i*s-l*f)+n*(l*a-o*s)}rotateplane(t){let r=t.mul(new W(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 W(0,1,0,0)).normalize():r<t&&r<n?this.cross(new W(0,0,1,0)).normalize():this.cross(new W(0,0,0,1)).normalize()}pointrotation(t){let r=this.normalize();if(t=t.normalize(),r.sub(t).len()<1e-9)return new W(1,0,0,0);let n=r.sum(t);n.len()<1e-9?n=n.orthogonal():n=n.normalize();let l=r.cross(n);return l.a=r.dot(n),l}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)<1e-9?!1:new W(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>1e-9?1:t<-1e-9?-1:0}cutface(t){let r=this.a,n=0,l=null;for(let o=0;o<t.length;o++)n|=1<<this.side(t[o].dot(this)-r)+1;if((n&5)===5){l=[];let o=t.map(i=>this.side(i.dot(this)-r));for(let i=-1;i<=1;i+=2){let s=[];for(let a=0;a<t.length;a++){(o[a]===i||o[a]===0)&&s.push(t[a]);let f=(a+1)%t.length;if(o[a]+o[f]===0&&o[a]!==0){let g=t[a].dot(this)-r,u=t[f].dot(this)-r,c=g/(g-u),p=t[a].smul(1-c).sum(t[f].smul(c));s.push(p)}}l.push(s)}}return l}cutfaces(t){let r=[];for(let n=0;n<t.length;n++){let l=t[n],o=this.cutface(l);o?(r.push(o[0]),r.push(o[1])):r.push(l)}return r}faceside(t){let r=this.a;for(let n=0;n<t.length;n++){let l=this.side(t[n].dot(this)-r);if(l!==0)return l}throw new Error("Could not determine side of plane in faceside")}sameplane(t){let r=this.normalize(),n=t.normalize();return r.dist(n)<1e-9||r.dist(n.smul(-1))<1e-9}makecut(t){return new W(t,this.b,this.c,this.d)}}});function jf(){let e=Math.sqrt(.5);return[new W(e,e,0,0),new W(e,0,e,0)]}function qf(){return[new W(.5,.5,.5,.5),new W(.5,.5,.5,-.5)]}function Vf(){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 W(Math.cos(e),t*Math.sin(e),r*Math.sin(e),0),new W(.5,.5,.5,.5)]}function Hf(){let e=.16666666666666666+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 W(Math.cos(n),e*Math.sin(n),t*Math.sin(n),0),new W(Math.cos(n),-e*Math.sin(n),t*Math.sin(n),0)]}function Xf(){let e=Math.sqrt(.5);return[new W(.5,.5,.5,.5),new W(e,0,0,e)]}function Jf(e){let t=[new W(1,0,0,0)];for(let r=0;r<t.length;r++)for(let n=0;n<e.length;n++){let l=e[n].mul(t[r]),o=l.smul(-1),i=!1;for(let s=0;s<t.length;s++)if(l.dist(t[s])<Ri||o.dist(t[s])<Ri){i=!0;break}i||t.push(l)}return t}function Ua(e,t){let r=[],n=[];for(let l=0;l<t.length;l++){let o=e.rotateplane(t[l]),i=!1;for(let s=0;s<r.length;s++)if(o.dist(r[s])<Ri){i=!0;break}i||(r.push(o),n.push(t[l]))}return n}function ba(e){let t=[];for(let r=1;r<e.length;r++)for(let n=r+1;n<e.length;n++){let l=Qf(0,r,n,e);if(l){let o=!1;for(let i=0;i<t.length;i++)if(l.dist(t[i])<Ri){o=!0;break}o||t.push(l)}}for(;;){let r=!1;for(let n=0;n<t.length;n++){let l=(n+1)%t.length;if(e[0].dot(t[n].cross(t[l]))<0){let o=t[n];t[n]=t[l],t[l]=o,r=!0}}if(!r)break}return t}var Ri,Zf=A(()=>{"use strict";di();Ri=1e-9});function hi(e,t){let r=e[0].p.length,n=If(r),l=[],o=[],i=[],s=[],a=[];function f(p){for(let L=p.p.length-1;L>=0;L--){let m=p.p[L];if(m!==L){if(!l[L][m])return!1;p=p.mul(o[L][m])}}return!0}function g(p,L,m){s[p].push(L),a[p].push(m);for(let d=0;d<l[p].length;d++)l[p][d]&&u(p,l[p][d].mul(L),m+i[p][d])}function u(p,L,m){let d=L.p[p];if(!l[p][d]){l[p][d]=L,o[p][d]=L.inv(),i[p][d]=m;for(let F=0;F<s[p].length;F++)u(p,L.mul(s[p][F]),m+a[p][F]);return}let D=L.mul(o[p][d]);f(D)||g(p-1,D,m+i[p][d])}function c(){l=[],o=[],s=[],i=[],a=[];for(let m=0;m<r;m++)l.push([]),o.push([]),i.push([]),s.push([]),a.push([]),l[m][m]=n,o[m][m]=n,i[m][m]=0;let p=0,L=BigInt(1);for(let m=0;m<e.length;m++){g(r-1,e[m],1),L=BigInt(1);let d=0,D=0,F=[],S=new Ea;for(let v=0;v<r;v++){let U=0,P=0;for(let C=0;C<r;C++)l[v][C]&&(U++,P+=i[v][C],v!==C&&p++);d+=s[v].length,L*=BigInt(U),U>1&&S.multiply(U);let J=P/U;F.push(J),D+=J}t(\`\${m}: sz \${L} T \${d} sol \${D} none \${p} mults \${S.toString()}\`)}return L}return c()}var Ea,wa=A(()=>{"use strict";gi();Ea=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 UL(e,t){let r=[];for(let n of e)for(let l of t)r.push(l.rotate(n));return r}function wL(){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 kL(){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 zL(){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 Di(e,t){for(let r=0;r<e.length;r++)if(e[r][0].dist(t)<be)return r;throw new Error("Element not found")}function Yf(){return Li}function $f(e){return Li[e]}function fo(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 l=1;l<t.length;l+=2){if(t[l]!=="f"&&t[l]!=="v"&&t[l]!=="e")return null;n.push({cutType:t[l],distance:parseFloat(t[l+1])})}return{shape:r,cuts:n}}function _a(e,t={}){let r=fo(e);if(r===null)throw new Error("Could not parse the puzzle description");let n=new go(r,Object.assign({},{allMoves:!0},t));return n.allstickers(),n.genperms(),n}function r1(e,t){return _a(Li[e],t)}function CL(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 l=e[0],o="";if(t[0]===0&&t[1]===r)l=\`\${l}v\`;else if(t[0]===t[1])t[1]>0&&(o=String(t[1]+1));else if(t[0]===0)l=l.toLowerCase(),t[1]>1&&(o=String(t[1]+1));else throw new Error(\`We only support slice and outer block moves right now. \${t}\`);return[o+l,n]}function NL(e,t){let r=[],n=0;for(;n<e.length;){n>0&&n<e.length&&e[n]==="_"&&n++;let l="";for(let o of t)e.substr(n).startsWith(o[1])&&o[1].length>l.length&&(l=o[1]);if(l!=="")r.push(l),n+=l.length;else throw new Error(\`Could not split \${e} into face names.\`)}return r}function Fi(e,t){return[e.b/t,-e.c/t,e.d/t]}function ka(e,t){let r=[],n=e.length;for(let l=0;l<n;l++){let o=Fi(e.get(n-l-1),t);r[3*l]=o[0],r[3*l+1]=o[1],r[3*l+2]=o[2]}return r}var Er,rl,be,bL,EL,_L,e1,t1,go,yi,uo=A(()=>{"use strict";fe();Af();ya();Aa();gi();Wf();Kf();Zf();di();wa();Er=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 W(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 l=0;l<this.length;l++)t+=this.coords[3*l],r+=this.coords[3*l+1],n+=this.coords[3*l+2];return new W(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 Er(r)}rotateforward(){let t=[];for(let r=1;r<this.length;r++)t.push(this.get(r));return t.push(this.get(0)),new Er(t)}},rl=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 rl(r[0]),this.right=new rl(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 Er(this.face)):r?(this.left?.collect(t,!1),this.right?.collect(t,!0)):(this.right?.collect(t,!1),this.left?.collect(t,!0)),t}};be=1e-9,bL="PuzzleGeometry 0.1 Copyright 2018 Tomas Rokicki.",EL=!1;_L={4:{v:["DFR","DLF","DRL","FLR"],e:["FR","LF","DF","DL","RD","RL"],c:["DF","FD","RL","LR"]},6:{v:["URF","UBR","ULB","UFL","DFR","DRB","DBL","DLF"],e:["UF","UR","UB","UL","DF","DR","DB","DL","FR","FL","BR","BL"],c:["UB","LU","FU","RU","BU","DF"]},8:{v:["UBBBRR","URFL","ULBLBB","DBRBBBL","DBLLF","DFRBR"],e:["UL","UBB","UR","BRD","BLD","FD","BRR","FR","FL","BLL","BLBB","BRBB"],c:["BBU","LU","RU","BRD","FD","BLD","DF","UBB"]},12:{v:["URF","UFL","ULBL","UBLBR","UBRR","DEBF","DBFI","DIA","DAC","DCE","LAI","ALF","FCA","CFR","REC","ERBR","BRBFE","BFBRBL","BLIBF","IBLL"],e:["UF","UR","UBR","UBL","UL","ER","EBR","EBF","ED","EC","IBF","IBL","IL","IA","ID","AC","CF","FA","BFBR","BRBL","BLBF","CD","AD","AL","FL","FR","CR","BFD","BRR","BLL"],c:["UF","FU","DBF","BFD","AD","CD","BRU","BLU","LA","RA","EBR","IBL"]},20:{v:["FLPQU","FUGER","FRCAL","HCREI","ISBDH","JSIEG","BSJMK","MQPOK","ONDBK","NOPLA","UQMJG","DNACH"],e:["FU","FL","FR","EG","ER","EI","SJ","SI","SB","KM","KB","KO","PQ","PO","PL","UG","JG","MQ","UQ","HC","HD","ND","NA","JM","CA","AL","CR","HI","DB","NO"],c:["FU","UF","GE","EG","JS","SJ","MK","KM","QP","PQ","LA","AL","RC","CR","IH","HI","BD","DB","ON","NO"]}};e1=["c","t","o","d","i"],t1=["f","v","e"];go=class{constructor(t,r){this.puzzleDescription=t;this.cmovesbyslice=[];this.duplicatedFaces=[];this.duplicatedCubies=[];this.fixedCubie=-1;this.net=[];this.colors=[];this.notationMapper=new fn;this.addNotationMapper="";this.setReidOrder=!1;let n="genperms";this.options=new ui(r),this.options.verbosity>0&&console.log(this.header("# ")),this.create(t)}create(t){let{shape:r,cuts:n}=t;this.moveplanes=[],this.moveplanes2=[],this.faces=[],this.cubies=[];let l=null;switch(r){case"c":{l=jf();break}case"o":{l=Xf();break}case"i":{l=Hf();break}case"t":{l=qf();break}case"d":{l=Vf();break}default:throw new Error(\`Bad shape argument: \${r}\`)}this.rotations=Jf(l),this.options.verbosity&&console.log(\`# Rotations: \${this.rotations.length}\`);let o=l[0];this.baseplanerot=Ua(o,this.rotations);let i=this.baseplanerot.map(y=>o.rotateplane(y));this.baseplanes=i,this.baseFaceCount=i.length;let s=wL()[i.length];this.net=s,this.colors=kL()[i.length],this.options.verbosity>0&&console.log(\`# Base planes: \${i.length}\`);let a=ba(i),f=new W(0,0,0,0);this.options.verbosity>0&&console.log(\`# Face vertices: \${a.length}\`);let g=i[0].makenormal(),u=a[0].sum(a[1]).makenormal(),c=a[0].makenormal(),p=new W(1,g.b,g.c,g.d);this.options.verbosity>0&&console.log(\`# Boundary is \${p}\`);let m=Ua(p,this.rotations).map(y=>p.rotateplane(y)),d=ba(m);this.edgedistance=d[0].sum(d[1]).smul(.5).dist(f),this.vertexdistance=d[0].dist(f);let D=[],F=[],S=!1,v=!1,U=!1;for(let y of n){let k=null,T=0;switch(y.cutType){case"f":{k=g,T=1,S=!0;break}case"v":{k=c,T=this.vertexdistance,U=!0;break}case"e":{k=u,T=this.edgedistance,v=!0;break}default:throw new Error(\`Bad cut argument: \${y.cutType}\`)}D.push(k.makecut(y.distance)),F.push(y.distance<T)}this.options.addRotations&&(S||D.push(g.makecut(10)),U||D.push(c.makecut(10)),v||D.push(u.makecut(10))),this.basefaces=[];for(let y of this.baseplanerot){let k=y.rotateface(d);this.basefaces.push(new Er(k))}let P=[],J=[],C=[],Q=[],x=d.length;function z(y,k,T){for(let O of y)if(O[0].dist(k)<be){O.push(T);return}y.push([k,T])}for(let y=0;y<this.baseplanerot.length;y++){let k=this.baseplanerot[y].rotateface(d);for(let T=0;T<k.length;T++){let O=(T+1)%k.length,ee=k[T].sum(k[O]).smul(.5);z(Q,ee,y)}}let N=[];for(let y=0;y<this.baseplanerot.length;y++){let k=this.baseplanerot[y].rotateface(d),T=[];for(let O=0;O<k.length;O++){let ee=(O+1)%k.length,ae=k[O].sum(k[ee]).smul(.5),Ie=Q[Di(Q,ae)];if(y===Ie[1])T.push(Ie[2]);else if(y===Ie[2])T.push(Ie[1]);else throw new Error("Could not find edge")}N.push(T)}let b={},w=[];w.push(s[0][0]),b[s[0][0]]=0,w[N[0][0]]=s[0][1],b[s[0][1]]=N[0][0];for(let y of s){let k=y[0],T=b[k];if(T===void 0)throw new Error("Bad edge description; first edge not connected");let O=-1;for(let ee=0;ee<N[T].length;ee++){let ae=w[N[T][ee]];if(ae!==void 0&&ae===y[1]){O=ee;break}}if(O<0)throw new Error("First element of a net not known");for(let ee=2;ee<y.length;ee++){if(y[ee]==="")continue;let ae=N[T][(ee+O-1)%x],Ie=w[ae];if(Ie!==void 0&&Ie!==y[ee])throw new Error("Face mismatch in net");w[ae]=y[ee],b[y[ee]]=ae}}for(let y=0;y<this.baseplanerot.length;y++){let k=this.baseplanerot[y].rotateface(d),T=p.rotateplane(this.baseplanerot[y]),O=w[y];P.push([k,O]),J.push([T,O])}for(let y=0;y<this.baseplanerot.length;y++){let k=this.baseplanerot[y].rotateface(d),T=w[y];for(let O=0;O<k.length;O++){let ee=(O+1)%k.length,ae=k[O].sum(k[ee]).smul(.5),Ie=(O+2)%k.length,Im=k[ee].sum(k[Ie]).smul(.5),Tm=Di(Q,ae),Gm=Di(Q,Im);z(C,k[ee],[T,Gm,Tm])}}this.swizzler=new Yn(P.map(y=>y[1]));let M=this.swizzler.prefixFree?"":"_",j=_L[this.baseFaceCount],q=[];for(let y=0;y<this.baseFaceCount;y++)q[1<<y]=y;{let y=j.v;for(let k of y){let T=this.swizzler.splitByFaceNames(k),O=0;for(let ee of T)O|=1<<ee;q[O]=T[0]}}{let y=j.e;for(let k of y){let T=this.swizzler.splitByFaceNames(k),O=0;for(let ee of T)O|=1<<ee;q[O]=T[0]}}{let y=j.c;for(let k of y){let T=this.swizzler.splitByFaceNames(k),O=1<<T[0]|1<<this.baseFaceCount;q[O]=T[1]}}for(let y=0;y<Q.length;y++){if(Q[y].length!==3)throw new Error(\`Bad length in edge names \${Q[y]}\`);let k=Q[y][1],T=Q[y][2],O=w[k],ee=w[T],ae=1<<k|1<<T;q[ae]===k?O=O+M+ee:O=ee+M+O,Q[y]=[Q[y][0],O]}for(let y=0;y<C.length;y++){let k=0;if(C[y].length<4)throw new Error("Bad length in vertex names");for(let ae=1;ae<C[y].length;ae++)k|=1<<b[C[y][ae][0]];let T=q[k],O=-1;for(let ae=1;ae<C[y].length;ae++)T===b[C[y][ae][0]]&&(O=ae);if(O<0)throw new Error("Internal error; couldn't find face name when fixing corners");let ee="";for(let ae=1;ae<C[y].length;ae++){ae===1?ee=C[y][O][0]:ee=ee+M+C[y][O][0];for(let Ie=1;Ie<C[y].length;Ie++)if(C[y][O][1]===C[y][Ie][2]){O=Ie;break}}C[y]=[C[y][0],ee]}this.markedface=q,this.options.verbosity>1&&(console.log(\`# Face names: \${P.map(y=>y[1]).join(" ")}\`),console.log(\`# Edge names: \${Q.map(y=>y[1]).join(" ")}\`),console.log(\`# Vertex names: \${C.map(y=>y[1]).join(" ")}\`));let se=[];for(let y of J)se.push([y[0].makenormal(),y[1],"f"]);for(let y of Q)se.push([y[0].makenormal(),y[1],"e"]);for(let y of C)se.push([y[0].makenormal(),y[1],"v"]);this.facenames=P,this.faceplanes=J,this.edgenames=Q,this.vertexnames=C,this.geonormals=se;let De=se.map(y=>y[1]);this.swizzler.setGripNames(De),this.options.verbosity>0&&console.log(\`# Distances: face \${1} edge \${this.edgedistance} vertex \${this.vertexdistance}\`);for(let y=0;y<D.length;y++)for(let k of this.rotations){let T=D[y].rotateplane(k),O=!1;for(let ee of this.moveplanes)if(T.sameplane(ee)){O=!0;break}O||(this.moveplanes.push(T),F[y]&&this.moveplanes2.push(T))}let Ue=new rl(d),Ye=this.moveplanes2.slice(),Et=31;for(let y=0;y<Ye.length;y++){let k=y+Math.floor((Ye.length-y)*(Et/65536));Ue=Ue.split(Ye[k]),Ye[k]=Ye[y],Et=(Et*1657+101)%65536}let Re=Ue.collect([],!0);this.faces=Re,this.options.verbosity>0&&console.log(\`# Faces is now \${Re.length}\`),this.stickersperface=Re.length;let Dt=[],it=Bi(d);for(let y of this.rotations){let k=y.rotateface(d);it.dist(Bi(k))<be&&Dt.push(y)}let mt=new Array(Re.length),Ce=[];for(let y=0;y<Re.length;y++){let k=Re[y].centermass();Ce.push([it.dist(k),k,y])}Ce.sort((y,k)=>y[0]-k[0]);for(let y=0;y<Re.length;y++){let k=Ce[y][2];if(!mt[k]){mt[k]=!0;for(let T of Dt){let O=Re[k].rotate(T),ee=O.centermass();for(let ae=y+1;ae<Re.length&&!(Ce[ae][0]-Ce[y][0]>be);ae++){let Ie=Ce[ae][2];if(!mt[Ie]&&ee.dist(Ce[ae][1])<be){mt[Ie]=!0,Re[Ie]=O;break}}}}}this.shortedge=1e99;for(let y of Re)for(let k=0;k<y.length;k++){let T=(k+1)%y.length,O=y.get(k).dist(y.get(T));O<this.shortedge&&(this.shortedge=O)}this.options.verbosity>0&&console.log(\`# Short edge is \${this.shortedge}\`),r==="c"&&S&&!v&&!U&&(this.addNotationMapper="NxNxNCubeMapper",this.setReidOrder=!0),r==="c"&&U&&!S&&!v&&(this.addNotationMapper="SkewbMapper"),r==="t"&&(U||S)&&!v&&(this.addNotationMapper="PyraminxOrTetraminxMapper"),r==="o"&&S&&(this.notationMapper=new $n(this.swizzler,new Yn(["F","D","L","BL","R","U","BR","B"])),v||U||(this.addNotationMapper="FTOMapper")),r==="d"&&S&&(this.addNotationMapper="MegaminxMapper",this.notationMapper=new $n(this.swizzler,new Yn(["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 l of this.moveplanesets)if(l.length>0){let o=t.dot(l[0]),i=0,s=1;for(;s*2<=l.length;)s*=2;for(;s>0;s>>=1)i+s<=l.length&&o>l[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 l of this.moveplanesets)if(l.length>0){let o=r.dot(l[0]),i=0,s=1;for(;s*2<=l.length;)s*=2;for(;s>0;s>>=1)i+s<=l.length&&o>l[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 l=0;l+1<n.length;l++){let o=this.facelisthash.get(r)[l];if(Math.abs(t.dist(this.facecentermass[o]))<be)return o}return n[n.length-1]}project2d(t,r,n){let l=this.facenames[t][0],o=(r+1)%l.length,i=this.baseplanes[t],s=l[o].sub(l[r]),a=s.len();s=s.normalize();let f=s.cross(i).normalize(),g=n[1].sub(n[0]),u=g.len()/a;g=g.normalize();let c=g.b,p=g.c,L=s.smul(c).sub(f.smul(p)).smul(u),m=f.smul(c).sum(s.smul(p)).smul(u),d=new W(0,n[0].b-L.dot(l[r]),n[0].c-m.dot(l[r]),0);return[L,m,d]}allstickers(){let t="allstickers";this.faces=UL(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 x=0;x<this.faces.length;x++)this.facecentermass[x]=this.faces[x].centermass();let r=[],n=[];for(let x of this.moveplanes){let z=x.makenormal(),N=!1;for(let b of n)z.sameplane(b.makenormal())&&(N=!0);N||(n.push(z),r.push([]))}for(let x of this.moveplanes2){let z=x.makenormal();for(let N=0;N<n.length;N++)if(z.sameplane(n[N])){r[N].push(x);break}}for(let x=0;x<r.length;x++){let z=r[x].map(b=>b.normalizeplane()),N=n[x];for(let b=0;b<z.length;b++)z[b].makenormal().dist(N)>be&&(z[b]=z[b].smul(-1));z.sort((b,w)=>b.a-w.a),r[x]=z}this.moveplanesets=r,this.moveplanenormals=n;let l=r.map(x=>x.length);this.options.verbosity>0&&console.log(\`# Move plane sets: \${l}\`);let o=[];for(let x=0;x<r.length;x++)o.push([]);for(let x of this.rotations){if(Math.abs(Math.abs(x.a)-1)<be)continue;let z=x.makenormal();for(let N=0;N<r.length;N++)if(z.sameplane(n[N])){o[N].push(x);break}}this.moverotations=o;for(let x=0;x<o.length;x++){let z=o[x],N=z[0].makenormal();for(let b=0;b<z.length;b++)N.dist(z[b].makenormal())>be&&(z[b]=z[b].smul(-1));z.sort((b,w)=>b.angle()-w.angle()),o[x][0].dot(n[x])<0&&z.reverse()}let i=o.map(x=>1+x.length);this.movesetorders=i;let s=[],a="?";for(let x=0;x<r.length;x++){let z=n[x],N=null,b=null;for(let w of this.geonormals){let M=z.dot(w[0]);Math.abs(M-1)<be?(b=[w[1],w[2]],a=w[2]):Math.abs(M+1)<be&&(N=[w[1],w[2]],a=w[2])}if(b===null||N===null)throw new Error("Saw positive or negative sides as null");s.push([b[0],b[1],N[0],N[1],1+r[x].length]),this.addNotationMapper==="NxNxNCubeMapper"&&a==="f"&&(this.notationMapper=new io(1+r[x].length),this.addNotationMapper=""),this.addNotationMapper==="SkewbMapper"&&r[0].length===1&&(this.notationMapper=new ao(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 el(this.swizzler),this.addNotationMapper=""):(this.notationMapper=new so(this.swizzler),this.addNotationMapper="")),this.addNotationMapper==="MegaminxMapper"&&a==="f"&&(1+r[x].length===3&&(this.notationMapper=new oo(this.notationMapper)),this.addNotationMapper=""),this.addNotationMapper==="FTOMapper"&&a==="f"&&(1+r[x].length===3&&(this.notationMapper=new lo(this.notationMapper,this.swizzler)),this.addNotationMapper="")}this.movesetgeos=s;let f=new Map,g=this.faces;for(let x=0;x<g.length;x++){let z=g[x],N=this.keyface(z);if(!f.get(N))f.set(N,[x]);else{let b=f.get(N);if(b.push(x),b.length===this.baseFaceCount){this.options.verbosity>0&&console.log("# Splitting core.");for(let w=0;w<b.length;w++){let M=\`\${N} \${w}\`;f.set(M,[b[w]])}}}}this.facelisthash=f,this.options.verbosity>0&&console.log(\`# Cubies: \${f.size}\`);let u=[],c=[],p=[];for(let x of f.values())if(x.length!==this.baseFaceCount){if(x.length>1){let z=x.map(j=>g[j].centermass()),N=Bi(z);for(let j=0;x.length>2;j++){let q=!1;for(let se=0;se<x.length;se++){let De=(se+1)%x.length;if(N.dot(z[se].cross(z[De]))<0){let Ue=z[se];z[se]=z[De],z[De]=Ue;let Ye=x[se];x[se]=x[De],x[De]=Ye,q=!0}}if(!q)break;if(j>1e3)throw new Error("Bad epsilon math; too close to border")}let b=0;for(let j of x)b|=1<<Math.floor(j/this.stickersperface);let w=this.markedface[b],M=-1;for(let j=0;j<x.length;j++)Math.floor(x[j]/this.stickersperface)===w&&(M=j);if(M<0)throw new Error("Could not find marked face in list");if(M!==0){let j=x.slice();for(let q=0;q<x.length;q++)x[q]=j[(M+q)%x.length]}}for(let z=0;z<x.length;z++){let N=x[z];c[N]=u.length,p[N]=z}u.push(x)}this.cubies=u,this.facetocubie=c,this.facetoord=p;let L=["?","CENTERS","EDGES","CORNERS","C4RNER","C5RNER"],m=[],d=[0,0,0,0,0,0],D=[],F=[],S=0,v=[],U=[],P=[],J=[],C=x=>u[x].map(z=>this.getfaceindex(z)).join(" "),Q=[];for(let x=0;x<u.length;x++){let z=u[x];if(z.length===0||F[x])continue;let N={},b=0;P.push(0),Q.push([]);let w=z.length,M=d[w]++,j=L[w];(j===void 0||w===this.baseFaceCount)&&(j="CORE"),j=j+(M===0?"":M+1),m[S]=j,D[S]=w;let q=[x],se=0;for(F[x]=!0;se<q.length;){let De=q[se++],Ue=C(De);if((z.length>1||N[Ue]===void 0)&&(N[Ue]=b++),J[De]=N[Ue],v[De]=S,Q[S].push(De),U[De]=P[S]++,q.length<this.rotations.length){let Ye=this.facecentermass[u[De][0]];for(let Et of o){let Re=this.facetocubie[this.findface(Ye.rotatepoint(Et[0]))];F[Re]||(q.push(Re),F[Re]=!0)}}}S++}if(this.setReidOrder&&4<=this.stickersperface&&this.stickersperface<=9){let x=[["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"]],z={};for(let N of x)for(let b=0;b<N.length;b++){let w=0;for(let M=0;M<N[b].length;M++)w|=1<<N[b].charCodeAt(M)-65;z[w]=b}for(let N of Q)for(let b of N){let w=0;for(let M of u[b])w|=1<<this.facenames[this.getfaceindex(M)][1].charCodeAt(0)-65;U[b]=z[w]}}if(this.cubiesetnums=v,this.cubieordnums=U,this.cubiesetnames=m,this.cubieords=P,this.orbitoris=D,this.cubievaluemap=J,this.cubiesetcubies=Q,this.options.fixedPieceType!==null){for(let x=0;x<u.length;x++)if(this.options.fixedPieceType==="v"&&u[x].length>2||this.options.fixedPieceType==="e"&&u[x].length===2||this.options.fixedPieceType==="f"&&u[x].length===1){this.fixedCubie=x;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 \${P}\`)}unswizzle(t){let r=this.notationMapper.notationToInternal(t);return r===null?null:r.modified({family: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 l=n[4],o,i;if(n[2]!==void 0){if(n[3]===void 0)throw new Error("Missing second number in range");o=parseInt(n[2],10)}n[3]!==void 0&&(i=parseInt(n[3],10));let s="1",a=1;return n[5]!==void 0&&(s=n[5],s[0]==="'"&&(s=\`-\${s.substring(1)}\`),a=parseInt(s,10)),new B(new _(l,i,o),a)}parseMove(t){let r=this.notationMapper.notationToInternal(t);if(r===null)throw new Error(\`Bad move \${t.family}\`);t=r;let n=t.family,l=!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),l=!0}n.endsWith("w")&&n[0]<="Z"&&(n=n.slice(0,-1).toLowerCase());let o,i=-1,s=this.swizzler.unswizzle(n),a=!1;for(let u=0;u<this.movesetgeos.length;u++){let c=this.movesetgeos[u];s===c[0]&&(a=!0,o=c,i=u),s===c[2]&&(a=!1,o=c,i=u)}let f=1,g=1;if(n.toUpperCase()!==n&&(g=2),o===void 0)throw new Error(\`Bad grip in move \${t.family}\`);if(t.outerLayer!==void 0&&(f=t.outerLayer),t.innerLayer!==void 0&&(t.outerLayer===void 0?(g=t.innerLayer,n<="Z"?f=g:f=1):g=t.innerLayer),f--,g--,l&&(f=0,g=this.moveplanesets[i].length),f<0||f>this.moveplanesets[i].length||g<0||g>this.moveplanesets[i].length)throw new Error(\`Bad slice spec \${f} \${g} vs \${this.moveplanesets[i].length}\`);if(!EL&&f===0&&g===this.moveplanesets[i].length&&!l)throw new Error("! full puzzle rotations must be specified with v suffix.");return[void 0,i,f,g,a,t.amount]}parsemove(t){let r=this.parseMove(this.stringToBlockMove(t));return r[0]=t,r}genperms(){let t="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 l=this.cubies[n][0],o=this.getfaceindex(l),i=this.basefaces[o].centermass();if(i.dist(this.facecentermass[l])<be){let s=1<<o|1<<this.baseFaceCount,a=this.markedface[s],f=this.baseplanes[a].makenormal(),g=-1,u=-1;for(let L=0;L<this.faces[l].length;L++){let m=this.faces[l].get(L),d=f.dot(m.sub(i));d>g&&(g=d,u=L)}let c=(u+1)%this.faces[l].length;if(Math.abs(f.dot(this.faces[l].get(c).sub(i))-g)<be&&(u=c),u!==0){let L=[];for(let m=0;m<this.faces[l].length;m++)L.push(this.faces[l].get((m+u)%this.faces[l].length));this.faces[l]=new Er(L)}let p=this.basefaces[o].length;for(let L=1;L<p;L++)this.cubies[n].push(this.cubies[n][L-1]);this.duplicatedFaces[l]=p,this.duplicatedCubies[n]=p,this.orbitoris[this.cubiesetnums[n]]=p}}}for(let n=0;n<this.moveplanesets.length;n++){let l=this.moveplanesets[n],o=[],i=[l.length+1,0],s=1;for(;s*2<=l.length;)s*=2;for(let g=0;g<this.faces.length;g++){let u=0;if(l.length>0){let c=this.facecentermass[g].dot(l[0]);for(let p=s;p>0;p>>=1)u+p<=l.length&&c>l[u+p-1].a&&(u+=p);u=l.length-u}for(o.push(u);i.length<=u;)i.push(0);i[u]++}let a=new Array(i.length);for(let g=0;g<i.length;g++)a[g]=[];let f=[];for(let g=0;g<this.faces.length;g++){if(o[g]<0)continue;let u=[this.facetocubie[g],this.facetoord[g]],c=this.facecentermass[g],p=c,L=g,m=o[L];for(;;){o[L]=-1;let d=c.rotatepoint(this.moverotations[n][0]);if(d.dist(p)<be)break;L=this.findface(d),u.push(this.facetocubie[L],this.facetoord[L]),c=d}if(u.length>2&&this.options.orientCenters&&(this.cubies[u[0]].length===1||this.duplicatedCubies[u[0]]>1)&&this.facecentermass[g].dist(this.basefaces[this.getfaceindex(g)].centermass())<be){let d=this.faces[this.cubies[u[0]][0]];for(let D=0;D<u.length;D+=2){let F=this.faces[this.cubies[u[D]][0]],S=-1;for(let v=0;v<d.length;v++)if(F.get(v).dist(d.get(0))<be){S=v;break}if(S<0)throw new Error("Couldn't find rotation of center faces; ignoring for now.");u[D+1]=S,d=d.rotate(this.moverotations[n][0])}}if(u.length===2&&this.options.orientCenters)for(let d=1;d<this.movesetorders[n];d++)m===0?u.push(u[0],d):u.push(u[0],(this.movesetorders[n]-d)%this.movesetorders[n]);if(u.length>2&&!f[u[0]]){if(u.length!==2*this.movesetorders[n])throw new Error("Bad length in perm gen");for(let d of u)a[m].push(d)}for(let d=0;d<u.length;d+=2)f[u[d]]=!0}for(let g=0;g<a.length;g++)a[g]=a[g].slice();r.push(a)}if(this.cmovesbyslice=r,this.options.moveList){let n=[];for(let l of this.options.moveList)n.push(this.parsemove(l));this.parsedmovelist=n}this.facelisthash.clear(),this.facecentermass=[]}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 l of this.parsedmovelist)l[1]===t&&(l[4]?n.push([l[2],l[3]]):n.push([r-l[3],r-l[2]]),n.push(l[5]));else if(this.options.vertexMoves&&!this.options.allMoves){let l=this.movesetgeos[t];if(l[1]!==l[3])for(let o=0;o<r;o++)l[1]!=="v"?(this.options.outerBlockMoves?n.push([o+1,r]):n.push([o+1]),n.push(1)):(this.options.outerBlockMoves?n.push([0,o]):n.push([o,o]),n.push(1))}else for(let l=0;l<=r;l++)!this.options.allMoves&&l+l===r||(this.options.outerBlockMoves?l+l>r?n.push([l,r]):n.push([0,l]):n.push([l,l]),n.push(1));if(this.fixedCubie>=0){let l=this.keyface3(this.faces[this.cubies[this.fixedCubie][0]])[t],o=[];for(let i=0;i<n.length;i+=2){let s=n[i];if(l>=s[0]&&l<=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 a=!1;for(let f=0;f<o.length;f+=2)if(o[f][0]===s[0]&&o[f][1]===s[1]&&o[f+1]===n[i+1]){a=!0;break}a||(o.push(s),o.push(n[i+1]))}n=o}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+bL+\`
|
|
7
7
|
\`+t+\`
|
|
8
8
|
\`}writegap(){let t=this.getOrbitsDef(!1),r=[],n=[];for(let o=0;o<t.moveops.length;o++){let i=\`M_\${ci(this.notationMapper,t.movenames[o])}\`,s=!1;i[i.length-1]==="'"&&(i=i.substring(0,i.length-1),s=!0),n.push(i),s?r.push(\`\${i}:=\${t.moveops[o].toPerm().inv().toGap()};\`):r.push(\`\${i}:=\${t.moveops[o].toPerm().toGap()};\`)}r.push("Gen:=["),r.push(n.join(",")),r.push("];");let l=t.solved.identicalPieces();return r.push(\`ip:=[\${l.map(o=>\`[\${o.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(\`
|
|
9
9
|
\`)}writeksolve(t="PuzzleGeometryPuzzle"){let r=this.getOrbitsDef(!1);return this.header("# ")+r.toKsolve(t,this.notationMapper).join(\`
|
|
10
|
-
\`)}getKPuzzleDefinition(t=!0,r=!0){let l=this.getOrbitsDef(t,r).toKPuzzleDefinition(r);if(l.experimentalPuzzleDescription=this.puzzleDescription,!l)throw new Error("Missing definition!");return l}getMoveFromBits(t,r,n,l,o,i){let s=[],a=[],f=[];for(let c of this.cubieords)a.push(Vt(c)),f.push(br(c));for(let c=t[0];c<=t[1];c++){let p=l[c];for(let L=0;L<p.length;L+=2*i){let m=p.slice(L,L+2*i),d=this.cubiesetnums[m[0]];for(let S=0;S<m.length;S+=2)m[S]=this.cubieordnums[m[S]];let D=2,F=3;n&&(D=m.length-2,F=m.length-1),a[d]===Vt(this.cubieords[d])&&(a[d]=a[d].slice(),this.orbitoris[d]>1&&!this.options.fixedOrientation&&(f[d]=f[d].slice()));for(let S=0;S<m.length;S+=2)a[d][m[(S+D)%m.length]]=m[S],this.orbitoris[d]>1&&!this.options.fixedOrientation&&(f[d][m[S]]=(m[(S+F)%m.length]-m[(S+1)%m.length]+2*this.orbitoris[d])%this.orbitoris[d])}}let g=new Ht(Vt(24),br(24),1);for(let c=0;c<this.cubiesetnames.length;c++)if(!(o&&!o[c]))if(this.orbitoris[c]===1||this.options.fixedOrientation)a[c]===Vt(g.perm.length)?(a[c]!==g.perm&&(g=new Ht(a[c],f[c],1)),s.push(g)):s.push(new Ht(a[c],f[c],1));else{let p=new Array(f[c].length);for(let L=0;L<a[c].length;L++)p[L]=f[c][a[c][L]];s.push(new Ht(a[c],p,this.orbitoris[c]))}let u=new
|
|
10
|
+
\`)}getKPuzzleDefinition(t=!0,r=!0){let l=this.getOrbitsDef(t,r).toKPuzzleDefinition(r);if(l.experimentalPuzzleDescription=this.puzzleDescription,!l)throw new Error("Missing definition!");return l}getMoveFromBits(t,r,n,l,o,i){let s=[],a=[],f=[];for(let c of this.cubieords)a.push(Vt(c)),f.push(br(c));for(let c=t[0];c<=t[1];c++){let p=l[c];for(let L=0;L<p.length;L+=2*i){let m=p.slice(L,L+2*i),d=this.cubiesetnums[m[0]];for(let S=0;S<m.length;S+=2)m[S]=this.cubieordnums[m[S]];let D=2,F=3;n&&(D=m.length-2,F=m.length-1),a[d]===Vt(this.cubieords[d])&&(a[d]=a[d].slice(),this.orbitoris[d]>1&&!this.options.fixedOrientation&&(f[d]=f[d].slice()));for(let S=0;S<m.length;S+=2)a[d][m[(S+D)%m.length]]=m[S],this.orbitoris[d]>1&&!this.options.fixedOrientation&&(f[d][m[S]]=(m[(S+F)%m.length]-m[(S+1)%m.length]+2*this.orbitoris[d])%this.orbitoris[d])}}let g=new Ht(Vt(24),br(24),1);for(let c=0;c<this.cubiesetnames.length;c++)if(!(o&&!o[c]))if(this.orbitoris[c]===1||this.options.fixedOrientation)a[c]===Vt(g.perm.length)?(a[c]!==g.perm&&(g=new Ht(a[c],f[c],1)),s.push(g)):s.push(new Ht(a[c],f[c],1));else{let p=new Array(f[c].length);for(let L=0;L<a[c].length;L++)p[L]=f[c][a[c][L]];s.push(new Ht(a[c],p,this.orbitoris[c]))}let u=new fr(s);return r!==1&&(u=u.mulScalar(r)),u}omitSet(t){for(let r of this.options.excludeOrbits)if(r===t)return!0;return!1}diffmvsets(t,r,n,l){for(let o=0;o<t.length;o+=2){let i=!1;for(let s=0;!i&&s<r.length;s+=2)l?t[o][0]+r[s][1]===n&&t[o][1]+r[s][0]===n&&t[o+1]===r[s+1]&&(i=!0):t[o][0]===r[s][0]&&t[o][1]===r[s][1]&&t[o+1]===r[s+1]&&(i=!0);if(!i)return!0}return!1}getOrbitsDef(t,r=!0){let n=[];if(t)for(let m=0;m<this.cubiesetnames.length;m++)n.push(1);let l=[],o=[],i=[],s=[];for(let m=0;m<this.moveplanesets.length;m++){let d=this.getmovesets(m);i.push(d),this.options.addRotations?s.push(1):s.push(0)}let a=[];for(let m=0;m<this.moveplanesets.length;m++){let d=this.moveplanesets[m].length,D=!1,F=i[m];for(let S=0;S<F.length;S+=2)F[S][0]===0&&F[S][1]===d&&(D=!0);a[m]=D}if(this.options.addRotations&&(this.options.moveList||this.options.fixedPieceType!==null)){for(let m=0;m<this.moverotations.length;m++)s[m]=0;for(let m=0;m<this.moveplanesets.length;m++){if(a[m]){s[m]=3;continue}for(let d=0;d<this.moverotations.length;d++){let D=this.moveplanenormals[m];for(let F=1;F*2<=this.movesetorders[d];F++){if(D=D.rotatepoint(this.moverotations[d][0]),s[d]&F)continue;let S=-1,v=!1;for(let P=0;P<this.moveplanenormals.length;P++)if(D.dist(this.moveplanenormals[P])<be){S=P;break}else if(D.dist(this.moveplanenormals[P].smul(-1))<be){S=P,v=!0;break}if(S<0)throw new Error("Could not find rotation");let U=i[S];(U.length!==i[m].length||this.moveplanesets[m].length!==this.moveplanesets[S].length||this.diffmvsets(U,i[m],this.moveplanesets[S].length,v))&&(s[d]|=F)}}}for(let m=0;m<this.moverotations.length;m++)if(s[m]===0)s[m]=1;else if(s[m]===1)this.movesetorders[m]>3?s[m]=2:s[m]=0;else if(s[m]===3)s[m]=0;else throw new Error("Impossible addrot val")}for(let m=0;m<this.moveplanesets.length;m++)s[m]!==0&&!a[m]&&(i[m].push([0,this.moveplanesets[m].length]),i[m].push(s[m]));for(let m=0;m<this.moveplanesets.length;m++){let d=i[m],D=this.movesetorders[m];for(let v=0;v<d.length;v+=2)for(let U=0;U<v;U+=2)if(d[v][0]===d[U][0]&&d[v][1]===d[U][1])throw new Error("Redundant moves in moveset.");let F=[];for(let v=0;v<d.length;v+=2)for(let U=d[v][0];U<=d[v][1];U++)F[U]=1;let S=this.cmovesbyslice[m];for(let v=0;v<S.length;v++){if(F[v]!==1)continue;let U=S[v];for(let P=0;P<U.length;P+=2*D){if(this.skipcubie(U[P]))continue;let J=this.cubiesetnums[U[P]];n[J]=1}}}for(let m=0;m<this.cubiesetnames.length;m++)if(!!n[m]){if(this.omitSet(this.cubiesetnames[m])){n[m]=0;continue}l.push(this.cubiesetnames[m]),o.push(new tl(this.cubieords[m],this.options.fixedOrientation?1:this.orbitoris[m]))}let f=[];for(let m=0;m<this.cubiesetnames.length;m++){if(!n[m]||this.omitSet(this.cubiesetnames[m]))continue;let d=[],D=[];for(let F=0;F<this.cubieords[m];F++){if(t)d.push(F);else{let S=this.cubiesetcubies[m][F];d.push(this.cubievaluemap[S])}D.push(0)}f.push(new Ht(d,D,this.options.fixedOrientation?1:this.orbitoris[m]))}let g=[],u=[],c=[],p=[];if(r)for(let m=0;m<this.moveplanesets.length;m++){let D=this.moveplanesets[m].length,F=i[m],S=this.movesetgeos[m];for(let v=0;v<F.length;v+=2){let U=F[v],P,J=!1;if(this.parsedmovelist!==void 0)for(let Q of this.parsedmovelist){if(Q[1]!==m)continue;let x=[];Q[4]?x=[Q[2],Q[3]]:x=[D-Q[3],D-Q[2]],x[0]===U[0]&&x[1]===U[1]&&(P=Q[0],J=!Q[4])}if(P)g.push(P),u.push(!0);else{let Q=CL(S,U,D);J=Q[1];let x=Q[0];F[v+1]===1?g.push(x):g.push(x+F[v+1]),u.push(!1)}p.push(U[0]===0&&U[1]===D);let C=this.getMoveFromBits(U,F[v+1],J,this.cmovesbyslice[m],n,this.movesetorders[m]);c.push(C)}}let L=new un(l,o,new gn(f),g,c,p,u);return this.options.optimizeOrbits&&(L=L.optimize()),this.options.scrambleAmount!==0&&L.scramble(this.options.scrambleAmount),L}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){Gf(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 dt(t)}getOrientationRotation(t){let[r,[n,l,o]]=t[0],i=new W(0,n,-l,o),[s,[a,f,g]]=t[1],u=new W(0,a,-f,g),c=null,p=null,L=this.swizzler.unswizzle(r),m=this.swizzler.unswizzle(s);for(let S of this.geonormals)L===S[1]&&(c=S[0]),m===S[1]&&(p=S[0]);if(!c)throw new Error(\`Could not find feature \${r}\`);if(!p)throw new Error(\`Could not find feature \${s}\`);let d=c.pointrotation(i);return p.rotatepoint(d).unproject(i).pointrotation(u.unproject(i)).mul(d)}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=zL()[t]),!r)throw new Error("No default orientation?");return this.getOrientationRotation(r)}generate2dmapping(t=800,r=500,n=10,l=!1,o=.92){t-=2*n,r-=2*n;function i(b,w){let M=b[1][0]-b[0][0],j=b[1][1]-b[0][1],q=2*Math.PI/w,se=Math.cos(q),De=Math.sin(q);for(let Ue=2;Ue<w;Ue++){let Ye=M*se+j*De;j=j*se-M*De,M=Ye,b.push([b[Ue-1][0]+M,b[Ue-1][1]+j])}}this.genperms();let f=this.getboundarygeometry().facenames[0][0].length,g=this.net;if(g===null)throw new Error("No net?");let u={},c=0,p=0,L=1,m=0;u[g[0][0]]=[[1,0],[0,0]],i(u[g[0][0]],f);for(let b of g){let w=b[0];if(!u[w])throw new Error("Bad edge description; first edge not connected.");for(let M=1;M<b.length;M++){let j=b[M];j===""||u[j]||(u[j]=[u[w][M%f],u[w][(M+f-1)%f]],i(u[j],f))}}for(let b in u){let w=u[b];for(let M of w)c=Math.min(c,M[0]),L=Math.max(L,M[0]),p=Math.min(p,M[1]),m=Math.max(m,M[1])}let d=Math.min(t/(L-c),r/(m-p)),D=.5*(t-d*(L+c)),F=.5*(r-d*(m+p)),S={},v=this.getboundarygeometry(),U={},P=[[d+D,F],[D,F]];U[g[0][0]]=P,i(U[g[0][0]],f),S[this.facenames[0][1]]=this.project2d(0,0,[new W(0,P[0][0],P[0][1],0),new W(0,P[1][0],P[1][1],0)]);let J=[];J[0]=0;for(let b of g){let w=b[0];if(!U[w])throw new Error("Bad edge description; first edge not connected.");let M=-1;for(let q=0;q<v.facenames.length;q++)if(w===v.facenames[q][1]){M=q;break}if(M<0)throw new Error(\`Could not find first face name \${w}\`);let j=v.facenames[M][0];for(let q=1;q<b.length;q++){let se=b[q];if(se===""||U[se])continue;U[se]=[U[w][q%f],U[w][(q+f-1)%f]],i(U[se],f);let De=J[M],Ue=j[(De+q)%f].sum(j[(De+q+f-1)%f]).smul(.5),Ye=Di(v.edgenames,Ue),Et=v.edgenames[Ye][1],Re=NL(Et,this.facenames),Dt=Re[w===Re[0]?1:0],it=-1;for(let Ce=0;Ce<v.facenames.length;Ce++)if(Dt===v.facenames[Ce][1]){it=Ce;break}if(it<0)throw new Error("Could not find second face name");let mt=v.facenames[it][0];for(let Ce=0;Ce<mt.length;Ce++)if(mt[Ce].sum(mt[(Ce+1)%f]).smul(.5).dist(Ue)<=be){let k=U[w][(q+f-1)%f],T=U[w][q%f];J[it]=Ce,S[Dt]=this.project2d(it,Ce,[new W(0,T[0],T[1],0),new W(0,k[0],k[1],0)]);break}}}let C=0,Q=0,x=this.getInitial3DRotation();for(let b of this.faces){l&&(b=b.rotate(x));for(let w=0;w<b.length;w++)C=Math.max(C,Math.abs(b.get(w).b)),Q=Math.max(Q,Math.abs(b.get(w).c))}let z=Math.min(r/Q/2,(t-n)/C/4);return(b,w)=>{if(l){w=w.rotatepoint(x);let M=.5*n+.25*t,j=this.baseplanes[b].rotateplane(x).d<0?1:-1;return[n+t*.5+j*(M-w.b*z),n+r*.5+w.c*z]}else{let M=S[this.facenames[b][1]];return[n+o*w.dot(M[0])+M[2].b,n+r-o*w.dot(M[1])-M[2].c]}}}generatesvg(t=800,r=500,n=10,l=!1){let o=this.generate2dmapping(t,r,n,l);function i(c,p,L){return\`<polygon id="\${c}" class="sticker" style="fill: \${L}" points="\${p.map(m=>\`\${m[0]} \${m[1]}\`).join(" ")}"/>
|
|
11
11
|
\`}let s=this.getsolved(),a=[],f=[];for(let c=0;c<this.baseFaceCount;c++)a[c]=this.colors[this.facenames[c][1]];for(let c=0;c<this.faces.length;c++){let p=this.faces[c],L=Math.floor(c/this.stickersperface),m=[];for(let d=0;d<p.length;d++)m.push(o(L,p.get(d)));f.push(m)}let g=[];for(let c=0;c<this.baseFaceCount;c++){g.push("<g>"),g.push(\`<title>\${this.facenames[c][1]}</title>
|
|
12
12
|
\`);for(let p=0;p<this.stickersperface;p++){let L=c*this.stickersperface+p,m=this.facetocubie[L],d=this.facetoord[L],D=this.cubiesetnums[m],F=this.cubieordnums[m],S=this.graybyori(m)?"#808080":a[s.p[L]],v=\`\${this.cubiesetnames[D]}-l\${F}-o\${d}\`;if(g.push(i(v,f[L],S)),this.duplicatedFaces[L])for(let U=1;U<this.duplicatedFaces[L];U++)v=\`\${this.cubiesetnames[D]}-l\${F}-o\${U}\`,g.push(i(v,f[L],S))}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">
|
|
13
13
|
<style type="text/css"><![CDATA[.sticker { stroke: #000000; stroke-width: 1px; }]]></style>
|
|
@@ -16,7 +16,7 @@ Stickers per face \${this.stickersperface}
|
|
|
16
16
|
Short edge \${this.shortedge}
|
|
17
17
|
Cubies \${this.cubies.length}
|
|
18
18
|
Edge distance \${this.edgedistance}
|
|
19
|
-
Vertex distance \${this.vertexdistance}\`}writeSchreierSims(t){let n=this.getOrbitsDef(!1).reassemblySize();t(\`Reassembly size is \${n}\`);let l=hi(this.getMovesAsPerms(),t),o=n/l;t(\`Ratio is \${o}\`)}},yi=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 l=this.pg.getMoveFromBits(n,r[5],!r[4],this.pg.cmovesbyslice[r[1]],void 0,this.pg.movesetorders[r[1]]);return un.transformToKTransformationData(this.orbitNames,l)}}});var nl={};Lt(nl,{EXPERIMENTAL_PUZZLE_BASE_SHAPES:()=>
|
|
19
|
+
Vertex distance \${this.vertexdistance}\`}writeSchreierSims(t){let n=this.getOrbitsDef(!1).reassemblySize();t(\`Reassembly size is \${n}\`);let l=hi(this.getMovesAsPerms(),t),o=n/l;t(\`Ratio is \${o}\`)}},yi=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 l=this.pg.getMoveFromBits(n,r[5],!r[4],this.pg.cmovesbyslice[r[1]],void 0,this.pg.movesetorders[r[1]]);return un.transformToKTransformationData(this.orbitNames,l)}}});var nl={};Lt(nl,{EXPERIMENTAL_PUZZLE_BASE_SHAPES:()=>e1,EXPERIMENTAL_PUZZLE_CUT_TYPES:()=>t1,ExperimentalPGNotation:()=>yi,PuzzleGeometry:()=>go,Quat:()=>W,getPG3DNamedPuzzles:()=>Yf,getPuzzleDescriptionString:()=>$f,getPuzzleGeometryByDesc:()=>_a,getPuzzleGeometryByName:()=>r1,parseOptions:()=>Of,parsePuzzleDescription:()=>fo,schreierSims:()=>hi});var ll=A(()=>{"use strict";uo();Aa();di();wa();uo();uo()});async function cn(e){return(await Promise.resolve().then(()=>(ll(),nl))).getPuzzleGeometryByName(e,{allMoves:!0,orientCenters:!0,addRotations:!0})}async function PL(e,t){let r=await e,n=r.getKPuzzleDefinition(!0);n.name=t;let l=await Promise.resolve().then(()=>(ll(),nl)),o=new l.ExperimentalPGNotation(r,r.getOrbitsDef(!0));return new Fe(n,{experimentalPGNotation:o})}function n1(e){return new ar(async t=>{let r=await e();console.log(r),t({quantumMoveOrder:n=>r.moveToTransformation(new B(n)).repetitionOrder()})})}var Ai,Si,xi,Rt,ur,Xt=A(()=>{"use strict";We();no();At();fe();_t();Rt=class{constructor(t){Z(this,Ai,void 0);Z(this,Si,void 0);Z(this,xi,void 0);this.puzzleSpecificSimplifyOptionsPromise=n1(this.kpuzzle.bind(this));this.pgId=t.pgID,this.id=t.id,this.fullName=t.fullName,this.inventedBy=t.inventedBy,this.inventionYear=t.inventionYear}pg(){return R(this,Ai)??V(this,Ai,cn(this.pgId??this.id))}kpuzzle(){return R(this,Si)??V(this,Si,PL(this.pg(),this.id))}svg(){return R(this,xi)??V(this,xi,(async()=>(await this.pg()).generatesvg())())}};Ai=new WeakMap,Si=new WeakMap,xi=new WeakMap;ur=class extends Rt{constructor(){super(...arguments);this.stickerings=Zn}stickeringMask(r){return sr(this,r)}}});var Ct,l1=A(()=>{"use strict";Ct={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]}}}};Ct.moves.Rv=Ct.moves.x;Ct.moves.Uv=Ct.moves.y;Ct.moves.Fv=Ct.moves.z;Ct.moves.Lv={CORNERS:{permutation:[1,7,6,2,0,3,5,4],orientation:[2,1,2,1,1,2,1,2]}};Ct.moves.Dv={CORNERS:{permutation:[3,0,1,2,5,6,7,4],orientation:[0,0,0,0,0,0,0,0]}};Ct.moves.Bv={CORNERS:{permutation:[4,7,1,0,5,3,2,6],orientation:[1,2,1,2,2,1,2,1]}}});var o1,i1=A(()=>{"use strict";o1=\`<?xml version="1.0" encoding="UTF-8"?>
|
|
20
20
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN"
|
|
21
21
|
"http://www.w3.org/TR/2001/REC-SVG-20050904/DTD/svg11.dtd">
|
|
22
22
|
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 530 394" preserveAspectRatio="xMidYMid meet">
|
|
@@ -60,7 +60,7 @@ Vertex distance \${this.vertexdistance}\`}writeSchreierSims(t){let n=this.getOrb
|
|
|
60
60
|
<use id="CORNERS-l7-o2" xlink:href="#sticker" transform="translate(6.6, 3.2)" style="fill: #26f"/>
|
|
61
61
|
</g>
|
|
62
62
|
|
|
63
|
-
</svg>\`});var
|
|
63
|
+
</svg>\`});var s1,a1=A(()=>{"use strict";s1={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 f1,u1=A(()=>{"use strict";f1=\`<?xml version="1.0" encoding="UTF-8"?>
|
|
64
64
|
<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">
|
|
65
65
|
<title>clock</title>
|
|
66
66
|
<defs>
|
|
@@ -428,7 +428,7 @@ Vertex distance \${this.vertexdistance}\`}writeSchreierSims(t){let n=this.getOrb
|
|
|
428
428
|
</g>
|
|
429
429
|
</g>
|
|
430
430
|
</g>
|
|
431
|
-
</svg>\`});var
|
|
431
|
+
</svg>\`});var g1,c1=A(()=>{"use strict";g1=\`<?xml version="1.0" encoding="UTF-8"?>
|
|
432
432
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN"
|
|
433
433
|
"http://www.w3.org/TR/2001/REC-SVG-20050904/DTD/svg11.dtd">
|
|
434
434
|
<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">
|
|
@@ -515,7 +515,7 @@ Vertex distance \${this.vertexdistance}\`}writeSchreierSims(t){let n=this.getOrb
|
|
|
515
515
|
<use id="EDGES-l4-o1" xlink:href="#stickerV" transform="translate(1, 1)" style="fill: red"/>
|
|
516
516
|
</g>
|
|
517
517
|
|
|
518
|
-
</svg>\`});var
|
|
518
|
+
</svg>\`});var p1,m1=A(()=>{"use strict";p1={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 L1,B1=A(()=>{"use strict";L1=\`<?xml version="1.0" encoding="UTF-8"?>
|
|
519
519
|
<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">
|
|
520
520
|
<!-- Generator: Sketch 59.1 (86144) - https://sketch.com -->
|
|
521
521
|
<title>sq1-fancy</title>
|
|
@@ -809,7 +809,7 @@ Vertex distance \${this.vertexdistance}\`}writeSchreierSims(t){let n=this.getOrb
|
|
|
809
809
|
<line x1="0.15767665" y1="262.276878" x2="70.4345542" y2="2.27488928e-16" id="TOP"></line>
|
|
810
810
|
</g>
|
|
811
811
|
</g>
|
|
812
|
-
</svg>\`});var ke,
|
|
812
|
+
</svg>\`});var ke,ML,d1,R1=A(()=>{"use strict";ke=new Array(64).fill(0),ML=ke.map((e,t)=>t),d1={name:"Melinda's 2x2x2x2",orbits:{CORNERS:{numPieces:64,numOrientations:1}},startStateData:{CORNERS:{pieces:ML,orientation:ke}},moves:{Rx:{CORNERS:{permutation:[16,19,17,18,20,22,23,21,4,7,5,6,0,2,3,1,28,30,31,29,24,27,25,26,8,10,11,9,12,15,13,14,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63],orientation:ke}},Ry:{CORNERS:{permutation:[12,13,14,15,0,1,2,3,4,5,6,7,8,9,10,11,28,29,30,31,16,17,18,19,20,21,22,23,24,25,26,27,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63],orientation:ke}},Rz:{CORNERS:{permutation:[4,6,7,5,20,23,21,22,24,26,27,25,8,11,9,10,0,3,1,2,16,18,19,17,28,31,29,30,12,14,15,13,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63],orientation:ke}},Lx:{CORNERS:{permutation:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,48,51,49,50,52,54,55,53,36,39,37,38,32,34,35,33,60,62,63,61,56,59,57,58,40,42,43,41,44,47,45,46],orientation:ke}},Ly:{CORNERS:{permutation:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,44,45,46,47,32,33,34,35,36,37,38,39,40,41,42,43,60,61,62,63,48,49,50,51,52,53,54,55,56,57,58,59],orientation:ke}},Lz:{CORNERS:{permutation:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,36,38,39,37,52,55,53,54,56,58,59,57,40,43,41,42,32,35,33,34,48,50,51,49,60,63,61,62,44,46,47,45],orientation:ke}},Mx:{CORNERS:{permutation:[0,1,2,3,20,22,23,21,4,7,5,6,12,13,14,15,16,17,18,19,24,27,25,26,8,10,11,9,28,29,30,31,48,51,49,50,36,37,38,39,40,41,42,43,32,34,35,33,60,62,63,61,52,53,54,55,56,57,58,59,44,47,45,46],orientation:ke}},My:{CORNERS:{permutation:[0,1,2,3,9,8,11,10,45,44,47,46,12,13,14,15,16,17,18,19,25,24,27,26,61,60,63,62,28,29,30,31,5,4,7,6,36,37,38,39,40,41,42,43,33,32,35,34,21,20,23,22,52,53,54,55,56,57,58,59,49,48,51,50],orientation:ke}},Mz:{CORNERS:{permutation:[0,1,2,3,34,33,35,32,47,45,44,46,12,13,14,15,16,17,18,19,7,5,4,6,10,9,11,8,28,29,30,31,51,49,48,50,36,37,38,39,40,41,42,43,62,61,63,60,22,21,23,20,52,53,54,55,56,57,58,59,27,25,24,26],orientation:ke}},Ox:{CORNERS:{permutation:[16,19,17,18,4,5,6,7,8,9,10,11,0,2,3,1,28,30,31,29,20,21,22,23,24,25,26,27,12,15,13,14,32,33,34,35,52,54,55,53,36,39,37,38,44,45,46,47,48,49,50,51,56,59,57,58,40,42,43,41,60,61,62,63],orientation:ke}},Oy:{CORNERS:{permutation:[37,36,39,38,4,5,6,7,8,9,10,11,1,0,3,2,53,52,55,54,20,21,22,23,24,25,26,27,17,16,19,18,32,33,34,35,41,40,43,42,13,12,15,14,44,45,46,47,48,49,50,51,57,56,59,58,29,28,31,30,60,61,62,63],orientation:ke}},Oz:{CORNERS:{permutation:[19,17,16,18,4,5,6,7,8,9,10,11,30,29,31,28,54,53,55,52,20,21,22,23,24,25,26,27,59,57,56,58,32,33,34,35,2,1,3,0,15,13,12,14,44,45,46,47,48,49,50,51,39,37,36,38,42,41,43,40,60,61,62,63],orientation:ke}},U2:{CORNERS:{permutation:[40,41,42,43,44,45,46,47,32,33,34,35,36,37,38,39,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,8,9,10,11,12,13,14,15,0,1,2,3,4,5,6,7,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63],orientation:ke}},D2:{CORNERS:{permutation:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,56,57,58,59,60,61,62,63,48,49,50,51,52,53,54,55,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,24,25,26,27,28,29,30,31,16,17,18,19,20,21,22,23],orientation:ke}},F2:{CORNERS:{permutation:[52,53,54,55,48,49,50,51,8,9,10,11,12,13,14,15,36,37,38,39,32,33,34,35,24,25,26,27,28,29,30,31,20,21,22,23,16,17,18,19,40,41,42,43,44,45,46,47,4,5,6,7,0,1,2,3,56,57,58,59,60,61,62,63],orientation:ke}},B2:{CORNERS:{permutation:[0,1,2,3,4,5,6,7,60,61,62,63,56,57,58,59,16,17,18,19,20,21,22,23,44,45,46,47,40,41,42,43,32,33,34,35,36,37,38,39,28,29,30,31,24,25,26,27,48,49,50,51,52,53,54,55,12,13,14,15,8,9,10,11],orientation:ke}},y2:{CORNERS:{permutation:[40,41,42,43,44,45,46,47,32,33,34,35,36,37,38,39,56,57,58,59,60,61,62,63,48,49,50,51,52,53,54,55,8,9,10,11,12,13,14,15,0,1,2,3,4,5,6,7,24,25,26,27,28,29,30,31,16,17,18,19,20,21,22,23],orientation:ke}},z2:{CORNERS:{permutation:[52,53,54,55,48,49,50,51,60,61,62,63,56,57,58,59,36,37,38,39,32,33,34,35,44,45,46,47,40,41,42,43,20,21,22,23,16,17,18,19,28,29,30,31,24,25,26,27,4,5,6,7,0,1,2,3,12,13,14,15,8,9,10,11],orientation:ke}}},experimentalDerivedMoves:{x:"Lx Rx"}}});var h1,D1=A(()=>{"use strict";h1=\`<?xml version="1.0" encoding="UTF-8"?>
|
|
813
813
|
<svg viewBox="0 0 180 80" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
|
814
814
|
<title>melindas2x2x2x2</title>
|
|
815
815
|
<defs>
|
|
@@ -968,7 +968,7 @@ Vertex distance \${this.vertexdistance}\`}writeSchreierSims(t){let n=this.getOrb
|
|
|
968
968
|
</g>
|
|
969
969
|
</g>
|
|
970
970
|
</g>
|
|
971
|
-
</svg>\`});var Jt={};Lt(Jt,{clockJSON:()=>
|
|
971
|
+
</svg>\`});var Jt={};Lt(Jt,{clockJSON:()=>s1,clockSVG:()=>f1,cube2x2x2JSON:()=>Ct,cube2x2x2SVG:()=>o1,melindas2x2x2x2OrbitJSON:()=>d1,melindas2x2x2x2OrbitSVG:()=>h1,pyraminxSVG:()=>g1,sq1HyperOrbitJSON:()=>p1,sq1HyperOrbitSVG:()=>L1});var Zt=A(()=>{"use strict";l1();i1();a1();u1();c1();m1();B1();R1();D1()});var co,F1=A(()=>{"use strict";We();Xt();At();no();co={id:"2x2x2",fullName:"2\\xD72\\xD72 Cube",kpuzzle:pe(async()=>new Fe((await Promise.resolve().then(()=>(Zt(),Jt))).cube2x2x2JSON)),svg:async()=>(await Promise.resolve().then(()=>(Zt(),Jt))).cube2x2x2SVG,pg:pe(async()=>cn("2x2x2")),stickeringMask:e=>sr(co,e),stickerings:Zn}});var vi,y1=A(()=>{"use strict";vi={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]}}}};vi.experimentalDerivedMoves={Uw:"u",Lw:"l",Fw:"f",Rw:"r",Bw:"b",Dw:"d",Uv:"y",Lv:"x'",Fv:"z",Rv:"x",Bv:"z'",Dv:"y'","2U":"u U'","2L":"l L'","2F":"f F'","2R":"r R'","2B":"b B'","2D":"d D'"}});function za(e){let t=e.stateData.CENTERS.pieces[0],r=e.stateData.CENTERS.pieces[5],n=e.stateData.CENTERS.pieces[1],l=n;return t<n&&l--,r<n&&l--,[t,l]}function S1(){if(!OL){let e=["","z","x","z'","x'","x2"].map(r=>E.fromString(r)),t=new E("y");for(let r of e){let n=Ui.algToTransformation(r);for(let l=0;l<4;l++){n=n.applyAlg(t);let[o,i]=za(n.toKState());A1[o][i]=n.invert()}}}return A1}function x1(e){let[t,r]=za(e),n=S1()[t][r];return e.applyTransformation(n)}function Ca(e,t){return t.ignorePuzzleOrientation&&(e=x1(e)),t.ignoreCenterOrientation&&(e=new me(e.kpuzzle,{EDGES:e.stateData.EDGES,CORNERS:e.stateData.CORNERS,CENTERS:{pieces:e.stateData.CENTERS.pieces,orientation:new Array(6).fill(0)}})),!!e.experimentalToTransformation()?.isIdentityTransformation()}var A1,OL,Na=A(()=>{"use strict";fe();We();Pa();A1=new Array(6).fill(0).map(()=>new Array(6)),OL=!1});var v1=A(()=>{"use strict"});var U1=A(()=>{"use strict";We();Xt()});var Ui,Pa=A(()=>{"use strict";We();y1();Na();v1();Na();Ra();U1();ro();ro();Ui=new Fe(vi);vi.experimentalIsStateSolved=Ca});function Qe(e,t,r,n){let l=[];for(let o of e){let i=B.fromString(o),{family:s,amount:a}=i;if(![-1,1].includes(a))throw new Error("Invalid config move");l.push({family:s,direction:a,type:t,from:r,to:n})}return l}function b1(e,t){let r=w1[e][t]?.[0];if(!r)throw new Error(\`Could not find a reference move (axis: \${e}, move source type: \${t})\`);return r}function TL(e,t,r,n){if(t+1===r){let c=k1[e].get(t);if(c)return new B(new _(c.family),n*c.direction)}let l=pn[e],{sliceDiameter:o}=l;if(t===0&&r===o){let c=b1(e,5);return new B(new _(c.family),n*c.direction)}let i=t+r>o;i&&([t,r]=[o-r,o-t]);let s=t+1,a=r,f=s===a;f&&(a=null),s===1&&(s=null),f&&s===1&&(a=null),!f&&a===2&&(a=null);let u=b1(e,f?i?1:0:i?3:2);return new B(new _(u.family,a,s),n*u.direction)}function GL(e,t=!0){if(e.length===0)return[];let r=po[e[0].family].axis,n=pn[r],{sliceDiameter:l}=n,o=new Map,i=null;function s(c,p){let L=(o.get(c)??0)+p;t&&(L=L%4+5%4-1),L===0?o.delete(c):o.set(c,L)}let a=0;for(let c of Array.from(e).reverse()){a++;let{moveSourceInfo:p}=po[c.family],L=c.amount*p.direction;switch(p.type){case 0:{let m=(c.innerLayer??1)-1;s(m,L),s(m+1,-L);break}case 1:{let m=l-(c.innerLayer??1);s(m,L),s(m+1,-L);break}case 2:{s((c.outerLayer??1)-1,L),s(c.innerLayer??2,-L);break}case 3:{s(l-(c.innerLayer??2),L),s(l-((c.outerLayer??1)-1),-L);break}case 4:{s(p.from,L),s(p.to,-L);break}case 5:{s(0,L),s(l,-L);break}}[0,2].includes(o.size)&&(i={suffixLength:a,sliceDeltas:new Map(o)})}if(o.size===0)return[];if(!i)return e;let[f,g]=i.sliceDeltas.keys();f>g&&([f,g]=[g,f]);let u=i.sliceDeltas.get(f);return[...e.slice(0,-i.suffixLength),...u!==0?[TL(r,f,g,u)]:[]]}var pn,po,w1,E1,k1,IL,_1,z1=A(()=>{"use strict";fe();pn={["x axis"]:{sliceDiameter:3,extendsThroughEntirePuzzle:!0,moveSourceInfos:[...Qe(["R"],0,0,3),...Qe(["L'"],1,0,3),...Qe(["r","Rw"],2,0,2),...Qe(["l'","Lw'"],3,0,2),...Qe(["M'"],4,1,2),...Qe(["x","Uv","Dv'"],5,0,3)]},["y axis"]:{sliceDiameter:3,extendsThroughEntirePuzzle:!0,moveSourceInfos:[...Qe(["U"],0,0,3),...Qe(["D'"],1,0,3),...Qe(["u","Uw"],2,0,2),...Qe(["d'","Dw'"],3,0,2),...Qe(["E'"],4,1,2),...Qe(["y","Uv","Dv'"],5,0,3)]},["z axis"]:{sliceDiameter:3,extendsThroughEntirePuzzle:!0,moveSourceInfos:[...Qe(["F"],0,0,3),...Qe(["B'"],1,0,3),...Qe(["f","Fw"],2,0,3),...Qe(["b'","Bw'"],3,0,3),...Qe(["S"],4,1,2),...Qe(["z","Fv","Bv'"],5,0,3)]}},po={};for(let[e,t]of Object.entries(pn))for(let r of t.moveSourceInfos)po[r.family]={axis:e,moveSourceInfo:r};w1={};for(let e of Object.keys(pn)){let t={};w1[e]=t;for(let r of pn[e].moveSourceInfos)(t[E1=r.type]??(t[E1]=[])).push(r)}k1={};for(let e of Object.keys(pn)){let t=new Map;k1[e]=t;for(let r of pn[e].moveSourceInfos)t.get(r.from)||t.set(r.from,r)}IL=(e,t)=>po[e.family].axis===po[t.family].axis;_1={quantumMoveOrder:()=>4,axis:{areQuantumMovesSameAxis:IL,simplifySameAxisMoves:GL}}});var WL,C1=A(()=>{"use strict";WL=\`<?xml version="1.0" encoding="UTF-8"?>
|
|
972
972
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN"
|
|
973
973
|
"http://www.w3.org/TR/2001/REC-SVG-20050904/DTD/svg11.dtd">
|
|
974
974
|
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 518 440" preserveAspectRatio="xMidYMid meet">
|
|
@@ -1115,7 +1115,7 @@ Vertex distance \${this.vertexdistance}\`}writeSchreierSims(t){let n=this.getOrb
|
|
|
1115
1115
|
</g>
|
|
1116
1116
|
|
|
1117
1117
|
</svg>
|
|
1118
|
-
\`});var
|
|
1118
|
+
\`});var KL,N1=A(()=>{"use strict";KL=\`<?xml version="1.0" encoding="UTF-8"?>
|
|
1119
1119
|
<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">
|
|
1120
1120
|
<title>3x3x3 LL</title>
|
|
1121
1121
|
<defs>
|
|
@@ -1222,7 +1222,7 @@ Vertex distance \${this.vertexdistance}\`}writeSchreierSims(t){let n=this.getOrb
|
|
|
1222
1222
|
<use id="CENTERS-l5-o2" xlink:href="#sticker" style="fill: yellow"/>
|
|
1223
1223
|
<use id="CENTERS-l5-o3" xlink:href="#sticker" style="fill: yellow"/>
|
|
1224
1224
|
</g>
|
|
1225
|
-
</svg>\`});var Ma={};Lt(Ma,{cube3x3x3LLSVG:()=>
|
|
1225
|
+
</svg>\`});var Ma={};Lt(Ma,{cube3x3x3LLSVG:()=>KL,cube3x3x3SVG:()=>WL});var Oa=A(()=>{"use strict";C1();N1()});var Ia,P1=A(()=>{"use strict";Xt();At();Pa();no();z1();Ia={id:"3x3x3",fullName:"3\\xD73\\xD73 Cube",inventedBy:["Ern\\u0151 Rubik"],inventionYear:1974,kpuzzle:pe(async()=>Ui),svg:pe(async()=>(await Promise.resolve().then(()=>(Oa(),Ma))).cube3x3x3SVG),llSVG:pe(async()=>(await Promise.resolve().then(()=>(Oa(),Ma))).cube3x3x3LLSVG),pg:pe(async()=>cn("3x3x3")),stickeringMask:e=>sr(Ia,e),stickerings:Zn,puzzleSpecificSimplifyOptions:_1}});var M1,O1=A(()=>{"use strict";We();At();M1={id:"clock",fullName:"Clock",inventedBy:["Christopher C. Wiggs","Christopher J. Taylor"],inventionYear:1988,kpuzzle:pe(async()=>new Fe((await Promise.resolve().then(()=>(Zt(),Jt))).clockJSON)),svg:pe(async()=>(await Promise.resolve().then(()=>(Zt(),Jt))).clockSVG)}});async function I1(e,t){let r=await e.kpuzzle(),n=new Xn(r),l=new Jn(r),o=()=>l.and([l.move("U"),l.not(l.or(l.moves(["F","BL","BR"])))]),i=()=>l.and([l.move("U"),l.not(l.move("F"))]),s=()=>l.or([i(),l.and([l.move("F"),l.not(l.or(l.moves(["U","BL","BR"])))])]),a=()=>l.not(l.or([l.and([l.move("U"),l.move("F")]),l.and([l.move("F"),l.move("BL")]),l.and([l.move("F"),l.move("BR")]),l.and([l.move("BL"),l.move("BR")])])),f=()=>l.not(l.or([l.and([l.move("F"),l.move("BL")]),l.and([l.move("F"),l.move("BR")]),l.and([l.move("BL"),l.move("BR")])]));switch(t){case"full":break;case"experimental-fto-fc":{n.set(l.not(o()),"Ignored");break}case"experimental-fto-f2t":{n.set(l.not(i()),"Ignored"),n.set(o(),"Dim");break}case"experimental-fto-sc":{n.set(l.not(s()),"Ignored"),n.set(i(),"Dim");break}case"experimental-fto-l2c":{n.set(l.not(a()),"Ignored"),n.set(s(),"Dim");break}case"experimental-fto-lbt":{n.set(l.not(f()),"Ignored"),n.set(a(),"Dim");break}case"experimental-fto-l3t":{n.set(f(),"Dim");break}default:console.warn(\`Unsupported stickering for \${e.id}: \${t}. Setting all pieces to dim.\`),n.set(l.and(l.moves([])),"Dim")}return n.toStickeringMask()}async function T1(){return["full","experimental-fto-fc","experimental-fto-f2t","experimental-fto-sc","experimental-fto-l2c","experimental-fto-lbt","experimental-fto-l3t"]}var G1=A(()=>{"use strict";ro()});var W1,K1=A(()=>{"use strict";W1=\`<?xml version="1.0" encoding="UTF-8"?>
|
|
1226
1226
|
<svg width="2368px" height="1216px" viewBox="0 0 2368 1216" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
|
1227
1227
|
<title>fto</title>
|
|
1228
1228
|
<g id="fto" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" stroke-linejoin="round">
|
|
@@ -1316,7 +1316,7 @@ Vertex distance \${this.vertexdistance}\`}writeSchreierSims(t){let n=this.getOrb
|
|
|
1316
1316
|
</g>
|
|
1317
1317
|
</g>
|
|
1318
1318
|
</svg>
|
|
1319
|
-
\`});var
|
|
1319
|
+
\`});var Q1,j1=A(()=>{"use strict";Q1=\`<svg id="svg" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 800 500">
|
|
1320
1320
|
<style type="text/css"><![CDATA[.sticker { stroke: #000000; stroke-width: 1px; }]]></style>
|
|
1321
1321
|
<g><title>U</title>
|
|
1322
1322
|
<polygon id="CORNERS-l0-o0" class="sticker" style="fill: #ffffff" points="247.941 89.861 283.500 115.696 269.918 157.499 212.382 138.805"/>
|
|
@@ -1391,7 +1391,7 @@ Vertex distance \${this.vertexdistance}\`}writeSchreierSims(t){let n=this.getOrb
|
|
|
1391
1391
|
<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"/>
|
|
1392
1392
|
<polygon id="CORNERS-l14-o0" class="sticker" style="fill: #999999" points="645.154 342.500 658.736 384.303 623.177 410.138 587.618 361.195"/>
|
|
1393
1393
|
</g></svg>
|
|
1394
|
-
\`});var
|
|
1394
|
+
\`});var q1,V1=A(()=>{"use strict";q1={name:"redi_cube",orbits:{EDGES:{numPieces:12,numOrientations:2},CORNERS:{numPieces:8,numOrientations:3}},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]}},moves:{F:{EDGES:{permutation:[8,0,2,3,4,5,6,7,1,9,10,11],orientation:[0,1,0,0,0,0,0,0,1,0,0,0]},CORNERS:{permutation:[0,1,2,3,4,5,6,7],orientation:[1,0,0,0,0,0,0,0]}},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]}},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]}}},experimentalDerivedMoves:{z:"[x: y]",UR:"[y: F]",U:"[y2: F]",UL:"[y': F]",D:"[x: F]",L:"[z2: F]",R:"[x2: F]",B:"[y2 x: F]"}}});var H1,X1=A(()=>{"use strict";H1=\`<?xml version="1.0" encoding="UTF-8"?>
|
|
1395
1395
|
<svg width="546px" height="418px" viewBox="-20 -20 546 418" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
|
1396
1396
|
<title>redi-cube</title>
|
|
1397
1397
|
<g istroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
|
@@ -1543,7 +1543,7 @@ Vertex distance \${this.vertexdistance}\`}writeSchreierSims(t){let n=this.getOrb
|
|
|
1543
1543
|
</g>
|
|
1544
1544
|
</g>
|
|
1545
1545
|
</svg>
|
|
1546
|
-
\`});var mo={};Lt(mo,{ftoSVG:()=>
|
|
1546
|
+
\`});var mo={};Lt(mo,{ftoSVG:()=>W1,kilominxSVG:()=>Q1,rediCubeJSON:()=>q1,rediCubeSVG:()=>H1});var Lo=A(()=>{"use strict";K1();j1();V1();X1()});var Ta,J1,Z1=A(()=>{"use strict";Xt();At();G1();Ta=class extends Rt{constructor(){super({pgID:"FTO",id:"fto",fullName:"Face-Turning Octahedron",inventedBy:["Karl Rohrbach","David Pitcher"],inventionYear:1983});this.stickerings=T1;this.svg=pe(async()=>(await Promise.resolve().then(()=>(Lo(),mo))).ftoSVG)}stickeringMask(r){return I1(this,r)}},J1=new Ta});async function Y1(e,t){switch(console.log(e,t),t){case"full":case"F2L":case"LL":case"OLL":case"EOLL":case"OCLL":case"PLL":case"ELS":case"CLS":return sr(e,t);default:console.warn(\`Unsupported stickering for \${e.id}: \${t}. Setting all pieces to dim.\`)}return sr(e,"full")}async function $1(){return["full","F2L","LL","OLL","EOLL","OCLL","PLL","ELS","CLS"]}var eu=A(()=>{"use strict";no()});var Ga,tu,ru=A(()=>{"use strict";Xt();eu();Ga=class extends Rt{constructor(){super({id:"megaminx",fullName:"Megaminx",inventionYear:1981});this.stickerings=$1}stickeringMask(r){return Y1(this,r)}},tu=new Ga});var Wa,nu,lu=A(()=>{"use strict";Xt();At();Wa=class extends Rt{constructor(){super({id:"pyraminx",fullName:"Pyraminx",inventedBy:["Uwe Meffert"]});this.svg=pe(async()=>(await Promise.resolve().then(()=>(Zt(),Jt))).pyraminxSVG)}},nu=new Wa});var ou,iu=A(()=>{"use strict";We();At();ou={id:"square1",fullName:"Square-1",inventedBy:["Karel Hr\\u0161el","Vojtech Kopsk\\xFD"],inventionYear:1990,kpuzzle:pe(async()=>new Fe((await Promise.resolve().then(()=>(Zt(),Jt))).sq1HyperOrbitJSON)),svg:pe(async()=>(await Promise.resolve().then(()=>(Zt(),Jt))).sq1HyperOrbitSVG)}});var su,au=A(()=>{"use strict";We();Xt();At();su={id:"kilominx",fullName:"Kilominx",kpuzzle:pe(async()=>{let e=await cn("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(()=>(ll(),nl)),n=new r.ExperimentalPGNotation(e,e.getOrbitsDef(!0)),l=new Fe(t,{experimentalPGNotation:{lookupMove:i=>i.toString()==="x2"||i.toString()==="x2'"?o.transformationData:n.lookupMove(i)}}),o=l.algToTransformation("Rv2 Fv Uv'");return t.moves.x2=o,l}),svg:pe(async()=>(await Promise.resolve().then(()=>(Lo(),mo))).kilominxSVG)}});var fu,uu=A(()=>{"use strict";We();At();fu={id:"redi_cube",fullName:"Redi Cube",inventedBy:["Oskar van Deventer"],inventionYear:2009,kpuzzle:pe(async()=>new Fe((await Promise.resolve().then(()=>(Lo(),mo))).rediCubeJSON)),svg:async()=>(await Promise.resolve().then(()=>(Lo(),mo))).rediCubeSVG}});var QL,gu=A(()=>{"use strict";QL=\`<svg
|
|
1547
1547
|
height="256"
|
|
1548
1548
|
viewBox="0 0 256 256"
|
|
1549
1549
|
width="256"
|
|
@@ -1661,8 +1661,8 @@ Vertex distance \${this.vertexdistance}\`}writeSchreierSims(t){let n=this.getOrb
|
|
|
1661
1661
|
<path id="CORNERS-l5-o1" d="m18 3v1h-1v-1z" style="fill: red" />
|
|
1662
1662
|
</g>
|
|
1663
1663
|
</g>
|
|
1664
|
-
</svg>\`});var
|
|
1665
|
-
\`)){let u=g.split(" ");if(!g.startsWith("SetOrder ")){if(g.startsWith("Alg ")){let c=E.fromString(g.substring(4));n.push({alg:c,transformation:e.algToTransformation(c)})}else if(g.startsWith("SubgroupSizes "))for(let c=1;c<u.length;c++)r.push(parseInt(u[c]))}}let l={ordering:new Array(r.length)},o=[],i=0;o.push(0);let s=E.fromString(""),a=e.identityTransformation();for(let g=0;g<r.length;g++)i+=r[g],o.push(i),n.splice(i-1,0,{alg:s,transformation:a});if(n.length!==i)throw Error(\`Bad sgs; expected \${i-r.length} algs but saw \${n.length-r.length}\`);let f={};for(let g in e.definition.orbits){let u=e.definition.orbits[g];f[g]=new Array(u.numPieces).fill(!1)}for(let g=r.length-1;g>=0;g--){let u=[];for(let p=o[g];p<o[g+1];p++){let L=n[p].transformation;for(let m in e.definition.orbits){let d=e.definition.orbits[m];for(let D=0;D<d.numPieces;D++)(L.transformationData[m].permutation[D]!==D||L.transformationData[m].orientation[D]!==0)&&(f[m][D]||(u.push({orbitName:m,permutationIdx:D}),f[m][D]=!0))}}let c={};for(let p=o[g];p<o[g+1];p++){let L=n[p].transformation.invert(),m="";for(let d=0;d<u.length;d++){let D=u[d];m=\`\${m} \${L.transformationData[D.orbitName].permutation[D.permutationIdx]} \${L.transformationData[D.orbitName].orientation[D.permutationIdx]}\`}c[m]=n[p],n[p].alg=n[p].alg.invert(),n[p].transformation=n[p].transformation.invert()}l.ordering[g]={pieceOrdering:u,lookup:c}}return l}var ol=A(()=>{"use strict";fe()});async function
|
|
1664
|
+
</svg>\`});var cu={};Lt(cu,{cube4x4x4LLSVG:()=>QL});var pu=A(()=>{"use strict";gu()});var Ka,mu=A(()=>{"use strict";Xt();At();Ka=new ur({id:"4x4x4",fullName:"4\\xD74\\xD74 Cube"});Ka.llSVG=pe(async()=>(await Promise.resolve().then(()=>(pu(),cu))).cube4x4x4LLSVG)});var Lu,Bu=A(()=>{"use strict";We();At();Lu={id:"melindas2x2x2x2",fullName:"Melinda's 2\\xD72\\xD72\\xD72",inventedBy:["Melinda Green"],kpuzzle:pe(async()=>new Fe((await Promise.resolve().then(()=>(Zt(),Jt))).melindas2x2x2x2OrbitJSON)),svg:pe(async()=>(await Promise.resolve().then(()=>(Zt(),Jt))).melindas2x2x2x2OrbitSVG)}});var Oe,gr=A(()=>{"use strict";Df();Xt();F1();P1();O1();Z1();ru();lu();iu();au();uu();mu();Bu();Oe={"3x3x3":Ia,"2x2x2":co,"4x4x4":Ka,"5x5x5":new ur({id:"5x5x5",fullName:"5\\xD75\\xD75 Cube"}),"6x6x6":new ur({id:"6x6x6",fullName:"6\\xD76\\xD76 Cube"}),"7x7x7":new ur({id:"7x7x7",fullName:"7\\xD77\\xD77 Cube"}),"40x40x40":new ur({id:"40x40x40",fullName:"40\\xD740\\xD740 Cube"}),clock:M1,megaminx:tu,pyraminx:nu,skewb:new Rt({id:"skewb",fullName:"Skewb",inventedBy:["Tony Durham"]}),square1:ou,fto:J1,gigaminx:new Rt({id:"gigaminx",fullName:"Gigaminx",inventedBy:["Tyler Fox"],inventionYear:2006}),master_tetraminx:new Rt({pgID:"master tetraminx",id:"master_tetraminx",fullName:"Master Tetraminx",inventedBy:["Katsuhiko Okamoto"],inventionYear:2002}),kilominx:su,redi_cube:fu,melindas2x2x2x2:Lu}});function Ru(e){du=e}function Ee(){if(!du)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 du,St=A(()=>{"use strict";du=!1});function VL(){let{crypto:e}=globalThis;if(!e){let{node:t}=globalThis.process?.versions;if(t&&parseInt(t.split(".")[0])<19)throw new Error("\`node\` 19 or above is required for randomization using \`random-uint-below\`")}return e}function hu(){let e=new Uint32Array(2);VL().getRandomValues(e);let t=e[0],r=e[1];return Math.floor(t*jL)+Math.floor(r/qL)}function HL(e){if(typeof e!="number"||e<0||Math.floor(e)!==e)throw new Error("randomUIntBelow() not called with a positive integer value.");if(e>Du)throw new Error(\`Called randomUIntBelow() with max === \${e}, which is larger than JavaScript can handle with integer precision.\`)}function te(e){HL(e);let t=hu(),r=Math.floor(Du/e)*e;for(;t>=r;)return t=hu();return t%e}function cr(e){return e[te(e.length)]}async function Fu(e){for(let t=1;t<e.length;t++){let r=te(t);[e[t],e[r]]=[e[r],e[t]]}}var Du,jL,qL,xt=A(()=>{Du=9007199254740992,jL=2097152,qL=2048});function Yt(e,t){let r=[],n=[];for(let g of t.split(\`
|
|
1665
|
+
\`)){let u=g.split(" ");if(!g.startsWith("SetOrder ")){if(g.startsWith("Alg ")){let c=E.fromString(g.substring(4));n.push({alg:c,transformation:e.algToTransformation(c)})}else if(g.startsWith("SubgroupSizes "))for(let c=1;c<u.length;c++)r.push(parseInt(u[c]))}}let l={ordering:new Array(r.length)},o=[],i=0;o.push(0);let s=E.fromString(""),a=e.identityTransformation();for(let g=0;g<r.length;g++)i+=r[g],o.push(i),n.splice(i-1,0,{alg:s,transformation:a});if(n.length!==i)throw Error(\`Bad sgs; expected \${i-r.length} algs but saw \${n.length-r.length}\`);let f={};for(let g in e.definition.orbits){let u=e.definition.orbits[g];f[g]=new Array(u.numPieces).fill(!1)}for(let g=r.length-1;g>=0;g--){let u=[];for(let p=o[g];p<o[g+1];p++){let L=n[p].transformation;for(let m in e.definition.orbits){let d=e.definition.orbits[m];for(let D=0;D<d.numPieces;D++)(L.transformationData[m].permutation[D]!==D||L.transformationData[m].orientation[D]!==0)&&(f[m][D]||(u.push({orbitName:m,permutationIdx:D}),f[m][D]=!0))}}let c={};for(let p=o[g];p<o[g+1];p++){let L=n[p].transformation.invert(),m="";for(let d=0;d<u.length;d++){let D=u[d];m=\`\${m} \${L.transformationData[D.orbitName].permutation[D.permutationIdx]} \${L.transformationData[D.orbitName].orientation[D.permutationIdx]}\`}c[m]=n[p],n[p].alg=n[p].alg.invert(),n[p].transformation=n[p].transformation.invert()}l.ordering[g]={pieceOrdering:u,lookup:c}}return l}var ol=A(()=>{"use strict";fe()});async function Au(){return oB??(oB=iB())}async function iB(){return Yt(await co.kpuzzle(),\`SubgroupSizes 24 21 18 15 12 9 6
|
|
1666
1666
|
|
|
1667
1667
|
Alg F
|
|
1668
1668
|
Alg F2
|
|
@@ -1761,7 +1761,7 @@ Alg F D' F L' D F R2 U2 F' U'
|
|
|
1761
1761
|
Alg F D' L D' L F D2 L2 B' R'
|
|
1762
1762
|
Alg F L' D F R2 D2 L D F' U2
|
|
1763
1763
|
Alg F L' D F2 D' L F L2 F2 U
|
|
1764
|
-
Alg F D F' D L2 F R' F' D' B2 U'\`)}var
|
|
1764
|
+
Alg F D F' D L2 F R' F' D' B2 U'\`)}var oB,Su=A(()=>{"use strict";gr();ol();oB=null});async function sB(){let{getPuzzleGeometryByName:e,ExperimentalPGNotation:t}=await Promise.resolve().then(()=>(ll(),nl)),r=e("megaminx",{allMoves:!0,addRotations:!0}),n=new Fe(r.getKPuzzleDefinition(!0),{experimentalPGNotation:new t(r,r.getOrbitsDef(!0))});return n.definition.name="megaminx",n}async function qa(){return aB??(aB=sB())}async function xu(){return fB??(fB=uB())}async function uB(){return Yt(await qa(),\`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
|
|
1765
1765
|
|
|
1766
1766
|
Alg Rv
|
|
1767
1767
|
Alg Rv2
|
|
@@ -3281,7 +3281,7 @@ Alg L' BL2 L2' F' L2 BL2' L2' F L2'
|
|
|
3281
3281
|
Alg U BL2' U R U' BL2 U' L U2 R' U2' L'
|
|
3282
3282
|
Alg U BR U' L2 F L' U BR' U' L F' L2'
|
|
3283
3283
|
Alg U L' BL2 L' FL' L BL2' L U' L2' FL L2
|
|
3284
|
-
Alg U BR2' U R' U2' L U2 R U' BR2 U' L'\`)}var
|
|
3284
|
+
Alg U BR2' U R' U2' L U2 R U' BR2 U' L'\`)}var aB,fB,vu=A(()=>{"use strict";We();ol();aB=null;fB=null});async function Va(){return gB??(gB=cB())}async function Uu(){return{ordering:(await Va()).ordering.slice(2)}}async function cB(){return Yt(await Oe.pyraminx.kpuzzle(),\`SubgroupSizes 12 9 12 3 10 3 8 6 2 3 3 3 3
|
|
3285
3285
|
|
|
3286
3286
|
Alg B
|
|
3287
3287
|
Alg B'
|
|
@@ -3358,7 +3358,7 @@ Alg r
|
|
|
3358
3358
|
Alg r'
|
|
3359
3359
|
|
|
3360
3360
|
Alg u
|
|
3361
|
-
Alg u'\`)}var
|
|
3361
|
+
Alg u'\`)}var gB,bu=A(()=>{"use strict";gr();ol();gB=null});async function pB(){let{getPuzzleGeometryByName:e,ExperimentalPGNotation:t}=await Promise.resolve().then(()=>(ll(),nl)),r=e("skewb",{allMoves:!0,addRotations:!0});return new Fe(r.getKPuzzleDefinition(!0),{experimentalPGNotation:new t(r,r.getOrbitsDef(!0))})}async function Ha(){return mB??(mB=pB())}async function Xa(){return LB??(LB=BB())}async function Eu(){return{ordering:(await Xa()).ordering.slice(1)}}async function BB(){return Yt(await Ha(),\`SubgroupSizes 24 6 5 12 9 3 4 9 3 3
|
|
3362
3362
|
|
|
3363
3363
|
Alg y
|
|
3364
3364
|
Alg y2
|
|
@@ -3436,7 +3436,7 @@ Alg U L U' B' U L' U' B
|
|
|
3436
3436
|
Alg U' B L U L B' U' L'
|
|
3437
3437
|
|
|
3438
3438
|
Alg U R' U' L B R' B' R
|
|
3439
|
-
Alg R' U' R U B' U' B L\`)}var pB,mB,ku=A(()=>{"use strict";We();ol();pB=null;mB=null});var _u={};Lt(_u,{cachedData222:()=>Su,cachedMegaminxKPuzzleWithoutMO:()=>Ha,cachedSGSDataMegaminx:()=>vu,sgsDataPyraminx:()=>Xa,sgsDataPyraminxFixedOrientation:()=>bu,sgsDataSkewb:()=>Za,sgsDataSkewbFixedCorner:()=>wu,skewbKPuzzleWithoutMOCached:()=>Ja});var zu=A(()=>{"use strict";xu();Uu();Eu();ku()});function il(e,t){let r=new Bt;r.experimentalPushAlg(e);for(let n of t){let l=Yt(n);l!==null&&r.push(B.fromString(l))}return r.toAlg()}var Ei=A(()=>{"use strict";fe();xt()});function Vu(){}function DB(e){function t(){}return t.prototype=e||{},new t}function FB(e){return e instanceof Array?e[0]:null}function xo(e,t,r){var n=Qi,l=yB,o=FB,i=n[e],s=o(i);i&&!s?X=i:(X=n[e]=t?l(t):{},X.castableTypeMap$=r,X.constructor=X,!t&&(X.typeMarker$=Vu));for(var a=3;a<arguments.length;++a)arguments[a].prototype=X;s&&(X.___clazz$=s)}function yB(e){var t=Qi;return DB(t[e])}function AB(){}function Ci(e){return e<<24>>24}function g0(){this.typeName=null,this.simpleName=null,this.packageName=null,this.compoundName=null,this.canonicalName=null,this.typeId=null,this.arrayLiterals=null}function c0(e,t){var r;return r=new g0,r.packageName=e,r.compoundName=t,r}function Or(e,t,r){var n;return n=c0(e,t),vB(r,n),n}function SB(e,t){var r;return r=c0(e,t),r.modifiers=2,r}function ji(e,t){var r;return r=c0("",e),r.typeId=t,r.modifiers=1,r}function Hu(e,t){var r=e.arrayLiterals=e.arrayLiterals||[];return r[t]||(r[t]=e.createClassLiteralForArray(t))}function xB(e){if(e.isPrimitive())return null;var t=e.typeId,r=Qi[t];return r}function vB(e,t){if(!!e){t.typeId=e;var r=xB(t);if(!r){Qi[e]=[t];return}r.___clazz$=t}}function re(e,t){return Hu(e,t)}function $(e,t,r,n,l,o){var i;return i=Ju(l,n),ne(re(e,o),t,r,l,i),i}function nt(e,t,r,n,l,o){return Xu(e,t,r,n,l,0,o)}function Xu(e,t,r,n,l,o,i){var s,a,f,g,u;if(g=l[o],f=o===i-1,s=f?n:0,u=Ju(s,g),ne(re(e,i-o),t[o],r[o],s,u),!f)for(++o,a=0;a<g;++a)u[a]=Xu(e,t,r,n,l,o,i);return u}function ne(e,t,r,n,l){return l.___clazz$=e,l.castableTypeMap$=t,l.typeMarker$=Vu,l.__elementTypeId$=r,l.__elementTypeCategory$=n,l}function Ju(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 l=0;l<t;++l)r[l]=n;return r}function Ou(e){var t,r,n;return t=e<,r=e>>22<,n=e<0?zr:0,UB(t,r,n)}function UB(e,t,r){return{l:e,m:t,h:r}}function bB(e,t){var r,n,l;return r=e.l+t.l,n=e.m+t.m+(r>>22),l=e.h+t.h+(n>>22),{l:r<,m:n<,h:l&zr}}function er(e,t){return{l:e.l&t.l,m:e.m&t.m,h:e.h&t.h}}function p0(e){var t,r;return e>-129&&e<128?(t=e+128,wi==null&&(wi=$(id,ge,293,256,0,1)),r=wi[t],!r&&(r=wi[t]=Ou(e)),r):Ou(e)}function Zu(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 $a(e,t){return e.l!==t.l||e.m!==t.m||e.h!==t.h}function r0(e,t){return{l:e.l|t.l,m:e.m|t.m,h:e.h|t.h}}function Ni(e,t){var r,n,l;return t&=63,t<22?(r=e.l<<t,n=e.m<<t|e.l>>22-t,l=e.h<<t|e.m>>22-t):t<44?(r=0,n=e.l<<t-22,l=e.m<<t-22|e.l>>44-t):(r=0,n=0,l=e.l<<t-44),{l:r<,m:n<,h:l&zr}}function Ln(e,t){var r,n,l,o,i;return t&=63,r=e.h,n=(r&hB)!==0,n&&(r|=-1048576),t<22?(i=r>>t,o=e.m>>t|r<<22-t,l=e.l>>t|e.m<<22-t):t<44?(i=n?zr:0,o=r>>t-22,l=e.m>>t-22|r<<44-t):(i=n?zr:0,o=n?lt:0,l=r>>t-44),{l:l<,m:o<,h:i&zr}}function Yu(e,t){var r,n,l;return r=e.l-t.l,n=e.m-t.m+(r>>22),l=e.h-t.h+(n>>22),{l:r<,m:n<,h:l&zr}}function Bn(e){return e.l|e.m<<22}function EB(e){this.string=e}function Cr(e,t){return e>t?e:t}function m0(e,t){return e<t?e:t}function wB(e,t){return e.indexOf(t)}function kB(e){return _B(e,0,e.length)}function _B(e,t,r){for(var n="",l=t;l<r;){var o=Math.min(l+1e4,r);n+=String.fromCharCode.apply(null,e.slice(l,o)),l=o}return n}function zB(e){return String.fromCharCode(e&Ze)}function Iu(e){return e.string+=" ",e}function Tu(e,t){return e.string+=t,e}function NB(){EB.call(this,"")}function Pi(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 dn(){Gu||(Gu=!0,kr=nt(xe,[ge,Se],[11,0],7,[495,18],2),pl=nt(xe,[ge,Se],[11,0],7,[324,18],2),dl=nt(xe,[ge,Se],[11,0],7,[336,18],2),Nr=nt(xe,[ge,Se],[11,0],7,[495,8],2),Hi=$(qe,je,0,20048,7,1),Vi=$(qe,je,0,20791,7,1),cl=$(qe,je,0,82945,7,1),al=nt(xe,[ge,Se],[11,0],7,[2768,10],2),ul=nt(xe,[ge,Se],[11,0],7,[2768,10],2),gl=nt(xe,[ge,Se],[11,0],7,[24,10],2),vo=nt(xe,[ge,Se],[11,0],7,[24,16],2),Rn=nt(xe,[ge,Se],[11,0],7,[140,16],2),qi=$(qe,je,0,8305,7,1),fl=$(qe,je,0,48441,7,1))}function PB(e,t,r){return e.slice_0=kr[t.slice_0][r],e.flip=dl[t.flip][(ee(),Dn)[r<<3|t.fsym]],e.fsym=e.flip&7^t.fsym,e.flip>>=3,e.twist=pl[t.twist][Dn[r<<3|t.tsym]],e.tsym=e.twist&7^t.tsym,e.twist>>=3,e.prun=Cr(Cr(gt(Hi,e.twist*495+Nr[e.slice_0][e.tsym]),gt(Vi,e.flip*495+Nr[e.slice_0][e.fsym])),gt(cl,e.twist<<11|Mr[e.flip<<3|e.fsym^e.tsym])),e.prun}function MB(e,t,r){return r=(ee(),yo)[3][r],e.flipc=dl[t.flipc>>3][Dn[r<<3|t.flipc&7]]^t.flipc&7,e.twistc=pl[t.twistc>>3][Dn[r<<3|t.twistc&7]]^t.twistc&7,gt(cl,e.twistc>>3<<11|Mr[e.flipc^e.twistc&7])}function $u(e,t,r){var n;return e.twist=(ee(),So)[Oi(t)],e.flip=hn[Mi(t)],e.tsym=e.twist&7,e.twist=e.twist>>3,e.prun=gt(cl,e.twist<<11|Mr[e.flip^e.tsym]),e.prun>r||(e.fsym=e.flip&7,e.flip=e.flip>>3,e.slice_0=494-Ll(t.ea,8,!0),e.prun=Cr(e.prun,Cr(gt(Hi,e.twist*495+Nr[e.slice_0][e.tsym]),gt(Vi,e.flip*495+Nr[e.slice_0][e.fsym]))),e.prun>r)?!1:(n=new Be,Uo(t,1,n),bo(t,1,n),e.twistc=So[Oi(n)],e.flipc=hn[Mi(n)],e.prun=Cr(e.prun,gt(cl,e.twistc>>3<<11|Mr[e.flipc^e.twistc&7])),e.prun<=r)}function Do(){dn()}function gt(e,t){return dn(),e[t>>3]>>(t<<2)&15}function eg(e){dn(),!(ki===2||ki===1&&!e)&&(ki===0&&(JB(),OB(),TB(),WB(),IB(),ee(),l0(2048,h0,hn,Ku=$(xe,Se,0,336,7,1),0),l0(2187,F0,So,e0=$(xe,Se,0,324,7,1),1),GB(),KB(),QB()),ho(qi,gl,vo,al,(ee(),o0),584244,e),ho(fl,n0,Rn,ul,o0,514084,e),ho(Hi,kr,Nr,pl,e0,431619,e),ho(Vi,kr,Nr,dl,Ku,431619,e),ho(cl,null,null,pl,e0,103939,e),ki=e?2:1)}function OB(){var e,t,r,n;for(e=new Be,t=new Be,r=0;r<2768;r++)for(VB(e,(ee(),sl)[r]),n=0;n<10;n++)Pr(e,Le[(tt(),Mt)[n]],t),al[r][n]=Ti(dr[pt(t.ca,8,!1)])&Ze}function IB(){var e,t,r,n,l;for(e=new Be,t=new Be,n0=nt(xe,[ge,Se],[11,0],7,[140,10],2),r=0;r<140;r++){for(pg(e.ca,r%70,0,!1),l=0;l<10;l++)Pr(e,(ee(),Le)[(tt(),Mt)[l]],t),n0[r][l]=Ll(t.ca,0,!1)+70*(165>>l&1^~~(r/70))&Ze;for(n=0;n<16;n++)Uo(e,(ee(),ct)[0][n],t),Rn[r][n]=Ll(t.ca,0,!1)+70*~~(r/70)&Ze}}function TB(){var e,t,r,n;for(e=new Be,t=new Be,r=0;r<2768;r++)for(ng(e,(ee(),sl)[r]),n=0;n<10;n++)vt(e,Le[(tt(),Mt)[n]],t),ul[r][n]=dr[pt(t.ea,8,!0)]}function GB(){var e,t,r,n;for(e=new Be,t=new Be,r=0;r<336;r++)for(d0(e,(ee(),h0)[r]),n=0;n<18;n++)vt(e,Le[n],t),dl[r][n]=hn[Mi(t)]}function WB(){var e,t,r,n,l;for(e=new Be,t=new Be,r=0;r<24;r++){for(Fn(e.ea,r,12,!0),l=0;l<10;l++)vt(e,(ee(),Le)[(tt(),Mt)[l]],t),gl[r][l]=pt(t.ea,12,!0)%24&Ze;for(n=0;n<16;n++)bo(e,(ee(),ct)[0][n],t),vo[r][n]=pt(t.ea,12,!0)%24&Ze}}function ho(e,t,r,n,l,o,i){var s,a,f,g,u,c,p,L,m,d,D,F,S,v,U,P,Z,C,Q,x,z,N,b,w,M,j,q,se,De,Ue,Ye,Et,Re,Dt,it,mt;if(S=o&15,D=(o>>4&1)===1?u0:0,f=(o>>5&1)===1,s=o>>8&15,g=o>>12&15,u=o>>16&15,d=i?g:u,F=(1<<S)-1,a=t===null,L=a?2048:t.length,m=L*n.length,p=f?10:18,c=p===10?66:599186,U=(e[m>>3]>>(m<<2)&15)-1,U===-1){for(C=0;C<~~(m/8)+1;C++)e[C]=Ro;e[0]^=1,U=0}for(;U<d;){for(M=(U+1)*Ro^-1,Q=0;Q<e.length;Q++)it=e[Q]^M,it&=it>>1,e[Q]+=it&it>>2&Ro;for(N=U>s,Ue=N?U+2:U,De=Ue*Ro,v=N?U:U+2,++U,mt=U^U+1,Dt=0,C=0;C<m;++C,Dt>>=4){if((C&7)===0&&(Dt=e[C>>3],((Dt^De)-Ro&~(Dt^De)&-2004318072)===0)){C+=7;continue}if((Dt&15)===Ue)for(q=C%L,Ye=~~(C/L),P=0,Z=0,a&&(P=(ee(),hn)[q],Z=P&7,P>>=3),w=0;w<p;w++){if(Re=n[Ye][w],a?se=(ee(),Mr)[dl[P][Dn[w<<3|Z]]^Z^Re&F]:se=r[t[q][w]][Re&F],Re>>=S,x=Re*L+se,j=e[x>>3]>>(x<<2)&15,j!==v){j<U-1&&(w+=c>>w&3);continue}if(N){e[C>>3]^=mt<<(C<<2);break}for(e[x>>3]^=mt<<(x<<2),b=1,Et=l[Re];(Et>>=1)!==0;b++)(Et&1)===1&&(z=Re*L,a?z+=(ee(),Mr)[hn[se]^b]:z+=r[se][b^D>>(b<<1)&3],(e[z>>3]>>(z<<2)&15)===v&&(e[z>>3]^=mt<<(z<<2)))}}}}function KB(){var e,t,r,n;for(e=new Be,t=new Be,r=0;r<324;r++)for(R0(e,(ee(),F0)[r]),n=0;n<18;n++)Pr(e,Le[n],t),pl[r][n]=So[Oi(t)]}function QB(){var e,t,r,n,l,o,i,s;for(e=new Be,t=new Be,n=0;n<495;n++){for(pg(e.ea,494-n,8,!0),o=0;o<18;o+=3)vt(e,(ee(),Le)[o],t),kr[n][o]=494-Ll(t.ea,8,!0)&Ze;for(l=0;l<16;l+=2)bo(e,(ee(),ct)[0][l],t),Nr[n][l>>1]=494-Ll(t.ea,8,!0)&Ze}for(r=0;r<495;r++)for(l=0;l<18;l+=3)for(s=kr[r][l],i=1;i<3;i++)s=kr[s][l],kr[r][l+i]=s&Ze}function ee(){Wu||(Wu=!0,Lr=$(Ao,ge,7,16,0,1),Le=$(Ao,ge,7,18,0,1),Xi=$(sd,ge,0,18,6,1),ig=$(qe,je,0,48,7,1),Br=nt(qe,[ge,je],[17,0],7,[16,16],2),ct=nt(qe,[ge,je],[17,0],7,[16,16],2),yo=nt(qe,[ge,je],[17,0],7,[16,18],2),Dn=$(qe,je,0,144,7,1),_r=nt(qe,[ge,je],[17,0],7,[16,18],2),h0=$(xe,Se,0,336,7,1),F0=$(xe,Se,0,324,7,1),sl=$(xe,Se,0,2768,7,1),ml=$(le,ue,0,2768,7,1),D0=$(xe,Se,0,2768,7,1),Gi=$(le,ue,0,24,7,1),hn=$(xe,Se,0,2048,7,1),So=$(xe,Se,0,2187,7,1),dr=$(xe,Se,0,40320,7,1),Mr=$(xe,Se,0,2688,7,1),i0=new Pt(2531,1373,67026819,1367),s0=new Pt(2089,1906,322752913,2040),Wi=ne(re(le,2),ge,10,0,[ne(re(le,1),ue,0,7,[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17]),ne(re(le,1),ue,0,7,[6,7,8,0,1,2,3,4,5,15,16,17,9,10,11,12,13,14]),ne(re(le,1),ue,0,7,[3,4,5,6,7,8,0,1,2,12,13,14,15,16,17,9,10,11]),ne(re(le,1),ue,0,7,[2,1,0,5,4,3,8,7,6,11,10,9,14,13,12,17,16,15]),ne(re(le,1),ue,0,7,[8,7,6,2,1,0,5,4,3,17,16,15,11,10,9,14,13,12]),ne(re(le,1),ue,0,7,[5,4,3,8,7,6,2,1,0,14,13,12,17,16,15,11,10,9])]),XB(),ZB())}function L0(e){e.ca=ne(re(le,1),ue,0,7,[0,1,2,3,4,5,6,7]),e.ea=ne(re(le,1),ue,0,7,[0,2,4,6,8,10,12,14,16,18,20,22])}function tg(e){!e.temps&&(e.temps=new Be),Pr(s0,e,e.temps),Pr(e.temps,i0,e),vt(s0,e,e.temps),vt(e.temps,i0,e)}function B0(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 jB(e){return Ti(dr[pt(e.ca,8,!1)])}function qB(e){return dr[pt(e.ea,8,!0)]}function Mi(e){var t,r;for(r=0,t=0;t<11;t++)r=r<<1|e.ea[t]&1;return r}function Oi(e){var t,r;for(r=0,t=0;t<7;t++)r+=(r<<1)+(e.ca[t]>>3);return r}function Ii(e){var t,r;for(!e.temps&&(e.temps=new Be),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;B0(e,e.temps)}function rg(e){var t,r,n,l,o,i,s;for(t=new lg(e),l=new Be,r=Ti(dr[pt(t.ca,8,!1)])>>4,i={l:0,m:0,h:0},s=0;s<6;s++){if(n=Ti(dr[pt(t.ca,8,!1)])>>4,r===n)for(o=0;o<16;o++)Uo(t,ct[0][o],l),Pi(l.ca,e.ca)&&(bo(t,ct[0][o],l),Pi(l.ea,e.ea)&&(i=r0(i,Ni({l:1,m:0,h:0},(s<<4|o)<48?s<<4|o:48))));tg(t),s%3===2&&Ii(t)}return i}function VB(e,t){Fn(e.ca,t,8,!1)}function ng(e,t){Fn(e.ea,t,8,!0)}function d0(e,t){var r,n,l;for(n=0,r=10;r>=0;--r,t>>=1)n^=l=t&1,e.ea[r]=(e.ea[r]&-2|l)<<24>>24;e.ea[11]=(e.ea[11]&-2|n)<<24>>24}function R0(e,t){var r,n,l;for(n=15,r=6;r>=0;--r,t=~~(t/3))n-=l=t%3,e.ca[r]=(e.ca[r]&7|l<<3)<<24>>24;e.ca[7]=(e.ca[7]&7|n%3<<3)<<24>>24}function HB(e){var t,r,n,l,o;for(o=0,l=0,n=0;n<12;n++)l|=1<<(e.ea[n]>>1),o^=e.ea[n]&1;if(l!==4095)return-2;if(o!==0)return-3;for(r=0,o=0,t=0;t<8;t++)r|=1<<(e.ca[t]&7),o+=e.ca[t]>>3;return r!==255?-4:o%3!==0?-5:(a0(pt(e.ea,12,!0),12)^a0(pt(e.ca,8,!1),8))!==0?-6:0}function Uo(e,t,r){ee();var n,l,o,i,s,a;for(a=Lr[ct[0][t]],s=Lr[t],n=0;n<8;n++)o=a.ca[e.ca[s.ca[n]&7]&7]>>3,i=e.ca[s.ca[n]&7]>>3,l=o<3?i:(3-i)%3,r.ca[n]=(a.ca[e.ca[s.ca[n]&7]&7]&7|l<<3)<<24>>24}function Pr(e,t,r){ee();var n,l,o;for(n=0;n<8;n++)l=e.ca[t.ca[n]&7]>>3,o=t.ca[n]>>3,r.ca[n]=(e.ca[t.ca[n]&7]&7|(l+o)%3<<3)<<24>>24}function zi(e,t,r){var n,l,o,i;for(n=0;n<8;n++)o=e.ca[t.ca[n]&7]>>3,i=t.ca[n]>>3,l=o+(o<3?i:6-i),l=l%3+(o<3==i<3?0:3),r.ca[n]=(e.ca[t.ca[n]&7]&7|l<<3)<<24>>24}function Be(){ee(),L0(this)}function Pt(e,t,r,n){L0(this),Fn(this.ca,e,8,!1),R0(this,t),Fn(this.ea,r,12,!0),d0(this,n)}function lg(e){L0(this),B0(this,e)}function Ti(e){return ee(),e^u0>>((e&15)<<1)&3}function bo(e,t,r){ee();var n,l,o;for(o=Lr[ct[0][t]],l=Lr[t],n=0;n<12;n++)r.ea[n]=(o.ea[e.ea[l.ea[n]>>1]>>1]^e.ea[l.ea[n]>>1]&1^l.ea[n]&1)<<24>>24}function vt(e,t,r){ee();var n;for(n=0;n<12;n++)r.ea[n]=(e.ea[t.ea[n]>>1]^t.ea[n]&1)<<24>>24}function wr(e,t,r){ee();var n;return n=D0[e],r&&(n=n^u0>>((n&15)<<1)&3),n&65520|Br[n&15][t]}function og(){return ee(),0}function XB(){var e,t;for(Le[0]=new Pt(15120,0,119750400,0),Le[3]=new Pt(21021,1494,323403417,0),Le[6]=new Pt(8064,1236,29441808,550),Le[9]=new Pt(9,0,5880,0),Le[12]=new Pt(1230,412,2949660,0),Le[15]=new Pt(224,137,328552,137),e=0;e<18;e+=3)for(t=0;t<2;t++)Le[e+t+1]=new Be,vt(Le[e+t],Le[e],Le[e+t+1]),Pr(Le[e+t],Le[e],Le[e+t+1])}function JB(){ee();var e,t,r;for(l0(40320,sl,dr,o0=$(xe,Se,0,2768,7,1),2),e=new Be,r=0;r<2768;r++)ng(e,sl[r]),ml[r]=Ll(e.ea,0,!0)+a0(sl[r],8)*70<<24>>24,Ii(e),D0[r]=dr[pt(e.ea,8,!0)];for(t=0;t<24;t++)Fn(e.ea,t,12,!0),Ii(e),Gi[t]=pt(e.ea,12,!0)%24<<24>>24}function ZB(){var e,t,r,n,l,o,i,s,a,f,g,u,c,p,L,m;for(e=new Be,t=new Be,r=new Pt(28783,0,259268407,0),m=new Pt(15138,0,119765538,7),u=new Pt(5167,0,83473207,0),l=0;l<8;l++)u.ca[l]=Ci(u.ca[l]|24);for(o=0;o<16;o++)Lr[o]=new lg(e),zi(e,m,t),vt(e,m,t),L=t,t=e,e=L,o%4===3&&(zi(L,u,t),vt(L,u,t),L=t,t=e,e=L),o%8===7&&(zi(L,r,t),vt(L,r,t),L=t,t=e,e=L);for(i=0;i<16;i++)for(a=0;a<16;a++)for(zi(Lr[i],Lr[a],e),g=0;g<16;g++)if(Pi(Lr[g].ca,e.ca)){Br[i][a]=g,ct[g][a]=i;break}for(f=0;f<18;f++)for(p=0;p<16;p++){for(Uo(Le[f],ct[0][p],e),c=0;c<18;c++)if(Pi(Le[c].ca,e.ca)){yo[p][f]=c,_r[p][(tt(),Bl)[f]]=Bl[c];break}p%2===0&&(Dn[f<<3|p>>1]=yo[p][f])}for(n=0;n<18;n++)for(Xi[n]=rg(Le[n]),s=n,p=0;p<48;p++)yo[p%16][s]<n&&(ig[p]|=1<<n),p%16===15&&(s=Wi[2][s])}function l0(e,t,r,n,l){ee();var o,i,s,a,f,g,u,c,p;for(o=new Be,s=new Be,i=0,f=0,p=l>=2?1:2,g=l!==1,a=0;a<e;a++)if(r[a]===0){switch(l){case 0:{d0(o,a);break}case 1:{R0(o,a);break}case 2:Fn(o.ea,a,8,!0)}for(u=0;u<16;u+=p){switch(g?bo(o,u,s):Uo(o,u,s),l){case 0:{f=Mi(s);break}case 1:{f=Oi(s);break}case 2:f=pt(s.ea,8,!0)}l===0&&(Mr[i<<3|u>>1]=f&Ze),f===a&&(n[i]=(n[i]|1<<~~(u/p))&Ze),c=~~((i<<4|u)/p),r[f]=c&Ze}t[i++]=a&Ze}return i}function YB(e,t,r,n,l,o,i,s){var a,f,g,u,c;if(u=Cr(gt((dn(),fl),(i>>4)*140+Rn[(ee(),ml)[s>>4]&255][ct[i&15][s&15]]),Cr(gt(fl,n*140+Rn[ml[t]&255][ct[l][r]]),gt(qi,t*24+vo[o][r]))),u>e.maxDep2)return u-e.maxDep2;for(a=e.maxDep2;a>=u&&(c=fg(e,n,l,t,r,o,a,e.depth1,10),!(c<0));a--){for(a-=c,e.solLen=0,e.solution=new mg,od(e.solution,e.verbose,e.urfIdx,e.depth1),g=0;g<e.depth1+a;g++)ju(e.solution,e.move[g]);for(f=e.preMoveLen-1;f>=0;f--)ju(e.solution,e.preMoves[f]);e.solLen=e.solution.length_0}return a!==e.maxDep2?(e.maxDep2=m0(gg,e.solLen-e.length1-1),Zu(e.probe,e.probeMin)?0:1):1}function $B(e){var t,r,n,l,o,i,s,a,f,g,u,c,p,L,m;if(e.isRec=!1,Zu(e.probe,e.solution?e.probeMin:e.probeMax))return 0;for(e.probe=bB(e.probe,{l:1,m:0,h:0}),n=e.valid1;n<e.depth1;n++)Pr(e.phase1Cubie[n],(ee(),Le)[e.move[n]],e.phase1Cubie[n+1]),vt(e.phase1Cubie[n],Le[e.move[n]],e.phase1Cubie[n+1]);for(e.valid1=e.depth1,s=jB(e.phase1Cubie[e.depth1]),a=s&15,s>>=4,f=qB(e.phase1Cubie[e.depth1]),g=f&15,f>>=4,u=pt(e.phase1Cubie[e.depth1].ea,12,!0)%24,r=wr(f,g,!1),t=wr(s,a,!0),l=e.depth1===0?-1:e.move[e.depth1-1],o=e.preMoveLen===0?-1:e.preMoves[e.preMoveLen-1],m=0,L=(e.preMoveLen===0?1:2)*(e.depth1===0?1:2),c=0,p=(1<<L)-1;c<L;c++){if((p>>c&1)!==0){if(p&=~(1<<c),m=YB(e,s,a,f,g,u,r,t),m===0||m>2)break;m===2&&(p&=4<<c)}if(p===0)break;(c&1)===0&&e.depth1>0?(i=(tt(),Bl)[~~(l/3)*3+1],e.move[e.depth1-1]=Mt[i]*2-e.move[e.depth1-1],u=(dn(),gl)[u][i],s=al[s][(ee(),_r)[a][i]],a=Br[s&15][a],s>>=4,f=ul[f][_r[g][i]],g=Br[f&15][g],f>>=4,t=wr(s,a,!0),r=wr(f,g,!1)):e.preMoveLen>0&&(i=(tt(),Bl)[~~(o/3)*3+1],e.preMoves[e.preMoveLen-1]=Mt[i]*2-e.preMoves[e.preMoveLen-1],u=(ee(),Gi)[(dn(),gl)[Gi[u]][i]],s=al[t>>4][_r[t&15][i]],t=s&-16|Br[s&15][t&15],s=wr(t>>4,t&15,!0),a=s&15,s>>=4,f=ul[r>>4][_r[r&15][i]],r=f&-16|Br[f&15][r&15],f=wr(r>>4,r&15,!1),g=f&15,f>>=4)}return e.depth1>0&&(e.move[e.depth1-1]=l),e.preMoveLen>0&&(e.preMoves[e.preMoveLen-1]=o),m===0?0:2}function ed(e){var t;for(e.conjMask=0,e.selfSym=rg(e.cc),e.conjMask|=$a(er(Ln(e.selfSym,16),{l:Ze,m:0,h:0}),{l:0,m:0,h:0})?18:0,e.conjMask|=$a(er(Ln(e.selfSym,32),{l:Ze,m:0,h:0}),{l:0,m:0,h:0})?36:0,e.conjMask|=$a(er(Ln(e.selfSym,48),{l:Ze,m:0,h:0}),{l:0,m:0,h:0})?56:0,e.selfSym=er(e.selfSym,{l:lt,m:lt,h:15}),e.maxPreMoves=e.conjMask>7?0:20,t=0;t<6;t++)B0(e.urfCubieCube[t],e.cc),$u(e.urfCoordCube[t],e.urfCubieCube[t],20),tg(e.cc),t%3===2&&Ii(e.cc)}function sg(e,t,r,n,l){var o,i,s,a,f,g;if(t.prun===0&&n<5)return e.allowShorter||n===0?(e.depth1-=n,f=$B(e),e.depth1+=n,f):1;for(g=og(p0(r)),o=0;o<18;o+=3)if(!(o===l||o===l-9)){for(s=0;s<3;s++)if(i=o+s,!(e.isRec&&i!==e.move[e.depth1-n]||g!==0&&(g&1<<i)!==0)){if(a=PB(e.nodeUD[n],t,i),a>n)break;if(a===n)continue;if(a=MB(e.nodeUD[n],t,i),a>n)break;if(a===n)continue;if(e.move[e.depth1-n]=i,e.valid1=m0(e.valid1,e.depth1-n),f=sg(e,e.nodeUD[n],r&Bn((ee(),Xi)[i]),n-1,o),f===0)return 0;if(f>=2)break}}return 1}function ag(e,t,r,n,l){var o,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===t0&&e.preMoveLen!==0,$u(e.nodeUD[e.depth1+1],n,e.depth1)&&sg(e,e.nodeUD[e.depth1+1],l,e.depth1,-1)===0))return 0;if(t===0||e.preMoveLen+t0>=e.length1)return 1;for(s=og(p0(l)),(t===1||e.preMoveLen+1+t0>=e.length1)&&(s|=225207),r=~~(r/3)*3,o=0;o<18;o++){if(o===r||o===r-9||o===r+9){o+=2;continue}if(!(e.isRec&&o!==e.preMoves[e.maxPreMoves-t]||(s&1<<o)!==0)&&(Pr((ee(),Le)[o],n,e.preMoveCubes[t]),vt(Le[o],n,e.preMoveCubes[t]),e.preMoves[e.maxPreMoves-t]=o,i=ag(e,t-1,o,e.preMoveCubes[t],l&Bn(Xi[o])),i===0))return 0}return 1}function fg(e,t,r,n,l,o,i,s,a){var f,g,u,c,p,L,m,d,D,F,S;if(t===0&&n===0&&o===0)return i;for(D=(tt(),Fo)[a],m=0;m<10;m++){if((D>>m&1)!==0){m+=66>>m&3;continue}if(d=(dn(),gl)[o][m],g=al[n][(ee(),_r)[l][m]],u=Br[g&15][l],g>>=4,p=ul[t][_r[r][m]],L=Br[p&15][r],p>>=4,c=wr(p,L,!1),f=wr(g,u,!0),F=gt(fl,(c>>4)*140+Rn[ml[f>>4]&255][ct[c&15][f&15]]),F>i+1)return i-F+1;if(F>=i){m+=66>>m&3&i-F;continue}if(F=Cr(gt(qi,g*24+vo[d][u]),gt(fl,p*140+Rn[ml[g]&255][ct[L][u]])),F>=i){m+=66>>m&3&i-F;continue}if(S=fg(e,p,L,g,u,d,i-1,s+1,m),S>=0)return e.move[s]=Mt[m],S;if(S<-2)break;S<-1&&(m+=66>>m&3)}return-1}function td(e){for(e.length1=e.isRec?e.length1:0;e.length1<e.solLen;e.length1++)for(e.maxDep2=m0(gg,e.solLen-e.length1-1),e.urfIdx=e.isRec?e.urfIdx:0;e.urfIdx<6;e.urfIdx++)if((e.conjMask&1<<e.urfIdx)===0&&ag(e,e.maxPreMoves,-30,e.urfCubieCube[e.urfIdx],Bn(er(e.selfSym,{l:Ze,m:0,h:0})))===0)return e.solution?qu(e.solution):"Error 8";return e.solution?qu(e.solution):"Error 7"}function rd(e,t){var r;return r=nd(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,eg(!1),ed(e),td(e))}function nd(e,t){var r,n,l,o;for(n=0,l=$(le,ue,0,54,7,1),r=kB(ne(re(xe,1),Se,0,7,[t.charCodeAt(4),t.charCodeAt(13),t.charCodeAt(22),t.charCodeAt(31),t.charCodeAt(40),t.charCodeAt(49)])),o=0;o<54;o++){if(l[o]=wB(r,zB(t.charCodeAt(o)))<<24>>24,l[o]===-1)return-1;n+=1<<(l[o]<<2)}return n!==10066329?-1:(ld(l,e.cc),HB(e.cc))}function ug(){var e,t,r;for(this.move=$(qe,je,0,31,7,1),this.nodeUD=$(_i,ge,31,21,0,1),this.nodeRL=$(_i,ge,31,21,0,1),this.nodeFB=$(_i,ge,31,21,0,1),this.cc=new Be,this.urfCubieCube=$(Ao,ge,7,6,0,1),this.urfCoordCube=$(_i,ge,31,6,0,1),this.phase1Cubie=$(Ao,ge,7,21,0,1),this.preMoveCubes=$(Ao,ge,7,21,0,1),this.preMoves=$(qe,je,0,20,7,1),t=0;t<21;t++)this.nodeUD[t]=new Do,this.nodeRL[t]=new Do,this.nodeFB[t]=new Do,this.phase1Cubie[t]=new Be;for(r=0;r<6;r++)this.urfCubieCube[r]=new Be,this.urfCoordCube[r]=new Do;for(e=0;e<20;e++)this.preMoveCubes[e+1]=new Be}function tt(){if(!Qu){Qu=!0;var e,t,r,n,l,o;for(mn=ne(re(le,2),ge,10,0,[ne(re(le,1),ue,0,7,[8,9,20]),ne(re(le,1),ue,0,7,[6,18,38]),ne(re(le,1),ue,0,7,[0,36,47]),ne(re(le,1),ue,0,7,[2,45,11]),ne(re(le,1),ue,0,7,[29,26,15]),ne(re(le,1),ue,0,7,[27,44,24]),ne(re(le,1),ue,0,7,[33,53,42]),ne(re(le,1),ue,0,7,[35,17,51])]),pr=ne(re(le,2),ge,10,0,[ne(re(le,1),ue,0,7,[5,10]),ne(re(le,1),ue,0,7,[7,19]),ne(re(le,1),ue,0,7,[3,37]),ne(re(le,1),ue,0,7,[1,46]),ne(re(le,1),ue,0,7,[32,16]),ne(re(le,1),ue,0,7,[28,25]),ne(re(le,1),ue,0,7,[30,43]),ne(re(le,1),ue,0,7,[34,52]),ne(re(le,1),ue,0,7,[23,12]),ne(re(le,1),ue,0,7,[21,41]),ne(re(le,1),ue,0,7,[50,39]),ne(re(le,1),ue,0,7,[48,14])]),mr=nt(qe,[ge,je],[17,0],7,[13,13],2),f0=ne(re(CB,1),ge,2,4,["U ","U2","U'","R ","R2","R'","F ","F2","F'","D ","D2","D'","L ","L2","L'","B ","B2","B'"]),Mt=ne(re(qe,1),je,0,7,[0,1,2,4,7,9,10,11,13,16,3,5,6,8,12,14,15,17]),Bl=$(qe,je,0,18,7,1),Fo=$(qe,je,0,11,7,1),t=0;t<18;t++)Bl[Mt[t]]=t;for(r=0;r<10;r++)for(n=~~(Mt[r]/3),Fo[r]=0,l=0;l<10;l++)o=~~(Mt[l]/3),Fo[r]|=(n===o||n%3===o%3&&n>=o?1:0)<<l;for(Fo[10]=0,e=0;e<13;e++)for(mr[e][0]=mr[e][e]=1,l=1;l<e;l++)mr[e][l]=mr[e-1][l-1]+mr[e-1][l]}}function Ll(e,t,r){tt();var n,l,o,i,s;for(n=e.length-1,o=0,s=4,l=n;l>=0;l--)i=cg(e[l],r),(i&12)===t&&(o+=mr[l][s--]);return o}function a0(e,t){tt();var r,n;for(n=0,r=t-2;r>=0;r--)n^=e%(t-r),e=~~(e/(t-r));return n&1}function pt(e,t,r){tt();var n,l,o,i;for(l=0,i={l:1323536,m:2777561,h:1043915},n=0;n<t-1;n++)o=cg(e[n],r)<<2,l=(t-n)*l+Bn(er(Ln(i,o),{l:15,m:0,h:0})),i=Yu(i,Ni({l:1118480,m:279620,h:69905},o));return l}function cg(e,t){return t?e>>1:e&7}function pg(e,t,r,n){tt();var l,o,i,s;for(l=e.length-1,s=4,o=l,i=l;i>=0;i--)t>=mr[i][s]?(t-=mr[i][s--],e[i]=Ki(e[i],s|r,n)):((o&12)===r&&(o-=4),e[i]=Ki(e[i],o--,n))}function Fn(e,t,r,n){tt();var l,o,i,s,a,f;for(f={l:1323536,m:2777561,h:1043915},l={l:0,m:0,h:0},s=2;s<=r;s++)l=r0(Ni(l,4),p0(t%s)),t=~~(t/s);for(o=0;o<r-1;o++)a=(Bn(l)&15)<<2,l=Ln(l,4),e[o]=Ki(e[o],Bn(er(Ln(f,a),{l:15,m:0,h:0})),n),i=Yu(Ni({l:1,m:0,h:0},a),{l:1,m:0,h:0}),f=r0(er(f,i),er(Ln(f,4),{l:~i.l<,m:~i.m<,h:~i.h&zr}));e[r-1]=Ki(e[r-1],Bn(er(f,{l:15,m:0,h:0})),n)}function Ki(e,t,r){return(r?t<<1|e&1:t|e&-8)<<24>>24}function ld(e,t){tt();var r,n,l,o,i,s,a,f;for(o=0;o<8;o++)t.ca[o]=0;for(i=0;i<12;i++)t.ea[i]=0;for(s=0;s<8;s++){for(f=0;f<3&&!(e[mn[s][f]]===0||e[mn[s][f]]===3);f++);for(r=e[mn[s][(f+1)%3]],n=e[mn[s][(f+2)%3]],a=0;a<8;a++)if(r===~~(mn[a][1]/9)&&n===~~(mn[a][2]/9)){t.ca[s]=Ci(f%3<<3|a);break}}for(l=0;l<12;l++)for(a=0;a<12;a++){if(e[pr[l][0]]===~~(pr[a][0]/9)&&e[pr[l][1]]===~~(pr[a][1]/9)){t.ea[l]=Ci(a<<1);break}if(e[pr[l][0]]===~~(pr[a][1]/9)&&e[pr[l][1]]===~~(pr[a][0]/9)){t.ea[l]=Ci(a<<1|1);break}}}function ju(e,t){var r,n,l;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){l=(t%3+e.moves[e.length_0-1]%3+1)%4,l===3?--e.length_0:e.moves[e.length_0-1]=r*3+l;return}if(e.length_0>1&&r%3===n%3&&r===~~(e.moves[e.length_0-2]/3)){l=(t%3+e.moves[e.length_0-2]%3+1)%4,l===3?(e.moves[e.length_0-2]=e.moves[e.length_0-1],--e.length_0):e.moves[e.length_0-2]=r*3+l;return}e.moves[e.length_0++]=t}function od(e,t,r,n){e.verbose=t,e.urfIdx=r,e.depth1=n}function qu(e){var t,r,n;if(r=new NB,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+=". "),Iu(Tu(r,(tt(),f0)[(ee(),Wi)[n][e.moves[t]]]));else for(t=e.length_0-1;t>=0;t--)Iu(Tu(r,(tt(),f0)[(ee(),Wi)[n][e.moves[t]]])),(e.verbose&1)!==0&&t===e.depth1&&(r.string+=". ");return r.string}function mg(){this.moves=$(qe,je,0,31,7,1)}var ge,lt,zr,hB,Ze,Se,je,u0,Ro,ue,X,Qi,wi,CB,Gu,Rn,n0,al,fl,ul,dl,qi,vo,gl,cl,pl,Nr,Vi,kr,Hi,ki,_i,Wu,Lr,dr,sl,hn,h0,Mr,Gi,ml,D0,Dn,yo,_r,Br,ct,Ku,o0,e0,So,F0,ig,Le,Xi,i0,s0,Wi,Ao,gg,t0,Qu,mr,Fo,mn,pr,f0,Bl,Mt,qe,id,le,sd,xe,ad,fd,Lg=A(()=>{"use strict";ge={3:1},lt=4194303,zr=1048575,hB=524288,Ze=65535,Se={11:1,3:1},je={17:1,3:1},u0=14540032,Ro=286331153,ue={10:1,3:1},Qi={};xo(1,null,{},AB);xo(79,1,{},g0);X.createClassLiteralForArray=function(t){var r;return r=new g0,r.modifiers=4,t>1?r.componentType=Hu(this,t-1):r.componentType=this,r};X.isPrimitive=function(){return(this.modifiers&1)!==0};CB=Or("java.lang","String",2);Gu=!1;xo(31,1,{31:1},Do);X.flip=0;X.flipc=0;X.fsym=0;X.prun=0;X.slice_0=0;X.tsym=0;X.twist=0;X.twistc=0;ki=0,_i=Or("org.cubing.min2phase.client","CoordCube",31),Wu=!1;Ao=Or("org.cubing.min2phase.client","CubieCube",7);xo(72,1,{},ug);X.allowShorter=!1;X.conjMask=0;X.depth1=0;X.isRec=!1;X.length1=0;X.maxDep2=0;X.maxPreMoves=0;X.preMoveLen=0;X.probe={l:0,m:0,h:0};X.probeMax={l:0,m:0,h:0};X.probeMin={l:0,m:0,h:0};X.selfSym={l:0,m:0,h:0};X.solLen=0;X.urfIdx=0;X.valid1=0;X.verbose=0;gg=12,t0=7,Qu=!1;xo(150,1,{},mg);X.depth1=0;X.length_0=0;X.urfIdx=0;X.verbose=0;qe=ji("int","I");Or("com.google.gwt.lang","CollapsedPropertyHolder",252);Or("com.google.gwt.lang","JavaClassHierarchySetupUtil",254);id=Or("com.google.gwt.lang","LongLibBase/LongEmul",null);Or("com.google.gwt.lang","ModuleUtils",257);le=ji("byte","B"),sd=ji("long","J"),xe=ji("char","C");Or("com.google.gwt.user.client.rpc","XsrfToken",null),SB("java.util","Map/Entry");ad=function(){eg(!1)},fd=function(e){return rd(new ug,e)}});var Bg={};Lt(Bg,{initialize:()=>ad,solveState:()=>fd});var dg=A(()=>{"use strict";Lg()});var y0,Rg=A(()=>{"use strict";_t();y0=Ke(()=>Promise.resolve().then(()=>(dg(),Bg)))});function hg(e,t){return e.slice(t)+e.slice(0,t)}function md(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(hg(ud[e.stateData.EDGES.pieces[r]],e.stateData.EDGES.orientation[r]));for(let r=0;r<8;r++)t[1].push(hg(gd[e.stateData.CORNERS.pieces[r]],e.stateData.CORNERS.orientation[r]));return t.push(cd),t}function Dg(e){let t=md(e);return pd.map(([r,n,l])=>t[r][n][l]).join("")}var ud,gd,cd,pd,Fg=A(()=>{"use strict";ud="UF UR UB UL DF DR DB DL FR FL BR BL".split(" "),gd="UFR URB UBL ULF DRF DFL DLB DBR".split(" "),cd="U L F R B D".split(" "),pd=[[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 yg(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 Ag(e,t){if(yg(e.startState(),t))return!1;for(let r of"ULFRBD")for(let n=1;n<4;n++){let l=e.moveToTransformation(new B(r,n)).toKState();if(yg(l,t))return!1}return!0}var Sg=A(()=>{"use strict";fe();We()});var xg,vg=A(()=>{"use strict";xg=[["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"]]});async function bg(){let e=await Oe["3x3x3"].kpuzzle(),t=e.startState();for(let r of xg)t=t.applyAlg(E.fromString(Yt(r)));return Ag(e,t)?t:bg()}async function A0(e){return Ee(),E.fromString((await y0).solveState(Dg(e)))}async function Rl(){return A0(await bg())}async function Eg(){(await y0).initialize()}async function wg(){return il(await Rl(),Ld)}async function kg(){let e=new Bt,t=await Rl();return e.experimentalPushAlg(Ug),e.experimentalPushAlg(t),e.experimentalPushAlg(Ug),e.toAlg()}var Ld,Ug,S0=A(()=>{"use strict";fe();cr();xt();St();Ei();Rg();Fg();Sg();vg();Ld=[[null,"Rw","Rw2","Rw'","Fw","Fw'"],[null,"Dw","Dw2","Dw'"]];Ug=new E("R' U' F")});function ce(e,...t){let r=t.length,n=e[t[r-1]];for(let l=r;l>0;l--)e[t[l]]=e[t[l-1]];return e[t[0]]=n,ce}function _g(e,t,r,n){r=(r||8)-1;let l=1985229328,o=0;n??(n=0),n<0&&(t<<=1);for(let i=0;i<r;++i){let s=x0[r-i],a=~~(t/s);o^=a,t%=s,a<<=2,e[i]=l>>a&7;let f=(1<<a)-1;l=(l&f)+(l>>4&~f)}return n<0&&(o&1)!==0?(e[r]=e[r-1],e[r-1]=l&7):e[r]=l&7,e}var he,x0,zg=A(()=>{"use strict";he=[],x0=[1];for(let e=0;e<32;++e){he[e]=[];for(let t=0;t<32;++t)he[e][t]=0}for(let e=0;e<32;++e){he[e][0]=he[e][e]=1,x0[e+1]=x0[e]*(e+1);for(let t=1;t<e;++t)he[e][t]=he[e-1][t-1]+he[e-1][t]}});function I(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 yd(e){return new zo[e]}function ht(e,t,r,...n){let l=zo[e];l&&!l.___clazz$?J=l.prototype:(!l&&(l=zo[e]=function(){}),J=l.prototype=t<0?{}:yd(t),J.castableTypeMap$=r);for(let o of n)o.prototype=J;l.___clazz$&&(J.___clazz$=l.___clazz$,l.___clazz$=null)}function Kr(e){let t={};for(let r=0,n=e.length;r<n;++r)t[e[r]]=1;return t}function rc(){}function Ad(e,t){let r=nc(0,t);return lc(e.___clazz$,e.castableTypeMap$,e.queryId$,r),r}function nc(e,t){let r=new Array(t);if(e===3)for(let n=0;n<t;++n){let l={m:0,l:0,h:0};l.l=l.m=l.h=0,r[n]=l}else if(e>0){let n=[null,0,!1][e];for(let l=0;l<t;++l)r[l]=n}return r}function N0(e,t,r,n,l){let o=nc(l,n);return lc(e,t,r,o),o}function lc(e,t,r,n){return oc(),xd(n,b0,E0),n.___clazz$=e,n.castableTypeMap$=t,n.queryId$=r,n}function ns(e,t,r){return e[t]=r}function oc(){Cg||(Cg=!0,b0=[],E0=[],Sd(new rc,b0,E0))}function Sd(e,t,r){let n=0,l;for(let o in e)(l=e[o])&&(t[n]=o,r[n]=l,++n)}function xd(e,t,r){oc();for(let n=0,l=t.length;n<l;++n)e[t[n]]=r[n]}function vd(e,t){return e.castableTypeMap$&&!!e.castableTypeMap$[t]}function Ud(e,t){return e!==null&&vd(e,t)}function bd(){if(Ng)return!1;Ng=!0,Ls=I(15582,36),Bs=I(15582),Gt=I(15582),Sl=I(48,48),It=I(48,36),Al=I(48),O0=I(48)}function P0(e){e.ct=I(24)}function Pg(e,t){let r,n;if(Ud(t,ec)){for(r=t,n=0;n<24;++n)if(e.ct[n]!==r.ct[n])return!1;return!0}return!1}function ls(e){let t,r,n;for(r=0,n=8,t=23;t>=0;--t)e.ct[t]===1&&(r+=he[t][n--]);return r}function Zi(e){let t,r;if(bl!==null)return bl[ls(e)];for(r=0;r<48;++r){if(t=Cd(ls(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 Ot(e,t){let r=t%3;switch(t=~~(t/3),t){case 0:{h(e.ct,0,1,2,3,r);break}case 1:{h(e.ct,16,17,18,19,r);break}case 2:{h(e.ct,8,9,10,11,r);break}case 3:{h(e.ct,4,5,6,7,r);break}case 4:{h(e.ct,20,21,22,23,r);break}case 5:{h(e.ct,12,13,14,15,r);break}case 6:{h(e.ct,0,1,2,3,r),h(e.ct,8,20,12,16,r),h(e.ct,9,21,13,17,r);break}case 7:{h(e.ct,16,17,18,19,r),h(e.ct,1,15,5,9,r),h(e.ct,2,12,6,10,r);break}case 8:{h(e.ct,8,9,10,11,r),h(e.ct,2,19,4,21,r),h(e.ct,3,16,5,22,r);break}case 9:{h(e.ct,4,5,6,7,r),h(e.ct,10,18,14,22,r),h(e.ct,11,19,15,23,r);break}case 10:{h(e.ct,20,21,22,23,r),h(e.ct,0,8,4,14,r),h(e.ct,3,11,7,13,r);break}case 11:h(e.ct,12,13,14,15,r),h(e.ct,1,20,7,18,r),h(e.ct,0,23,6,17,r)}}function ie(e,t){switch(t){case 0:{Ot(e,19),Ot(e,28);break}case 1:{Ot(e,21),Ot(e,32);break}case 2:{h(e.ct,0,3,1,2,1),h(e.ct,8,11,9,10,1),h(e.ct,4,7,5,6,1),h(e.ct,12,15,13,14,1),h(e.ct,16,19,21,22,1),h(e.ct,17,18,20,23,1);break}case 3:Ot(e,18),Ot(e,29),Ot(e,24),Ot(e,35)}}function Mg(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 M0(e,t){let r,n;for(n=8,r=23;r>=0;--r)e.ct[r]=0,t>=he[r][n]&&(t-=he[r][n--],e.ct[r]=1)}function Yi(e,t){let r;for(r=0;r<24;++r)e.ct[r]=t.ct[r]}function Co(){let e;for(P0(this),e=0;e<8;++e)this.ct[e]=1;for(e=8;e<24;++e)this.ct[e]=0}function $i(e,t){let r;for(P0(this),r=0;r<24;++r)this.ct[r]=~~(e.ct[r]/2)===t?1:0}function wo(e){let t;for(P0(this),t=0;t<24;++t)this.ct[t]=e[t]}function Ed(){let e,t,r=new Co,n=new Co;for(e=0;e<15582;++e)for(M0(n,Bs[e]),t=0;t<36;++t)Yi(r,n),Ot(r,t),Ls[e][t]=Zi(r)}function wd(){let e,t,r,n,l,o,i,s;for(Ds(Gt),Gt[0]=0,t=0,r=1;r!==15582;)for(o=t>4,s=o?-1:t,e=o?t:-1,++t,n=0;n<15582;++n)if(Gt[n]===s){for(i=0;i<27;++i)if(l=~~Ls[n][i]>>>6,Gt[l]===e)if(++r,o){Gt[n]=t;break}else Gt[l]=t}}function kd(e){let t,r,n,l=new wo(e.ct);for(n=0;n<48;++n){for(t=!0,r=0;r<24;++r)if(l.ct[r]!==~~(r/4)){t=!1;break}if(t)return n;ie(l,0),n%2===1&&ie(l,1),n%8===7&&ie(l,2),n%16===15&&ie(l,3)}return-1}function _d(){let e,t,r,n=new Co;for(e=0;e<24;++e)n.ct[e]=e;let l=new wo(n.ct),o=new wo(n.ct),i=new wo(n.ct);for(e=0;e<48;++e){for(t=0;t<48;++t){for(r=0;r<48;++r)Pg(n,l)&&(Sl[e][t]=r,r===0&&(Al[e]=t)),ie(l,0),r%2===1&&ie(l,1),r%8===7&&ie(l,2),r%16===15&&ie(l,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(Yi(n,o),Mg(n,Al[e]),t=0;t<36;++t)for(Yi(l,n),Ot(l,t),Mg(l,e),r=0;r<36;++r)if(Yi(i,o),Ot(i,r),Pg(i,l)){It[e][t]=r;break}for(M0(n,0),e=0;e<48;++e)O0[Al[e]]=ls(n),ie(n,0),e%2===1&&ie(n,1),e%8===7&&ie(n,2),e%16===15&&ie(n,3)}function zd(){let e,t,r,n,l=new Co,o=I(22984);for(t=0;t<22984;t++)o[t]=0;for(e=0,t=0;t<735471;++t)if((o[~~t>>>5]&1<<(t&31))===0){for(M0(l,t),n=0;n<48;++n)r=ls(l),o[~~r>>>5]|=1<<(r&31),bl!==null&&(bl[r]=e<<6|Al[n]),ie(l,0),n%2===1&&ie(l,1),n%8===7&&ie(l,2),n%16===15&&ie(l,3);Bs[e++]=t}}function Cd(e){let t=FR(Bs,e);return t>=0?t:-1}function Nd(){Og||(Og=!0,as=I(70,28),ss=I(6435,28),fc=I(70,16),sc=I(6435,16),ot=I(450450),ac=[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 os(e){let t,r,n;for(r=0,n=8,t=14;t>=0;--t)e.ct[t]!==e.ct[15]&&(r+=he[t][n--]);return r}function is(e){let t,r,n;for(r=0,n=4,t=6;t>=0;--t)e.rl[t]!==e.rl[7]&&(r+=he[t][n--]);return r*2+e.parity}function yl(e,t){e.parity^=ac[t];let r=t%3;switch(t=~~(t/3),t){case 0:{h(e.ct,0,1,2,3,r);break}case 1:{h(e.rl,0,1,2,3,r);break}case 2:{h(e.ct,8,9,10,11,r);break}case 3:{h(e.ct,4,5,6,7,r);break}case 4:{h(e.rl,4,5,6,7,r);break}case 5:{h(e.ct,12,13,14,15,r);break}case 6:{h(e.ct,0,1,2,3,r),h(e.rl,0,5,4,1,r),h(e.ct,8,9,12,13,r);break}case 7:{h(e.rl,0,1,2,3,r),h(e.ct,1,15,5,9,r),h(e.ct,2,12,6,10,r);break}case 8:{h(e.ct,8,9,10,11,r),h(e.rl,0,3,6,5,r),h(e.ct,3,2,5,4,r);break}case 9:{h(e.ct,4,5,6,7,r),h(e.rl,3,2,7,6,r),h(e.ct,11,10,15,14,r);break}case 10:{h(e.rl,4,5,6,7,r),h(e.ct,0,8,4,14,r),h(e.ct,3,11,7,13,r);break}case 11:h(e.ct,12,13,14,15,r),h(e.rl,1,4,7,2,r),h(e.ct,1,0,7,6,r)}}function hl(e,t){switch(t){case 0:{yl(e,19),yl(e,28);break}case 1:{yl(e,21),yl(e,32);break}case 2:h(e.ct,0,3,1,2,1),h(e.ct,8,11,9,10,1),h(e.ct,4,7,5,6,1),h(e.ct,12,15,13,14,1),h(e.rl,0,3,5,6,1),h(e.rl,1,2,4,7,1)}}function ic(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 Ig(e,t){let r,n;for(n=8,e.ct[15]=0,r=14;r>=0;--r)t>=he[r][n]?(t-=he[r][n--],e.ct[r]=1):e.ct[r]=0}function Tg(e,t){let r,n;for(e.parity=t&1,t>>>=1,n=4,e.rl[7]=0,r=6;r>=0;--r)t>=he[r][n]?(t-=he[r][n--],e.rl[r]=1):e.rl[r]=0}function I0(){this.rl=I(8),this.ct=I(16)}function Pd(){let e,t,r,n,l,o,i,s,a,f,g=new I0;for(l=0;l<70;++l)for(s=0;s<28;++s)Tg(g,l),yl(g,An[s]),as[l][s]=is(g);for(l=0;l<70;++l)for(Tg(g,l),i=0;i<16;++i)fc[l][i]=is(g),hl(g,0),i%2===1&&hl(g,1),i%8===7&&hl(g,2);for(l=0;l<6435;++l)for(Ig(g,l),i=0;i<16;++i)sc[l][i]=os(g)&65535,hl(g,0),i%2===1&&hl(g,1),i%8===7&&hl(g,2);for(l=0;l<6435;++l)for(s=0;s<28;++s)Ig(g,l),yl(g,An[s]),ss[l][s]=os(g)&65535;for(Ds(ot),ot[0]=ot[18]=ot[28]=ot[46]=ot[54]=ot[56]=0,r=0,n=6;n!==450450;){let u=r>6,c=u?-1:r,p=u?r:-1;for(++r,l=0;l<450450;++l)if(ot[l]===c){for(e=~~(l/70),a=l%70,s=0;s<23;++s)if(t=ss[e][s],f=as[a][s],o=t*70+f,ot[o]===p)if(++n,u){ot[l]=r;break}else ot[o]=r}}}function Md(){Gg||(Gg=!0,ko=I(29400,20),gc=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1],Tr=I(29400),W0=[0,9,14,23,27,28,41,42,46,55,60,69],K0=I(70))}function T0(e){let t,r,n,l;for(r=0,l=4,t=6;t>=0;--t)e.ud[t]!==e.ud[7]&&(r+=he[t][l--]);for(r*=35,l=4,t=6;t>=0;--t)e.fb[t]!==e.fb[7]&&(r+=he[t][l--]);r*=12;let o=e.fb[7]^e.ud[7];for(n=0,l=4,t=7;t>=0;--t)e.rl[t]!==o&&(n+=he[t][l--]);return e.parity+2*(r+K0[n])}function Od(e,t){switch(e.parity^=gc[t],t){case 0:case 1:case 2:{h(e.ud,0,1,2,3,t%3);break}case 3:{h(e.rl,0,1,2,3,1);break}case 4:case 5:case 6:{h(e.fb,0,1,2,3,(t-1)%3);break}case 7:case 8:case 9:{h(e.ud,4,5,6,7,(t-1)%3);break}case 10:{h(e.rl,4,5,6,7,1);break}case 11:case 12:case 13:{h(e.fb,4,5,6,7,(t+1)%3);break}case 14:{h(e.ud,0,1,2,3,1),h(e.rl,0,5,4,1,1),h(e.fb,0,5,4,1,1);break}case 15:{h(e.rl,0,1,2,3,1),h(e.fb,1,4,7,2,1),h(e.ud,1,6,5,2,1);break}case 16:{h(e.fb,0,1,2,3,1),h(e.ud,3,2,5,4,1),h(e.rl,0,3,6,5,1);break}case 17:{h(e.ud,4,5,6,7,1),h(e.rl,3,2,7,6,1),h(e.fb,3,2,7,6,1);break}case 18:{h(e.rl,4,5,6,7,1),h(e.fb,0,3,6,5,1),h(e.ud,0,3,4,7,1);break}case 19:h(e.fb,4,5,6,7,1),h(e.ud,0,7,6,1,1),h(e.rl,1,4,7,2,1)}}function uc(e,t,r){let n,l=(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^l;e.parity=l^r}function Id(e,t){let r,n,l,o;for(e.parity=t&1,t>>>=1,l=W0[t%12],t=~~(t/12),o=4,r=7;r>=0;--r)e.rl[r]=0,l>=he[r][o]&&(l-=he[r][o--],e.rl[r]=1);for(n=t%35,t=~~(t/35),o=4,e.fb[7]=0,r=6;r>=0;--r)n>=he[r][o]?(n-=he[r][o--],e.fb[r]=1):e.fb[r]=0;for(o=4,e.ud[7]=0,r=6;r>=0;--r)t>=he[r][o]?(t-=he[r][o--],e.ud[r]=1):e.ud[r]=0}function G0(){this.ud=I(8),this.rl=I(8),this.fb=I(8)}function Td(){let e,t,r,n;for(r=0;r<12;++r)K0[W0[r]]=r;let l=new G0;for(r=0;r<29400;++r)for(n=0;n<20;++n)Id(l,r),Od(l,n),ko[r][n]=T0(l)&65535;for(Ds(Tr),Tr[0]=0,e=0,t=1;t!==29400;){for(r=0;r<29400;++r)if(Tr[r]===e)for(n=0;n<17;++n)Tr[ko[r][n]]===-1&&(Tr[ko[r][n]]=e+1,++t);++e}}function Gd(e,t){let r;for(r=0;r<24;++r)e.ct[r]=t.ct[r]}function Wd(e,t){let r=t%3;switch(t=~~(t/3),t){case 0:{h(e.ct,0,1,2,3,r);break}case 1:{h(e.ct,16,17,18,19,r);break}case 2:{h(e.ct,8,9,10,11,r);break}case 3:{h(e.ct,4,5,6,7,r);break}case 4:{h(e.ct,20,21,22,23,r);break}case 5:{h(e.ct,12,13,14,15,r);break}case 6:{h(e.ct,0,1,2,3,r),h(e.ct,8,20,12,16,r),h(e.ct,9,21,13,17,r);break}case 7:{h(e.ct,16,17,18,19,r),h(e.ct,1,15,5,9,r),h(e.ct,2,12,6,10,r);break}case 8:{h(e.ct,8,9,10,11,r),h(e.ct,2,19,4,21,r),h(e.ct,3,16,5,22,r);break}case 9:{h(e.ct,4,5,6,7,r),h(e.ct,10,18,14,22,r),h(e.ct,11,19,15,23,r);break}case 10:{h(e.ct,20,21,22,23,r),h(e.ct,0,8,4,14,r),h(e.ct,3,11,7,13,r);break}case 11:h(e.ct,12,13,14,15,r),h(e.ct,1,20,7,18,r),h(e.ct,0,23,6,17,r)}}function Q0(){let e;for(this.ct=I(24),e=0;e<24;++e)this.ct[e]=~~(e/4)}function cc(){let e,t,r;for(Q0.call(this),e=0;e<23;++e)r=e+H(24-e),this.ct[r]!==this.ct[e]&&(t=this.ct[e],this.ct[e]=this.ct[r],this.ct[r]=t)}function Kd(){Wg||(Wg=!0,bt=I(18),qd())}function pc(e){e.cp=[0,1,2,3,4,5,6,7],e.co=[0,0,0,0,0,0,0,0]}function mc(e,t){let r;for(r=0;r<8;++r)e.cp[r]=t.cp[r],e.co[r]=t.co[r]}function Qd(e,t){!e.temps&&(e.temps=new ds),Lc(e,bt[t],e.temps),mc(e,e.temps)}function jd(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 Lc(e,t,r){let n,l,o,i;for(n=0;n<8;++n)r.cp[n]=e.cp[t.cp[n]],o=e.co[t.cp[n]],i=t.co[n],l=o,l=l+(o<3?i:6-i),l=l%3,(o>=3?1:0)^(i>=3?1:0)&&(l=l+3),r.co[n]=l}function ds(){pc(this)}function Ir(e,t){pc(this),_g(this.cp,e),jd(this,t)}function Bc(){Ir.call(this,H(40320),H(2187))}function qd(){let e,t;for(bt[0]=new Ir(15120,0),bt[3]=new Ir(21021,1494),bt[6]=new Ir(8064,1236),bt[9]=new Ir(9,0),bt[12]=new Ir(1230,412),bt[15]=new Ir(224,137),e=0;e<18;e+=3)for(t=0;t<2;++t)bt[e+t+1]=new ds,Lc(bt[e+t],bt[e],bt[e+t+1])}function Vd(){Kg||(Kg=!0,Tt=I(1937880),Rs=I(1538),gs=I(1538),_l=I(11880),Fc=[0,1,6,3,4,5,2,7],q0=I(160,12),V0=I(160,12),j0=[1,1,1,3,12,60,360,2520,20160,181440,1814400,19958400,239500800],w0=[0,2,4,6,1,3,7,5,8,9,10,11])}function Dl(e,t,r,n,l){let o=e.edgeo[l];e.edgeo[l]=e.edge[n],e.edge[n]=e.edgeo[r],e.edgeo[r]=e.edge[t],e.edge[t]=o}function El(e,t){let r,n,l,o,i;for(e.isStd||hc(e),n=0,i=1985229328,o=47768,r=0;r<t;++r)l=e.edge[r]<<2,n*=12-r,l>=32?(n+=o>>l-32&15,o-=4368<<l-32):(n+=i>>l&15,o-=4369,i-=286331152<<l);return n}function dc(e){let t,r=El(e,4);t=_l[r];let n=t&7;t>>=3,us(e,n);let l=El(e,10)%20160;return t*20160+l}function fs(e,t){switch(e.isStd=!1,t){case 0:{ce(e.edge,0,4,1,5),ce(e.edgeo,0,4,1,5);break}case 1:{ye(e.edge,0,4,1,5),ye(e.edgeo,0,4,1,5);break}case 2:{ce(e.edge,0,5,1,4),ce(e.edgeo,0,5,1,4);break}case 3:{ye(e.edge,5,10,6,11),ye(e.edgeo,5,10,6,11);break}case 4:{ce(e.edge,0,11,3,8),ce(e.edgeo,0,11,3,8);break}case 5:{ye(e.edge,0,11,3,8),ye(e.edgeo,0,11,3,8);break}case 6:{ce(e.edge,0,8,3,11),ce(e.edgeo,0,8,3,11);break}case 7:{ce(e.edge,2,7,3,6),ce(e.edgeo,2,7,3,6);break}case 8:{ye(e.edge,2,7,3,6),ye(e.edgeo,2,7,3,6);break}case 9:{ce(e.edge,2,6,3,7),ce(e.edgeo,2,6,3,7);break}case 10:{ye(e.edge,4,8,7,9),ye(e.edgeo,4,8,7,9);break}case 11:{ce(e.edge,1,9,2,10),ce(e.edgeo,1,9,2,10);break}case 12:{ye(e.edge,1,9,2,10),ye(e.edgeo,1,9,2,10);break}case 13:{ce(e.edge,1,10,2,9),ce(e.edgeo,1,10,2,9);break}case 14:{ye(e.edge,0,4,1,5),ye(e.edgeo,0,4,1,5),ce(e.edge,9,11),ce(e.edgeo,8,10);break}case 15:{ye(e.edge,5,10,6,11),ye(e.edgeo,5,10,6,11),ce(e.edge,1,3),ce(e.edgeo,0,2);break}case 16:{ye(e.edge,0,11,3,8),ye(e.edgeo,0,11,3,8),ce(e.edge,5,7),ce(e.edgeo,4,6);break}case 17:{ye(e.edge,2,7,3,6),ye(e.edgeo,2,7,3,6),ce(e.edge,8,10),ce(e.edgeo,9,11);break}case 18:{ye(e.edge,4,8,7,9),ye(e.edgeo,4,8,7,9),ce(e.edge,0,2),ce(e.edgeo,1,3);break}case 19:ye(e.edge,1,9,2,10),ye(e.edgeo,1,9,2,10),ce(e.edge,4,6),ce(e.edgeo,5,7)}}function xl(e,t){switch(e.isStd=!1,t){case 0:{fs(e,14),fs(e,17);break}case 1:{Dl(e,11,5,10,6),Dl(e,5,10,6,11),Dl(e,1,2,3,0),Dl(e,4,9,7,8),Dl(e,8,4,9,7),Dl(e,0,1,2,3);break}case 2:Ut(e,4,5),Ut(e,5,4),Ut(e,11,8),Ut(e,8,11),Ut(e,7,6),Ut(e,6,7),Ut(e,9,10),Ut(e,10,9),Ut(e,1,1),Ut(e,0,0),Ut(e,3,3),Ut(e,2,2)}}function us(e,t){for(;t>=2;)t-=2,xl(e,1),xl(e,2);t!==0&&xl(e,0)}function Mo(e,t){let r,n,l,o,i,s;for(i=1985229328,s=47768,l=0,r=0;r<11;++r)if(n=j0[11-r],o=~~(t/n),t=t%n,l^=o,o<<=2,o>=32){o=o-32,e.edge[r]=s>>o&15;let a=(1<<o)-1;s=(s&a)+(s>>4&~a)}else{e.edge[r]=i>>o&15;let a=(1<<o)-1;i=(i&a)+(i>>>4&~a)+(s<<28),s=s>>4}for((l&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 Qg(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 Rc(e,t){let r,n,l,o;for(e.temp===null&&(e.temp=I(12)),r=0;r<12;++r)e.temp[r]=r,e.edge[r]=t.ep[w0[r]+12]%12;for(n=1,r=0;r<12;++r)for(;e.edge[r]!==r;)o=e.edge[r],e.edge[r]=e.edge[o],e.edge[o]=o,l=e.temp[r],e.temp[r]=e.temp[o],e.temp[o]=l,n^=1;for(r=0;r<12;++r)e.edge[r]=e.temp[t.ep[w0[r]]%12];return n}function hc(e){let t;for(e.temp===null&&(e.temp=I(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 ye(e,t,r,n,l){let o;o=e[t],e[t]=e[n],e[n]=o,o=e[r],e[r]=e[l],e[l]=o}function Ut(e,t,r){let n=e.edge[t];e.edge[t]=e.edgeo[r],e.edgeo[r]=n}function Rr(){this.edge=I(12),this.edgeo=I(12)}function Hd(){let e,t,r,n,l,o,i,s,a,f,g,u,c,p,L,m,d,D,F,S,v,U,P=new Rr,Z=new Rr,C=new Rr;for(Ds(Tt),s=0,Ji=1,v0(Tt,0,0);Ji!==31006080&&(L=s>9,i=s%3,o=(s+1)%3,f=L?3:i,e=L?i:3,!(s>=9));){for(u=0;u<31006080;u+=16)if(U=Tt[~~u>>4],!(!L&&U===-1)){for(g=u,a=u+16;g<a;++g,U>>=2)if((U&3)===f){for(F=~~(g/20160),t=Rs[F],n=g%20160,Mo(P,t*20160+n),d=0;d<17;++d)if(r=wl(P.edge,d<<3,4),S=_l[r],v=S&7,S>>=3,l=wl(P.edge,d<<3|v,10)%20160,c=S*20160+l,No(Tt,c)===e){if(v0(Tt,L?g:c,o),++Ji,L)break;if(D=gs[S],D!==1)for(Qg(Z,P),fs(Z,d),us(Z,v),m=1;(D=~~D>>1&65535)!==0;++m)(D&1)===1&&(Qg(C,Z),us(C,m),p=S*20160+El(C,10)%20160,No(Tt,p)===e&&(v0(Tt,p,o),++Ji))}}}++s}}function No(e,t){return e[t>>4]>>((t&15)<<1)&3}function wl(e,t,r){let n,l,o,i,s,a=V0[t],f=q0[t];for(l=0,s=1985229328,i=47768,n=0;n<r;++n)o=a[e[f[n]]]<<2,l*=12-n,o>=32?(l+=i>>o-32&15,i-=4368<<o-32):(l+=s>>o&15,i-=4369,s-=286331152<<o);return l}function Dc(e){let t,r,n,l,o,i,s,a,f,g,u,c=new Rr;if(i=0,o=No(Tt,e),o===3)return 10;for(;e!==0;)for(o===0?o=2:--o,f=~~(e/20160),t=Rs[f],n=e%20160,Mo(c,t*20160+n),a=0;a<17;++a)if(r=wl(c.edge,a<<3,4),g=_l[r],u=g&7,g>>=3,l=wl(c.edge,a<<3|u,10)%20160,s=g*20160+l,No(Tt,s)===o){++i,e=s;break}return i}function Xd(e,t){let r=No(Tt,e);return r===3?10:(1227133513<<r>>t&3)+t-1}function Jd(){let e,t,r,n=new Rr;for(t=0;t<20;++t)for(r=0;r<8;++r){for(Mo(n,0),fs(n,t),us(n,r),e=0;e<12;++e)q0[t<<3|r][e]=n.edge[e];for(hc(n),e=0;e<12;++e)V0[t<<3|r][e]=n.temp[e]}}function Zd(){let e,t,r,n,l=new Rr,o=I(1485);for(t=0;t<1485;t++)o[t]=0;for(e=0,t=0;t<11880;++t)if((o[~~t>>>3]&1<<(t&7))===0){for(Mo(l,t*j0[8]),n=0;n<8;++n)r=El(l,4),r===t&&(gs[e]=(gs[e]|1<<n)&65535),o[~~r>>3]=o[~~r>>3]|1<<(r&7),_l[r]=e<<3|Fc[n],xl(l,0),n%2===1&&(xl(l,1),xl(l,2));Rs[e++]=t}}function v0(e,t,r){e[t>>4]^=(3^r)<<((t&15)<<1)}function Yd(){jg||(jg=!0)}function $d(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 eR(e,t){let r;for(r=0;r<24;++r)e.ep[r]=t.ep[r]}function tR(e,t){let r=t%3;switch(t=~~(t/3),t){case 0:{h(e.ep,0,1,2,3,r),h(e.ep,12,13,14,15,r);break}case 1:{h(e.ep,11,15,10,19,r),h(e.ep,23,3,22,7,r);break}case 2:{h(e.ep,0,11,6,8,r),h(e.ep,12,23,18,20,r);break}case 3:{h(e.ep,4,5,6,7,r),h(e.ep,16,17,18,19,r);break}case 4:{h(e.ep,1,20,5,21,r),h(e.ep,13,8,17,9,r);break}case 5:{h(e.ep,2,9,4,10,r),h(e.ep,14,21,16,22,r);break}case 6:{h(e.ep,0,1,2,3,r),h(e.ep,12,13,14,15,r),h(e.ep,9,22,11,20,r);break}case 7:{h(e.ep,11,15,10,19,r),h(e.ep,23,3,22,7,r),h(e.ep,2,16,6,12,r);break}case 8:{h(e.ep,0,11,6,8,r),h(e.ep,12,23,18,20,r),h(e.ep,3,19,5,13,r);break}case 9:{h(e.ep,4,5,6,7,r),h(e.ep,16,17,18,19,r),h(e.ep,8,23,10,21,r);break}case 10:{h(e.ep,1,20,5,21,r),h(e.ep,13,8,17,9,r),h(e.ep,14,0,18,4,r);break}case 11:h(e.ep,2,9,4,10,r),h(e.ep,14,21,16,22,r),h(e.ep,7,15,1,17,r)}}function H0(){let e;for(this.ep=I(24),e=0;e<24;++e)this.ep[e]=e}function yc(){let e,t,r;for(H0.call(this),e=0;e<23;++e)r=e+H(24-e),r!==e&&(t=this.ep[e],this.ep[e]=this.ep[r],this.ep[r]=t)}function rR(){qg||(qg=!0,k0=[35,1,34,2,4,6,22,5,19])}function Ac(e){e.moveBuffer=I(60)}function nR(e,t){return e.value-t.value}function kl(e,t){let r;for(eR(e.edge,t.edge),Gd(e.center,t.center),mc(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 Gr(e){for(;e.centerAvail<e.moveLength;)Wd(e.center,e.moveBuffer[e.centerAvail++]);return e.center}function Sc(e){for(;e.cornerAvail<e.moveLength;)Qd(e.corner,e.moveBuffer[e.cornerAvail++]%18);return e.corner}function Po(e){for(;e.edgeAvail<e.moveLength;)tR(e.edge,e.moveBuffer[e.edgeAvail++]);return e.edge}function lR(e){let t,r,n,l,o,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)It[i][e.moveBuffer[t]]>=27?(s[r++]=It[i][e.moveBuffer[t]]-9,l=k0[It[i][e.moveBuffer[t]]-27],i=Sl[i][l]):s[r++]=It[i][e.moveBuffer[t]];let a=Sl[Al[i]][kd(Gr(e))];for(o="",i=a,t=r-1;t>=0;--t)n=s[t],n=~~(n/3)*3+(2-n%3),It[i][n]>=27?(o=\`\${o}\${_0[It[i][n]-9]} \`,l=k0[It[i][n]-27],i=Sl[i][l]):o=\`\${o}\${_0[It[i][n]]} \`;return o}function yn(e,t){e.moveBuffer[e.moveLength++]=t}function cs(){Ac(this),this.edge=new H0,this.center=new Q0,this.corner=new ds}function hs(e){cs.call(this),kl(this,e)}function xc(){Ac(this),this.edge=new yc,this.center=new cc,this.corner=new Bc}function oR(e,t){return t.value-e.value}function ps(e,t){return oR(e,t)}function vc(){}function iR(){if(Vg)return;Vg=!0;let e,t;for(_0=["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'"],An=[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],Eo=[0,1,2,4,6,7,8,9,10,11,13,15,16,17,19,22,25,28,31,34,36],Hg=I(37),Xg=I(37),Fl=I(37,36),es=I(29,28),ts=I(21,20),U0=I(36),_o=I(28),vl=I(20),e=0;e<29;++e)Hg[An[e]]=e;for(e=0;e<21;++e)Xg[Eo[e]]=e;for(e=0;e<36;++e){for(t=0;t<36;++t)Fl[e][t]=~~(e/3)===~~(t/3)||~~(e/3)%3===~~(t/3)%3&&e>t;Fl[36][e]=!1}for(e=0;e<29;++e)for(t=0;t<28;++t)es[e][t]=Fl[An[e]][An[t]];for(e=0;e<21;++e)for(t=0;t<20;++t)ts[e][t]=Fl[Eo[e]][Eo[t]];for(e=0;e<36;++e)for(U0[e]=36,t=e;t<36;++t)if(!Fl[e][t]){U0[e]=t-1;break}for(e=0;e<28;++e)for(_o[e]=28,t=e;t<28;++t)if(!es[e][t]){_o[e]=t-1;break}for(e=0;e<20;++e)for(vl[e]=20,t=e;t<20;++t)if(!ts[e][t]){vl[e]=t-1;break}}function sR(e){let t,r,n,l,o,i,s,a,f,g,u,c;e.solution="";let p=Zi(new $i(Gr(e.c),0)),L=Zi(new $i(Gr(e.c),1)),m=Zi(new $i(Gr(e.c),2)),d=Gt[~~p>>6],D=Gt[~~L>>6],F=Gt[~~m>>6];for(e.p1SolsCnt=0,e.arr2idx=0,BR(e.p1sols.heap),e.length1=(d<D?d:D)<F?d<D?d:D:F;e.length1<100&&!(F<=e.length1&&rs(e,~~m>>>6,m&63,e.length1,-1,0)||d<=e.length1&&rs(e,~~p>>>6,p&63,e.length1,-1,0)||D<=e.length1&&rs(e,~~L>>>6,L&63,e.length1,-1,0));++e.length1);let S=UR(e.p1sols,N0(ER,Kr([hd,z0,C0]),tc,0,0));S.sort(function(P,Z){return P.value-Z.value}),t=9;do{e:for(a=S[0].value;a<100;++a)for(i=0;i<S.length&&!(S[i].value>a);++i)if(!(a-S[i].length1>t)&&(kl(e.c1,S[i]),ic(e.ct2,Gr(e.c1),ms(Po(e.c1).ep)),u=os(e.ct2),c=is(e.ct2),e.length1=S[i].length1,e.length2=a-S[i].length1,Uc(e,u,c,e.length2,28,0)))break e;++t}while(a===100);e.arr2.sort(function(P,Z){return P.value-Z.value}),s=0,r=13;do{e:for(f=e.arr2[0].value;f<100;++f)for(i=0;i<Math.min(e.arr2idx,100)&&!(e.arr2[i].value>f);++i)if(!(f-e.arr2[i].length1-e.arr2[i].length2>r)&&(o=Rc(e.e12,Po(e.arr2[i])),uc(e.ct3,Gr(e.arr2[i]),o^ms(Sc(e.arr2[i]).cp)),n=T0(e.ct3),l=El(e.e12,10),g=Dc(dc(e.e12)),g<=f-e.arr2[i].length1-e.arr2[i].length2&&bc(e,l,n,g,f-e.arr2[i].length1-e.arr2[i].length2,20,0))){s=i;break e}++r}while(f===100);let v=new hs(e.arr2[s]);e.length1=v.length1,e.length2=v.length2;let U=f-e.length1-e.length2;for(i=0;i<U;++i)yn(v,Eo[e.move3[i]]);e.solution=lR(v)}function aR(e,t){let r,n;for(kl(e.c1,e.c),r=0;r<e.length1;++r)yn(e.c1,e.move1[r]);switch(O0[t]){case 0:{yn(e.c1,24),yn(e.c1,35),e.move1[e.length1]=24,e.move1[e.length1+1]=35,e.add1=!0,t=19;break}case 12869:{yn(e.c1,18),yn(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}ic(e.ct2,Gr(e.c1),ms(Po(e.c1).ep));let l=os(e.ct2),o=is(e.ct2),i=ot[l*70+o];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 hs(e.c1):(n=xR(e.p1sols),n.value>e.c1.value&&kl(n,e.c1)),pR(e.p1sols,n),e.p1SolsCnt===1e4}function fR(e){let t;for(kl(e.c2,e.c1),t=0;t<e.length2;++t)yn(e.c2,e.move2[t]);if(!$d(Po(e.c2)))return!1;let r=Rc(e.e12,Po(e.c2));uc(e.ct3,Gr(e.c2),r^ms(Sc(e.c2).cp));let n=T0(e.ct3);El(e.e12,10);let l=Dc(dc(e.e12));return e.arr2[e.arr2idx]?kl(e.arr2[e.arr2idx],e.c2):e.arr2[e.arr2idx]=new hs(e.c2),e.arr2[e.arr2idx].value=e.length1+e.length2+Math.max(l,Tr[n]),e.arr2[e.arr2idx].length2=e.length2,++e.arr2idx,e.arr2idx===e.arr2.length}function uR(e){return wc(),e.c=new xc,sR(e),e.solution}function rs(e,t,r,n,l,o){let i,s,a,f,g,u;if(t===0)return n===0&&aR(e,r);for(i=0;i<27;i+=3)if(!(i===l||i===l-9||i===l-18))for(f=0;f<3;++f){if(a=i+f,s=Ls[t][It[r][a]],g=Gt[~~s>>>6],g>=n){if(g>n)break;continue}if(u=Sl[r][s&63],s>>>=6,e.move1[o]=a,rs(e,s,u,n-1,i,o+1))return!0}return!1}function Uc(e,t,r,n,l,o){let i,s,a,f;if(t===0&&ot[r]===0)return n===0&&fR(e);for(s=0;s<23;++s){if(es[l][s]){s=_o[s];continue}if(i=ss[t][s],f=as[r][s],a=ot[i*70+f],a>=n){a>n&&(s=_o[s]);continue}if(e.move2[o]=An[s],Uc(e,i,f,n-1,s,o+1))return!0}return!1}function bc(e,t,r,n,l,o,i){let s,a,f,g,u,c,p,L,m;if(l===0)return t===0&&r===0;for(Mo(e.tempe[i],t),u=0;u<17;++u){if(ts[o][u]){u=vl[u];continue}if(f=ko[r][u],c=Tr[f],c>=l){c>l&&u<14&&(u=vl[u]);continue}if(g=wl(e.tempe[i].edge,u<<3,10),s=~~(g/20160),L=_l[s],m=L&7,L>>=3,a=wl(e.tempe[i].edge,u<<3|m,10)%20160,p=Xd(L*20160+a,n),p>=l){p>l&&u<14&&(u=vl[u]);continue}if(bc(e,g,f,p,l-1,u,i+1))return e.move3[i]=u,!0}return!1}function Ec(){let e;for(this.p1sols=new Pc(new vc),this.move1=I(15),this.move2=I(20),this.move3=I(20),this.c1=new cs,this.c2=new cs,this.ct2=new I0,this.ct3=new G0,this.e12=new Rr,this.tempe=I(20),this.arr2=I(100),e=0;e<20;++e)this.tempe[e]=new Rr}function wc(){Jg||(_d(),bl=I(735471),zd(),Ed(),bl=null,wd(),Pd(),Td(),Jd(),Zd(),Hd(),Jg=!0)}function gR(){Zg||(Zg=!0)}function ms(e){let t,r,n,l;for(l=0,t=0,n=e.length;t<n;++t)for(r=t;r<n;++r)e[t]>e[r]&&(l^=1);return l}function h(e,t,r,n,l,o){let i;switch(o){case 0:{i=e[l],e[l]=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[l],e[l]=i;return}case 2:{i=e[t],e[t]=e[r],e[r]=e[n],e[n]=e[l],e[l]=i;return}}}function kc(){}function _c(e,t,r,n){let l=new kc;return l.typeName=e+t,Cc(r!==0?-r:0)&&Nc(r!==0?-r:0,l),l.modifiers=4,l.superclass=X0,l.componentType=n,l}function zc(e,t,r,n){let l=new kc;return l.typeName=e+t,Cc(r)&&Nc(r,l),l.superclass=n,l}function cR(e){let t=zo[e.seedId];return e=null,t}function Cc(e){return typeof e=="number"&&e>0}function Nc(e,t){let r;if(t.seedId=e,e===2)r=String.prototype;else if(e>0){let n=cR(t);if(n)r=n.prototype;else{n=zo[e]=function(){},n.___clazz$=t;return}}else return;r.___clazz$=t}function pR(e,t){if(SR(e,t))return!0}function mR(e){e.array=N0(Mc,Kr([z0,C0]),$g,0,0)}function LR(e,t){return ns(e.array,e.size++,t),!0}function BR(e){e.array=N0(Mc,Kr([z0,C0]),$g,0,0),e.size=0}function Wr(e,t){return e.array[t]}function dR(e,t){let r=e.array[t];return DR(e.array,t,1),--e.size,r}function Ul(e,t,r){let n=e.array[t];return ns(e.array,t,r),n}function RR(e,t){let r;for(t.length<e.size&&(t=Ad(t,e.size)),r=0;r<e.size;++r)ns(t,r,e.array[r]);return t.length>e.size&&ns(t,e.size,null),t}function hR(){mR(this),this.array.length=500}function DR(e,t,r){e.splice(t,r)}function FR(e,t){let r,n,l,o;for(n=0,r=e.length-1;n<=r;)if(l=n+(~~(r-n)>>1),o=e[l],o<t)n=l+1;else if(o>t)r=l-1;else return l;return-n-1}function Ds(e){yR(e,e.length)}function yR(e,t){let r;for(r=0;r<t;++r)e[r]=-1}function AR(e,t){let r,n,l,o,i=e.heap.size,s=Wr(e.heap,t);for(;t*2+1<i&&(r=(n=2*t+1,l=n+1,o=n,l<i&&ps(Wr(e.heap,l),Wr(e.heap,n))<0&&(o=l),o),!(ps(s,Wr(e.heap,r))<0));)Ul(e.heap,t,Wr(e.heap,r)),t=r;Ul(e.heap,t,s)}function SR(e,t){let r,n;for(n=e.heap.size,LR(e.heap,t);n>0;){if(r=n,n=~~((n-1)/2),ps(Wr(e.heap,n),t)<=0)return Ul(e.heap,r,t),!0;Ul(e.heap,r,Wr(e.heap,n))}return Ul(e.heap,n,t),!0}function xR(e){if(e.heap.size===0)return null;let t=Wr(e.heap,0);return vR(e),t}function vR(e){let t=dR(e.heap,e.heap.size-1);0<e.heap.size&&(Ul(e.heap,0,t),AR(e,0))}function UR(e,t){return RR(e.heap,t)}function Pc(e){this.heap=new hR,this.cmp=e}function Ic(){Yg||(Yg=!0,iR(),gR(),bd(),Nd(),Md(),Vd(),Kd(),Yd(),rR(),Oc=new Ec)}function wR(){Ic(),wc()}async function kR(){Ee(),Ic();let e=E.fromString(uR(Oc));return(await Rl()).concat(e)}var J,zo,Bd,$g,z0,ec,dd,Rd,tc,hd,Dd,Fd,C0,Cg,b0,E0,Ng,Gt,Ls,O0,bl,Bs,Al,It,Sl,Og,ss,ot,sc,ac,as,fc,Gg,ko,gc,Tr,W0,K0,Wg,bt,Kg,w0,Ji,Tt,j0,q0,V0,_l,Rs,Fc,gs,jg,qg,k0,Vg,Fl,es,ts,An,_0,Eo,U0,_o,vl,Hg,Xg,Jg,Zg,X0,Mc,bR,ER,Oc,Yg,Tc=A(()=>{"use strict";fe();S0();zg();xt();St();zo={},Bd={},$g=0,z0=30,ec=21,dd=22,Rd=23,tc=24,hd=25,Dd=34,Fd=26,C0=40;ht(1,-1,Bd);J.value=null;ht(73,1,{},rc);J.queryId$=0;Cg=!1;Ng=!1;ht(153,1,Kr([ec]),Co,$i,wo);bl=null,Og=!1;ht(154,1,{},I0);J.parity=0;Gg=!1;ht(155,1,{},G0);J.parity=0;ht(156,1,{},Q0,cc);Wg=!1;ht(157,1,Kr([dd]),ds,Ir,Bc);J.temps=null;Kg=!1;ht(158,1,Kr([Rd]),Rr);J.isStd=!0;J.temp=null;Ji=0,jg=!1;ht(159,1,{},H0,yc);qg=!1;ht(160,1,Kr([tc,Dd]),cs,hs,xc);J.compareTo$=function(t){return nR(this,t)};J.add1=!1;J.center=null;J.centerAvail=0;J.corner=null;J.cornerAvail=0;J.edge=null;J.edgeAvail=0;J.length1=0;J.length2=0;J.length3=0;J.moveLength=0;J.sym=0;J.value=0;ht(161,1,{},vc);J.compare=function(t,r){return ps(t,r)};Vg=!1;ht(163,1,Kr([Fd]),Ec);J.add1=!1;J.arr2idx=0;J.c=null;J.length1=0;J.length2=0;J.p1SolsCnt=0;J.solution="";Jg=!1,Zg=!1;J.val$outerIter=null;J.size=0;ht(239,1,{},Pc);J.cmp=null;J.heap=null;X0=zc("java.lang.","Object",1,null),Mc=_c("[Ljava.lang.","Object;",356,X0),bR=zc("cs.threephase.","FullCube",160,X0),ER=_c("[Lcs.threephase.","FullCube;",381,bR),Yg=!1});var Gc={};Lt(Gc,{initialize:()=>wR,random444Scramble:()=>kR});var Wc=A(()=>{"use strict";Tc()});function Io(e){if(e<2)return e;let t=1;for(let r=2;r<=e;r++)t*=r;return t}function Fs(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 ep(e,t,r,n,l=e-t-r-n){return Fs(e,t+r)*Fs(t+r,t)*Fs(n+l,n)}function MR(e){e=e.slice();let t=e.length,r=Io(t-1),n=0;for(;t>1;){t--;let l=e[0];n+=l*r;for(let o=0;o<t;o++){let i=e[o+1];e[o]=i-(i>l)}r/=t}return n}function OR(e){let t=e.length,r=0;for(let n=0;n<t-1;n++)for(let l=n;l<t;l++)e[n]>e[l]&&(r^=1);return r}function i2(e,t){let r=[],n=Io(t-1)/2,l=0;for(let o=0;o<t-1;o++)r[o]=e/n|0,e%=n,n/=t-1-o;r[t-1]=0;for(let o=t-2;o>=0;o--)for(let i=o+1;i<t;i++)r[i]>=r[o]?r[i]++:l^=1;return l===1&&([r[t-2],r[t-1]]=[r[t-1],r[t-2]]),r}function Sn(e){return MR(e)>>1}function n2(e){let t=[0];for(let r=1;r<e;r++){let n=H(r+1);t[r]=t[n],t[n]=r}return t}function Vc(e){let t=n2(e);return OR(t)===1&&([t[0],t[1]]=[t[1],t[0]]),t}function IR(e){return e|=0,31-Math.clz32(e^e-1)}function Hc(e,t){e|=0,t|=0;let r=\`\${e} \${t}\`;if(Y0[r])return Y0[r];let n=Fs(e,t),l=new Uint32Array(n),o=new Uint32Array(1<<e).fill(-1);for(let i=0,s=(1<<t)-1;i<n;i++){l[i]=s,o[s]=i;let a=s|s-1;s=a+1|(~a&-~a)-1>>IR(s)+1}return Y0[r]=[l,o]}function TR(e){e|=0;let t=0;for(;e!==0;)e&=e-1,t++;return t}function Xc(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 GR(e,t){return Xc(e)|Xc(t)<<1}function Pl(e,t,r,n,l){if(e|=0,t|=0,r|=0,n|=0,l|=0,e!==t+r+n+l)throw new Error("generate_comb4_lookup_tables: invalid parameters");let o=[e,t,r,n,l].join(" ");if($0[o])return $0[o];let[i,s]=Hc(e,r+l),[a,f]=Hc(e,n+l),g=ep(e,t,r,n,l),u=new Uint32Array(g),c=new Uint32Array(4**e).fill(-1);for(let p=0,L=0;p<a.length;p++){let m=a[p];for(let d=0;d<i.length;d++){let D=i[d];if(TR(D&m)===l){let F=GR(D,m);u[L]=F,c[F]=L,L++}}}return $0[o]=[u,c]}function rt(e,t){let r=[];for(let n=0;n<t.length;n++)r[n]=e[t[n]];return r}function Ml(e,t,r){let n=[];for(let l=0;l<r.length;l++)n[l]=e[t[r[l]]];return n}function s2(e,t){let r=[];for(let n=0;n<t;n++)r[n]=n;for(let n of e)for(let l=0;l<n.length;l++)r[n[l]]=n[(l+1)%n.length];return r}function xn(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 l=n[r-1]+t[r-1],o=Array(l);for(let i=0;i<r;i++)t[i]&&(o[n[i]]=n[e[i]]);return o}function a2(e){let t=e.length,r=Array(t);for(let n=0;n<t;n++)r[e[n]]=n;return r}function WR(e,t){for(;e&&t;)[e,t]=[t%e,e];return Math.abs(e+t)}function KR(e,t){return e*t/WR(e,t)}function QR(e){let t=1,r=e.length,n=Array(r).fill(!1),l=-1;for(;l=n.indexOf(!1,l+1),l!==-1;){let o=0,i=l;for(;!n[i];)n[i]=!0,i=e[i],o++;t=KR(t,o)}return t}function YR(e,t){for(let r=0;r<6;r++){if(e===Wt[Qr[r][0]]&&t===Wt[Qr[r][2]])return[r,0];if(e===Wt[Qr[r][2]]&&t===Wt[Qr[r][0]])return[r,1]}throw new Error("unknown corner piece")}function $R(e,t){for(let r=0;r<12;r++)if(e===Wt[jr[r][0]]&&t===Wt[jr[r][1]]||t===Wt[jr[r][0]]&&e===Wt[jr[r][1]])return r;throw new Error("unknown edge piece")}function f2(e,t){return YR(e[Qr[t][0]],e[Qr[t][2]])}function Us(e,t){return $R(e[jr[t][0]],e[jr[t][1]])}function eh(e,t,r,n){let l=Qr[t],o=Qr[r].map(i=>Wt[i]);n%2!==0&&(o=[o[2],o[3],o[0],o[1]]);for(let i=0;i<4;i++)e[l[i]]=o[i]}function th(e,t,r){let n=jr[t],l=jr[r].map(o=>Wt[o]);for(let o=0;o<2;o++)e[n[o]]=l[o]}function np(e){let t=e.map(a=>Wt[a]),n=Array(6).fill().map((a,f)=>f2(t,f)).map(([a,f])=>a+6*f),l=n.concat(n.map(a=>(a+6)%12)),o=Array(12).fill().map((a,f)=>Us(t,f)),i=Array(12).fill().map((a,f)=>vn.indexOf(e[vn[f]])),s=Array(12).fill().map((a,f)=>zl.indexOf(e[zl[f]]));return{cp:l,ep:o,ap:i,bp:s}}function nh(){let e=Array(72),t=Vc(5);t.push(5);let r=Array(4).fill().map(i=>H(2));r.push(r.reduce((i,s)=>i^s)),r.push(0);for(let i=0;i<6;i++)eh(e,i,t[i],r[i]);let n=Vc(12);for(let i=0;i<12;i++)th(e,i,n[i]);let l=n2(12).map(i=>i/3|0),o=n2(12).map(i=>4+(i/3|0));for(let i=0;i<12;i++)e[vn[i]]=l[i],e[zl[i]]=o[i];return e}function op(e,t=!1){if(t){e=e.map(m=>m.slice());let p=[0,1,2,3,4,5,6,7],L=[[0,3,5,6,4,7,1,2],[7,1,0,6,3,5,4,2],[7,4,2,1,3,0,6,5],[2,4,5,3,6,0,1,7]];L=L.concat(L.map(m=>a2(m)));for(let m=0;m<e.length;m++)if(e[m][0]<4)e[m][0]=p[e[m][0]];else{let d=p[e[m][0]],D=e[m][1];e[m][0]=d,p=rt(D===1?L[d^4]:L[d],p)}}let r=t?"U L F R D BR B BL".split(" "):rh,n=["0","","'"];return e.map(([o,i])=>r[o]+n[i]).join(" ")}function qr(e,t){for(let[r,n]of t)for(let l=0;l<n;l++)e=rt(e,lp[r]);return e}function ip(e){return e.map(([t,r])=>[t,(3-r)%3]).reverse()}function Ss(e,t=!1){if(e.length===0)return[];let r=[],n;for(let[l,o]of e)n&&n[0]===l?(n[1]+=o,n[1]%=3,n[1]===0&&(r.pop(),n=r.length===0?void 0:r[r.length-1])):r.length>=2&&(n[0]^l)===4&&r[r.length-2][0]===l?(r[r.length-2][1]+=o,r[r.length-2][1]%=3,r[r.length-2][1]===0&&r.splice(r.length-2,1)):(n=[l,o],r.push(n));return t&&\`\${e}\`!=\`\${r}\`&&console.log(\`simplified \${e} to \${r}\`),r}function lh(){return op(ip(sh(nh(),!0)),!0)}function Cl(e,t,r,n,l,o){let i=ep(e,t,r,n,l),s=o.length,[a,f]=Pl(e,t,r,n,l),g=Array(s).fill().map(()=>new Uint32Array(i));for(let u=0;u<i;u++){let c=a[u],p=Array(e);for(let L=0;L<e;L++)p[L]=c>>2*L&3;for(let L=0;L<s;L++){let d=rt(p,o[L]).reduce((D,F,S)=>D|F<<2*S,0);g[L][u]=f[d]}}return g}function sp(e){let t=e[0].length,r=e.length,n=Array(r).fill().map(()=>new Uint32Array(t));for(let l=0;l<t;l++)for(let o=0;o<r;o++)n[o][e[o][l]]=l;return n}function bn(e,t){let r=e[0].length,n=t[0].length,l=e.length,o=Array(l).fill().map(()=>new Uint32Array(r*n));for(let i=0;i<n;i++)for(let s=0;s<r;s++){let a=s+r*i;for(let f=0;f<l;f++)o[f][a]=e[f][s]+r*t[f][i]}return o}function oh(e,t){let r=e.length,n=e[0].length,l=new Uint8Array(n);l[t]=1;let o=!1;for(;!o;){o=!0;for(let s=0;s<n;s++)if(!!l[s])for(let a=0;a<r;a++)l[e[a][s]]||(l[e[a][s]]=1,o=!1)}let i=new Int32Array(n).fill(-1);for(let s=0,a=0;s<n;s++)!l[s]||(i[s]=a,a++);return[e.map(s=>xn(s,l)),i]}function ih(e,t){let r=e.length,n=e[0].length,l=new Int32Array(n).fill(-1);t.forEach(a=>{l[a]=0});let o=[t];for(let a=0;a<o.length;a++){let f=o[a];for(let g=0;g<r;g++){let u=e[g][f[0]];if(l[u]!==-1)continue;let c=f.map(L=>e[g][L]),p=o.length;o.push(c);for(let L of c){if(l[L]!==-1)throw new Error("quotienting failed");l[L]=p}}}let i=o.length,s=Array(r).fill().map(()=>new Int32Array(i));for(let a=0;a<r;a++)for(let f=0;f<i;f++)s[a][f]=l[e[a][o[f][0]]];return[s,l]}function ap(e,t,r){let n=e[0].length,l=e.length,o=new Int32Array(n).fill(-1);o[t]=r,o[r]=t;let i=!1;for(;!i;){i=!0;for(let s=0;s<n;s++){if(o[s]===-1)continue;let a=o[s];for(let f=0;f<l;f++){let g=f^1,u=e[f][s],c=e[g][e[g][a]];if(o[u]===-1)i=!1,o[u]=c,o[c]=u;else if(o[u]!==c)throw new Error("mirroring failed - is the initial map correct?")}}}return o}function fp(e,t){let r=e[0].length,n=e.length,l=new Int8Array(r).fill(-1);for(let s of t)l[s]=0;let o=0,i=!1;for(;!i;){i=!0;for(let s=0;s<r;s++)if(l[s]===o)for(let a=0;a<n;a++){let f=e[a][s];for(;f!==s;)l[f]===-1&&(i=!1,l[f]=o+1),f=e[a][f]}o++}return l}function sh(e,t=!1){let r=ch(e).next().value,n=qr(e,r),l=(t?bh:Uh)(n),o=Ss(r.concat(l),!1);return qr(e,o).join("")!==To.join("")&&(console.log("solving failed!"),console.log(e),console.log(r),console.log(n),console.log(l),console.log(qr(e,o))),o}function fh(e){let[t,r]=Pl(12,6,0,3,3),n=Array(12).fill().map((s,a)=>Us(e,a)),l=n.indexOf(8)+12*n.indexOf(9)+12**2*n.indexOf(10)+12**3*n.indexOf(11),[o,i]=[vn,zl].map(s=>{let a=s.map(f=>ah[e[f]]);return r[a.reduce((f,g,u)=>f|g<<2*u,0)]});return[l,o,i]}function up(){if(K.phase1_edge)return K.phase1_edge;let e=sp(Un.map(n=>n.ep)),t=bn(e,e),r=bn(t,t);return K.phase1_edge=r}function uh(){return Dr.phase1_edge?Dr.phase1_edge:Dr.phase1_edge=fp(up(),[8+12*9+12**2*10+12**3*11])}function gh(){return K.phase1_centreA?K.phase1_centreA:K.phase1_centreA=Cl(12,6,0,3,3,Un.map(e=>e.ap))}function gp(){return K.phase1_centreB?K.phase1_centreB:K.phase1_centreB=Cl(12,6,0,3,3,Un.map(e=>e.bp))}function Jc(){if(Dr.phase1_centre)return Dr.phase1_centre;let[e,t]=Pl(12,6,0,3,3),r=e.filter(n=>{let l=n>>12&3,o=n>>18&3;return l===2&&o===3}).map(n=>t[n]);return Dr.phase1_centre=fp(gp(),r)}function*ch(e){let t=[up(),gh(),gp()],r=[uh(),Jc(),Jc()];yield*ph(fh(e),t,r,15)}function*ph(e,t,r,n){let l=e.length,o=0;for(let i=0;i<l;i++)o=Math.max(o,r[i][e[i]]);for(;o<=n;)yield*cp(e,t,r,o,-1),o++}function*cp(e,t,r,n,l){let o=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 a=0;a<i;a++){if(a===l||a===l-4)continue;let f=[];f[0]=t[0][a][e[0]],f[1]=t[1][a][e[1]],f[2]=t[2][a][e[2]];let g=1;for(;e.some((u,c)=>e[c]!==f[c]);){let u=cp(f,t,r,n-1,a);for(;;){let{value:c,done:p}=u.next();if(p)break;yield[[a,g]].concat(c)}f[0]=t[0][a][f[0]],f[1]=t[1][a][f[1]],f[2]=t[2][a][f[2]],g++}}}}function u2(e){let[t,r]=Pl(10,5,3,2,0),n=Array(8).fill().map((c,p)=>Us(e,p)),l=n.indexOf(5)+8*n.indexOf(6)+8**2*n.indexOf(7),o=Array(5).fill().map((c,p)=>f2(e,p)),i=a2(o.map(([c,p])=>c+5*p).concat(o.map(([c,p])=>c+5*(p^1)))),s=i.slice(0,5).map(c=>c%5),a=i.slice(0,5).map(c=>c/5|0),f=Sn(s)*8+(a[0]^a[2])+2*(a[0]^a[3])+4*a[4],[g,u]=[vn,zl].map(c=>{let p=rt(c,Lh).map(L=>mh[e[L]]);return r[p.reduce((L,m,d)=>L|m<<2*d,0)]});return Lp(),Rp(),[g,u,dp[f]+40*mp[l]]}function*xs(e){yield*Dh(u2(e),30)}function pp(){if(K.phase2_centre)return K.phase2_centre;let e=Cl(10,5,3,2,0,Un.slice(0,4).map(r=>xn(r.ap,Zc))),t=Cl(10,5,3,2,0,Un.slice(0,4).map(r=>xn(r.bp,Zc)));return K.phase2_centre=[e,t]}function Lp(){if(K.phase2_edge)return K.phase2_edge;let e=sp(Un.slice(0,4).map(n=>n.ep.slice(0,8))),t=bn(e,bn(e,e)),r;return[r,mp]=oh(t,501),K.phase2_edge=r}function Bp(){if(K.phase2_corner)return K.phase2_corner;let t=Io(5)/2*8,r=[!0,!0,!0,!0,!0,!1,!0,!0,!0,!0,!0,!1],n=Array(4).fill().map(()=>new Uint32Array(t)),l=Un.slice(0,4).map(o=>a2(xn(o.cp,r)));for(let o=0;o<t;o++){let i=i2(o>>3,5),s=[0,0,o&1,o>>1&1,o>>2&1];s[1]=s[2]^s[3]^s[4];let a=Array(10);for(let f=0;f<5;f++)a[f]=i[f]+5*s[f],a[f+5]=i[f]+5*(s[f]^1);for(let f=0;f<4;f++){let g=rt(l[f],a),u=g.slice(0,5).map(L=>L%5),c=g.slice(0,5).map(L=>L/5|0),p=(c[0]^c[2])+2*(c[0]^c[3])+4*c[4];n[f][o]=Sn(u)*8+p}}return K.phase2_corner=n}function Rp(){return K.phase2_corner_compact||([K.phase2_corner_compact,dp]=ih(Bp(),Rh())),K.phase2_corner_compact}function g2(){if(K.phase2_ce)return K.phase2_ce;let e=Rp(),t=Lp();return K.phase2_ce=bn(e,t)}function Bh(){if(e2)return e2;let e=u2(To)[2];return e2=ap(g2(),e,e)}function dh(){let[e,t]=Pl(10,5,3,2,0);return e.filter(r=>(r>>10&63)===41).map(r=>t[r])}function Rh(){let e=Bp(),t=e[0].length,r=Array(t).fill(!1);r[0]=!0;let n=!1;for(;!n;){n=!0;for(let l=0;l<t;l++)r[l]&&(r[e[0][l]]||(n=!1,r[e[0][l]]=!0),r[e[1][l]]||(n=!1,r[e[1][l]]=!0))}return r.map((l,o)=>o).filter(l=>r[l])}function hh(){if(Dr.phase2_ace)return Dr.phase2_ace;let[e,t]=pp(),r=g2(),n=2520,l=40*336,o=n*l,i=u2(To)[2],s=9,a=new Int8Array(o).fill(s);for(let f of dh())a[f+n*i]=0;for(let f=0;f<s-1;f++)for(let g=a.indexOf(f);g!==-1;g=a.indexOf(f,g+1)){let u=g%n,c=g/n|0;for(let p=0;p<4;p++){let L=e[p][u],m=r[p][c],d=L+n*m;a[d]===s&&(a[d]=f+1),L=e[p][L],m=r[p][m],d=L+n*m,a[d]===s&&(a[d]=f+1)}}return Dr.phase2_ace=a}function*Dh(e,t){let[r,n]=pp(),l=g2(),o=hh(),i=Bh(),[s,a,f]=e,g=i[f],u=Math.max(o[s+2520*f],o[a+2520*g]);for(;u<=t;)yield*hp(s,a,f,r,n,l,o,i,u,-1),u++}function*hp(e,t,r,n,l,o,i,s,a,f){let g=Math.max(i[e+2520*r],i[t+2520*s[r]]);if(!(g>a)){if(a===0){yield[];return}else if(g===0)return;for(let u=0;u<4;u++){if(u===f)continue;let c=e,p=t,L=r;for(let m=1;m<=2;m++){c=n[u][c],p=l[u][p],L=o[u][L];let d=hp(c,p,L,n,l,o,i,s,a-1,u);for(;;){let{value:D,done:F}=d.next();if(F)break;yield[[u,m]].concat(D)}}}}}function bs(e){let[t,r]=Pl(7,3,2,0,2),n=Array(5).fill().map((f,g)=>Us(e,g)),l=Sn(n),o=Array(4).fill().map((f,g)=>f2(e,g)),i=Sn(o.map(f=>f[0]))*2+o.find(f=>f[0]===0)[1],[s,a]=[vn,zl].map(f=>{let g=rt(f,Fh).map(u=>e[u]%4);return r[g.reduce((u,c,p)=>u|c<<2*p,0)]});return[s+210*a,i+24*l]}function Ah(){if(K.phase3_2gen_edge)return K.phase3_2gen_edge;let e=Io(5)/2,t=Array(Nl).fill().map(()=>new Uint32Array(e)),r=vs.map(n=>n.ep.slice(0,5));for(let n=0;n<e;n++){let l=i2(n,5);for(let o=0;o<Nl;o++)t[o][n]=Sn(rt(l,r[o]))}return K.phase3_2gen_edge=t}function Sh(){if(K.phase3_2gen_corner)return K.phase3_2gen_corner;let t=Io(4)/2*2,r=[!0,!0,!0,!0,!1,!1,!0,!0,!0,!0,!1,!1],n=Array(Nl).fill().map(()=>new Uint32Array(t)),l=vs.map(o=>xn(o.cp,r).slice(0,4));for(let o=0;o<t;o+=2){let i=i2(o>>1,4),s=i.concat(i.map(a=>a+4));for(let a=0;a<Nl;a++){let f=rt(s,l[a]),g=f.map(c=>c%4),u=f.find(c=>c%4===0)>>2;n[a][o]=Sn(g)*2+u,n[a][o+1]=Sn(g)*2+(u^1)}}return K.phase3_2gen_corner=n}function Es(){return K.phase3_2gen_corneredge?K.phase3_2gen_corneredge:K.phase3_2gen_corneredge=bn(Sh(),Ah())}function c2(){if(K.phase3_2gen_centre)return K.phase3_2gen_centre;let e=Cl(7,3,2,0,2,vs.map(r=>xn(r.ap,Yc))),t=Cl(7,3,2,0,2,vs.map(r=>xn(r.bp,Yc)));return K.phase3_2gen_centreA=e,K.phase3_2gen_centreB=t,K.phase3_2gen_centre=bn(e,t)}function Fp(){if(t2)return t2;let e=c2(),t=K.phase3_2gen_centreA,r=Es(),n=t[0].length,l=r[0].length,o=n*l,i=25,s=Fr.map(c=>c.length),a=new Int8Array(o).fill(i),f=bs(To);a[f[0]%n+n*f[1]]=0;let g=0,u=!1;for(;!u&&g<i-1;){u=!0;let c=Array(Nl).fill().map((D,F)=>F).filter(D=>s[D]+g<i);c.sort((D,F)=>s[D]-s[F]);let p=rt(s,c),L=rt(t,c),m=rt(r,c),d=c.length;for(let D=a.indexOf(g);D!==-1;D=a.indexOf(g,D+1)){let F=D%n,S=D/n|0;for(let v=0;v<d;v++){let U=p[v],P=L[v][F],Z=m[v][S],C=P+n*Z;a[C]>g+U&&(u=!1,a[C]=g+U)}}g++}return t2=a}function yp(){if(r2)return r2;let e=Es().slice(0,2),t=bs(To);return r2=ap(e,t[1],t[1])}function l2(e,t=bs(e)){let[r,n]=t,l=r%210,o=Math.floor(r/210),i=c2(),s=K.phase3_2gen_centreA,a=K.phase3_2gen_centreB,f=Es(),g=Fp(),u=yp(),c=0;for(;;){let p=p2(l,o,n,s,a,f,g,u,c);for(let L of p)return L.map(m=>Fr[m]).flat();c++}}function $c(e,t=bs(e)){let[r,n]=t,l=r%210,o=Math.floor(r/210),i=c2(),s=K.phase3_2gen_centreA,a=K.phase3_2gen_centreB,f=Es(),g=Fp(),u=yp(),c=l2(e).length,p=1/0,L;for(let m=c;m<=c+0;m++){let d=p2(l,o,n,s,a,f,g,u,m);for(let D of d){let F=D.map(U=>Fr[U]).flat(),S=Ss(F),v=o2(S);v<p&&(p=v,L=S)}}return L}function xh(e){return(e-1)*(e-2)/2}function o2(e){let t=op(e,!0).replace(/'/g,"").split(" ");return e.length+vh(t).map(xh).reduce((r,n)=>r+n,0)}function vh(e){if(e.length<3)return[];let t=e.length,r=[];for(let o=0;o<t-2;o++)r[o]=e[o]===e[o+2];r.push(!1);let n=-1,l=[];for(;n<t-2&&(n=r.indexOf(!0,n+1),n!==-1);){let o=r.indexOf(!1,n+1);l.push(o-n),n=o}return l}function*p2(e,t,r,n,l,o,i,s,a,f=-1){let g=i[e+210*r],u=i[t+210*s[r]],c=Math.max(g,u);if(!(c>a)){if(a===0){yield[];return}if(c!==0)for(let p=0;p<Nl;p++){if(p===f&&yh[p]<=3)continue;let L=n[p][e],m=l[p][t],d=o[p][r],D=a-Fr[p].length;if(D<0)continue;let F=p2(L,m,d,n,l,o,i,s,D,p);for(;;){let{value:S,done:v}=F.next();if(v)break;yield[p].concat(S)}}}}function Uh(e,t=200,r=24){let n=[],l=xs(e),o=rt(e,tr).map(a=>a^1),i=xs(o),s=Array(1e3);for(let a=0;a<t;a++){{let{value:f,done:g}=l.next();if(!g){let u=qr(e,f),c=f.concat(l2(u));if(c.length<=r)return c;c.length<s.length&&(s=c)}}{let{value:f,done:g}=i.next();if(!g){let u=qr(o,f),c=f.concat(l2(u)).map(([p,L])=>[p^2,L]);if(c.length<=r)return c;c.length<s.length&&(s=c)}}}return s}function bh(e,t=20,r=30){let n=[],l=xs(e),o=rt(e,tr).map(f=>f^1),i=xs(o),s,a=1/0;for(let f=0;f<t;f++){{let{value:g,done:u}=l.next();if(!u){let c=qr(e,g),p=Ss(g.concat($c(c))),L=o2(p);if(L<=r)return p;L<a&&(s=p,a=L)}}{let{value:g,done:u}=i.next();if(!u){let c=qr(o,g),p=Ss(g.concat($c(c)));p=p.map(([m,d])=>[m^2,d]);let L=o2(p);if(L<=r)return p;L<a&&(s=p,a=L)}}}return s}function Eh(){return lh()}var ex,tx,Y0,$0,To,Oo,jR,tr,rx,ys,tp,qR,VR,HR,As,XR,rp,JR,ZR,Wt,Qr,jr,vn,zl,lp,rh,Un,K,Dr,ah,mh,Lh,Zc,mp,dp,e2,Fh,Yc,Fr,Nl,Dp,vs,yh,t2,r2,Ap=A(()=>{"use strict";xt();[ex,tx]=(()=>{let e=new Int8Array(2048),t=new Int8Array(256*8);for(let l=0;l<256;l++)for(let o=0,i=0;o<8;o++)(l>>>o&1)!==0&&(e[o<<8|l]=i,t[i<<8|l]=o,i++);function r(l){let o=255,i=2520,s=0;for(let a=0;a<6;a++){let f=l[a];s+=e[o|f<<8]*i,o&=~(1<<f),i/=7-a}return s}function n(l,o){let i=255,s=2520,a=0;for(let f=0;f<6;f++){let g=l/s|0;l-=g*s,a^=g&1;let u=t[i|g<<8];o[f]=u,i&=~(1<<u),s/=7-f}return o[6]=t[i|a<<8],o[7]=t[i|(a^1)<<8],o}return[r,n]})();Y0={};$0={};To=Array(72).fill().map((e,t)=>t/9|0),Oo=s2([[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),jR=rt(Oo,Oo),tr=Array(72).fill().map((e,t)=>(t/18|0)*18+(t+9)%18),rx=Array(72).fill().map((e,t)=>(t/36|0)*36+(t+18)%36),ys=Array(72).fill().map((e,t)=>(t+36)%72),tp=Ml(ys,jR,ys),qR=Ml(tr,Oo,tr),VR=Ml(tr,tp,tr),HR=s2([[10,24,30],[11,23,34],[12,19,33],[42,48,64],[41,52,65],[37,51,66]],72),As=rt(Oo,HR),XR=rt(As,As),rp=Ml(ys,XR,ys),JR=Ml(tr,As,tr),ZR=Ml(tr,rp,tr),Wt=Array(72).fill().map((e,t)=>t/9|0),Qr=[[0,45,9,36],[4,67,22,49],[8,44,35,71],[13,58,31,40],[17,53,26,62],[18,63,27,54]],jr=[[1,46],[3,39],[6,69],[10,37],[33,42],[12,48],[15,60],[24,51],[19,64],[28,55],[30,66],[21,57]],vn=Array(12).fill().map((e,t)=>(t/3|0)*9+[2,5,7][t%3]),zl=vn.map(e=>e+36);lp=[Oo,tp,qR,VR,As,rp,JR,ZR],rh=["U","L","F","R","u","l","f","r"],Un=lp.map(np);K={},Dr={},ah=[0,0,2,3,0,0,2,3];mh=[0,1,2,0,0,1,2,0],Lh=[0,1,2,3,4,5,7,8,10,11],Zc=[!0,!0,!0,!0,!0,!0,!1,!0,!0,!1,!0,!0];Fh=[0,1,2,3,4,10,11],Yc=[!0,!0,!0,!0,!0,!1,!1,!1,!1,!1,!0,!0],Fr=[[[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]]];Fr=Fr.concat(Fr.map(e=>ip(e)));Nl=Fr.length,Dp=Fr.map(e=>qr(s2([],72),e)),vs=Dp.map(np),yh=Dp.map(QR)});var Sp={};Lt(Sp,{randomFTOScrambleString:()=>Eh});var xp=A(()=>{"use strict";Ap()});async function Up(){return wh??(wh=kh())}async function kh(){return $t(await Oe.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
|
|
3439
|
+
Alg R' U' R U B' U' B L\`)}var mB,LB,wu=A(()=>{"use strict";We();ol();mB=null;LB=null});var ku={};Lt(ku,{cachedData222:()=>Au,cachedMegaminxKPuzzleWithoutMO:()=>qa,cachedSGSDataMegaminx:()=>xu,sgsDataPyraminx:()=>Va,sgsDataPyraminxFixedOrientation:()=>Uu,sgsDataSkewb:()=>Xa,sgsDataSkewbFixedCorner:()=>Eu,skewbKPuzzleWithoutMOCached:()=>Ha});var _u=A(()=>{"use strict";Su();vu();bu();wu()});function il(e,t){let r=new Bt;r.experimentalPushAlg(e);for(let n of t){let l=cr(n);l!==null&&r.push(B.fromString(l))}return r.toAlg()}var Ei=A(()=>{"use strict";fe();xt()});function qu(){}function FB(e){function t(){}return t.prototype=e||{},new t}function yB(e){return e instanceof Array?e[0]:null}function xo(e,t,r){var n=Qi,l=AB,o=yB,i=n[e],s=o(i);i&&!s?H=i:(H=n[e]=t?l(t):{},H.castableTypeMap$=r,H.constructor=H,!t&&(H.typeMarker$=qu));for(var a=3;a<arguments.length;++a)arguments[a].prototype=H;s&&(H.___clazz$=s)}function AB(e){var t=Qi;return FB(t[e])}function SB(){}function Ci(e){return e<<24>>24}function f0(){this.typeName=null,this.simpleName=null,this.packageName=null,this.compoundName=null,this.canonicalName=null,this.typeId=null,this.arrayLiterals=null}function u0(e,t){var r;return r=new f0,r.packageName=e,r.compoundName=t,r}function Or(e,t,r){var n;return n=u0(e,t),UB(r,n),n}function xB(e,t){var r;return r=u0(e,t),r.modifiers=2,r}function ji(e,t){var r;return r=u0("",e),r.typeId=t,r.modifiers=1,r}function Vu(e,t){var r=e.arrayLiterals=e.arrayLiterals||[];return r[t]||(r[t]=e.createClassLiteralForArray(t))}function vB(e){if(e.isPrimitive())return null;var t=e.typeId,r=Qi[t];return r}function UB(e,t){if(!!e){t.typeId=e;var r=vB(t);if(!r){Qi[e]=[t];return}r.___clazz$=t}}function re(e,t){return Vu(e,t)}function Y(e,t,r,n,l,o){var i;return i=Xu(l,n),ne(re(e,o),t,r,l,i),i}function nt(e,t,r,n,l,o){return Hu(e,t,r,n,l,0,o)}function Hu(e,t,r,n,l,o,i){var s,a,f,g,u;if(g=l[o],f=o===i-1,s=f?n:0,u=Xu(s,g),ne(re(e,i-o),t[o],r[o],s,u),!f)for(++o,a=0;a<g;++a)u[a]=Hu(e,t,r,n,l,o,i);return u}function ne(e,t,r,n,l){return l.___clazz$=e,l.castableTypeMap$=t,l.typeMarker$=qu,l.__elementTypeId$=r,l.__elementTypeCategory$=n,l}function Xu(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 l=0;l<t;++l)r[l]=n;return r}function Mu(e){var t,r,n;return t=e<,r=e>>22<,n=e<0?zr:0,bB(t,r,n)}function bB(e,t,r){return{l:e,m:t,h:r}}function EB(e,t){var r,n,l;return r=e.l+t.l,n=e.m+t.m+(r>>22),l=e.h+t.h+(n>>22),{l:r<,m:n<,h:l&zr}}function $t(e,t){return{l:e.l&t.l,m:e.m&t.m,h:e.h&t.h}}function g0(e){var t,r;return e>-129&&e<128?(t=e+128,wi==null&&(wi=Y(sd,ge,293,256,0,1)),r=wi[t],!r&&(r=wi[t]=Mu(e)),r):Mu(e)}function Ju(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 Za(e,t){return e.l!==t.l||e.m!==t.m||e.h!==t.h}function e0(e,t){return{l:e.l|t.l,m:e.m|t.m,h:e.h|t.h}}function Ni(e,t){var r,n,l;return t&=63,t<22?(r=e.l<<t,n=e.m<<t|e.l>>22-t,l=e.h<<t|e.m>>22-t):t<44?(r=0,n=e.l<<t-22,l=e.m<<t-22|e.l>>44-t):(r=0,n=0,l=e.l<<t-44),{l:r<,m:n<,h:l&zr}}function Ln(e,t){var r,n,l,o,i;return t&=63,r=e.h,n=(r&DB)!==0,n&&(r|=-1048576),t<22?(i=r>>t,o=e.m>>t|r<<22-t,l=e.l>>t|e.m<<22-t):t<44?(i=n?zr:0,o=r>>t-22,l=e.m>>t-22|r<<44-t):(i=n?zr:0,o=n?lt:0,l=r>>t-44),{l:l<,m:o<,h:i&zr}}function Zu(e,t){var r,n,l;return r=e.l-t.l,n=e.m-t.m+(r>>22),l=e.h-t.h+(n>>22),{l:r<,m:n<,h:l&zr}}function Bn(e){return e.l|e.m<<22}function wB(e){this.string=e}function Cr(e,t){return e>t?e:t}function c0(e,t){return e<t?e:t}function kB(e,t){return e.indexOf(t)}function _B(e){return zB(e,0,e.length)}function zB(e,t,r){for(var n="",l=t;l<r;){var o=Math.min(l+1e4,r);n+=String.fromCharCode.apply(null,e.slice(l,o)),l=o}return n}function CB(e){return String.fromCharCode(e&Ze)}function Ou(e){return e.string+=" ",e}function Iu(e,t){return e.string+=t,e}function PB(){wB.call(this,"")}function Pi(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 dn(){Tu||(Tu=!0,kr=nt(xe,[ge,Se],[11,0],7,[495,18],2),pl=nt(xe,[ge,Se],[11,0],7,[324,18],2),dl=nt(xe,[ge,Se],[11,0],7,[336,18],2),Nr=nt(xe,[ge,Se],[11,0],7,[495,8],2),Hi=Y(qe,je,0,20048,7,1),Vi=Y(qe,je,0,20791,7,1),cl=Y(qe,je,0,82945,7,1),al=nt(xe,[ge,Se],[11,0],7,[2768,10],2),ul=nt(xe,[ge,Se],[11,0],7,[2768,10],2),gl=nt(xe,[ge,Se],[11,0],7,[24,10],2),vo=nt(xe,[ge,Se],[11,0],7,[24,16],2),Rn=nt(xe,[ge,Se],[11,0],7,[140,16],2),qi=Y(qe,je,0,8305,7,1),fl=Y(qe,je,0,48441,7,1))}function MB(e,t,r){return e.slice_0=kr[t.slice_0][r],e.flip=dl[t.flip][($(),Dn)[r<<3|t.fsym]],e.fsym=e.flip&7^t.fsym,e.flip>>=3,e.twist=pl[t.twist][Dn[r<<3|t.tsym]],e.tsym=e.twist&7^t.tsym,e.twist>>=3,e.prun=Cr(Cr(gt(Hi,e.twist*495+Nr[e.slice_0][e.tsym]),gt(Vi,e.flip*495+Nr[e.slice_0][e.fsym])),gt(cl,e.twist<<11|Mr[e.flip<<3|e.fsym^e.tsym])),e.prun}function OB(e,t,r){return r=($(),yo)[3][r],e.flipc=dl[t.flipc>>3][Dn[r<<3|t.flipc&7]]^t.flipc&7,e.twistc=pl[t.twistc>>3][Dn[r<<3|t.twistc&7]]^t.twistc&7,gt(cl,e.twistc>>3<<11|Mr[e.flipc^e.twistc&7])}function Yu(e,t,r){var n;return e.twist=($(),So)[Oi(t)],e.flip=hn[Mi(t)],e.tsym=e.twist&7,e.twist=e.twist>>3,e.prun=gt(cl,e.twist<<11|Mr[e.flip^e.tsym]),e.prun>r||(e.fsym=e.flip&7,e.flip=e.flip>>3,e.slice_0=494-Ll(t.ea,8,!0),e.prun=Cr(e.prun,Cr(gt(Hi,e.twist*495+Nr[e.slice_0][e.tsym]),gt(Vi,e.flip*495+Nr[e.slice_0][e.fsym]))),e.prun>r)?!1:(n=new Be,Uo(t,1,n),bo(t,1,n),e.twistc=So[Oi(n)],e.flipc=hn[Mi(n)],e.prun=Cr(e.prun,gt(cl,e.twistc>>3<<11|Mr[e.flipc^e.twistc&7])),e.prun<=r)}function Do(){dn()}function gt(e,t){return dn(),e[t>>3]>>(t<<2)&15}function $u(e){dn(),!(ki===2||ki===1&&!e)&&(ki===0&&(ZB(),IB(),GB(),KB(),TB(),$(),r0(2048,d0,hn,Wu=Y(xe,Se,0,336,7,1),0),r0(2187,h0,So,Ya=Y(xe,Se,0,324,7,1),1),WB(),QB(),jB()),ho(qi,gl,vo,al,($(),n0),584244,e),ho(fl,t0,Rn,ul,n0,514084,e),ho(Hi,kr,Nr,pl,Ya,431619,e),ho(Vi,kr,Nr,dl,Wu,431619,e),ho(cl,null,null,pl,Ya,103939,e),ki=e?2:1)}function IB(){var e,t,r,n;for(e=new Be,t=new Be,r=0;r<2768;r++)for(HB(e,($(),sl)[r]),n=0;n<10;n++)Pr(e,Le[(tt(),Mt)[n]],t),al[r][n]=Ti(dr[pt(t.ca,8,!1)])&Ze}function TB(){var e,t,r,n,l;for(e=new Be,t=new Be,t0=nt(xe,[ge,Se],[11,0],7,[140,10],2),r=0;r<140;r++){for(cg(e.ca,r%70,0,!1),l=0;l<10;l++)Pr(e,($(),Le)[(tt(),Mt)[l]],t),t0[r][l]=Ll(t.ca,0,!1)+70*(165>>l&1^~~(r/70))&Ze;for(n=0;n<16;n++)Uo(e,($(),ct)[0][n],t),Rn[r][n]=Ll(t.ca,0,!1)+70*~~(r/70)&Ze}}function GB(){var e,t,r,n;for(e=new Be,t=new Be,r=0;r<2768;r++)for(rg(e,($(),sl)[r]),n=0;n<10;n++)vt(e,Le[(tt(),Mt)[n]],t),ul[r][n]=dr[pt(t.ea,8,!0)]}function WB(){var e,t,r,n;for(e=new Be,t=new Be,r=0;r<336;r++)for(L0(e,($(),d0)[r]),n=0;n<18;n++)vt(e,Le[n],t),dl[r][n]=hn[Mi(t)]}function KB(){var e,t,r,n,l;for(e=new Be,t=new Be,r=0;r<24;r++){for(Fn(e.ea,r,12,!0),l=0;l<10;l++)vt(e,($(),Le)[(tt(),Mt)[l]],t),gl[r][l]=pt(t.ea,12,!0)%24&Ze;for(n=0;n<16;n++)bo(e,($(),ct)[0][n],t),vo[r][n]=pt(t.ea,12,!0)%24&Ze}}function ho(e,t,r,n,l,o,i){var s,a,f,g,u,c,p,L,m,d,D,F,S,v,U,P,J,C,Q,x,z,N,b,w,M,j,q,se,De,Ue,Ye,Et,Re,Dt,it,mt;if(S=o&15,D=(o>>4&1)===1?a0:0,f=(o>>5&1)===1,s=o>>8&15,g=o>>12&15,u=o>>16&15,d=i?g:u,F=(1<<S)-1,a=t===null,L=a?2048:t.length,m=L*n.length,p=f?10:18,c=p===10?66:599186,U=(e[m>>3]>>(m<<2)&15)-1,U===-1){for(C=0;C<~~(m/8)+1;C++)e[C]=Ro;e[0]^=1,U=0}for(;U<d;){for(M=(U+1)*Ro^-1,Q=0;Q<e.length;Q++)it=e[Q]^M,it&=it>>1,e[Q]+=it&it>>2&Ro;for(N=U>s,Ue=N?U+2:U,De=Ue*Ro,v=N?U:U+2,++U,mt=U^U+1,Dt=0,C=0;C<m;++C,Dt>>=4){if((C&7)===0&&(Dt=e[C>>3],((Dt^De)-Ro&~(Dt^De)&-2004318072)===0)){C+=7;continue}if((Dt&15)===Ue)for(q=C%L,Ye=~~(C/L),P=0,J=0,a&&(P=($(),hn)[q],J=P&7,P>>=3),w=0;w<p;w++){if(Re=n[Ye][w],a?se=($(),Mr)[dl[P][Dn[w<<3|J]]^J^Re&F]:se=r[t[q][w]][Re&F],Re>>=S,x=Re*L+se,j=e[x>>3]>>(x<<2)&15,j!==v){j<U-1&&(w+=c>>w&3);continue}if(N){e[C>>3]^=mt<<(C<<2);break}for(e[x>>3]^=mt<<(x<<2),b=1,Et=l[Re];(Et>>=1)!==0;b++)(Et&1)===1&&(z=Re*L,a?z+=($(),Mr)[hn[se]^b]:z+=r[se][b^D>>(b<<1)&3],(e[z>>3]>>(z<<2)&15)===v&&(e[z>>3]^=mt<<(z<<2)))}}}}function QB(){var e,t,r,n;for(e=new Be,t=new Be,r=0;r<324;r++)for(B0(e,($(),h0)[r]),n=0;n<18;n++)Pr(e,Le[n],t),pl[r][n]=So[Oi(t)]}function jB(){var e,t,r,n,l,o,i,s;for(e=new Be,t=new Be,n=0;n<495;n++){for(cg(e.ea,494-n,8,!0),o=0;o<18;o+=3)vt(e,($(),Le)[o],t),kr[n][o]=494-Ll(t.ea,8,!0)&Ze;for(l=0;l<16;l+=2)bo(e,($(),ct)[0][l],t),Nr[n][l>>1]=494-Ll(t.ea,8,!0)&Ze}for(r=0;r<495;r++)for(l=0;l<18;l+=3)for(s=kr[r][l],i=1;i<3;i++)s=kr[s][l],kr[r][l+i]=s&Ze}function $(){Gu||(Gu=!0,Lr=Y(Ao,ge,7,16,0,1),Le=Y(Ao,ge,7,18,0,1),Xi=Y(ad,ge,0,18,6,1),og=Y(qe,je,0,48,7,1),Br=nt(qe,[ge,je],[17,0],7,[16,16],2),ct=nt(qe,[ge,je],[17,0],7,[16,16],2),yo=nt(qe,[ge,je],[17,0],7,[16,18],2),Dn=Y(qe,je,0,144,7,1),_r=nt(qe,[ge,je],[17,0],7,[16,18],2),d0=Y(xe,Se,0,336,7,1),h0=Y(xe,Se,0,324,7,1),sl=Y(xe,Se,0,2768,7,1),ml=Y(le,ue,0,2768,7,1),R0=Y(xe,Se,0,2768,7,1),Gi=Y(le,ue,0,24,7,1),hn=Y(xe,Se,0,2048,7,1),So=Y(xe,Se,0,2187,7,1),dr=Y(xe,Se,0,40320,7,1),Mr=Y(xe,Se,0,2688,7,1),l0=new Pt(2531,1373,67026819,1367),o0=new Pt(2089,1906,322752913,2040),Wi=ne(re(le,2),ge,10,0,[ne(re(le,1),ue,0,7,[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17]),ne(re(le,1),ue,0,7,[6,7,8,0,1,2,3,4,5,15,16,17,9,10,11,12,13,14]),ne(re(le,1),ue,0,7,[3,4,5,6,7,8,0,1,2,12,13,14,15,16,17,9,10,11]),ne(re(le,1),ue,0,7,[2,1,0,5,4,3,8,7,6,11,10,9,14,13,12,17,16,15]),ne(re(le,1),ue,0,7,[8,7,6,2,1,0,5,4,3,17,16,15,11,10,9,14,13,12]),ne(re(le,1),ue,0,7,[5,4,3,8,7,6,2,1,0,14,13,12,17,16,15,11,10,9])]),JB(),YB())}function p0(e){e.ca=ne(re(le,1),ue,0,7,[0,1,2,3,4,5,6,7]),e.ea=ne(re(le,1),ue,0,7,[0,2,4,6,8,10,12,14,16,18,20,22])}function eg(e){!e.temps&&(e.temps=new Be),Pr(o0,e,e.temps),Pr(e.temps,l0,e),vt(o0,e,e.temps),vt(e.temps,l0,e)}function m0(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 qB(e){return Ti(dr[pt(e.ca,8,!1)])}function VB(e){return dr[pt(e.ea,8,!0)]}function Mi(e){var t,r;for(r=0,t=0;t<11;t++)r=r<<1|e.ea[t]&1;return r}function Oi(e){var t,r;for(r=0,t=0;t<7;t++)r+=(r<<1)+(e.ca[t]>>3);return r}function Ii(e){var t,r;for(!e.temps&&(e.temps=new Be),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;m0(e,e.temps)}function tg(e){var t,r,n,l,o,i,s;for(t=new ng(e),l=new Be,r=Ti(dr[pt(t.ca,8,!1)])>>4,i={l:0,m:0,h:0},s=0;s<6;s++){if(n=Ti(dr[pt(t.ca,8,!1)])>>4,r===n)for(o=0;o<16;o++)Uo(t,ct[0][o],l),Pi(l.ca,e.ca)&&(bo(t,ct[0][o],l),Pi(l.ea,e.ea)&&(i=e0(i,Ni({l:1,m:0,h:0},(s<<4|o)<48?s<<4|o:48))));eg(t),s%3===2&&Ii(t)}return i}function HB(e,t){Fn(e.ca,t,8,!1)}function rg(e,t){Fn(e.ea,t,8,!0)}function L0(e,t){var r,n,l;for(n=0,r=10;r>=0;--r,t>>=1)n^=l=t&1,e.ea[r]=(e.ea[r]&-2|l)<<24>>24;e.ea[11]=(e.ea[11]&-2|n)<<24>>24}function B0(e,t){var r,n,l;for(n=15,r=6;r>=0;--r,t=~~(t/3))n-=l=t%3,e.ca[r]=(e.ca[r]&7|l<<3)<<24>>24;e.ca[7]=(e.ca[7]&7|n%3<<3)<<24>>24}function XB(e){var t,r,n,l,o;for(o=0,l=0,n=0;n<12;n++)l|=1<<(e.ea[n]>>1),o^=e.ea[n]&1;if(l!==4095)return-2;if(o!==0)return-3;for(r=0,o=0,t=0;t<8;t++)r|=1<<(e.ca[t]&7),o+=e.ca[t]>>3;return r!==255?-4:o%3!==0?-5:(i0(pt(e.ea,12,!0),12)^i0(pt(e.ca,8,!1),8))!==0?-6:0}function Uo(e,t,r){$();var n,l,o,i,s,a;for(a=Lr[ct[0][t]],s=Lr[t],n=0;n<8;n++)o=a.ca[e.ca[s.ca[n]&7]&7]>>3,i=e.ca[s.ca[n]&7]>>3,l=o<3?i:(3-i)%3,r.ca[n]=(a.ca[e.ca[s.ca[n]&7]&7]&7|l<<3)<<24>>24}function Pr(e,t,r){$();var n,l,o;for(n=0;n<8;n++)l=e.ca[t.ca[n]&7]>>3,o=t.ca[n]>>3,r.ca[n]=(e.ca[t.ca[n]&7]&7|(l+o)%3<<3)<<24>>24}function zi(e,t,r){var n,l,o,i;for(n=0;n<8;n++)o=e.ca[t.ca[n]&7]>>3,i=t.ca[n]>>3,l=o+(o<3?i:6-i),l=l%3+(o<3==i<3?0:3),r.ca[n]=(e.ca[t.ca[n]&7]&7|l<<3)<<24>>24}function Be(){$(),p0(this)}function Pt(e,t,r,n){p0(this),Fn(this.ca,e,8,!1),B0(this,t),Fn(this.ea,r,12,!0),L0(this,n)}function ng(e){p0(this),m0(this,e)}function Ti(e){return $(),e^a0>>((e&15)<<1)&3}function bo(e,t,r){$();var n,l,o;for(o=Lr[ct[0][t]],l=Lr[t],n=0;n<12;n++)r.ea[n]=(o.ea[e.ea[l.ea[n]>>1]>>1]^e.ea[l.ea[n]>>1]&1^l.ea[n]&1)<<24>>24}function vt(e,t,r){$();var n;for(n=0;n<12;n++)r.ea[n]=(e.ea[t.ea[n]>>1]^t.ea[n]&1)<<24>>24}function wr(e,t,r){$();var n;return n=R0[e],r&&(n=n^a0>>((n&15)<<1)&3),n&65520|Br[n&15][t]}function lg(){return $(),0}function JB(){var e,t;for(Le[0]=new Pt(15120,0,119750400,0),Le[3]=new Pt(21021,1494,323403417,0),Le[6]=new Pt(8064,1236,29441808,550),Le[9]=new Pt(9,0,5880,0),Le[12]=new Pt(1230,412,2949660,0),Le[15]=new Pt(224,137,328552,137),e=0;e<18;e+=3)for(t=0;t<2;t++)Le[e+t+1]=new Be,vt(Le[e+t],Le[e],Le[e+t+1]),Pr(Le[e+t],Le[e],Le[e+t+1])}function ZB(){$();var e,t,r;for(r0(40320,sl,dr,n0=Y(xe,Se,0,2768,7,1),2),e=new Be,r=0;r<2768;r++)rg(e,sl[r]),ml[r]=Ll(e.ea,0,!0)+i0(sl[r],8)*70<<24>>24,Ii(e),R0[r]=dr[pt(e.ea,8,!0)];for(t=0;t<24;t++)Fn(e.ea,t,12,!0),Ii(e),Gi[t]=pt(e.ea,12,!0)%24<<24>>24}function YB(){var e,t,r,n,l,o,i,s,a,f,g,u,c,p,L,m;for(e=new Be,t=new Be,r=new Pt(28783,0,259268407,0),m=new Pt(15138,0,119765538,7),u=new Pt(5167,0,83473207,0),l=0;l<8;l++)u.ca[l]=Ci(u.ca[l]|24);for(o=0;o<16;o++)Lr[o]=new ng(e),zi(e,m,t),vt(e,m,t),L=t,t=e,e=L,o%4===3&&(zi(L,u,t),vt(L,u,t),L=t,t=e,e=L),o%8===7&&(zi(L,r,t),vt(L,r,t),L=t,t=e,e=L);for(i=0;i<16;i++)for(a=0;a<16;a++)for(zi(Lr[i],Lr[a],e),g=0;g<16;g++)if(Pi(Lr[g].ca,e.ca)){Br[i][a]=g,ct[g][a]=i;break}for(f=0;f<18;f++)for(p=0;p<16;p++){for(Uo(Le[f],ct[0][p],e),c=0;c<18;c++)if(Pi(Le[c].ca,e.ca)){yo[p][f]=c,_r[p][(tt(),Bl)[f]]=Bl[c];break}p%2===0&&(Dn[f<<3|p>>1]=yo[p][f])}for(n=0;n<18;n++)for(Xi[n]=tg(Le[n]),s=n,p=0;p<48;p++)yo[p%16][s]<n&&(og[p]|=1<<n),p%16===15&&(s=Wi[2][s])}function r0(e,t,r,n,l){$();var o,i,s,a,f,g,u,c,p;for(o=new Be,s=new Be,i=0,f=0,p=l>=2?1:2,g=l!==1,a=0;a<e;a++)if(r[a]===0){switch(l){case 0:{L0(o,a);break}case 1:{B0(o,a);break}case 2:Fn(o.ea,a,8,!0)}for(u=0;u<16;u+=p){switch(g?bo(o,u,s):Uo(o,u,s),l){case 0:{f=Mi(s);break}case 1:{f=Oi(s);break}case 2:f=pt(s.ea,8,!0)}l===0&&(Mr[i<<3|u>>1]=f&Ze),f===a&&(n[i]=(n[i]|1<<~~(u/p))&Ze),c=~~((i<<4|u)/p),r[f]=c&Ze}t[i++]=a&Ze}return i}function $B(e,t,r,n,l,o,i,s){var a,f,g,u,c;if(u=Cr(gt((dn(),fl),(i>>4)*140+Rn[($(),ml)[s>>4]&255][ct[i&15][s&15]]),Cr(gt(fl,n*140+Rn[ml[t]&255][ct[l][r]]),gt(qi,t*24+vo[o][r]))),u>e.maxDep2)return u-e.maxDep2;for(a=e.maxDep2;a>=u&&(c=ag(e,n,l,t,r,o,a,e.depth1,10),!(c<0));a--){for(a-=c,e.solLen=0,e.solution=new pg,id(e.solution,e.verbose,e.urfIdx,e.depth1),g=0;g<e.depth1+a;g++)Qu(e.solution,e.move[g]);for(f=e.preMoveLen-1;f>=0;f--)Qu(e.solution,e.preMoves[f]);e.solLen=e.solution.length_0}return a!==e.maxDep2?(e.maxDep2=c0(ug,e.solLen-e.length1-1),Ju(e.probe,e.probeMin)?0:1):1}function ed(e){var t,r,n,l,o,i,s,a,f,g,u,c,p,L,m;if(e.isRec=!1,Ju(e.probe,e.solution?e.probeMin:e.probeMax))return 0;for(e.probe=EB(e.probe,{l:1,m:0,h:0}),n=e.valid1;n<e.depth1;n++)Pr(e.phase1Cubie[n],($(),Le)[e.move[n]],e.phase1Cubie[n+1]),vt(e.phase1Cubie[n],Le[e.move[n]],e.phase1Cubie[n+1]);for(e.valid1=e.depth1,s=qB(e.phase1Cubie[e.depth1]),a=s&15,s>>=4,f=VB(e.phase1Cubie[e.depth1]),g=f&15,f>>=4,u=pt(e.phase1Cubie[e.depth1].ea,12,!0)%24,r=wr(f,g,!1),t=wr(s,a,!0),l=e.depth1===0?-1:e.move[e.depth1-1],o=e.preMoveLen===0?-1:e.preMoves[e.preMoveLen-1],m=0,L=(e.preMoveLen===0?1:2)*(e.depth1===0?1:2),c=0,p=(1<<L)-1;c<L;c++){if((p>>c&1)!==0){if(p&=~(1<<c),m=$B(e,s,a,f,g,u,r,t),m===0||m>2)break;m===2&&(p&=4<<c)}if(p===0)break;(c&1)===0&&e.depth1>0?(i=(tt(),Bl)[~~(l/3)*3+1],e.move[e.depth1-1]=Mt[i]*2-e.move[e.depth1-1],u=(dn(),gl)[u][i],s=al[s][($(),_r)[a][i]],a=Br[s&15][a],s>>=4,f=ul[f][_r[g][i]],g=Br[f&15][g],f>>=4,t=wr(s,a,!0),r=wr(f,g,!1)):e.preMoveLen>0&&(i=(tt(),Bl)[~~(o/3)*3+1],e.preMoves[e.preMoveLen-1]=Mt[i]*2-e.preMoves[e.preMoveLen-1],u=($(),Gi)[(dn(),gl)[Gi[u]][i]],s=al[t>>4][_r[t&15][i]],t=s&-16|Br[s&15][t&15],s=wr(t>>4,t&15,!0),a=s&15,s>>=4,f=ul[r>>4][_r[r&15][i]],r=f&-16|Br[f&15][r&15],f=wr(r>>4,r&15,!1),g=f&15,f>>=4)}return e.depth1>0&&(e.move[e.depth1-1]=l),e.preMoveLen>0&&(e.preMoves[e.preMoveLen-1]=o),m===0?0:2}function td(e){var t;for(e.conjMask=0,e.selfSym=tg(e.cc),e.conjMask|=Za($t(Ln(e.selfSym,16),{l:Ze,m:0,h:0}),{l:0,m:0,h:0})?18:0,e.conjMask|=Za($t(Ln(e.selfSym,32),{l:Ze,m:0,h:0}),{l:0,m:0,h:0})?36:0,e.conjMask|=Za($t(Ln(e.selfSym,48),{l:Ze,m:0,h:0}),{l:0,m:0,h:0})?56:0,e.selfSym=$t(e.selfSym,{l:lt,m:lt,h:15}),e.maxPreMoves=e.conjMask>7?0:20,t=0;t<6;t++)m0(e.urfCubieCube[t],e.cc),Yu(e.urfCoordCube[t],e.urfCubieCube[t],20),eg(e.cc),t%3===2&&Ii(e.cc)}function ig(e,t,r,n,l){var o,i,s,a,f,g;if(t.prun===0&&n<5)return e.allowShorter||n===0?(e.depth1-=n,f=ed(e),e.depth1+=n,f):1;for(g=lg(g0(r)),o=0;o<18;o+=3)if(!(o===l||o===l-9)){for(s=0;s<3;s++)if(i=o+s,!(e.isRec&&i!==e.move[e.depth1-n]||g!==0&&(g&1<<i)!==0)){if(a=MB(e.nodeUD[n],t,i),a>n)break;if(a===n)continue;if(a=OB(e.nodeUD[n],t,i),a>n)break;if(a===n)continue;if(e.move[e.depth1-n]=i,e.valid1=c0(e.valid1,e.depth1-n),f=ig(e,e.nodeUD[n],r&Bn(($(),Xi)[i]),n-1,o),f===0)return 0;if(f>=2)break}}return 1}function sg(e,t,r,n,l){var o,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===$a&&e.preMoveLen!==0,Yu(e.nodeUD[e.depth1+1],n,e.depth1)&&ig(e,e.nodeUD[e.depth1+1],l,e.depth1,-1)===0))return 0;if(t===0||e.preMoveLen+$a>=e.length1)return 1;for(s=lg(g0(l)),(t===1||e.preMoveLen+1+$a>=e.length1)&&(s|=225207),r=~~(r/3)*3,o=0;o<18;o++){if(o===r||o===r-9||o===r+9){o+=2;continue}if(!(e.isRec&&o!==e.preMoves[e.maxPreMoves-t]||(s&1<<o)!==0)&&(Pr(($(),Le)[o],n,e.preMoveCubes[t]),vt(Le[o],n,e.preMoveCubes[t]),e.preMoves[e.maxPreMoves-t]=o,i=sg(e,t-1,o,e.preMoveCubes[t],l&Bn(Xi[o])),i===0))return 0}return 1}function ag(e,t,r,n,l,o,i,s,a){var f,g,u,c,p,L,m,d,D,F,S;if(t===0&&n===0&&o===0)return i;for(D=(tt(),Fo)[a],m=0;m<10;m++){if((D>>m&1)!==0){m+=66>>m&3;continue}if(d=(dn(),gl)[o][m],g=al[n][($(),_r)[l][m]],u=Br[g&15][l],g>>=4,p=ul[t][_r[r][m]],L=Br[p&15][r],p>>=4,c=wr(p,L,!1),f=wr(g,u,!0),F=gt(fl,(c>>4)*140+Rn[ml[f>>4]&255][ct[c&15][f&15]]),F>i+1)return i-F+1;if(F>=i){m+=66>>m&3&i-F;continue}if(F=Cr(gt(qi,g*24+vo[d][u]),gt(fl,p*140+Rn[ml[g]&255][ct[L][u]])),F>=i){m+=66>>m&3&i-F;continue}if(S=ag(e,p,L,g,u,d,i-1,s+1,m),S>=0)return e.move[s]=Mt[m],S;if(S<-2)break;S<-1&&(m+=66>>m&3)}return-1}function rd(e){for(e.length1=e.isRec?e.length1:0;e.length1<e.solLen;e.length1++)for(e.maxDep2=c0(ug,e.solLen-e.length1-1),e.urfIdx=e.isRec?e.urfIdx:0;e.urfIdx<6;e.urfIdx++)if((e.conjMask&1<<e.urfIdx)===0&&sg(e,e.maxPreMoves,-30,e.urfCubieCube[e.urfIdx],Bn($t(e.selfSym,{l:Ze,m:0,h:0})))===0)return e.solution?ju(e.solution):"Error 8";return e.solution?ju(e.solution):"Error 7"}function nd(e,t){var r;return r=ld(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,$u(!1),td(e),rd(e))}function ld(e,t){var r,n,l,o;for(n=0,l=Y(le,ue,0,54,7,1),r=_B(ne(re(xe,1),Se,0,7,[t.charCodeAt(4),t.charCodeAt(13),t.charCodeAt(22),t.charCodeAt(31),t.charCodeAt(40),t.charCodeAt(49)])),o=0;o<54;o++){if(l[o]=kB(r,CB(t.charCodeAt(o)))<<24>>24,l[o]===-1)return-1;n+=1<<(l[o]<<2)}return n!==10066329?-1:(od(l,e.cc),XB(e.cc))}function fg(){var e,t,r;for(this.move=Y(qe,je,0,31,7,1),this.nodeUD=Y(_i,ge,31,21,0,1),this.nodeRL=Y(_i,ge,31,21,0,1),this.nodeFB=Y(_i,ge,31,21,0,1),this.cc=new Be,this.urfCubieCube=Y(Ao,ge,7,6,0,1),this.urfCoordCube=Y(_i,ge,31,6,0,1),this.phase1Cubie=Y(Ao,ge,7,21,0,1),this.preMoveCubes=Y(Ao,ge,7,21,0,1),this.preMoves=Y(qe,je,0,20,7,1),t=0;t<21;t++)this.nodeUD[t]=new Do,this.nodeRL[t]=new Do,this.nodeFB[t]=new Do,this.phase1Cubie[t]=new Be;for(r=0;r<6;r++)this.urfCubieCube[r]=new Be,this.urfCoordCube[r]=new Do;for(e=0;e<20;e++)this.preMoveCubes[e+1]=new Be}function tt(){if(!Ku){Ku=!0;var e,t,r,n,l,o;for(mn=ne(re(le,2),ge,10,0,[ne(re(le,1),ue,0,7,[8,9,20]),ne(re(le,1),ue,0,7,[6,18,38]),ne(re(le,1),ue,0,7,[0,36,47]),ne(re(le,1),ue,0,7,[2,45,11]),ne(re(le,1),ue,0,7,[29,26,15]),ne(re(le,1),ue,0,7,[27,44,24]),ne(re(le,1),ue,0,7,[33,53,42]),ne(re(le,1),ue,0,7,[35,17,51])]),pr=ne(re(le,2),ge,10,0,[ne(re(le,1),ue,0,7,[5,10]),ne(re(le,1),ue,0,7,[7,19]),ne(re(le,1),ue,0,7,[3,37]),ne(re(le,1),ue,0,7,[1,46]),ne(re(le,1),ue,0,7,[32,16]),ne(re(le,1),ue,0,7,[28,25]),ne(re(le,1),ue,0,7,[30,43]),ne(re(le,1),ue,0,7,[34,52]),ne(re(le,1),ue,0,7,[23,12]),ne(re(le,1),ue,0,7,[21,41]),ne(re(le,1),ue,0,7,[50,39]),ne(re(le,1),ue,0,7,[48,14])]),mr=nt(qe,[ge,je],[17,0],7,[13,13],2),s0=ne(re(NB,1),ge,2,4,["U ","U2","U'","R ","R2","R'","F ","F2","F'","D ","D2","D'","L ","L2","L'","B ","B2","B'"]),Mt=ne(re(qe,1),je,0,7,[0,1,2,4,7,9,10,11,13,16,3,5,6,8,12,14,15,17]),Bl=Y(qe,je,0,18,7,1),Fo=Y(qe,je,0,11,7,1),t=0;t<18;t++)Bl[Mt[t]]=t;for(r=0;r<10;r++)for(n=~~(Mt[r]/3),Fo[r]=0,l=0;l<10;l++)o=~~(Mt[l]/3),Fo[r]|=(n===o||n%3===o%3&&n>=o?1:0)<<l;for(Fo[10]=0,e=0;e<13;e++)for(mr[e][0]=mr[e][e]=1,l=1;l<e;l++)mr[e][l]=mr[e-1][l-1]+mr[e-1][l]}}function Ll(e,t,r){tt();var n,l,o,i,s;for(n=e.length-1,o=0,s=4,l=n;l>=0;l--)i=gg(e[l],r),(i&12)===t&&(o+=mr[l][s--]);return o}function i0(e,t){tt();var r,n;for(n=0,r=t-2;r>=0;r--)n^=e%(t-r),e=~~(e/(t-r));return n&1}function pt(e,t,r){tt();var n,l,o,i;for(l=0,i={l:1323536,m:2777561,h:1043915},n=0;n<t-1;n++)o=gg(e[n],r)<<2,l=(t-n)*l+Bn($t(Ln(i,o),{l:15,m:0,h:0})),i=Zu(i,Ni({l:1118480,m:279620,h:69905},o));return l}function gg(e,t){return t?e>>1:e&7}function cg(e,t,r,n){tt();var l,o,i,s;for(l=e.length-1,s=4,o=l,i=l;i>=0;i--)t>=mr[i][s]?(t-=mr[i][s--],e[i]=Ki(e[i],s|r,n)):((o&12)===r&&(o-=4),e[i]=Ki(e[i],o--,n))}function Fn(e,t,r,n){tt();var l,o,i,s,a,f;for(f={l:1323536,m:2777561,h:1043915},l={l:0,m:0,h:0},s=2;s<=r;s++)l=e0(Ni(l,4),g0(t%s)),t=~~(t/s);for(o=0;o<r-1;o++)a=(Bn(l)&15)<<2,l=Ln(l,4),e[o]=Ki(e[o],Bn($t(Ln(f,a),{l:15,m:0,h:0})),n),i=Zu(Ni({l:1,m:0,h:0},a),{l:1,m:0,h:0}),f=e0($t(f,i),$t(Ln(f,4),{l:~i.l<,m:~i.m<,h:~i.h&zr}));e[r-1]=Ki(e[r-1],Bn($t(f,{l:15,m:0,h:0})),n)}function Ki(e,t,r){return(r?t<<1|e&1:t|e&-8)<<24>>24}function od(e,t){tt();var r,n,l,o,i,s,a,f;for(o=0;o<8;o++)t.ca[o]=0;for(i=0;i<12;i++)t.ea[i]=0;for(s=0;s<8;s++){for(f=0;f<3&&!(e[mn[s][f]]===0||e[mn[s][f]]===3);f++);for(r=e[mn[s][(f+1)%3]],n=e[mn[s][(f+2)%3]],a=0;a<8;a++)if(r===~~(mn[a][1]/9)&&n===~~(mn[a][2]/9)){t.ca[s]=Ci(f%3<<3|a);break}}for(l=0;l<12;l++)for(a=0;a<12;a++){if(e[pr[l][0]]===~~(pr[a][0]/9)&&e[pr[l][1]]===~~(pr[a][1]/9)){t.ea[l]=Ci(a<<1);break}if(e[pr[l][0]]===~~(pr[a][1]/9)&&e[pr[l][1]]===~~(pr[a][0]/9)){t.ea[l]=Ci(a<<1|1);break}}}function Qu(e,t){var r,n,l;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){l=(t%3+e.moves[e.length_0-1]%3+1)%4,l===3?--e.length_0:e.moves[e.length_0-1]=r*3+l;return}if(e.length_0>1&&r%3===n%3&&r===~~(e.moves[e.length_0-2]/3)){l=(t%3+e.moves[e.length_0-2]%3+1)%4,l===3?(e.moves[e.length_0-2]=e.moves[e.length_0-1],--e.length_0):e.moves[e.length_0-2]=r*3+l;return}e.moves[e.length_0++]=t}function id(e,t,r,n){e.verbose=t,e.urfIdx=r,e.depth1=n}function ju(e){var t,r,n;if(r=new PB,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+=". "),Ou(Iu(r,(tt(),s0)[($(),Wi)[n][e.moves[t]]]));else for(t=e.length_0-1;t>=0;t--)Ou(Iu(r,(tt(),s0)[($(),Wi)[n][e.moves[t]]])),(e.verbose&1)!==0&&t===e.depth1&&(r.string+=". ");return r.string}function pg(){this.moves=Y(qe,je,0,31,7,1)}var ge,lt,zr,DB,Ze,Se,je,a0,Ro,ue,H,Qi,wi,NB,Tu,Rn,t0,al,fl,ul,dl,qi,vo,gl,cl,pl,Nr,Vi,kr,Hi,ki,_i,Gu,Lr,dr,sl,hn,d0,Mr,Gi,ml,R0,Dn,yo,_r,Br,ct,Wu,n0,Ya,So,h0,og,Le,Xi,l0,o0,Wi,Ao,ug,$a,Ku,mr,Fo,mn,pr,s0,Bl,Mt,qe,sd,le,ad,xe,fd,ud,mg=A(()=>{"use strict";ge={3:1},lt=4194303,zr=1048575,DB=524288,Ze=65535,Se={11:1,3:1},je={17:1,3:1},a0=14540032,Ro=286331153,ue={10:1,3:1},Qi={};xo(1,null,{},SB);xo(79,1,{},f0);H.createClassLiteralForArray=function(t){var r;return r=new f0,r.modifiers=4,t>1?r.componentType=Vu(this,t-1):r.componentType=this,r};H.isPrimitive=function(){return(this.modifiers&1)!==0};NB=Or("java.lang","String",2);Tu=!1;xo(31,1,{31:1},Do);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;ki=0,_i=Or("org.cubing.min2phase.client","CoordCube",31),Gu=!1;Ao=Or("org.cubing.min2phase.client","CubieCube",7);xo(72,1,{},fg);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;ug=12,$a=7,Ku=!1;xo(150,1,{},pg);H.depth1=0;H.length_0=0;H.urfIdx=0;H.verbose=0;qe=ji("int","I");Or("com.google.gwt.lang","CollapsedPropertyHolder",252);Or("com.google.gwt.lang","JavaClassHierarchySetupUtil",254);sd=Or("com.google.gwt.lang","LongLibBase/LongEmul",null);Or("com.google.gwt.lang","ModuleUtils",257);le=ji("byte","B"),ad=ji("long","J"),xe=ji("char","C");Or("com.google.gwt.user.client.rpc","XsrfToken",null),xB("java.util","Map/Entry");fd=function(){$u(!1)},ud=function(e){return nd(new fg,e)}});var Lg={};Lt(Lg,{initialize:()=>fd,solveState:()=>ud});var Bg=A(()=>{"use strict";mg()});var D0,dg=A(()=>{"use strict";_t();D0=Ke(()=>Promise.resolve().then(()=>(Bg(),Lg)))});function Rg(e,t){return e.slice(t)+e.slice(0,t)}function Ld(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(Rg(gd[e.stateData.EDGES.pieces[r]],e.stateData.EDGES.orientation[r]));for(let r=0;r<8;r++)t[1].push(Rg(cd[e.stateData.CORNERS.pieces[r]],e.stateData.CORNERS.orientation[r]));return t.push(pd),t}function hg(e){let t=Ld(e);return md.map(([r,n,l])=>t[r][n][l]).join("")}var gd,cd,pd,md,Dg=A(()=>{"use strict";gd="UF UR UB UL DF DR DB DL FR FL BR BL".split(" "),cd="UFR URB UBL ULF DRF DFL DLB DBR".split(" "),pd="U L F R B D".split(" "),md=[[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 Fg(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 yg(e,t){if(Fg(e.startState(),t))return!1;for(let r of"ULFRBD")for(let n=1;n<4;n++){let l=e.moveToTransformation(new B(r,n)).toKState();if(Fg(l,t))return!1}return!0}var Ag=A(()=>{"use strict";fe();We()});var Sg,xg=A(()=>{"use strict";Sg=[["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"]]});async function Ug(){let e=await Oe["3x3x3"].kpuzzle(),t=e.startState();for(let r of Sg)t=t.applyAlg(E.fromString(cr(r)));return yg(e,t)?t:Ug()}async function F0(e){return Ee(),E.fromString((await D0).solveState(hg(e)))}async function Rl(){return F0(await Ug())}async function bg(){(await D0).initialize()}async function Eg(){return il(await Rl(),Bd)}async function wg(){let e=new Bt,t=await Rl();return e.experimentalPushAlg(vg),e.experimentalPushAlg(t),e.experimentalPushAlg(vg),e.toAlg()}var Bd,vg,y0=A(()=>{"use strict";fe();gr();xt();St();Ei();dg();Dg();Ag();xg();Bd=[[null,"Rw","Rw2","Rw'","Fw","Fw'"],[null,"Dw","Dw2","Dw'"]];vg=new E("R' U' F")});function ce(e,...t){let r=t.length,n=e[t[r-1]];for(let l=r;l>0;l--)e[t[l]]=e[t[l-1]];return e[t[0]]=n,ce}function kg(e,t,r,n){r=(r||8)-1;let l=1985229328,o=0;n??(n=0),n<0&&(t<<=1);for(let i=0;i<r;++i){let s=A0[r-i],a=~~(t/s);o^=a,t%=s,a<<=2,e[i]=l>>a&7;let f=(1<<a)-1;l=(l&f)+(l>>4&~f)}return n<0&&(o&1)!==0?(e[r]=e[r-1],e[r-1]=l&7):e[r]=l&7,e}var he,A0,_g=A(()=>{"use strict";he=[],A0=[1];for(let e=0;e<32;++e){he[e]=[];for(let t=0;t<32;++t)he[e][t]=0}for(let e=0;e<32;++e){he[e][0]=he[e][e]=1,A0[e+1]=A0[e]*(e+1);for(let t=1;t<e;++t)he[e][t]=he[e-1][t-1]+he[e-1][t]}});function I(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 Ad(e){return new zo[e]}function ht(e,t,r,...n){let l=zo[e];l&&!l.___clazz$?X=l.prototype:(!l&&(l=zo[e]=function(){}),X=l.prototype=t<0?{}:Ad(t),X.castableTypeMap$=r);for(let o of n)o.prototype=X;l.___clazz$&&(X.___clazz$=l.___clazz$,l.___clazz$=null)}function Kr(e){let t={};for(let r=0,n=e.length;r<n;++r)t[e[r]]=1;return t}function tc(){}function Sd(e,t){let r=rc(0,t);return nc(e.___clazz$,e.castableTypeMap$,e.queryId$,r),r}function rc(e,t){let r=new Array(t);if(e===3)for(let n=0;n<t;++n){let l={m:0,l:0,h:0};l.l=l.m=l.h=0,r[n]=l}else if(e>0){let n=[null,0,!1][e];for(let l=0;l<t;++l)r[l]=n}return r}function z0(e,t,r,n,l){let o=rc(l,n);return nc(e,t,r,o),o}function nc(e,t,r,n){return lc(),vd(n,v0,U0),n.___clazz$=e,n.castableTypeMap$=t,n.queryId$=r,n}function ns(e,t,r){return e[t]=r}function lc(){zg||(zg=!0,v0=[],U0=[],xd(new tc,v0,U0))}function xd(e,t,r){let n=0,l;for(let o in e)(l=e[o])&&(t[n]=o,r[n]=l,++n)}function vd(e,t,r){lc();for(let n=0,l=t.length;n<l;++n)e[t[n]]=r[n]}function Ud(e,t){return e.castableTypeMap$&&!!e.castableTypeMap$[t]}function bd(e,t){return e!==null&&Ud(e,t)}function Ed(){if(Cg)return!1;Cg=!0,Ls=I(15582,36),Bs=I(15582),Gt=I(15582),Sl=I(48,48),It=I(48,36),Al=I(48),P0=I(48)}function C0(e){e.ct=I(24)}function Ng(e,t){let r,n;if(bd(t,$g)){for(r=t,n=0;n<24;++n)if(e.ct[n]!==r.ct[n])return!1;return!0}return!1}function ls(e){let t,r,n;for(r=0,n=8,t=23;t>=0;--t)e.ct[t]===1&&(r+=he[t][n--]);return r}function Zi(e){let t,r;if(bl!==null)return bl[ls(e)];for(r=0;r<48;++r){if(t=Nd(ls(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 Ot(e,t){let r=t%3;switch(t=~~(t/3),t){case 0:{h(e.ct,0,1,2,3,r);break}case 1:{h(e.ct,16,17,18,19,r);break}case 2:{h(e.ct,8,9,10,11,r);break}case 3:{h(e.ct,4,5,6,7,r);break}case 4:{h(e.ct,20,21,22,23,r);break}case 5:{h(e.ct,12,13,14,15,r);break}case 6:{h(e.ct,0,1,2,3,r),h(e.ct,8,20,12,16,r),h(e.ct,9,21,13,17,r);break}case 7:{h(e.ct,16,17,18,19,r),h(e.ct,1,15,5,9,r),h(e.ct,2,12,6,10,r);break}case 8:{h(e.ct,8,9,10,11,r),h(e.ct,2,19,4,21,r),h(e.ct,3,16,5,22,r);break}case 9:{h(e.ct,4,5,6,7,r),h(e.ct,10,18,14,22,r),h(e.ct,11,19,15,23,r);break}case 10:{h(e.ct,20,21,22,23,r),h(e.ct,0,8,4,14,r),h(e.ct,3,11,7,13,r);break}case 11:h(e.ct,12,13,14,15,r),h(e.ct,1,20,7,18,r),h(e.ct,0,23,6,17,r)}}function ie(e,t){switch(t){case 0:{Ot(e,19),Ot(e,28);break}case 1:{Ot(e,21),Ot(e,32);break}case 2:{h(e.ct,0,3,1,2,1),h(e.ct,8,11,9,10,1),h(e.ct,4,7,5,6,1),h(e.ct,12,15,13,14,1),h(e.ct,16,19,21,22,1),h(e.ct,17,18,20,23,1);break}case 3:Ot(e,18),Ot(e,29),Ot(e,24),Ot(e,35)}}function Pg(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 N0(e,t){let r,n;for(n=8,r=23;r>=0;--r)e.ct[r]=0,t>=he[r][n]&&(t-=he[r][n--],e.ct[r]=1)}function Yi(e,t){let r;for(r=0;r<24;++r)e.ct[r]=t.ct[r]}function Co(){let e;for(C0(this),e=0;e<8;++e)this.ct[e]=1;for(e=8;e<24;++e)this.ct[e]=0}function $i(e,t){let r;for(C0(this),r=0;r<24;++r)this.ct[r]=~~(e.ct[r]/2)===t?1:0}function wo(e){let t;for(C0(this),t=0;t<24;++t)this.ct[t]=e[t]}function wd(){let e,t,r=new Co,n=new Co;for(e=0;e<15582;++e)for(N0(n,Bs[e]),t=0;t<36;++t)Yi(r,n),Ot(r,t),Ls[e][t]=Zi(r)}function kd(){let e,t,r,n,l,o,i,s;for(Ds(Gt),Gt[0]=0,t=0,r=1;r!==15582;)for(o=t>4,s=o?-1:t,e=o?t:-1,++t,n=0;n<15582;++n)if(Gt[n]===s){for(i=0;i<27;++i)if(l=~~Ls[n][i]>>>6,Gt[l]===e)if(++r,o){Gt[n]=t;break}else Gt[l]=t}}function _d(e){let t,r,n,l=new wo(e.ct);for(n=0;n<48;++n){for(t=!0,r=0;r<24;++r)if(l.ct[r]!==~~(r/4)){t=!1;break}if(t)return n;ie(l,0),n%2===1&&ie(l,1),n%8===7&&ie(l,2),n%16===15&&ie(l,3)}return-1}function zd(){let e,t,r,n=new Co;for(e=0;e<24;++e)n.ct[e]=e;let l=new wo(n.ct),o=new wo(n.ct),i=new wo(n.ct);for(e=0;e<48;++e){for(t=0;t<48;++t){for(r=0;r<48;++r)Ng(n,l)&&(Sl[e][t]=r,r===0&&(Al[e]=t)),ie(l,0),r%2===1&&ie(l,1),r%8===7&&ie(l,2),r%16===15&&ie(l,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(Yi(n,o),Pg(n,Al[e]),t=0;t<36;++t)for(Yi(l,n),Ot(l,t),Pg(l,e),r=0;r<36;++r)if(Yi(i,o),Ot(i,r),Ng(i,l)){It[e][t]=r;break}for(N0(n,0),e=0;e<48;++e)P0[Al[e]]=ls(n),ie(n,0),e%2===1&&ie(n,1),e%8===7&&ie(n,2),e%16===15&&ie(n,3)}function Cd(){let e,t,r,n,l=new Co,o=I(22984);for(t=0;t<22984;t++)o[t]=0;for(e=0,t=0;t<735471;++t)if((o[~~t>>>5]&1<<(t&31))===0){for(N0(l,t),n=0;n<48;++n)r=ls(l),o[~~r>>>5]|=1<<(r&31),bl!==null&&(bl[r]=e<<6|Al[n]),ie(l,0),n%2===1&&ie(l,1),n%8===7&&ie(l,2),n%16===15&&ie(l,3);Bs[e++]=t}}function Nd(e){let t=yR(Bs,e);return t>=0?t:-1}function Pd(){Mg||(Mg=!0,as=I(70,28),ss=I(6435,28),ac=I(70,16),ic=I(6435,16),ot=I(450450),sc=[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 os(e){let t,r,n;for(r=0,n=8,t=14;t>=0;--t)e.ct[t]!==e.ct[15]&&(r+=he[t][n--]);return r}function is(e){let t,r,n;for(r=0,n=4,t=6;t>=0;--t)e.rl[t]!==e.rl[7]&&(r+=he[t][n--]);return r*2+e.parity}function yl(e,t){e.parity^=sc[t];let r=t%3;switch(t=~~(t/3),t){case 0:{h(e.ct,0,1,2,3,r);break}case 1:{h(e.rl,0,1,2,3,r);break}case 2:{h(e.ct,8,9,10,11,r);break}case 3:{h(e.ct,4,5,6,7,r);break}case 4:{h(e.rl,4,5,6,7,r);break}case 5:{h(e.ct,12,13,14,15,r);break}case 6:{h(e.ct,0,1,2,3,r),h(e.rl,0,5,4,1,r),h(e.ct,8,9,12,13,r);break}case 7:{h(e.rl,0,1,2,3,r),h(e.ct,1,15,5,9,r),h(e.ct,2,12,6,10,r);break}case 8:{h(e.ct,8,9,10,11,r),h(e.rl,0,3,6,5,r),h(e.ct,3,2,5,4,r);break}case 9:{h(e.ct,4,5,6,7,r),h(e.rl,3,2,7,6,r),h(e.ct,11,10,15,14,r);break}case 10:{h(e.rl,4,5,6,7,r),h(e.ct,0,8,4,14,r),h(e.ct,3,11,7,13,r);break}case 11:h(e.ct,12,13,14,15,r),h(e.rl,1,4,7,2,r),h(e.ct,1,0,7,6,r)}}function hl(e,t){switch(t){case 0:{yl(e,19),yl(e,28);break}case 1:{yl(e,21),yl(e,32);break}case 2:h(e.ct,0,3,1,2,1),h(e.ct,8,11,9,10,1),h(e.ct,4,7,5,6,1),h(e.ct,12,15,13,14,1),h(e.rl,0,3,5,6,1),h(e.rl,1,2,4,7,1)}}function oc(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 Og(e,t){let r,n;for(n=8,e.ct[15]=0,r=14;r>=0;--r)t>=he[r][n]?(t-=he[r][n--],e.ct[r]=1):e.ct[r]=0}function Ig(e,t){let r,n;for(e.parity=t&1,t>>>=1,n=4,e.rl[7]=0,r=6;r>=0;--r)t>=he[r][n]?(t-=he[r][n--],e.rl[r]=1):e.rl[r]=0}function M0(){this.rl=I(8),this.ct=I(16)}function Md(){let e,t,r,n,l,o,i,s,a,f,g=new M0;for(l=0;l<70;++l)for(s=0;s<28;++s)Ig(g,l),yl(g,An[s]),as[l][s]=is(g);for(l=0;l<70;++l)for(Ig(g,l),i=0;i<16;++i)ac[l][i]=is(g),hl(g,0),i%2===1&&hl(g,1),i%8===7&&hl(g,2);for(l=0;l<6435;++l)for(Og(g,l),i=0;i<16;++i)ic[l][i]=os(g)&65535,hl(g,0),i%2===1&&hl(g,1),i%8===7&&hl(g,2);for(l=0;l<6435;++l)for(s=0;s<28;++s)Og(g,l),yl(g,An[s]),ss[l][s]=os(g)&65535;for(Ds(ot),ot[0]=ot[18]=ot[28]=ot[46]=ot[54]=ot[56]=0,r=0,n=6;n!==450450;){let u=r>6,c=u?-1:r,p=u?r:-1;for(++r,l=0;l<450450;++l)if(ot[l]===c){for(e=~~(l/70),a=l%70,s=0;s<23;++s)if(t=ss[e][s],f=as[a][s],o=t*70+f,ot[o]===p)if(++n,u){ot[l]=r;break}else ot[o]=r}}}function Od(){Tg||(Tg=!0,ko=I(29400,20),uc=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1],Tr=I(29400),T0=[0,9,14,23,27,28,41,42,46,55,60,69],G0=I(70))}function O0(e){let t,r,n,l;for(r=0,l=4,t=6;t>=0;--t)e.ud[t]!==e.ud[7]&&(r+=he[t][l--]);for(r*=35,l=4,t=6;t>=0;--t)e.fb[t]!==e.fb[7]&&(r+=he[t][l--]);r*=12;let o=e.fb[7]^e.ud[7];for(n=0,l=4,t=7;t>=0;--t)e.rl[t]!==o&&(n+=he[t][l--]);return e.parity+2*(r+G0[n])}function Id(e,t){switch(e.parity^=uc[t],t){case 0:case 1:case 2:{h(e.ud,0,1,2,3,t%3);break}case 3:{h(e.rl,0,1,2,3,1);break}case 4:case 5:case 6:{h(e.fb,0,1,2,3,(t-1)%3);break}case 7:case 8:case 9:{h(e.ud,4,5,6,7,(t-1)%3);break}case 10:{h(e.rl,4,5,6,7,1);break}case 11:case 12:case 13:{h(e.fb,4,5,6,7,(t+1)%3);break}case 14:{h(e.ud,0,1,2,3,1),h(e.rl,0,5,4,1,1),h(e.fb,0,5,4,1,1);break}case 15:{h(e.rl,0,1,2,3,1),h(e.fb,1,4,7,2,1),h(e.ud,1,6,5,2,1);break}case 16:{h(e.fb,0,1,2,3,1),h(e.ud,3,2,5,4,1),h(e.rl,0,3,6,5,1);break}case 17:{h(e.ud,4,5,6,7,1),h(e.rl,3,2,7,6,1),h(e.fb,3,2,7,6,1);break}case 18:{h(e.rl,4,5,6,7,1),h(e.fb,0,3,6,5,1),h(e.ud,0,3,4,7,1);break}case 19:h(e.fb,4,5,6,7,1),h(e.ud,0,7,6,1,1),h(e.rl,1,4,7,2,1)}}function fc(e,t,r){let n,l=(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^l;e.parity=l^r}function Td(e,t){let r,n,l,o;for(e.parity=t&1,t>>>=1,l=T0[t%12],t=~~(t/12),o=4,r=7;r>=0;--r)e.rl[r]=0,l>=he[r][o]&&(l-=he[r][o--],e.rl[r]=1);for(n=t%35,t=~~(t/35),o=4,e.fb[7]=0,r=6;r>=0;--r)n>=he[r][o]?(n-=he[r][o--],e.fb[r]=1):e.fb[r]=0;for(o=4,e.ud[7]=0,r=6;r>=0;--r)t>=he[r][o]?(t-=he[r][o--],e.ud[r]=1):e.ud[r]=0}function I0(){this.ud=I(8),this.rl=I(8),this.fb=I(8)}function Gd(){let e,t,r,n;for(r=0;r<12;++r)G0[T0[r]]=r;let l=new I0;for(r=0;r<29400;++r)for(n=0;n<20;++n)Td(l,r),Id(l,n),ko[r][n]=O0(l)&65535;for(Ds(Tr),Tr[0]=0,e=0,t=1;t!==29400;){for(r=0;r<29400;++r)if(Tr[r]===e)for(n=0;n<17;++n)Tr[ko[r][n]]===-1&&(Tr[ko[r][n]]=e+1,++t);++e}}function Wd(e,t){let r;for(r=0;r<24;++r)e.ct[r]=t.ct[r]}function Kd(e,t){let r=t%3;switch(t=~~(t/3),t){case 0:{h(e.ct,0,1,2,3,r);break}case 1:{h(e.ct,16,17,18,19,r);break}case 2:{h(e.ct,8,9,10,11,r);break}case 3:{h(e.ct,4,5,6,7,r);break}case 4:{h(e.ct,20,21,22,23,r);break}case 5:{h(e.ct,12,13,14,15,r);break}case 6:{h(e.ct,0,1,2,3,r),h(e.ct,8,20,12,16,r),h(e.ct,9,21,13,17,r);break}case 7:{h(e.ct,16,17,18,19,r),h(e.ct,1,15,5,9,r),h(e.ct,2,12,6,10,r);break}case 8:{h(e.ct,8,9,10,11,r),h(e.ct,2,19,4,21,r),h(e.ct,3,16,5,22,r);break}case 9:{h(e.ct,4,5,6,7,r),h(e.ct,10,18,14,22,r),h(e.ct,11,19,15,23,r);break}case 10:{h(e.ct,20,21,22,23,r),h(e.ct,0,8,4,14,r),h(e.ct,3,11,7,13,r);break}case 11:h(e.ct,12,13,14,15,r),h(e.ct,1,20,7,18,r),h(e.ct,0,23,6,17,r)}}function W0(){let e;for(this.ct=I(24),e=0;e<24;++e)this.ct[e]=~~(e/4)}function gc(){let e,t,r;for(W0.call(this),e=0;e<23;++e)r=e+te(24-e),this.ct[r]!==this.ct[e]&&(t=this.ct[e],this.ct[e]=this.ct[r],this.ct[r]=t)}function Qd(){Gg||(Gg=!0,bt=I(18),Vd())}function cc(e){e.cp=[0,1,2,3,4,5,6,7],e.co=[0,0,0,0,0,0,0,0]}function pc(e,t){let r;for(r=0;r<8;++r)e.cp[r]=t.cp[r],e.co[r]=t.co[r]}function jd(e,t){!e.temps&&(e.temps=new ds),mc(e,bt[t],e.temps),pc(e,e.temps)}function qd(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 mc(e,t,r){let n,l,o,i;for(n=0;n<8;++n)r.cp[n]=e.cp[t.cp[n]],o=e.co[t.cp[n]],i=t.co[n],l=o,l=l+(o<3?i:6-i),l=l%3,(o>=3?1:0)^(i>=3?1:0)&&(l=l+3),r.co[n]=l}function ds(){cc(this)}function Ir(e,t){cc(this),kg(this.cp,e),qd(this,t)}function Lc(){Ir.call(this,te(40320),te(2187))}function Vd(){let e,t;for(bt[0]=new Ir(15120,0),bt[3]=new Ir(21021,1494),bt[6]=new Ir(8064,1236),bt[9]=new Ir(9,0),bt[12]=new Ir(1230,412),bt[15]=new Ir(224,137),e=0;e<18;e+=3)for(t=0;t<2;++t)bt[e+t+1]=new ds,mc(bt[e+t],bt[e],bt[e+t+1])}function Hd(){Wg||(Wg=!0,Tt=I(1937880),Rs=I(1538),gs=I(1538),_l=I(11880),Dc=[0,1,6,3,4,5,2,7],Q0=I(160,12),j0=I(160,12),K0=[1,1,1,3,12,60,360,2520,20160,181440,1814400,19958400,239500800],b0=[0,2,4,6,1,3,7,5,8,9,10,11])}function Dl(e,t,r,n,l){let o=e.edgeo[l];e.edgeo[l]=e.edge[n],e.edge[n]=e.edgeo[r],e.edgeo[r]=e.edge[t],e.edge[t]=o}function El(e,t){let r,n,l,o,i;for(e.isStd||Rc(e),n=0,i=1985229328,o=47768,r=0;r<t;++r)l=e.edge[r]<<2,n*=12-r,l>=32?(n+=o>>l-32&15,o-=4368<<l-32):(n+=i>>l&15,o-=4369,i-=286331152<<l);return n}function Bc(e){let t,r=El(e,4);t=_l[r];let n=t&7;t>>=3,us(e,n);let l=El(e,10)%20160;return t*20160+l}function fs(e,t){switch(e.isStd=!1,t){case 0:{ce(e.edge,0,4,1,5),ce(e.edgeo,0,4,1,5);break}case 1:{ye(e.edge,0,4,1,5),ye(e.edgeo,0,4,1,5);break}case 2:{ce(e.edge,0,5,1,4),ce(e.edgeo,0,5,1,4);break}case 3:{ye(e.edge,5,10,6,11),ye(e.edgeo,5,10,6,11);break}case 4:{ce(e.edge,0,11,3,8),ce(e.edgeo,0,11,3,8);break}case 5:{ye(e.edge,0,11,3,8),ye(e.edgeo,0,11,3,8);break}case 6:{ce(e.edge,0,8,3,11),ce(e.edgeo,0,8,3,11);break}case 7:{ce(e.edge,2,7,3,6),ce(e.edgeo,2,7,3,6);break}case 8:{ye(e.edge,2,7,3,6),ye(e.edgeo,2,7,3,6);break}case 9:{ce(e.edge,2,6,3,7),ce(e.edgeo,2,6,3,7);break}case 10:{ye(e.edge,4,8,7,9),ye(e.edgeo,4,8,7,9);break}case 11:{ce(e.edge,1,9,2,10),ce(e.edgeo,1,9,2,10);break}case 12:{ye(e.edge,1,9,2,10),ye(e.edgeo,1,9,2,10);break}case 13:{ce(e.edge,1,10,2,9),ce(e.edgeo,1,10,2,9);break}case 14:{ye(e.edge,0,4,1,5),ye(e.edgeo,0,4,1,5),ce(e.edge,9,11),ce(e.edgeo,8,10);break}case 15:{ye(e.edge,5,10,6,11),ye(e.edgeo,5,10,6,11),ce(e.edge,1,3),ce(e.edgeo,0,2);break}case 16:{ye(e.edge,0,11,3,8),ye(e.edgeo,0,11,3,8),ce(e.edge,5,7),ce(e.edgeo,4,6);break}case 17:{ye(e.edge,2,7,3,6),ye(e.edgeo,2,7,3,6),ce(e.edge,8,10),ce(e.edgeo,9,11);break}case 18:{ye(e.edge,4,8,7,9),ye(e.edgeo,4,8,7,9),ce(e.edge,0,2),ce(e.edgeo,1,3);break}case 19:ye(e.edge,1,9,2,10),ye(e.edgeo,1,9,2,10),ce(e.edge,4,6),ce(e.edgeo,5,7)}}function xl(e,t){switch(e.isStd=!1,t){case 0:{fs(e,14),fs(e,17);break}case 1:{Dl(e,11,5,10,6),Dl(e,5,10,6,11),Dl(e,1,2,3,0),Dl(e,4,9,7,8),Dl(e,8,4,9,7),Dl(e,0,1,2,3);break}case 2:Ut(e,4,5),Ut(e,5,4),Ut(e,11,8),Ut(e,8,11),Ut(e,7,6),Ut(e,6,7),Ut(e,9,10),Ut(e,10,9),Ut(e,1,1),Ut(e,0,0),Ut(e,3,3),Ut(e,2,2)}}function us(e,t){for(;t>=2;)t-=2,xl(e,1),xl(e,2);t!==0&&xl(e,0)}function Mo(e,t){let r,n,l,o,i,s;for(i=1985229328,s=47768,l=0,r=0;r<11;++r)if(n=K0[11-r],o=~~(t/n),t=t%n,l^=o,o<<=2,o>=32){o=o-32,e.edge[r]=s>>o&15;let a=(1<<o)-1;s=(s&a)+(s>>4&~a)}else{e.edge[r]=i>>o&15;let a=(1<<o)-1;i=(i&a)+(i>>>4&~a)+(s<<28),s=s>>4}for((l&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 Kg(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 dc(e,t){let r,n,l,o;for(e.temp===null&&(e.temp=I(12)),r=0;r<12;++r)e.temp[r]=r,e.edge[r]=t.ep[b0[r]+12]%12;for(n=1,r=0;r<12;++r)for(;e.edge[r]!==r;)o=e.edge[r],e.edge[r]=e.edge[o],e.edge[o]=o,l=e.temp[r],e.temp[r]=e.temp[o],e.temp[o]=l,n^=1;for(r=0;r<12;++r)e.edge[r]=e.temp[t.ep[b0[r]]%12];return n}function Rc(e){let t;for(e.temp===null&&(e.temp=I(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 ye(e,t,r,n,l){let o;o=e[t],e[t]=e[n],e[n]=o,o=e[r],e[r]=e[l],e[l]=o}function Ut(e,t,r){let n=e.edge[t];e.edge[t]=e.edgeo[r],e.edgeo[r]=n}function Rr(){this.edge=I(12),this.edgeo=I(12)}function Xd(){let e,t,r,n,l,o,i,s,a,f,g,u,c,p,L,m,d,D,F,S,v,U,P=new Rr,J=new Rr,C=new Rr;for(Ds(Tt),s=0,Ji=1,S0(Tt,0,0);Ji!==31006080&&(L=s>9,i=s%3,o=(s+1)%3,f=L?3:i,e=L?i:3,!(s>=9));){for(u=0;u<31006080;u+=16)if(U=Tt[~~u>>4],!(!L&&U===-1)){for(g=u,a=u+16;g<a;++g,U>>=2)if((U&3)===f){for(F=~~(g/20160),t=Rs[F],n=g%20160,Mo(P,t*20160+n),d=0;d<17;++d)if(r=wl(P.edge,d<<3,4),S=_l[r],v=S&7,S>>=3,l=wl(P.edge,d<<3|v,10)%20160,c=S*20160+l,No(Tt,c)===e){if(S0(Tt,L?g:c,o),++Ji,L)break;if(D=gs[S],D!==1)for(Kg(J,P),fs(J,d),us(J,v),m=1;(D=~~D>>1&65535)!==0;++m)(D&1)===1&&(Kg(C,J),us(C,m),p=S*20160+El(C,10)%20160,No(Tt,p)===e&&(S0(Tt,p,o),++Ji))}}}++s}}function No(e,t){return e[t>>4]>>((t&15)<<1)&3}function wl(e,t,r){let n,l,o,i,s,a=j0[t],f=Q0[t];for(l=0,s=1985229328,i=47768,n=0;n<r;++n)o=a[e[f[n]]]<<2,l*=12-n,o>=32?(l+=i>>o-32&15,i-=4368<<o-32):(l+=s>>o&15,i-=4369,s-=286331152<<o);return l}function hc(e){let t,r,n,l,o,i,s,a,f,g,u,c=new Rr;if(i=0,o=No(Tt,e),o===3)return 10;for(;e!==0;)for(o===0?o=2:--o,f=~~(e/20160),t=Rs[f],n=e%20160,Mo(c,t*20160+n),a=0;a<17;++a)if(r=wl(c.edge,a<<3,4),g=_l[r],u=g&7,g>>=3,l=wl(c.edge,a<<3|u,10)%20160,s=g*20160+l,No(Tt,s)===o){++i,e=s;break}return i}function Jd(e,t){let r=No(Tt,e);return r===3?10:(1227133513<<r>>t&3)+t-1}function Zd(){let e,t,r,n=new Rr;for(t=0;t<20;++t)for(r=0;r<8;++r){for(Mo(n,0),fs(n,t),us(n,r),e=0;e<12;++e)Q0[t<<3|r][e]=n.edge[e];for(Rc(n),e=0;e<12;++e)j0[t<<3|r][e]=n.temp[e]}}function Yd(){let e,t,r,n,l=new Rr,o=I(1485);for(t=0;t<1485;t++)o[t]=0;for(e=0,t=0;t<11880;++t)if((o[~~t>>>3]&1<<(t&7))===0){for(Mo(l,t*K0[8]),n=0;n<8;++n)r=El(l,4),r===t&&(gs[e]=(gs[e]|1<<n)&65535),o[~~r>>3]=o[~~r>>3]|1<<(r&7),_l[r]=e<<3|Dc[n],xl(l,0),n%2===1&&(xl(l,1),xl(l,2));Rs[e++]=t}}function S0(e,t,r){e[t>>4]^=(3^r)<<((t&15)<<1)}function $d(){Qg||(Qg=!0)}function eR(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 tR(e,t){let r;for(r=0;r<24;++r)e.ep[r]=t.ep[r]}function rR(e,t){let r=t%3;switch(t=~~(t/3),t){case 0:{h(e.ep,0,1,2,3,r),h(e.ep,12,13,14,15,r);break}case 1:{h(e.ep,11,15,10,19,r),h(e.ep,23,3,22,7,r);break}case 2:{h(e.ep,0,11,6,8,r),h(e.ep,12,23,18,20,r);break}case 3:{h(e.ep,4,5,6,7,r),h(e.ep,16,17,18,19,r);break}case 4:{h(e.ep,1,20,5,21,r),h(e.ep,13,8,17,9,r);break}case 5:{h(e.ep,2,9,4,10,r),h(e.ep,14,21,16,22,r);break}case 6:{h(e.ep,0,1,2,3,r),h(e.ep,12,13,14,15,r),h(e.ep,9,22,11,20,r);break}case 7:{h(e.ep,11,15,10,19,r),h(e.ep,23,3,22,7,r),h(e.ep,2,16,6,12,r);break}case 8:{h(e.ep,0,11,6,8,r),h(e.ep,12,23,18,20,r),h(e.ep,3,19,5,13,r);break}case 9:{h(e.ep,4,5,6,7,r),h(e.ep,16,17,18,19,r),h(e.ep,8,23,10,21,r);break}case 10:{h(e.ep,1,20,5,21,r),h(e.ep,13,8,17,9,r),h(e.ep,14,0,18,4,r);break}case 11:h(e.ep,2,9,4,10,r),h(e.ep,14,21,16,22,r),h(e.ep,7,15,1,17,r)}}function q0(){let e;for(this.ep=I(24),e=0;e<24;++e)this.ep[e]=e}function Fc(){let e,t,r;for(q0.call(this),e=0;e<23;++e)r=e+te(24-e),r!==e&&(t=this.ep[e],this.ep[e]=this.ep[r],this.ep[r]=t)}function nR(){jg||(jg=!0,E0=[35,1,34,2,4,6,22,5,19])}function yc(e){e.moveBuffer=I(60)}function lR(e,t){return e.value-t.value}function kl(e,t){let r;for(tR(e.edge,t.edge),Wd(e.center,t.center),pc(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 Gr(e){for(;e.centerAvail<e.moveLength;)Kd(e.center,e.moveBuffer[e.centerAvail++]);return e.center}function Ac(e){for(;e.cornerAvail<e.moveLength;)jd(e.corner,e.moveBuffer[e.cornerAvail++]%18);return e.corner}function Po(e){for(;e.edgeAvail<e.moveLength;)rR(e.edge,e.moveBuffer[e.edgeAvail++]);return e.edge}function oR(e){let t,r,n,l,o,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)It[i][e.moveBuffer[t]]>=27?(s[r++]=It[i][e.moveBuffer[t]]-9,l=E0[It[i][e.moveBuffer[t]]-27],i=Sl[i][l]):s[r++]=It[i][e.moveBuffer[t]];let a=Sl[Al[i]][_d(Gr(e))];for(o="",i=a,t=r-1;t>=0;--t)n=s[t],n=~~(n/3)*3+(2-n%3),It[i][n]>=27?(o=\`\${o}\${w0[It[i][n]-9]} \`,l=E0[It[i][n]-27],i=Sl[i][l]):o=\`\${o}\${w0[It[i][n]]} \`;return o}function yn(e,t){e.moveBuffer[e.moveLength++]=t}function cs(){yc(this),this.edge=new q0,this.center=new W0,this.corner=new ds}function hs(e){cs.call(this),kl(this,e)}function Sc(){yc(this),this.edge=new Fc,this.center=new gc,this.corner=new Lc}function iR(e,t){return t.value-e.value}function ps(e,t){return iR(e,t)}function xc(){}function sR(){if(qg)return;qg=!0;let e,t;for(w0=["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'"],An=[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],Eo=[0,1,2,4,6,7,8,9,10,11,13,15,16,17,19,22,25,28,31,34,36],Vg=I(37),Hg=I(37),Fl=I(37,36),es=I(29,28),ts=I(21,20),x0=I(36),_o=I(28),vl=I(20),e=0;e<29;++e)Vg[An[e]]=e;for(e=0;e<21;++e)Hg[Eo[e]]=e;for(e=0;e<36;++e){for(t=0;t<36;++t)Fl[e][t]=~~(e/3)===~~(t/3)||~~(e/3)%3===~~(t/3)%3&&e>t;Fl[36][e]=!1}for(e=0;e<29;++e)for(t=0;t<28;++t)es[e][t]=Fl[An[e]][An[t]];for(e=0;e<21;++e)for(t=0;t<20;++t)ts[e][t]=Fl[Eo[e]][Eo[t]];for(e=0;e<36;++e)for(x0[e]=36,t=e;t<36;++t)if(!Fl[e][t]){x0[e]=t-1;break}for(e=0;e<28;++e)for(_o[e]=28,t=e;t<28;++t)if(!es[e][t]){_o[e]=t-1;break}for(e=0;e<20;++e)for(vl[e]=20,t=e;t<20;++t)if(!ts[e][t]){vl[e]=t-1;break}}function aR(e){let t,r,n,l,o,i,s,a,f,g,u,c;e.solution="";let p=Zi(new $i(Gr(e.c),0)),L=Zi(new $i(Gr(e.c),1)),m=Zi(new $i(Gr(e.c),2)),d=Gt[~~p>>6],D=Gt[~~L>>6],F=Gt[~~m>>6];for(e.p1SolsCnt=0,e.arr2idx=0,dR(e.p1sols.heap),e.length1=(d<D?d:D)<F?d<D?d:D:F;e.length1<100&&!(F<=e.length1&&rs(e,~~m>>>6,m&63,e.length1,-1,0)||d<=e.length1&&rs(e,~~p>>>6,p&63,e.length1,-1,0)||D<=e.length1&&rs(e,~~L>>>6,L&63,e.length1,-1,0));++e.length1);let S=bR(e.p1sols,z0(wR,Kr([Dd,k0,_0]),ec,0,0));S.sort(function(P,J){return P.value-J.value}),t=9;do{e:for(a=S[0].value;a<100;++a)for(i=0;i<S.length&&!(S[i].value>a);++i)if(!(a-S[i].length1>t)&&(kl(e.c1,S[i]),oc(e.ct2,Gr(e.c1),ms(Po(e.c1).ep)),u=os(e.ct2),c=is(e.ct2),e.length1=S[i].length1,e.length2=a-S[i].length1,vc(e,u,c,e.length2,28,0)))break e;++t}while(a===100);e.arr2.sort(function(P,J){return P.value-J.value}),s=0,r=13;do{e:for(f=e.arr2[0].value;f<100;++f)for(i=0;i<Math.min(e.arr2idx,100)&&!(e.arr2[i].value>f);++i)if(!(f-e.arr2[i].length1-e.arr2[i].length2>r)&&(o=dc(e.e12,Po(e.arr2[i])),fc(e.ct3,Gr(e.arr2[i]),o^ms(Ac(e.arr2[i]).cp)),n=O0(e.ct3),l=El(e.e12,10),g=hc(Bc(e.e12)),g<=f-e.arr2[i].length1-e.arr2[i].length2&&Uc(e,l,n,g,f-e.arr2[i].length1-e.arr2[i].length2,20,0))){s=i;break e}++r}while(f===100);let v=new hs(e.arr2[s]);e.length1=v.length1,e.length2=v.length2;let U=f-e.length1-e.length2;for(i=0;i<U;++i)yn(v,Eo[e.move3[i]]);e.solution=oR(v)}function fR(e,t){let r,n;for(kl(e.c1,e.c),r=0;r<e.length1;++r)yn(e.c1,e.move1[r]);switch(P0[t]){case 0:{yn(e.c1,24),yn(e.c1,35),e.move1[e.length1]=24,e.move1[e.length1+1]=35,e.add1=!0,t=19;break}case 12869:{yn(e.c1,18),yn(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}oc(e.ct2,Gr(e.c1),ms(Po(e.c1).ep));let l=os(e.ct2),o=is(e.ct2),i=ot[l*70+o];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 hs(e.c1):(n=vR(e.p1sols),n.value>e.c1.value&&kl(n,e.c1)),mR(e.p1sols,n),e.p1SolsCnt===1e4}function uR(e){let t;for(kl(e.c2,e.c1),t=0;t<e.length2;++t)yn(e.c2,e.move2[t]);if(!eR(Po(e.c2)))return!1;let r=dc(e.e12,Po(e.c2));fc(e.ct3,Gr(e.c2),r^ms(Ac(e.c2).cp));let n=O0(e.ct3);El(e.e12,10);let l=hc(Bc(e.e12));return e.arr2[e.arr2idx]?kl(e.arr2[e.arr2idx],e.c2):e.arr2[e.arr2idx]=new hs(e.c2),e.arr2[e.arr2idx].value=e.length1+e.length2+Math.max(l,Tr[n]),e.arr2[e.arr2idx].length2=e.length2,++e.arr2idx,e.arr2idx===e.arr2.length}function gR(e){return Ec(),e.c=new Sc,aR(e),e.solution}function rs(e,t,r,n,l,o){let i,s,a,f,g,u;if(t===0)return n===0&&fR(e,r);for(i=0;i<27;i+=3)if(!(i===l||i===l-9||i===l-18))for(f=0;f<3;++f){if(a=i+f,s=Ls[t][It[r][a]],g=Gt[~~s>>>6],g>=n){if(g>n)break;continue}if(u=Sl[r][s&63],s>>>=6,e.move1[o]=a,rs(e,s,u,n-1,i,o+1))return!0}return!1}function vc(e,t,r,n,l,o){let i,s,a,f;if(t===0&&ot[r]===0)return n===0&&uR(e);for(s=0;s<23;++s){if(es[l][s]){s=_o[s];continue}if(i=ss[t][s],f=as[r][s],a=ot[i*70+f],a>=n){a>n&&(s=_o[s]);continue}if(e.move2[o]=An[s],vc(e,i,f,n-1,s,o+1))return!0}return!1}function Uc(e,t,r,n,l,o,i){let s,a,f,g,u,c,p,L,m;if(l===0)return t===0&&r===0;for(Mo(e.tempe[i],t),u=0;u<17;++u){if(ts[o][u]){u=vl[u];continue}if(f=ko[r][u],c=Tr[f],c>=l){c>l&&u<14&&(u=vl[u]);continue}if(g=wl(e.tempe[i].edge,u<<3,10),s=~~(g/20160),L=_l[s],m=L&7,L>>=3,a=wl(e.tempe[i].edge,u<<3|m,10)%20160,p=Jd(L*20160+a,n),p>=l){p>l&&u<14&&(u=vl[u]);continue}if(Uc(e,g,f,p,l-1,u,i+1))return e.move3[i]=u,!0}return!1}function bc(){let e;for(this.p1sols=new Nc(new xc),this.move1=I(15),this.move2=I(20),this.move3=I(20),this.c1=new cs,this.c2=new cs,this.ct2=new M0,this.ct3=new I0,this.e12=new Rr,this.tempe=I(20),this.arr2=I(100),e=0;e<20;++e)this.tempe[e]=new Rr}function Ec(){Xg||(zd(),bl=I(735471),Cd(),wd(),bl=null,kd(),Md(),Gd(),Zd(),Yd(),Xd(),Xg=!0)}function cR(){Jg||(Jg=!0)}function ms(e){let t,r,n,l;for(l=0,t=0,n=e.length;t<n;++t)for(r=t;r<n;++r)e[t]>e[r]&&(l^=1);return l}function h(e,t,r,n,l,o){let i;switch(o){case 0:{i=e[l],e[l]=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[l],e[l]=i;return}case 2:{i=e[t],e[t]=e[r],e[r]=e[n],e[n]=e[l],e[l]=i;return}}}function wc(){}function kc(e,t,r,n){let l=new wc;return l.typeName=e+t,zc(r!==0?-r:0)&&Cc(r!==0?-r:0,l),l.modifiers=4,l.superclass=V0,l.componentType=n,l}function _c(e,t,r,n){let l=new wc;return l.typeName=e+t,zc(r)&&Cc(r,l),l.superclass=n,l}function pR(e){let t=zo[e.seedId];return e=null,t}function zc(e){return typeof e=="number"&&e>0}function Cc(e,t){let r;if(t.seedId=e,e===2)r=String.prototype;else if(e>0){let n=pR(t);if(n)r=n.prototype;else{n=zo[e]=function(){},n.___clazz$=t;return}}else return;r.___clazz$=t}function mR(e,t){if(xR(e,t))return!0}function LR(e){e.array=z0(Pc,Kr([k0,_0]),Yg,0,0)}function BR(e,t){return ns(e.array,e.size++,t),!0}function dR(e){e.array=z0(Pc,Kr([k0,_0]),Yg,0,0),e.size=0}function Wr(e,t){return e.array[t]}function RR(e,t){let r=e.array[t];return FR(e.array,t,1),--e.size,r}function Ul(e,t,r){let n=e.array[t];return ns(e.array,t,r),n}function hR(e,t){let r;for(t.length<e.size&&(t=Sd(t,e.size)),r=0;r<e.size;++r)ns(t,r,e.array[r]);return t.length>e.size&&ns(t,e.size,null),t}function DR(){LR(this),this.array.length=500}function FR(e,t,r){e.splice(t,r)}function yR(e,t){let r,n,l,o;for(n=0,r=e.length-1;n<=r;)if(l=n+(~~(r-n)>>1),o=e[l],o<t)n=l+1;else if(o>t)r=l-1;else return l;return-n-1}function Ds(e){AR(e,e.length)}function AR(e,t){let r;for(r=0;r<t;++r)e[r]=-1}function SR(e,t){let r,n,l,o,i=e.heap.size,s=Wr(e.heap,t);for(;t*2+1<i&&(r=(n=2*t+1,l=n+1,o=n,l<i&&ps(Wr(e.heap,l),Wr(e.heap,n))<0&&(o=l),o),!(ps(s,Wr(e.heap,r))<0));)Ul(e.heap,t,Wr(e.heap,r)),t=r;Ul(e.heap,t,s)}function xR(e,t){let r,n;for(n=e.heap.size,BR(e.heap,t);n>0;){if(r=n,n=~~((n-1)/2),ps(Wr(e.heap,n),t)<=0)return Ul(e.heap,r,t),!0;Ul(e.heap,r,Wr(e.heap,n))}return Ul(e.heap,n,t),!0}function vR(e){if(e.heap.size===0)return null;let t=Wr(e.heap,0);return UR(e),t}function UR(e){let t=RR(e.heap,e.heap.size-1);0<e.heap.size&&(Ul(e.heap,0,t),SR(e,0))}function bR(e,t){return hR(e.heap,t)}function Nc(e){this.heap=new DR,this.cmp=e}function Oc(){Zg||(Zg=!0,sR(),cR(),Ed(),Pd(),Od(),Hd(),Qd(),$d(),nR(),Mc=new bc)}function kR(){Oc(),Ec()}async function _R(){Ee(),Oc();let e=E.fromString(gR(Mc));return(await Rl()).concat(e)}var X,zo,dd,Yg,k0,$g,Rd,hd,ec,Dd,Fd,yd,_0,zg,v0,U0,Cg,Gt,Ls,P0,bl,Bs,Al,It,Sl,Mg,ss,ot,ic,sc,as,ac,Tg,ko,uc,Tr,T0,G0,Gg,bt,Wg,b0,Ji,Tt,K0,Q0,j0,_l,Rs,Dc,gs,Qg,jg,E0,qg,Fl,es,ts,An,w0,Eo,x0,_o,vl,Vg,Hg,Xg,Jg,V0,Pc,ER,wR,Mc,Zg,Ic=A(()=>{"use strict";fe();y0();_g();xt();St();zo={},dd={},Yg=0,k0=30,$g=21,Rd=22,hd=23,ec=24,Dd=25,Fd=34,yd=26,_0=40;ht(1,-1,dd);X.value=null;ht(73,1,{},tc);X.queryId$=0;zg=!1;Cg=!1;ht(153,1,Kr([$g]),Co,$i,wo);bl=null,Mg=!1;ht(154,1,{},M0);X.parity=0;Tg=!1;ht(155,1,{},I0);X.parity=0;ht(156,1,{},W0,gc);Gg=!1;ht(157,1,Kr([Rd]),ds,Ir,Lc);X.temps=null;Wg=!1;ht(158,1,Kr([hd]),Rr);X.isStd=!0;X.temp=null;Ji=0,Qg=!1;ht(159,1,{},q0,Fc);jg=!1;ht(160,1,Kr([ec,Fd]),cs,hs,Sc);X.compareTo$=function(t){return lR(this,t)};X.add1=!1;X.center=null;X.centerAvail=0;X.corner=null;X.cornerAvail=0;X.edge=null;X.edgeAvail=0;X.length1=0;X.length2=0;X.length3=0;X.moveLength=0;X.sym=0;X.value=0;ht(161,1,{},xc);X.compare=function(t,r){return ps(t,r)};qg=!1;ht(163,1,Kr([yd]),bc);X.add1=!1;X.arr2idx=0;X.c=null;X.length1=0;X.length2=0;X.p1SolsCnt=0;X.solution="";Xg=!1,Jg=!1;X.val$outerIter=null;X.size=0;ht(239,1,{},Nc);X.cmp=null;X.heap=null;V0=_c("java.lang.","Object",1,null),Pc=kc("[Ljava.lang.","Object;",356,V0),ER=_c("cs.threephase.","FullCube",160,V0),wR=kc("[Lcs.threephase.","FullCube;",381,ER),Zg=!1});var Tc={};Lt(Tc,{initialize:()=>kR,random444Scramble:()=>_R});var Gc=A(()=>{"use strict";Ic()});function Io(e){if(e<2)return e;let t=1;for(let r=2;r<=e;r++)t*=r;return t}function Fs(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 $c(e,t,r,n,l=e-t-r-n){return Fs(e,t+r)*Fs(t+r,t)*Fs(n+l,n)}function OR(e){e=e.slice();let t=e.length,r=Io(t-1),n=0;for(;t>1;){t--;let l=e[0];n+=l*r;for(let o=0;o<t;o++){let i=e[o+1];e[o]=i-(i>l)}r/=t}return n}function IR(e){let t=e.length,r=0;for(let n=0;n<t-1;n++)for(let l=n;l<t;l++)e[n]>e[l]&&(r^=1);return r}function l2(e,t){let r=[],n=Io(t-1)/2,l=0;for(let o=0;o<t-1;o++)r[o]=e/n|0,e%=n,n/=t-1-o;r[t-1]=0;for(let o=t-2;o>=0;o--)for(let i=o+1;i<t;i++)r[i]>=r[o]?r[i]++:l^=1;return l===1&&([r[t-2],r[t-1]]=[r[t-1],r[t-2]]),r}function Sn(e){return OR(e)>>1}function t2(e){let t=[0];for(let r=1;r<e;r++){let n=te(r+1);t[r]=t[n],t[n]=r}return t}function qc(e){let t=t2(e);return IR(t)===1&&([t[0],t[1]]=[t[1],t[0]]),t}function TR(e){return e|=0,31-Math.clz32(e^e-1)}function Vc(e,t){e|=0,t|=0;let r=\`\${e} \${t}\`;if(J0[r])return J0[r];let n=Fs(e,t),l=new Uint32Array(n),o=new Uint32Array(1<<e).fill(-1);for(let i=0,s=(1<<t)-1;i<n;i++){l[i]=s,o[s]=i;let a=s|s-1;s=a+1|(~a&-~a)-1>>TR(s)+1}return J0[r]=[l,o]}function GR(e){e|=0;let t=0;for(;e!==0;)e&=e-1,t++;return t}function Hc(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 WR(e,t){return Hc(e)|Hc(t)<<1}function Pl(e,t,r,n,l){if(e|=0,t|=0,r|=0,n|=0,l|=0,e!==t+r+n+l)throw new Error("generate_comb4_lookup_tables: invalid parameters");let o=[e,t,r,n,l].join(" ");if(Z0[o])return Z0[o];let[i,s]=Vc(e,r+l),[a,f]=Vc(e,n+l),g=$c(e,t,r,n,l),u=new Uint32Array(g),c=new Uint32Array(4**e).fill(-1);for(let p=0,L=0;p<a.length;p++){let m=a[p];for(let d=0;d<i.length;d++){let D=i[d];if(GR(D&m)===l){let F=WR(D,m);u[L]=F,c[F]=L,L++}}}return Z0[o]=[u,c]}function rt(e,t){let r=[];for(let n=0;n<t.length;n++)r[n]=e[t[n]];return r}function Ml(e,t,r){let n=[];for(let l=0;l<r.length;l++)n[l]=e[t[r[l]]];return n}function o2(e,t){let r=[];for(let n=0;n<t;n++)r[n]=n;for(let n of e)for(let l=0;l<n.length;l++)r[n[l]]=n[(l+1)%n.length];return r}function xn(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 l=n[r-1]+t[r-1],o=Array(l);for(let i=0;i<r;i++)t[i]&&(o[n[i]]=n[e[i]]);return o}function i2(e){let t=e.length,r=Array(t);for(let n=0;n<t;n++)r[e[n]]=n;return r}function KR(e,t){for(;e&&t;)[e,t]=[t%e,e];return Math.abs(e+t)}function QR(e,t){return e*t/KR(e,t)}function jR(e){let t=1,r=e.length,n=Array(r).fill(!1),l=-1;for(;l=n.indexOf(!1,l+1),l!==-1;){let o=0,i=l;for(;!n[i];)n[i]=!0,i=e[i],o++;t=QR(t,o)}return t}function $R(e,t){for(let r=0;r<6;r++){if(e===Wt[Qr[r][0]]&&t===Wt[Qr[r][2]])return[r,0];if(e===Wt[Qr[r][2]]&&t===Wt[Qr[r][0]])return[r,1]}throw new Error("unknown corner piece")}function eh(e,t){for(let r=0;r<12;r++)if(e===Wt[jr[r][0]]&&t===Wt[jr[r][1]]||t===Wt[jr[r][0]]&&e===Wt[jr[r][1]])return r;throw new Error("unknown edge piece")}function s2(e,t){return $R(e[Qr[t][0]],e[Qr[t][2]])}function Us(e,t){return eh(e[jr[t][0]],e[jr[t][1]])}function th(e,t,r,n){let l=Qr[t],o=Qr[r].map(i=>Wt[i]);n%2!==0&&(o=[o[2],o[3],o[0],o[1]]);for(let i=0;i<4;i++)e[l[i]]=o[i]}function rh(e,t,r){let n=jr[t],l=jr[r].map(o=>Wt[o]);for(let o=0;o<2;o++)e[n[o]]=l[o]}function rp(e){let t=e.map(a=>Wt[a]),n=Array(6).fill().map((a,f)=>s2(t,f)).map(([a,f])=>a+6*f),l=n.concat(n.map(a=>(a+6)%12)),o=Array(12).fill().map((a,f)=>Us(t,f)),i=Array(12).fill().map((a,f)=>vn.indexOf(e[vn[f]])),s=Array(12).fill().map((a,f)=>zl.indexOf(e[zl[f]]));return{cp:l,ep:o,ap:i,bp:s}}function lh(){let e=Array(72),t=qc(5);t.push(5);let r=Array(4).fill().map(i=>te(2));r.push(r.reduce((i,s)=>i^s)),r.push(0);for(let i=0;i<6;i++)th(e,i,t[i],r[i]);let n=qc(12);for(let i=0;i<12;i++)rh(e,i,n[i]);let l=t2(12).map(i=>i/3|0),o=t2(12).map(i=>4+(i/3|0));for(let i=0;i<12;i++)e[vn[i]]=l[i],e[zl[i]]=o[i];return e}function lp(e,t=!1){if(t){e=e.map(m=>m.slice());let p=[0,1,2,3,4,5,6,7],L=[[0,3,5,6,4,7,1,2],[7,1,0,6,3,5,4,2],[7,4,2,1,3,0,6,5],[2,4,5,3,6,0,1,7]];L=L.concat(L.map(m=>i2(m)));for(let m=0;m<e.length;m++)if(e[m][0]<4)e[m][0]=p[e[m][0]];else{let d=p[e[m][0]],D=e[m][1];e[m][0]=d,p=rt(D===1?L[d^4]:L[d],p)}}let r=t?"U L F R D BR B BL".split(" "):nh,n=["0","","'"];return e.map(([o,i])=>r[o]+n[i]).join(" ")}function qr(e,t){for(let[r,n]of t)for(let l=0;l<n;l++)e=rt(e,np[r]);return e}function op(e){return e.map(([t,r])=>[t,(3-r)%3]).reverse()}function Ss(e,t=!1){if(e.length===0)return[];let r=[],n;for(let[l,o]of e)n&&n[0]===l?(n[1]+=o,n[1]%=3,n[1]===0&&(r.pop(),n=r.length===0?void 0:r[r.length-1])):r.length>=2&&(n[0]^l)===4&&r[r.length-2][0]===l?(r[r.length-2][1]+=o,r[r.length-2][1]%=3,r[r.length-2][1]===0&&r.splice(r.length-2,1)):(n=[l,o],r.push(n));return t&&\`\${e}\`!=\`\${r}\`&&console.log(\`simplified \${e} to \${r}\`),r}function oh(){return lp(op(ah(lh(),!0)),!0)}function Cl(e,t,r,n,l,o){let i=$c(e,t,r,n,l),s=o.length,[a,f]=Pl(e,t,r,n,l),g=Array(s).fill().map(()=>new Uint32Array(i));for(let u=0;u<i;u++){let c=a[u],p=Array(e);for(let L=0;L<e;L++)p[L]=c>>2*L&3;for(let L=0;L<s;L++){let d=rt(p,o[L]).reduce((D,F,S)=>D|F<<2*S,0);g[L][u]=f[d]}}return g}function ip(e){let t=e[0].length,r=e.length,n=Array(r).fill().map(()=>new Uint32Array(t));for(let l=0;l<t;l++)for(let o=0;o<r;o++)n[o][e[o][l]]=l;return n}function bn(e,t){let r=e[0].length,n=t[0].length,l=e.length,o=Array(l).fill().map(()=>new Uint32Array(r*n));for(let i=0;i<n;i++)for(let s=0;s<r;s++){let a=s+r*i;for(let f=0;f<l;f++)o[f][a]=e[f][s]+r*t[f][i]}return o}function ih(e,t){let r=e.length,n=e[0].length,l=new Uint8Array(n);l[t]=1;let o=!1;for(;!o;){o=!0;for(let s=0;s<n;s++)if(!!l[s])for(let a=0;a<r;a++)l[e[a][s]]||(l[e[a][s]]=1,o=!1)}let i=new Int32Array(n).fill(-1);for(let s=0,a=0;s<n;s++)!l[s]||(i[s]=a,a++);return[e.map(s=>xn(s,l)),i]}function sh(e,t){let r=e.length,n=e[0].length,l=new Int32Array(n).fill(-1);t.forEach(a=>{l[a]=0});let o=[t];for(let a=0;a<o.length;a++){let f=o[a];for(let g=0;g<r;g++){let u=e[g][f[0]];if(l[u]!==-1)continue;let c=f.map(L=>e[g][L]),p=o.length;o.push(c);for(let L of c){if(l[L]!==-1)throw new Error("quotienting failed");l[L]=p}}}let i=o.length,s=Array(r).fill().map(()=>new Int32Array(i));for(let a=0;a<r;a++)for(let f=0;f<i;f++)s[a][f]=l[e[a][o[f][0]]];return[s,l]}function sp(e,t,r){let n=e[0].length,l=e.length,o=new Int32Array(n).fill(-1);o[t]=r,o[r]=t;let i=!1;for(;!i;){i=!0;for(let s=0;s<n;s++){if(o[s]===-1)continue;let a=o[s];for(let f=0;f<l;f++){let g=f^1,u=e[f][s],c=e[g][e[g][a]];if(o[u]===-1)i=!1,o[u]=c,o[c]=u;else if(o[u]!==c)throw new Error("mirroring failed - is the initial map correct?")}}}return o}function ap(e,t){let r=e[0].length,n=e.length,l=new Int8Array(r).fill(-1);for(let s of t)l[s]=0;let o=0,i=!1;for(;!i;){i=!0;for(let s=0;s<r;s++)if(l[s]===o)for(let a=0;a<n;a++){let f=e[a][s];for(;f!==s;)l[f]===-1&&(i=!1,l[f]=o+1),f=e[a][f]}o++}return l}function ah(e,t=!1){let r=ph(e).next().value,n=qr(e,r),l=(t?Eh:bh)(n),o=Ss(r.concat(l),!1);return qr(e,o).join("")!==To.join("")&&(console.log("solving failed!"),console.log(e),console.log(r),console.log(n),console.log(l),console.log(qr(e,o))),o}function uh(e){let[t,r]=Pl(12,6,0,3,3),n=Array(12).fill().map((s,a)=>Us(e,a)),l=n.indexOf(8)+12*n.indexOf(9)+12**2*n.indexOf(10)+12**3*n.indexOf(11),[o,i]=[vn,zl].map(s=>{let a=s.map(f=>fh[e[f]]);return r[a.reduce((f,g,u)=>f|g<<2*u,0)]});return[l,o,i]}function fp(){if(K.phase1_edge)return K.phase1_edge;let e=ip(Un.map(n=>n.ep)),t=bn(e,e),r=bn(t,t);return K.phase1_edge=r}function gh(){return Dr.phase1_edge?Dr.phase1_edge:Dr.phase1_edge=ap(fp(),[8+12*9+12**2*10+12**3*11])}function ch(){return K.phase1_centreA?K.phase1_centreA:K.phase1_centreA=Cl(12,6,0,3,3,Un.map(e=>e.ap))}function up(){return K.phase1_centreB?K.phase1_centreB:K.phase1_centreB=Cl(12,6,0,3,3,Un.map(e=>e.bp))}function Xc(){if(Dr.phase1_centre)return Dr.phase1_centre;let[e,t]=Pl(12,6,0,3,3),r=e.filter(n=>{let l=n>>12&3,o=n>>18&3;return l===2&&o===3}).map(n=>t[n]);return Dr.phase1_centre=ap(up(),r)}function*ph(e){let t=[fp(),ch(),up()],r=[gh(),Xc(),Xc()];yield*mh(uh(e),t,r,15)}function*mh(e,t,r,n){let l=e.length,o=0;for(let i=0;i<l;i++)o=Math.max(o,r[i][e[i]]);for(;o<=n;)yield*gp(e,t,r,o,-1),o++}function*gp(e,t,r,n,l){let o=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 a=0;a<i;a++){if(a===l||a===l-4)continue;let f=[];f[0]=t[0][a][e[0]],f[1]=t[1][a][e[1]],f[2]=t[2][a][e[2]];let g=1;for(;e.some((u,c)=>e[c]!==f[c]);){let u=gp(f,t,r,n-1,a);for(;;){let{value:c,done:p}=u.next();if(p)break;yield[[a,g]].concat(c)}f[0]=t[0][a][f[0]],f[1]=t[1][a][f[1]],f[2]=t[2][a][f[2]],g++}}}}function a2(e){let[t,r]=Pl(10,5,3,2,0),n=Array(8).fill().map((c,p)=>Us(e,p)),l=n.indexOf(5)+8*n.indexOf(6)+8**2*n.indexOf(7),o=Array(5).fill().map((c,p)=>s2(e,p)),i=i2(o.map(([c,p])=>c+5*p).concat(o.map(([c,p])=>c+5*(p^1)))),s=i.slice(0,5).map(c=>c%5),a=i.slice(0,5).map(c=>c/5|0),f=Sn(s)*8+(a[0]^a[2])+2*(a[0]^a[3])+4*a[4],[g,u]=[vn,zl].map(c=>{let p=rt(c,Bh).map(L=>Lh[e[L]]);return r[p.reduce((L,m,d)=>L|m<<2*d,0)]});return mp(),dp(),[g,u,Bp[f]+40*pp[l]]}function*xs(e){yield*Fh(a2(e),30)}function cp(){if(K.phase2_centre)return K.phase2_centre;let e=Cl(10,5,3,2,0,Un.slice(0,4).map(r=>xn(r.ap,Jc))),t=Cl(10,5,3,2,0,Un.slice(0,4).map(r=>xn(r.bp,Jc)));return K.phase2_centre=[e,t]}function mp(){if(K.phase2_edge)return K.phase2_edge;let e=ip(Un.slice(0,4).map(n=>n.ep.slice(0,8))),t=bn(e,bn(e,e)),r;return[r,pp]=ih(t,501),K.phase2_edge=r}function Lp(){if(K.phase2_corner)return K.phase2_corner;let t=Io(5)/2*8,r=[!0,!0,!0,!0,!0,!1,!0,!0,!0,!0,!0,!1],n=Array(4).fill().map(()=>new Uint32Array(t)),l=Un.slice(0,4).map(o=>i2(xn(o.cp,r)));for(let o=0;o<t;o++){let i=l2(o>>3,5),s=[0,0,o&1,o>>1&1,o>>2&1];s[1]=s[2]^s[3]^s[4];let a=Array(10);for(let f=0;f<5;f++)a[f]=i[f]+5*s[f],a[f+5]=i[f]+5*(s[f]^1);for(let f=0;f<4;f++){let g=rt(l[f],a),u=g.slice(0,5).map(L=>L%5),c=g.slice(0,5).map(L=>L/5|0),p=(c[0]^c[2])+2*(c[0]^c[3])+4*c[4];n[f][o]=Sn(u)*8+p}}return K.phase2_corner=n}function dp(){return K.phase2_corner_compact||([K.phase2_corner_compact,Bp]=sh(Lp(),hh())),K.phase2_corner_compact}function f2(){if(K.phase2_ce)return K.phase2_ce;let e=dp(),t=mp();return K.phase2_ce=bn(e,t)}function dh(){if(Y0)return Y0;let e=a2(To)[2];return Y0=sp(f2(),e,e)}function Rh(){let[e,t]=Pl(10,5,3,2,0);return e.filter(r=>(r>>10&63)===41).map(r=>t[r])}function hh(){let e=Lp(),t=e[0].length,r=Array(t).fill(!1);r[0]=!0;let n=!1;for(;!n;){n=!0;for(let l=0;l<t;l++)r[l]&&(r[e[0][l]]||(n=!1,r[e[0][l]]=!0),r[e[1][l]]||(n=!1,r[e[1][l]]=!0))}return r.map((l,o)=>o).filter(l=>r[l])}function Dh(){if(Dr.phase2_ace)return Dr.phase2_ace;let[e,t]=cp(),r=f2(),n=2520,l=40*336,o=n*l,i=a2(To)[2],s=9,a=new Int8Array(o).fill(s);for(let f of Rh())a[f+n*i]=0;for(let f=0;f<s-1;f++)for(let g=a.indexOf(f);g!==-1;g=a.indexOf(f,g+1)){let u=g%n,c=g/n|0;for(let p=0;p<4;p++){let L=e[p][u],m=r[p][c],d=L+n*m;a[d]===s&&(a[d]=f+1),L=e[p][L],m=r[p][m],d=L+n*m,a[d]===s&&(a[d]=f+1)}}return Dr.phase2_ace=a}function*Fh(e,t){let[r,n]=cp(),l=f2(),o=Dh(),i=dh(),[s,a,f]=e,g=i[f],u=Math.max(o[s+2520*f],o[a+2520*g]);for(;u<=t;)yield*Rp(s,a,f,r,n,l,o,i,u,-1),u++}function*Rp(e,t,r,n,l,o,i,s,a,f){let g=Math.max(i[e+2520*r],i[t+2520*s[r]]);if(!(g>a)){if(a===0){yield[];return}else if(g===0)return;for(let u=0;u<4;u++){if(u===f)continue;let c=e,p=t,L=r;for(let m=1;m<=2;m++){c=n[u][c],p=l[u][p],L=o[u][L];let d=Rp(c,p,L,n,l,o,i,s,a-1,u);for(;;){let{value:D,done:F}=d.next();if(F)break;yield[[u,m]].concat(D)}}}}}function bs(e){let[t,r]=Pl(7,3,2,0,2),n=Array(5).fill().map((f,g)=>Us(e,g)),l=Sn(n),o=Array(4).fill().map((f,g)=>s2(e,g)),i=Sn(o.map(f=>f[0]))*2+o.find(f=>f[0]===0)[1],[s,a]=[vn,zl].map(f=>{let g=rt(f,yh).map(u=>e[u]%4);return r[g.reduce((u,c,p)=>u|c<<2*p,0)]});return[s+210*a,i+24*l]}function Sh(){if(K.phase3_2gen_edge)return K.phase3_2gen_edge;let e=Io(5)/2,t=Array(Nl).fill().map(()=>new Uint32Array(e)),r=vs.map(n=>n.ep.slice(0,5));for(let n=0;n<e;n++){let l=l2(n,5);for(let o=0;o<Nl;o++)t[o][n]=Sn(rt(l,r[o]))}return K.phase3_2gen_edge=t}function xh(){if(K.phase3_2gen_corner)return K.phase3_2gen_corner;let t=Io(4)/2*2,r=[!0,!0,!0,!0,!1,!1,!0,!0,!0,!0,!1,!1],n=Array(Nl).fill().map(()=>new Uint32Array(t)),l=vs.map(o=>xn(o.cp,r).slice(0,4));for(let o=0;o<t;o+=2){let i=l2(o>>1,4),s=i.concat(i.map(a=>a+4));for(let a=0;a<Nl;a++){let f=rt(s,l[a]),g=f.map(c=>c%4),u=f.find(c=>c%4===0)>>2;n[a][o]=Sn(g)*2+u,n[a][o+1]=Sn(g)*2+(u^1)}}return K.phase3_2gen_corner=n}function Es(){return K.phase3_2gen_corneredge?K.phase3_2gen_corneredge:K.phase3_2gen_corneredge=bn(xh(),Sh())}function u2(){if(K.phase3_2gen_centre)return K.phase3_2gen_centre;let e=Cl(7,3,2,0,2,vs.map(r=>xn(r.ap,Zc))),t=Cl(7,3,2,0,2,vs.map(r=>xn(r.bp,Zc)));return K.phase3_2gen_centreA=e,K.phase3_2gen_centreB=t,K.phase3_2gen_centre=bn(e,t)}function Dp(){if($0)return $0;let e=u2(),t=K.phase3_2gen_centreA,r=Es(),n=t[0].length,l=r[0].length,o=n*l,i=25,s=Fr.map(c=>c.length),a=new Int8Array(o).fill(i),f=bs(To);a[f[0]%n+n*f[1]]=0;let g=0,u=!1;for(;!u&&g<i-1;){u=!0;let c=Array(Nl).fill().map((D,F)=>F).filter(D=>s[D]+g<i);c.sort((D,F)=>s[D]-s[F]);let p=rt(s,c),L=rt(t,c),m=rt(r,c),d=c.length;for(let D=a.indexOf(g);D!==-1;D=a.indexOf(g,D+1)){let F=D%n,S=D/n|0;for(let v=0;v<d;v++){let U=p[v],P=L[v][F],J=m[v][S],C=P+n*J;a[C]>g+U&&(u=!1,a[C]=g+U)}}g++}return $0=a}function Fp(){if(e2)return e2;let e=Es().slice(0,2),t=bs(To);return e2=sp(e,t[1],t[1])}function r2(e,t=bs(e)){let[r,n]=t,l=r%210,o=Math.floor(r/210),i=u2(),s=K.phase3_2gen_centreA,a=K.phase3_2gen_centreB,f=Es(),g=Dp(),u=Fp(),c=0;for(;;){let p=g2(l,o,n,s,a,f,g,u,c);for(let L of p)return L.map(m=>Fr[m]).flat();c++}}function Yc(e,t=bs(e)){let[r,n]=t,l=r%210,o=Math.floor(r/210),i=u2(),s=K.phase3_2gen_centreA,a=K.phase3_2gen_centreB,f=Es(),g=Dp(),u=Fp(),c=r2(e).length,p=1/0,L;for(let m=c;m<=c+0;m++){let d=g2(l,o,n,s,a,f,g,u,m);for(let D of d){let F=D.map(U=>Fr[U]).flat(),S=Ss(F),v=n2(S);v<p&&(p=v,L=S)}}return L}function vh(e){return(e-1)*(e-2)/2}function n2(e){let t=lp(e,!0).replace(/'/g,"").split(" ");return e.length+Uh(t).map(vh).reduce((r,n)=>r+n,0)}function Uh(e){if(e.length<3)return[];let t=e.length,r=[];for(let o=0;o<t-2;o++)r[o]=e[o]===e[o+2];r.push(!1);let n=-1,l=[];for(;n<t-2&&(n=r.indexOf(!0,n+1),n!==-1);){let o=r.indexOf(!1,n+1);l.push(o-n),n=o}return l}function*g2(e,t,r,n,l,o,i,s,a,f=-1){let g=i[e+210*r],u=i[t+210*s[r]],c=Math.max(g,u);if(!(c>a)){if(a===0){yield[];return}if(c!==0)for(let p=0;p<Nl;p++){if(p===f&&Ah[p]<=3)continue;let L=n[p][e],m=l[p][t],d=o[p][r],D=a-Fr[p].length;if(D<0)continue;let F=g2(L,m,d,n,l,o,i,s,D,p);for(;;){let{value:S,done:v}=F.next();if(v)break;yield[p].concat(S)}}}}function bh(e,t=200,r=24){let n=[],l=xs(e),o=rt(e,er).map(a=>a^1),i=xs(o),s=Array(1e3);for(let a=0;a<t;a++){{let{value:f,done:g}=l.next();if(!g){let u=qr(e,f),c=f.concat(r2(u));if(c.length<=r)return c;c.length<s.length&&(s=c)}}{let{value:f,done:g}=i.next();if(!g){let u=qr(o,f),c=f.concat(r2(u)).map(([p,L])=>[p^2,L]);if(c.length<=r)return c;c.length<s.length&&(s=c)}}}return s}function Eh(e,t=20,r=30){let n=[],l=xs(e),o=rt(e,er).map(f=>f^1),i=xs(o),s,a=1/0;for(let f=0;f<t;f++){{let{value:g,done:u}=l.next();if(!u){let c=qr(e,g),p=Ss(g.concat(Yc(c))),L=n2(p);if(L<=r)return p;L<a&&(s=p,a=L)}}{let{value:g,done:u}=i.next();if(!u){let c=qr(o,g),p=Ss(g.concat(Yc(c)));p=p.map(([m,d])=>[m^2,d]);let L=n2(p);if(L<=r)return p;L<a&&(s=p,a=L)}}}return s}function wh(){return oh()}var JS,ZS,J0,Z0,To,Oo,qR,er,YS,ys,ep,VR,HR,XR,As,JR,tp,ZR,YR,Wt,Qr,jr,vn,zl,np,nh,Un,K,Dr,fh,Lh,Bh,Jc,pp,Bp,Y0,yh,Zc,Fr,Nl,hp,vs,Ah,$0,e2,yp=A(()=>{"use strict";xt();[JS,ZS]=(()=>{let e=new Int8Array(2048),t=new Int8Array(256*8);for(let l=0;l<256;l++)for(let o=0,i=0;o<8;o++)(l>>>o&1)!==0&&(e[o<<8|l]=i,t[i<<8|l]=o,i++);function r(l){let o=255,i=2520,s=0;for(let a=0;a<6;a++){let f=l[a];s+=e[o|f<<8]*i,o&=~(1<<f),i/=7-a}return s}function n(l,o){let i=255,s=2520,a=0;for(let f=0;f<6;f++){let g=l/s|0;l-=g*s,a^=g&1;let u=t[i|g<<8];o[f]=u,i&=~(1<<u),s/=7-f}return o[6]=t[i|a<<8],o[7]=t[i|(a^1)<<8],o}return[r,n]})();J0={};Z0={};To=Array(72).fill().map((e,t)=>t/9|0),Oo=o2([[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),qR=rt(Oo,Oo),er=Array(72).fill().map((e,t)=>(t/18|0)*18+(t+9)%18),YS=Array(72).fill().map((e,t)=>(t/36|0)*36+(t+18)%36),ys=Array(72).fill().map((e,t)=>(t+36)%72),ep=Ml(ys,qR,ys),VR=Ml(er,Oo,er),HR=Ml(er,ep,er),XR=o2([[10,24,30],[11,23,34],[12,19,33],[42,48,64],[41,52,65],[37,51,66]],72),As=rt(Oo,XR),JR=rt(As,As),tp=Ml(ys,JR,ys),ZR=Ml(er,As,er),YR=Ml(er,tp,er),Wt=Array(72).fill().map((e,t)=>t/9|0),Qr=[[0,45,9,36],[4,67,22,49],[8,44,35,71],[13,58,31,40],[17,53,26,62],[18,63,27,54]],jr=[[1,46],[3,39],[6,69],[10,37],[33,42],[12,48],[15,60],[24,51],[19,64],[28,55],[30,66],[21,57]],vn=Array(12).fill().map((e,t)=>(t/3|0)*9+[2,5,7][t%3]),zl=vn.map(e=>e+36);np=[Oo,ep,VR,HR,As,tp,ZR,YR],nh=["U","L","F","R","u","l","f","r"],Un=np.map(rp);K={},Dr={},fh=[0,0,2,3,0,0,2,3];Lh=[0,1,2,0,0,1,2,0],Bh=[0,1,2,3,4,5,7,8,10,11],Jc=[!0,!0,!0,!0,!0,!0,!1,!0,!0,!1,!0,!0];yh=[0,1,2,3,4,10,11],Zc=[!0,!0,!0,!0,!0,!1,!1,!1,!1,!1,!0,!0],Fr=[[[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]]];Fr=Fr.concat(Fr.map(e=>op(e)));Nl=Fr.length,hp=Fr.map(e=>qr(o2([],72),e)),vs=hp.map(rp),Ah=hp.map(jR)});var Ap={};Lt(Ap,{randomFTOScrambleString:()=>wh});var Sp=A(()=>{"use strict";yp()});async function vp(){return kh??(kh=_h())}async function _h(){return Yt(await Oe.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
|
|
3440
3440
|
|
|
3441
3441
|
Alg T
|
|
3442
3442
|
Alg B
|
|
@@ -4055,9 +4055,9 @@ Alg BR' B U BR' R BR R' U' BR B'
|
|
|
4055
4055
|
Alg F' BL' BR R' BR BL BR' R BR' F
|
|
4056
4056
|
Alg BR L' BL BR' BL' BR' L U BR U'
|
|
4057
4057
|
Alg U BR' U' BR BL' BR BL BR'
|
|
4058
|
-
\`)}var wh,bp=A(()=>{"use strict";cr();ol();wh=null});function Wo(e){if(e<2)return e;let t=1;for(let r=2;r<=e;r++)t*=r;return t}function m2(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 _h(e){e=e.slice();let t=e.length,r=Wo(t-1),n=0;for(;t>1;){t--;let l=e[0];n+=l*r;for(let o=0;o<t;o++){let i=e[o+1];e[o]=i-(i>l)}r/=t}return n}function zh(e,t){let r=[],n=Wo(t-1);for(let l=0;l<t;l++)r[l]=e/n|0,e%=n,n/=t-1-l;for(let l=t-2;l>=0;l--)for(let o=l+1;o<t;o++)r[o]+=+(r[o]>=r[l]);return r}function Ep(e){let t=e.length,r=0;for(let n=0;n<t-1;n++)for(let l=n;l<t;l++)e[n]>e[l]&&(r^=1);return r}function Ch(e,t){let r=[],n=Wo(t-1)/2,l=0;for(let o=0;o<t-1;o++)r[o]=e/n|0,e%=n,n/=t-1-o;r[t-1]=0;for(let o=t-2;o>=0;o--)for(let i=o+1;i<t;i++)r[i]>=r[o]?r[i]++:l^=1;return l===1&&([r[t-2],r[t-1]]=[r[t-1],r[t-2]]),r}function wp(e){return _h(e)>>1}function kp(e){let t=e.length,r=0;for(let i=0;i<t;i++)r+=+(e[i]===1);let n=t-r;if(n===0||r===0||t===1)return 0;let l=m2(t-1,r),o=0;for(let i=0;n>0&&r>0&&t>1;i++)t--,e[i]===0?l=l*--n/t:(o+=l,l=l*r--/t);return o}function Nh(e,t,r){let n=r-t,l=m2(r-1,t),o=[],i=r-1;for(let s=0;s<i;s++)r--,e<l?(o.push(0),l=l*--n/r):(o.push(1),e-=l,l=l*t--/r);return o.push(t),o}function ws(e,t){let r=[];for(let n=0;n<t.length;n++)r[n]=e[t[n]];return r}function Vr(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 Hr(e,t){let r=Array(t).fill(0);for(let n in e)r[n]=e[n];return r}function Ph(e,t){let r=Array(8).fill(0);for(let n=0;n<8;n++)r[n]=(e[1][n]+t[1][n])%3;return[ws(e[0],t[0]),r]}function qh(e){let t=["0","","'"];return e.map(([n,l])=>jh[n]+t[l]).join(" ")}function Vh(){let e=Ch(Math.floor(H(Wo(12))/2),12),t=Array(8);for(let r=0;r<8;r++)t[r]=H(3);return[e,t]}function Hh(){return Xh(Vh())}function Xh(e){let t=Jh(e),r=[zp(),Cp()],n=[Yh(),$h()],l=[Np(),e3()],o=[t3(),Zh()],i=n3(t,r,n),s,a=new Set,f=+new Date;for(let g=0;g<25;g++){let{value:u,done:c}=i.next(),p=e;for(let[S,v]of u)for(let U=0;U<v;U++)p=Ph(p,Go[S]);if(a.has(p.toString()))continue;a.add(p.toString());let L=wp(p[0].slice(0,8)),m=0;for(let S=0;S<4;S++)m+=p[1][S]*3**S;let d=[L,m],D=s?s.length-u.length-1:999999,F=r3(d,l,o,D);if(F!==void 0&&((s===void 0||s.length>u.length+F.length)&&(s=u.concat(F)),new Date-f>300))break}return s}function Jh(e){let t=0;for(let o=0;o<4;o++)t+=e[0].indexOf(o+8)*12**o;let r=0;for(let o=0;o<4;o++)r+=e[1][o+4]*3**o;let n=e[0].map(o=>Math.max(-1,o-8)),l=kp(n.map(o=>+(o>=0)))*2+Ep(n.filter(o=>o>=0));return[t,r+81*l]}function _p(){if(de.phase1cm)return de.phase1cm;let e=[];for(let t=0;t<81;t++){e[t]=Array(8);let r=[t%3,Math.floor(t/3)%3,Math.floor(t/9)%3,Math.floor(t/27)];e[t][0]=e[t][1]=e[t][2]=e[t][3]=t;for(let n=0;n<4;n++)r[n]=(r[n]+2)%3,e[t][4+n]=r[0]+r[1]*3+r[2]*9+r[3]*27,r[n]=(r[n]+1)%3}return de.phase1cm=e}function Zh(){if(de.phase1cp)return de.phase1cp;let e=Array(81);for(let t=0;t<81;t++){let r=[t%3,Math.floor(t/3)%3,Math.floor(t/9)%3,Math.floor(t/27)];e[t]=(r[0]!==0)+(r[1]!==0)+(r[2]!==0)+(r[3]!==0)}return de.phase1cp=e}function zp(){if(de.phase1em)return de.phase1em;let e=[];for(let r=0;r<12;r++){e[r]=[];for(let n=0;n<8;n++)e[r][n]=Go[n][0].indexOf(r)}let t=Array(12**4);for(let r=0;r<12**4;r++){t[r]=Array(8);for(let n=0;n<8;n++){let l=0;for(let o=0;o<4;o++)l+=e[Math.floor(r/12**o)%12][n]*12**o;t[r][n]=l}}return de.phase1em=t}function Yh(){return de.phase1ep?de.phase1ep:de.phase1ep=L2(zp(),[8+12*(9+12*(10+12*11))])}function Cp(){if(de.phase1sm)return de.phase1sm;let e=m2(12,4),t=[];for(let l=0;l<e;l++){t[l]=[];let o=Nh(l,4,12),i=[];for(let s=0,a=0;s<12;s++)o[s]===0?i[s]=-1:i[s]=a++;for(let s=0;s<8;s++){let a=ws(i,Go[s][0]),f=ws(o,Go[s][0]),g=Ep(a.filter(u=>u>=0));t[l][s]=kp(f)*2+g}}let r=_p(),n=[];for(let l=0;l<e;l++)for(let o=0;o<81;o++){let i=n[o+81*(2*l)]=[],s=n[o+81*(2*l+1)]=[];for(let a=0;a<8;a++)i[a]=r[o][a]+81*t[l][a],s[a]=r[o][a]+81*(t[l][a]^1)}return de.phase1sm=n}function $h(){return de.phase1sp?de.phase1sp:de.phase1sp=L2(Cp(),[0])}function e3(){if(de.phase2cm)return de.phase2cm;let e=_p(),t=Array(81);for(let r=0;r<81;r++)t[r]=e[r].slice(4,8);return de.phase2cm=t}function Np(){if(de.phase2em)return de.phase2em;let e=8,t=Wo(e)/2,r=Array(t),n=[0,1,2,3,4,5,6,7];for(let l=0;l<t;l++){r[l]=Array(4);for(let i=0;i<4;i++){let s=ws(n,Go[i][0].slice(0,8));r[l][i]=wp(s)}if(l===t-1)break;let o=0;do for(let i=e-2;i>=0;i--){if(n[i]>n[i+1])continue;let s=i+1;for(let a=s;a<e;a++)n[a]>n[i]&&(s=a);[n[i],n[s]]=[n[s],n[i]],o^=1;for(let a=0;i+1+a<e-1-a;a++,o^=1)[n[i+1+a],n[e-1-a]]=[n[e-1-a],n[i+1+a]];break}while(o!==0)}return de.phase2em=r}function t3(){return de.phase2ep?de.phase2ep:de.phase2ep=L2(Np(),[0])}function L2(e,t){let r=e.length,n=e[0].length,l=Array(r).fill(-1),o=t.slice(),i=[],s=0;for(;o.length>0;){i.length=0;for(let a of o)if(l[a]===-1){l[a]=s;for(let f=0;f<n;f++){let g=e[a][f];for(;g!==a;)i.push(g),g=e[g][f]}}[o,i]=[i,o],s+=1}return l}function r3(e,t,r,n){n=n||999999;let l=e.length,o=0;for(let i=0;i<l;i++)o=Math.max(o,r[i][e[i]]);for(;o<=n;){let i=Pp(e,t,r,o,-1);if(i!==void 0)return i;o++}}function Pp(e,t,r,n,l){let o=e.length,i=t[0][0].length,s=0;for(let a=0;a<o;a++)s=Math.max(s,r[a][e[a]]);if(!(s>n)){if(n===0)return[];if(!(s===0&&n===1))for(let a=0;a<i;a++){if(a===l||a<l&&ks[a]===ks[l])continue;let f=e.slice();for(let u=0;u<o;u++)f[u]=t[u][e[u]][a];let g=1;for(;e.some((u,c)=>e[c]!==f[c]);){let u=Pp(f,t,r,n-1,a);if(u!==void 0)return[[a,g]].concat(u);for(let c=0;c<o;c++)f[c]=t[c][f[c]][a];g++}}}}function*n3(e,t,r){let n=e.length,l=0;for(let o=0;o<n;o++)l=Math.max(l,r[o][e[o]]);for(;;)yield*Mp(e,t,r,l,-1),l++}function*Mp(e,t,r,n,l){let o=e.length,i=t[0][0].length,s=0;for(let a=0;a<o;a++)s=Math.max(s,r[a][e[a]]);if(!(s>n)){if(n===0){yield[];return}if(!(s===0&&n===1))for(let a=0;a<i;a++){if(a===l||a<l&&ks[a]===ks[l])continue;let f=e.slice();for(let u=0;u<o;u++)f[u]=t[u][e[u]][a];let g=1;for(;e.some((u,c)=>e[c]!==f[c]);){let u=Mp(f,t,r,n-1,a);for(;;){let{value:c,done:p}=u.next();if(p)break;yield[[a,g]].concat(c)}for(let c=0;c<o;c++)f[c]=t[c][f[c]][a];g++}}}}async function Op(){return new E(qh(Hh()))}var Mh,Oh,Ih,Th,Gh,Wh,Kh,Qh,px,Go,jh,ks,de,Ip=A(()=>{"use strict";fe();xt();Mh=[Vr([0,1,4],12),Hr({0:2},8)],Oh=[Vr([1,2,5],12),Hr({1:2},8)],Ih=[Vr([2,3,6],12),Hr({2:2},8)],Th=[Vr([3,0,7],12),Hr({3:2},8)],Gh=[Vr([9,8,4],12),Hr({4:2},8)],Wh=[Vr([10,9,5],12),Hr({5:2},8)],Kh=[Vr([11,10,6],12),Hr({6:2},8)],Qh=[Vr([8,11,7],12),Hr({7:2},8)],px=[zh(0,12),Array(8).fill(0)],Go=[Mh,Oh,Ih,Th,Gh,Wh,Kh,Qh],jh=["UL","U","UR","F","L","B","R","D"],ks=[0,1,0,1,1,0,1,0];de={}});var B2={};Lt(B2,{getRandomRediCubeScramble:()=>Op,sgsDataFTO:()=>Up});var d2=A(()=>{"use strict";bp();Ip()});function Gp(e){if(e<2)return e;let t=1;for(let r=2;r<=e;r++)t*=r;return t}function zs(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 l3(e){e=e.slice();let t=e.length,r=Gp(t-1),n=0;for(;t>1;){t--;let l=e[0];n+=l*r;for(let o=0;o<t;o++){let i=e[o+1];e[o]=i-(i>l)}r/=t}return n}function o3(e){let t=e.length,r=0;for(let n=0;n<t-1;n++)for(let l=n;l<t;l++)e[n]>e[l]&&(r^=1);return r}function i3(e){return l3(e)>>1}function D2(e){let t=e.length,r=0;for(let i=0;i<t;i++)r+=+(e[i]===1);let n=t-r;if(n===0||r===0||t===1)return 0;let l=zs(t-1,r),o=0;for(let i=0;n>0&&r>0&&t>1;i++)t--,e[i]===0?l=l*--n/t:(o+=l,l=l*r--/t);return o}function f3(e,t,r){let n=r-t,l=zs(r-1,t),o=[],i=r-1;for(let s=0;s<i;s++)r--,e<l?(o.push(0),l=l*--n/r):(o.push(1),e-=l,l=l*t--/r);return o.push(t),o}function rr(e,t){let r=[];for(let n=0;n<t.length;n++)r[n]=e[t[n]];return r}function F2(e,t){let r=rr(e[0],t[0]),n=[],l=t[0].length;for(let o=0;o<l;o++)n[o]=(e[1][t[0][o]]+t[1][o])%3;return[r,n]}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 Xr(e,t){let r=Array(t).fill(0);for(let n in e)r[n]=e[n];return r}function L3(){let e=[0];for(let r=1;r<20;r++){let n=H(r+1);e[r]=e[n],e[n]=r}o3(e)===1&&([e[0],e[1]]=[e[1],e[0]]);let t=Array(20).fill(0);for(let r=0;r<19;r++)t[r]=H(3),t[19]+=3-t[r];return t[19]%=3,[e,t]}function B3(e){let t=["0","","2","2'","'"];return e.map(([n,l])=>p3[n]+t[l]).join(" ")}function d3(e,t){for(let[r,n]of t)for(let l=0;l<n;l++)e=F2(e,En[r]);return e}function R3(){return U3(L3())}function D3(e){let t=e[0];if(t.slice(15,20).every(o=>o<15))return[];if(t.slice(0,5).every(o=>o<15))return[[6,1]];let r=t.map(o=>o>=15),n=0,l;for(;l===void 0;)n++,l=jp(r,n,-1);return l.push([6,1]),l}function jp(e,t,r){if(t===0)return e.slice(0,5).some(n=>n)?void 0:[];for(let n=0;n<6;n++)if(n!==r)for(let l=1;l<5;l++){let o=rr(e,_s[n][l][0]),i=jp(o,t-1,n);if(i!==void 0)return[[n,l]].concat(i)}}function F3(e){let t=e[0].slice(0,15),r=e[1],n=D2(t.map(i=>+(i>=15))),l=243*n;for(let i=0,s=0;i<15;i++)t[i]<15||(l+=r[i]*Math.pow(3,s),s++);let o=0;for(let i=0;i<5;i++)o+=t.indexOf(15+i)*Math.pow(15,i);return[l,o]}function y3(e){let t=[Cs(),Ns()],r=[b3(),w3()];return qp(F3(e),t,r).concat([[6,1]])}function A3(e){let t=[5,6,7,8,14],r=e[0].slice(0,15),n=e[1],l=D2(r.map(s=>+(t.indexOf(s)!==-1))),o=243*l;for(let s=0,a=0;s<15;s++)t.indexOf(r[s])!==-1&&(o+=n[s]*Math.pow(3,a),a++);let i=0;for(let s=0;s<5;s++)i+=r.indexOf(t[s])*Math.pow(15,s);return[o,i]}function S3(e){let t=[Cs(),Ns()],r=[E3(),k3()];return qp(A3(e),t,r)}function x3(e){let t=e[0].slice(0,14),r=e[1],n=0,l=[],o=0;for(let i of[0,1,2,3,4,9,10,11,12,13])i!==13&&(n+=r[i]*Math.pow(3,o)),l[o]=t[i]<5?t[i]:t[i]-4,o++;return[n,i3(l)]}function v3(e){return P3(x3(e))}function U3(e){let t=[];for(let r of[D3,y3,S3,v3]){let n=r(e);e=d3(e,n),t=t.concat(n)}return t}function Cs(){if(oe.phase23om)return oe.phase23om;let e=zs(15,5),t=[1,3,9,27,81,243],r=Array(zs(15,5)*t[5]);oe.phase23om=r;for(let n=0;n<e;n++){let l=f3(n,5,15).concat(Array(5).fill(0)),o=[];for(let i=0;i<6;i++){let s=rr(l,En[i][0]).slice(0,15);o[i]=D2(s)}for(let i=0;i<t[5];i++){r[i+243*n]=[];let s=[];for(let a=0,f=0;a<20;a++)l[a]===1?(s[a]=(i/t[f]|0)%3,f++):s[a]=99;for(let a=0;a<6;a++){let f=En[a],g=[];for(let p=0;p<15;p++)g[p]=s[f[0][p]]+f[1][p];let u=g.filter(p=>p<10),c=0;for(let p=0;p<5;p++)c+=u[p]%3*t[p];r[i+243*n][a]=c+243*o[a]}}}return r}function b3(){if(oe.phase2op)return oe.phase2op;let e=Cs();return oe.phase2op=Il(e,[243*3002])}function E3(){if(oe.phase3op)return oe.phase3op;let e=Cs();return oe.phase3op=Il(e,[243*246])}function Ns(){if(oe.phase23pm)return oe.phase23pm;let e=[1,15,225,Math.pow(15,3),Math.pow(15,4),Math.pow(15,5)],t=Array(e[5]),r=Array(15);for(let l=0;l<15;l++){r[l]=Array(6);for(let o=0;o<6;o++)r[l][o]=En[o][0].indexOf(l)}let n=[0,0,0,0,0];for(let l=0;l<e[5];l++){t[l]=Array(6);for(let o=0;o<6;o++){let i=0;for(let s=0;s<5;s++)i+=r[n[s]][o]*e[s];t[l][o]=i}n[0]++;for(let o=0;o<4;o++)n[o]===15&&(n[o]=0,n[o+1]++)}return oe.phase23pm=t}function w3(){if(oe.phase2pp)return oe.phase2pp;let e=Ns();return oe.phase2pp=Il(e,[213090])}function k3(){if(oe.phase3pp)return oe.phase3pp;let e=Ns();return oe.phase3pp=Il(e,[737420])}function y2(){if(oe.phase4om)return oe.phase4om;let e=[1,3,9,27,81,243,729,2187,6561,19683,59049],t=Array(e[9]);for(let r=0;r<e[9];r++){let n=Array(14).fill(0);for(let l=0;l<9;l++){let o=l<5?l:l+4;n[o]=(r/e[l]|0)%3,n[13]-=n[o]}n[13]=(n[13]+999)%3,t[r]=[];for(let l=0;l<3;l++){let o=En[l],i=[0,1,2,3,4,9,10,11,12,13].map(a=>n[o[0][a]]+o[1][a]),s=0;for(let a=0;a<9;a++)s+=i[a]%3*e[a];t[r][l]=s}}return oe.phase4om=t}function A2(){if(oe.phase4pm)return oe.phase4pm;let e=Gp(10)/2,t=10,r=[0,1,2,3,4,-1,-1,-1,-1,5,6,7,8,9],n=[0,1,2,3,4,9,10,11,12,13],l=[rr(r,rr(Wp[0],n)),rr(r,rr(Kp[0],n)),rr(r,rr(Qp[0],n))],o=Array(e),i=Array(10);for(let s=0;s<e;s++){a3(s,i),o[s]=[];for(let a=0;a<3;a++){let f=rr(i,l[a]);o[s][a]=s3(f)}}return oe.phase4pm=o}function _3(){if(oe.phase4op)return oe.phase4op;let e=y2();return oe.phase4op=Il(e,[0])}function z3(){if(oe.phase4pp)return oe.phase4pp;let e=A2();return oe.phase4pp=Il(e,[0])}function C3(e){if(oe.phase4np_list&&oe.phase4np_list.threshold===e)return oe.phase4np_list;let t=[y2(),A2()],r=Math.pow(3,9),n=[0];l(e,[0,0],-1);function l(s,a,f){if(n.push(a[0]+r*a[1]),s===0)return;let g=[];for(let u=0;u<3;u++)if(u!==f){g[0]=a[0],g[1]=a[1];for(let c=1;c<5;c++)g[0]=t[0][g[0]][u],g[1]=t[1][g[1]][u],l(s-1,g,u)}}n.sort((s,a)=>s-a);let o=[],i=-1;for(let s of n)s!==i&&o.push(i=s);return o.threshold=e,oe.phase4np_list=o}function N3(e,t){let r=0,n=e.length-1;for(;n-r>1;){let l=r+n>>1;t>e[l]?r=l+1:n=l}return t===e[r]||t===e[n]}function Il(e,t){let r=e.length,n=e[0].length,l=Array(r).fill(-1);for(let s of t)l[s]=0;let o=0,i=!1;for(;!i;){i=!0;for(let s=0;s<r;s++)if(l[s]===o)for(let a=0;a<n;a++){let f=e[s][a];for(;f!==s;)l[f]===-1&&(i=!1,l[f]=o+1),f=e[f][a]}o++}return l}function qp(e,t,r){let n=e.length,l=0;for(let o=0;o<n;o++)l=Math.max(l,r[o][e[o]]);for(;;){let o=Vp(e,t,r,l,-1);if(o!==void 0)return o;l++}}function Vp(e,t,r,n,l){let o=e.length,i=t[0][0].length,s=0;for(let a=0;a<o;a++)s=Math.max(s,r[a][e[a]]);if(!(s>n)){if(n===0||s===0)return[];for(let a=0;a<i;a++){if(a===l)continue;let f=e.slice();for(let u=0;u<o;u++)f[u]=t[u][e[u]][a];let g=1;for(;e.some((u,c)=>e[c]!==f[c]);){let u=Vp(f,t,r,n-1,a);if(u!==void 0)return[[a,g]].concat(u);for(let c=0;c<o;c++)f[c]=t[c][f[c]][a];g++}}}}function P3(e){let t=y2(),r=A2(),n=_3(),l=z3(),o=C3(R2),i=Math.max(n[e[0]],l[e[1]]);for(;;){let s=Hp(e,i,-1,t,r,n,l,o);if(s!==void 0)return s;i++}}function Hp(e,t,r,n,l,o,i,s){let a=Math.max(o[e[0]],i[e[1]]);if(!(a>t)&&(a<=R2&&!N3(s,e[0]+19683*e[1])&&(a=R2+1),!(a>t))){if(t===0||a===0)return[];for(let f=0;f<3;f++){if(f===r)continue;let g=e.slice();for(let u=1;u<5;u++){g[0]=n[g[0]][f],g[1]=l[g[1]][f];let c=Hp(g,t-1,f,n,l,o,i,s);if(c!==void 0)return[[f,u]].concat(c)}}}}function M3(){return new E(B3(R3()))}var R2,s3,a3,Wp,Kp,Qp,u3,g3,c3,h2,Ux,En,p3,m3,_s,h3,oe,Xp=A(()=>{"use strict";fe();xt();R2=7;[s3,a3]=(()=>{let e=new Int8Array(10240),t=new Int8Array(1024*10);for(let l=0;l<1024;l++)for(let o=0,i=0;o<10;o++)(l>>>o&1)!==0&&(e[o<<10|l]=i,t[i<<10|l]=o,i++);function r(l){let o=1023,i=181440,s=0;for(let a=0;a<8;a++){let f=l[a];s+=e[o|f<<10]*i,o&=~(1<<f),i/=9-a}return s}function n(l,o){let i=1023,s=181440,a=0;for(let f=0;f<8;f++){let g=l/s|0;l-=g*s,a^=g&1;let u=t[i|g<<10];o[f]=u,i&=~(1<<u),s/=9-f}return o[8]=t[i|a<<10],o[9]=t[i|(a^1)<<10],o}return[r,n]})();Wp=[Ol([0,1,2,3,4],20),Xr({},20)],Kp=[Ol([4,3,11,12,13],20),Xr({4:2,3:1,11:1,12:1,13:1},20)],Qp=[Ol([3,2,9,10,11],20),Xr({3:2,2:1,9:1,10:1,11:1},20)],u3=[Ol([2,1,7,8,9],20),Xr({2:2,1:1,7:1,8:1,9:1},20)],g3=[Ol([1,0,5,6,7],20),Xr({1:2,0:1,5:1,6:1,7:1},20)],c3=[Ol([0,4,13,14,5],20),Xr({0:2,4:1,13:1,14:1,5:1},20)],h2=[[15,16,17,18,19,10,9,8,7,6,5,14,13,12,11,0,1,2,3,4],Xr({},20)],Ux=[[1,2,3,4,0,7,8,9,10,11,12,13,14,5,6,19,15,16,17,18],Xr({},20)],En=[Wp,Kp,Qp,u3,g3,c3,h2],p3=["U","R","F","L","BL","BR","x2"],m3=F2(h2,h2),_s=[];for(let e=0;e<En.length;e++){_s[e]=[m3];for(let t=1;t<5;t++)_s[e][t]=F2(_s[e][t-1],En[e])}{let e=Math.sin(Math.PI/5),t=Math.cos(Math.PI/10),r=Math.cos(Math.PI/5),n=Math.sin(Math.PI/10);h3={U:[0,0],L:[-e-t,r-n],F:[0,2*r],R:[e+t,r-n],BR:[t,-1-n],BL:[-t,-1-n],DBR:[2*e+2*t,0],DB:[3*e+3*t,-r-n],DBL:[4*e+4*t,0],DFL:[3*e+4*t,1+r],DFR:[3*e+2*t,1+r],D:[3*e+3*t,r-n]}}oe={}});var Jp={};Lt(Jp,{getRandomKilominxScramble:()=>M3});var Zp=A(()=>{"use strict";Xp()});function Ko(e){if(e<2)return e;let t=1;for(let r=2;r<=e;r++)t*=r;return t}function kn(e){let t=Array(e);for(let r=0;r<e;r++)t[r]=r;return t}function O3(e){e=e.slice();let t=e.length,r=Ko(t-1),n=0;for(;t>1;){t--;let l=e[0];n+=l*r;for(let o=0;o<t;o++){let i=e[o+1];e[o]=i-(i>l)}r/=t}return n}function Ps(e,t){let r=[],n=Ko(t-1)/2,l=0;for(let o=0;o<t-1;o++)r[o]=e/n|0,e%=n,n/=t-1-o;r[t-1]=0;for(let o=t-2;o>=0;o--)for(let i=o+1;i<t;i++)r[i]>=r[o]?r[i]++:l^=1;return l===1&&([r[t-2],r[t-1]]=[r[t-1],r[t-2]]),r}function tm(e){return O3(e)>>1}function wn(e,t){let r=[];for(let n=0;n<t.length;n++)r[n]=e[t[n]];return r}function x2(e){let t=[];for(let r=0;r<e.length;r++)t[e[r]]=r;return t}function Qo(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 Jr(e,t){return e.length===0?kn(t):e.map(r=>Qo(r,t)).reduce(wn)}function I3(e,t){let r=Array(4);for(let i=0;i<4;i++)r[i]=(e.co[i]+t.co[i])%3;let n=wn(e.mp,t.mp),l=wn(e.wp,t.wp),o=wn(e.cp,t.cp);return{co:r,mp:n,wp:l,cp:o}}function rm(e,t){return e>=4&&t>=4?!0:e<4&&t<4?e===t:(e^t)===4}function X3(e){let t=["0","","'"];return e.map(([n,l])=>H3[n]+t[l]).join(" ")}function J3(){let e=Array(4);for(let l=0;l<4;l++)e[l]=H(3);let t=Ps(H(Ko(6)/2),6);for(let l=0,o=0;l<6;l++){let i=l===5?o:H(2);o^=i,t[l]+=i*6,t[l+6]=(t[l]+6)%12}let r=Ps(H(Ko(12)/2),12),n=Ps(H(Ko(4)/2),4);return{co:e,mp:t,wp:r,cp:n}}function Z3(){return $3(J3(H))}function Y3(e=!0,t=!1){let r=X3(Z3());if(!e)return r;let n=["u","l","r","b"],l=["0","","'"];if(!t){for(let u=0;u<4;u++){let c=H(3);c!==0&&(r+=\` \${n[u]}\${l[c]}\`)}return r.trim()}let o=[],i=[],s=[];for(let u=0;u<4;u++)o[u]=H(3),i[u]=H(3),s[u]=(o[u]-i[u]+3)%3;let a=u=>u.filter(c=>c!==0).length;for(;!(a(i)>=1&&a(s)>=1&&a(i)+a(s)>=4);)for(let u=0;u<4;u++)i[u]=H(3),s[u]=(o[u]-i[u]+3)%3;let f=i.map((u,c)=>u!==0?\`\${n[c]}\${l[u]} \`:"").join(""),g=s.map((u,c)=>u!==0?\` \${n[c]}\${l[u]}\`:"").join("");return f+r+g}function $3(e){let t=tD(e),r=[sm(),am()],n=[sD(),aD()],l=lD(t),o,i=new Set,s=performance.now();for(let a=0;a<22;a++){let{value:f,done:g}=l.next(),u=e;for(let[d,D]of f)for(let F=0;F<D;F++)u=I3(u,Tl[d]);let c=JSON.stringify(u);if(i.has(c))continue;i.add(c);let p=oD(u),L=o?o.length-f.length-1:999999,m=fD(p,r,n,L).next().value;if(m!==void 0&&((o===void 0||o.length>f.length+m.length)&&(o=f.concat(m)),performance.now()-s>300))break}return o}function eD(e){return e[3^e.indexOf(3)]}function tD(e){let t=wn(x2(e.mp),e.wp),r=(e.co.reduce((n,l)=>n+l)-eD(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*lD(e){let t=0,r=im(),n=iD();for(;;)yield*lm(...e,r,n,t,-1),t++}function*lm(e,t,r,n,l,o,i,s,a,f){let g=_n,u=yr[e]+yr[t]+yr[r]+yr[n]+yr[l]+yr[o],c=Math.max(s[e%864+t*864],s[r%864+t*864],s[l%864+t*864],s[e%864+n*864],s[r%864+n*864],s[l%864+n*864],s[e%864+o*864],s[r%864+o*864],s[l%864+o*864],s[e%864+r*864],s[e%864+l*864],s[r%864+l*864],s[t%864+n*864],s[t%864+o*864],s[n%864+o*864],U2[u]);if(!(c>a)){if(a===0){yield[];return}if(!(c===0&&a===1))for(let p=0;p<g;p++){if(p===f||p<f&&rm(p,f))continue;let L=e,m=t,d=r,D=n,F=l,S=o;for(let v=1;v<=2;v++){L=i[L][p],m=i[m][p],d=i[d][p],D=i[D][p],F=i[F][p],S=i[S][p];let U=lm(L,m,d,D,F,S,i,s,a-1,p);for(;;){let{value:P,done:Z}=U.next();if(Z)break;yield[[p,v]].concat(P)}}}}}function oD(e){let t=e.mp,r=tm(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),l=e.co.map((i,s)=>i*3**s).reduce((i,s)=>i+s),o=e.cp.indexOf(0);return[r+360*o,n+32*l]}function om(){if(we.phase1pm)return we.phase1pm;let e=Array(6*12*12).fill().map(()=>Array(_n).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 l=t+6*r+72*n;for(let o=0;o<_n;o++){let i=nm[o][t],s=v2[o][r],a=v2[o][n];i<6?e[l][o]=i+6*s+72*a:e[l][o]=i-6+6*a+72*s}}return we.phase1pm=e}function im(){if(we.phase1pcm)return we.phase1pcm;let e=om(),t=Array(e.length*3).fill().map(()=>Array(_n).fill(-1));for(let r=0;r<e.length;r++)for(let n=0;n<_n;n++){let l=e[r][n];t[r][n]=l+6*12*12*S2[n],t[r+6*12*12][n]=l+6*12*12*((S2[n]+1)%3),t[r+2*6*12*12][n]=l+6*12*12*((S2[n]+2)%3)}return we.phase1pcm=t}function iD(){if(we.phase1p2cp)return we.phase1p2cp;let e=om(),t=im(),r=new Int8Array((6*12*12)**2*3);r.fill(-1);let n=[0,1,2,3,4,5].map(o=>o+6*o+72*(o+6));for(let o=0;o<6;o++)for(let i=0;i<6;i++)o!==i&&(r[n[o]+864*n[i]]=0);let l=0;for(;;){let o=!1;for(let i=0;i<r.length;i++){if(r[i]!==l)continue;let s=i%864,a=Math.floor(i/864);for(let f=0;f<_n;f++){let g=s,u=a;for(let c=1;c<=2;c++){g=e[g][f],u=t[u][f];let p=g+864*u;r[p]===-1&&(o=!0,r[p]=l+1)}}}if(!o)break;l++}return we.phase1p2cp=r}function sm(){if(we.phase2pm)return we.phase2pm;let e=Array(1440).fill().map(()=>Array(Ms));for(let t=0;t<360;t++){let r=Ps(t,6);for(let n=0;n<6;n++)r[n+6]=r[n]+6;for(let n=0;n<Ms;n++){let l=wn(r,Tl[n].mp),o=tm(l.slice(0,6).map(i=>i%6));for(let i=0;i<4;i++){let s=Tl[n].cp[i];e[t+360*s][n]=o+360*i}}}return we.phase2pm=e}function am(){if(we.phase2om)return we.phase2om;let e=Array(32*81).fill().map(()=>Array(Ms));for(let t=0;t<32;t++){let r=[0,1,2,3,4].map(l=>t>>l&1);r[5]=r.reduce((l,o)=>l^o);let n=[];for(let l=0;l<6;l++)n[l]=l+6*r[l],n[l+6]=l+6*(r[l]^1);for(let l=0;l<81;l++){let o=[0,1,2,3].map(i=>Math.floor(l/3**i)%3);for(let i=0;i<Ms;i++){let a=wn(n,Tl[i].mp).slice(0,5).map(c=>+(c>=6)),f=0;for(let c=0;c<5;c++)f+=a[c]<<c;let g=o.map((c,p)=>(c+Tl[i].co[p])%3),u=0;for(let c=0;c<4;c++)u+=g[c]*3**c;e[t+32*l][i]=f+32*u}}}return we.phase2om=e}function sD(){return we.phase2pp?we.phase2pp:we.phase2pp=fm(sm(),[0])}function aD(){return we.phase2op?we.phase2op:we.phase2op=fm(am(),[0])}function fm(e,t){let r=e.length,n=e[0].length,l=Array(r).fill(-1),o=t.slice(),i=[],s=0;for(;o.length>0;){i.length=0;for(let a of o)if(l[a]===-1){l[a]=s;for(let f=0;f<n;f++){let g=e[a][f];for(;g!==a;)i.push(g),g=e[g][f]}}[o,i]=[i,o],s+=1}return l}function*fD(e,t,r,n){let l=e.length,o=0;for(let i=0;i<l;i++)o=Math.max(o,r[i][e[i]]);for(;o<=n;)yield*um(e,t,r,o,-1),o++}function*um(e,t,r,n,l){let o=e.length,i=t[0][0].length,s=0;for(let a=0;a<o;a++)s=Math.max(s,r[a][e[a]]);if(!(s>n)){if(n===0){yield[];return}if(!(s===0&&n===1))for(let a=0;a<i;a++){if(a===l||a<l&&rm(a,l))continue;let f=e.slice();for(let u=0;u<o;u++)f[u]=t[u][e[u]][a];let g=1;for(;e.some((u,c)=>e[c]!==f[c]);){let u=um(f,t,r,n-1,a);for(;;){let{value:c,done:p}=u.next();if(p)break;yield[[a,g]].concat(c)}for(let c=0;c<o;c++)f[c]=t[c][f[c]][a];g++}}}}async function uD(){return Y3(!1)}var Px,Mx,Ox,T3,G3,W3,K3,Q3,j3,q3,V3,Tl,H3,_n,Ms,rD,nm,nD,v2,S2,em,U2,yr,we,gm=A(()=>{"use strict";xt();[Px,Mx]=(()=>{let e=new Int8Array(49152),t=new Int8Array(4096*12);for(let l=0;l<4096;l++)for(let o=0,i=0;o<12;o++)(l>>>o&1)!==0&&(e[o<<12|l]=i,t[i<<12|l]=o,i++);function r(l){let o=4095,i=19958400,s=0;for(let a=0;a<10;a++){let f=l[a];s+=e[o|f<<12]*i,o&=~(1<<f),i/=11-a}return s}function n(l,o){let i=4095,s=19958400,a=0;for(let f=0;f<10;f++){let g=l/s|0;l-=g*s,a^=g&1;let u=t[i|g<<12];o[f]=u,i&=~(1<<u),s/=11-f}return o[10]=t[i|a<<12],o[11]=t[i|(a^1)<<12],o}return[r,n]})();Ox={co:[0,0,0,0],mp:kn(12),wp:kn(12),cp:[0,1,2,3]},T3={co:[2,0,0,0],mp:kn(12),wp:Qo([1,9,11],12),cp:[0,1,2,3]},G3={co:[0,2,0,0],mp:kn(12),wp:Qo([0,7,2],12),cp:[0,1,2,3]},W3={co:[0,0,2,0],mp:kn(12),wp:Qo([3,6,10],12),cp:[0,1,2,3]},K3={co:[0,0,0,2],mp:kn(12),wp:Qo([4,8,5],12),cp:[0,1,2,3]},Q3={co:[2,0,0,0],mp:Jr([[1,9,11],[7,3,5]],12),wp:Jr([[1,9,11],[7,3,5]],12),cp:[0,2,3,1]},j3={co:[0,2,0,0],mp:Jr([[0,7,2],[6,1,8]],12),wp:Jr([[0,7,2],[6,1,8]],12),cp:[3,1,0,2]},q3={co:[0,0,2,0],mp:Jr([[3,6,10],[9,0,4]],12),wp:Jr([[3,6,10],[9,0,4]],12),cp:[1,3,2,0]},V3={co:[0,0,0,2],mp:Jr([[4,8,5],[10,2,11]],12),wp:Jr([[4,8,5],[10,2,11]],12),cp:[2,0,1,3]},Tl=[Q3,j3,q3,V3,T3,G3,W3,K3],H3=["u","l","r","b","U","L","R","B"],_n=8,Ms=4;rD=[],nm=[],nD=[],v2=[];for(let e=0;e<_n;e++){let t=Tl[e];rD[e]=t.mp,nm[e]=x2(t.mp),nD[e]=t.wp,v2[e]=x2(t.wp)}S2=[0,0,0,0,2,2,2,2],em=[[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]=em[0][e],U2[e+30]=em[1][e];yr=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,l=2;t===e?l++:t===(e+6)%12&&l--,r===(e+6)%12?l++:r===e&&l--,yr[n]=l,yr[n+6*12*12]=yr[n+2*6*12*12]=l+5}we={}});var cm={};Lt(cm,{randomMasterTetraminxScrambleString:()=>uD});var pm=A(()=>{"use strict";gm()});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 Sm(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 FD(e){var t,r,n,l,o;for(n=0,e.arr[0]=nr(e,0),l=1;l<24;++l)nr(e,l)!==e.arr[n]&&(e.arr[++n]=nr(e,l));for(o=0,t=0;t<16;++t)for(r=t+1;r<16;++r)e.arr[t]>e.arr[r]&&(o^=1);return o}function yD(e){var t,r,n,l;return l=e.ur&1118481,l|=~~l>>3,l|=~~l>>6,l=l&15|~~l>>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,jo(FD(e)<<24|n<<18|l<<12|t<<6|r)}function AD(e,t){var r,n;for(r=0;r<8;++r)e.prm[r]=~~(~~nr(e,r*3+1)>>1<<24)>>24;for(t.cornperm=Xo(e.prm),t.topEdgeFirst=nr(e,0)===nr(e,1),r=t.topEdgeFirst?2:0,n=0;n<4;r+=3,++n)e.prm[n]=~~(~~nr(e,r)>>1<<24)>>24;for(t.botEdgeFirst=nr(e,12)===nr(e,13),r=t.botEdgeFirst?14:12;n<8;r+=3,++n)e.prm[n]=~~(~~nr(e,r)>>1<<24)>>24;t.edgeperm=Xo(e.prm),t.ml=e.ml}function nr(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 w2(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 N2(){this.arr=[],this.prm=[]}function SD(){var e,t,r,n,l,o,i,s,a;for(e=new N2,r=Gl[H(3678)],l=19088743<<1|286331153,n=19088743<<1,i=o=8,t=0;t<24;t++)(r>>t&1)===0?(s=H(o)<<2,w2(e,23-t,n>>s&15),a=(1<<s)-1,n=(n&a)+(n>>4&~a),--o):(s=H(i)<<2,w2(e,23-t,l>>s&15),w2(e,22-t,l>>s&15),a=(1<<s)-1,l=(l&a)+(l>>4&~a),--i,++t);return e.ml=H(2),e}function xD(){}function vD(e){var t,r,n,l,o,i;for(DD(e.Search_d,e.Search_c),n=0;n<e.Search_length1;++n)Sm(e.Search_d,e.Search_move[n]);for(AD(e.Search_d,e.Search_sq),r=e.Search_sq.edgeperm,t=e.Search_sq.cornperm,o=e.Search_sq.ml,i=Math.max(ve[e.Search_sq.edgeperm<<1|o],ve[e.Search_sq.cornperm<<1|o]),n=i;n<e.Search_maxlen2;++n)if(Is(e,r,t,e.Search_sq.topEdgeFirst,e.Search_sq.botEdgeFirst,o,n,e.Search_length1,0)){for(l=0;l<n;++l)Sm(e.Search_d,e.Search_move[e.Search_length1+l]);return e.Search_sol_string=UD(e,n+e.Search_length1),!0}return!1}function UD(e,t){for(var r="",n=0,l=0,o=t-1;o>=0;o--){var i=e.Search_move[o];i>0?(i=12-i,n=i>6?i-12:i):i<0?(i=12+i,l=i>6?i-12:i):(n===0&&l===0?r+=" / ":r+=\`(\${n}, \${l}) / \`,n=l=0)}return(n!==0||l!==0)&&(r+=\`(\${n}, \${l})\`),r}function Os(e,t,r,n,l,o){var i,s,a;if(r===0&&n<4)return n===0&&vD(e);if(o!==0&&(a=Ts[t],s=Ve[a],s<n&&(e.Search_move[l]=0,Os(e,a,s,n-1,l+1,0))))return!0;if(a=t,o<=0){for(i=0;i+=Ho[a],a=~~i>>4,i&=15,!(i>=12||(s=Ve[a],s>n));)if(s<n&&(e.Search_move[l]=i,Os(e,a,s,n-1,l+1,1)))return!0}if(a=t,o<=1){for(i=0;i+=Vo[a],a=~~i>>4,i&=15,!(i>=6||(s=Ve[a],s>n));)if(s<n&&(e.Search_move[l]=-i,Os(e,a,s,n-1,l+1,2)))return!0}return!1}function Is(e,t,r,n,l,o,i,s,a){var f,g,u,c,p,L,m;if(i===0&&!n&&l||a!==0&&n===l&&(u=Jo[t],g=Jo[r],ve[u<<1|1-o]<i&&ve[g<<1|1-o]<i&&(e.Search_move[s]=0,Is(e,u,g,n,l,1-o,i-1,s+1,0))))return!0;if(a<=0)for(m=!n,u=m?Nn[t]:t,g=m?r:Nn[r],c=m?1:2,p=ve[u<<1|o],L=ve[g<<1|o];c<12&&p<=i&&p<=i;){if(p<i&&L<i&&(e.Search_move[s]=c,Is(e,u,g,m,l,o,i-1,s+1,1)))return!0;m=!m,m?(u=Nn[u],p=ve[u<<1|o],c+=1):(g=Nn[g],L=ve[g<<1|o],c+=2)}if(a<=1)for(f=!l,u=f?Cn[t]:t,g=f?r:Cn[r],c=f?1:2,p=ve[u<<1|o],L=ve[g<<1|o];c<(i>3?6:12)&&p<=i&&p<=i;){if(p<i&&L<i&&(e.Search_move[s]=-c,Is(e,u,g,n,f,o,i-1,s+1,2)))return!0;f=!f,f?(u=Cn[u],p=ve[u<<1|o],c+=1):(g=Cn[g],L=ve[g<<1|o],c+=2)}return!1}function bD(e,t){var r;for(e.Search_c=t,r=yD(t),e.Search_length1=Ve[r];e.Search_length1<100&&(e.Search_maxlen2=Math.min(31-e.Search_length1,17),!Os(e,r,Ve[r],e.Search_length1,0,-1));++e.Search_length1);return e.Search_sol_string}function Um(){this.Search_move=[],this.Search_d=new N2,this.Search_sq=new Em}function ED(){}function wD(){xm||(xm=!0,qo=[0,3,6,12,15,24,27,30,48,51,54,60,63],Gl=[],Ve=[],Ho=[],Vo=[],Ts=[],zD())}function kD(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((Pn(e.bottom&63)&1)!==0);return(Pn(e.bottom)&2)===0&&(e.Shape_parity^=r),t}function k2(e){var t;return t=km(Gl,e.top<<12|e.bottom)<<1|e.Shape_parity,t}function _2(e,t){e.Shape_parity=t&1,e.top=Gl[~~t>>1],e.bottom=e.top&4095,e.top>>=12}function _D(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((Pn(e.top&63)&1)!==0);return(Pn(e.top)&2)===0&&(e.Shape_parity^=r),t}function bm(){}function jo(e){var t;return t=km(Gl,e&16777215)<<1|~~e>>24,t}function zD(){var e,t,r,n,l,o,i,s,a,f,g,u,c,p,L,m;for(e=0,i=0;i<28561;++i)o=qo[i%13],r=qo[~~(i/13)%13],u=qo[~~(~~(i/13)/13)%13],g=qo[~~(~~(~~(i/13)/13)/13)],c=g<<18|u<<12|r<<6|o,Pn(c)===16&&(Gl[e++]=c);for(f=new bm,i=0;i<7356;++i)_2(f,i),Ho[i]=_D(f),Ho[i]|=k2(f)<<4,_2(f,i),Vo[i]=kD(f),Vo[i]|=k2(f)<<4,_2(f,i),m=f.top&63,p=Pn(m),L=Pn(f.bottom&4032),f.Shape_parity^=1&~~(p&L)>>1,f.top=f.top&4032|~~f.bottom>>6&63,f.bottom=f.bottom&63|m<<6,Ts[i]=k2(f);for(i=0;i<7536;++i)Ve[i]=-1;for(Ve[jo(14378715)]=0,Ve[jo(31157686)]=0,Ve[jo(23967451)]=0,Ve[jo(7191990)]=0,n=4,l=0,t=-1;n!==l;)for(l=n,++t,i=0;i<7536;++i)if(Ve[i]===t){a=0,s=i;do s=Ho[s],a+=s&15,s>>=4,Ve[s]===-1&&(++n,Ve[s]=t+1);while(a!==12);a=0,s=i;do s=Vo[s],a+=s&15,s>>=4,Ve[s]===-1&&(++n,Ve[s]=t+1);while(a!==12);s=Ts[i],Ve[s]===-1&&(++n,Ve[s]=t+1)}}function CD(){}function ND(){if(!vm){vm=!0,ve=[],Jo=[],Nn=[],Cn=[],wm=[1,1,2,6,24,120,720,5040],zn=[];for(var e=0;e<12;++e)zn[e]=[];PD()}}function Em(){}function Xo(e){var t,r,n,l;for(r=0,l=1985229328,t=0;t<7;++t)n=e[t]<<2,r=(8-t)*r+(~~l>>n&7),l-=286331152<<n;return r&65535}function PD(){var e,t,r,n,l,o,i,s,a,f,g,u,c;for(l=0;l<12;++l)for(zn[l][0]=1,zn[l][l]=1,a=1;a<l;++a)zn[l][a]=zn[l-1][a-1]+zn[l-1][a];for(u=[],l=0;l<40320;++l)z2(u,l),c=u[2],u[2]=u[4],u[4]=c,c=u[3],u[3]=u[5],u[5]=c,Jo[l]=Xo(u),z2(u,l),c=u[0],u[0]=u[1],u[1]=u[2],u[2]=u[3],u[3]=c,Nn[l]=Xo(u),z2(u,l),c=u[4],u[4]=u[5],u[5]=u[6],u[6]=u[7],u[7]=c,Cn[l]=Xo(u);for(l=0;l<80640;++l)ve[l]=-1;for(ve[0]=0,t=0,r=1;r<80640;){s=t>=11,n=s?-1:t,e=s?t:-1,++t;e:for(l=0;l<80640;++l)if(ve[l]===n){if(o=~~l>>1,g=l&1,i=Jo[o]<<1|1-g,ve[i]===e&&(++r,ve[s?l:i]=~~(t<<24)>>24,s))continue e;for(i=o,f=0;f<4;++f)if(i=Nn[i],ve[i<<1|g]===e&&(++r,ve[s?l:i<<1|g]=~~(t<<24)>>24,s))continue e;for(f=0;f<4;++f)if(i=Cn[i],ve[i<<1|g]===e&&(++r,ve[s?l:i<<1|g]=~~(t<<24)>>24,s))continue e}}}function z2(e,t){var r,n,l,o,i;for(i=1985229328,r=0;r<7;++r)l=wm[7-r],o=~~(t/l),t-=o*l,o<<=2,e[r]=~~((~~i>>o&7)<<24)>>24,n=(1<<o)-1,i=(i&n)+(~~i>>4&~n);e[7]=~~(i<<24)>>24}function MD(){}function Pn(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 km(e,t){var r,n,l,o;for(n=0,r=e.length-1;n<=r;)if(l=n+(~~(r-n)>>1),o=e[l],o<t)n=l+1;else if(o>t)r=l-1;else return l;return-n-1}function WD(){return GD().scramble_string}var _e,xm,Vo,Gl,Ve,Ho,Ts,qo,vm,Cn,zn,ve,Nn,Jo,wm,C2,OD,ID,TD,GD,_m=A(()=>{"use strict";xt();_e=N2.prototype=xD.prototype;_e.dl=10062778;_e.dr=14536702;_e.ml=0;_e.ul=70195;_e.ur=4544119;_e=Um.prototype=ED.prototype;_e.Search_c=null;_e.Search_length1=0;_e.Search_maxlen2=0;_e.Search_sol_string=null;xm=!1;_e=bm.prototype=CD.prototype;_e.bottom=0;_e.Shape_parity=0;_e.top=0;vm=!1;_e=Em.prototype=MD.prototype;_e.botEdgeFirst=!1;_e.cornperm=0;_e.edgeperm=0;_e.ml=0;_e.topEdgeFirst=!1;C2=!1,OD=function(e,t,r){C2||(wD(),ND()),r&&r("Done initializing Square-1."),C2=!0,e?.()},ID=function(){return C2||OD(),SD()},TD=function(e){var t=new Um;return bD(t,e)},GD=function(){var e=ID(),t=TD(e);return{state:e,scramble_string:t}}});var zm={};Lt(zm,{getRandomSquare1ScrambleString:()=>WD});var Cm=A(()=>{"use strict";_m()});var G2=Symbol("Comlink.proxy"),Qm=Symbol("Comlink.endpoint"),jm=Symbol("Comlink.releaseProxy"),Ks=Symbol("Comlink.thrown"),W2=e=>typeof e=="object"&&e!==null||typeof e=="function",qm={canHandle:e=>W2(e)&&e[G2],serialize(e){let{port1:t,port2:r}=new MessageChannel;return Wl(e,t),[r,[r]]},deserialize(e){return e.start(),Xm(e)}},Vm={canHandle:e=>W2(e)&&Ks 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}},K2=new Map([["proxy",qm],["throw",Vm]]);function Wl(e,t=self){t.addEventListener("message",function r(n){if(!n||!n.data)return;let{id:l,type:o,path:i}=Object.assign({path:[]},n.data),s=(n.data.argumentList||[]).map(Zr),a;try{let f=i.slice(0,-1).reduce((u,c)=>u[c],e),g=i.reduce((u,c)=>u[c],e);switch(o){case"GET":a=g;break;case"SET":f[i.slice(-1)[0]]=Zr(n.data.value),a=!0;break;case"APPLY":a=g.apply(f,s);break;case"CONSTRUCT":{let u=new g(...s);a=Ym(u)}break;case"ENDPOINT":{let{port1:u,port2:c}=new MessageChannel;Wl(e,c),a=Zm(u,[u])}break;case"RELEASE":a=void 0;break;default:return}}catch(f){a={value:f,[Ks]:0}}Promise.resolve(a).catch(f=>({value:f,[Ks]:0})).then(f=>{let[g,u]=js(f);t.postMessage(Object.assign(Object.assign({},g),{id:l}),u),o==="RELEASE"&&(t.removeEventListener("message",r),Q2(t))})}),t.start&&t.start()}function Hm(e){return e.constructor.name==="MessagePort"}function Q2(e){Hm(e)&&e.close()}function Xm(e,t){return Qs(e,[],t)}function Zo(e){if(e)throw new Error("Proxy has been released and is not useable")}function Qs(e,t=[],r=function(){}){let n=!1,l=new Proxy(r,{get(o,i){if(Zo(n),i===jm)return()=>Mn(e,{type:"RELEASE",path:t.map(s=>s.toString())}).then(()=>{Q2(e),n=!0});if(i==="then"){if(t.length===0)return{then:()=>l};let s=Mn(e,{type:"GET",path:t.map(a=>a.toString())}).then(Zr);return s.then.bind(s)}return Qs(e,[...t,i])},set(o,i,s){Zo(n);let[a,f]=js(s);return Mn(e,{type:"SET",path:[...t,i].map(g=>g.toString()),value:a},f).then(Zr)},apply(o,i,s){Zo(n);let a=t[t.length-1];if(a===Qm)return Mn(e,{type:"ENDPOINT"}).then(Zr);if(a==="bind")return Qs(e,t.slice(0,-1));let[f,g]=T2(s);return Mn(e,{type:"APPLY",path:t.map(u=>u.toString()),argumentList:f},g).then(Zr)},construct(o,i){Zo(n);let[s,a]=T2(i);return Mn(e,{type:"CONSTRUCT",path:t.map(f=>f.toString()),argumentList:s},a).then(Zr)}});return l}function Jm(e){return Array.prototype.concat.apply([],e)}function T2(e){let t=e.map(js);return[t.map(r=>r[0]),Jm(t.map(r=>r[1]))]}var j2=new WeakMap;function Zm(e,t){return j2.set(e,t),e}function Ym(e){return Object.assign(e,{[G2]:!0})}function js(e){for(let[t,r]of K2)if(r.canHandle(e)){let[n,l]=r.serialize(e);return[{type:"HANDLER",name:t,value:n},l]}return[{type:"RAW",value:e},j2.get(e)||[]]}function Zr(e){switch(e.type){case"HANDLER":return K2.get(e.name).deserialize(e.value);case"RAW":return e.value}}function Mn(e,t,r){return new Promise(n=>{let l=$m();e.addEventListener("message",function o(i){!i.data||!i.data.id||i.data.id!==l||(e.removeEventListener("message",o),n(i.data))}),e.start&&e.start(),e.postMessage(Object.assign({id:l},t),r)})}function $m(){return new Array(4).fill(0).map(()=>Math.floor(Math.random()*Number.MAX_SAFE_INTEGER).toString(16)).join("-")}function eL(e){let t=new WeakMap;return{postMessage:e.postMessage.bind(e),addEventListener:(r,n)=>{let l=o=>{"handleEvent"in n?n.handleEvent({data:o}):n({data:o})};e.on("message",l),t.set(n,l)},removeEventListener:(r,n)=>{let l=t.get(n);!l||(e.off("message",l),t.delete(n))},nodeWorker:e}}var q2=eL;var tL=typeof globalThis.Worker>"u"&&typeof globalThis.WorkerNavigator>"u",rL="node:w-orker-_threa-ds",nL=()=>rL.replace(/-/g,"");async function lL(){let{parentPort:e}=await import(nL()).catch();return q2(e)}function V2(e){tL?(async()=>Wl(e,await lL()))():Wl(e)}We();cr();St();We();cr();xt();St();fe();fe();fe();var Bo=class extends nn{constructor(r){super();this.metric=r}traverseAlg(r){let n=0;for(let l of r.childAlgNodes())n+=this.traverseAlgNode(l);return n}traverseGrouping(r){let n=r.alg;return this.traverseAlg(n)*Math.abs(r.amount)}traverseMove(r){return this.metric(r)}traverseCommutator(r){return 2*(this.traverseAlg(r.A)+this.traverseAlg(r.B))}traverseConjugate(r){return 2*this.traverseAlg(r.A)+this.traverseAlg(r.B)}traversePause(r){return 0}traverseNewline(r){return 0}traverseLineComment(r){return 0}};function Au(e){return"A"<=e&&e<="Z"}function HL(e){let t=e.family;return Au(t[0])&&t[t.length-1]==="v"||t==="x"||t==="y"||t==="z"||t==="T"?0:1}function XL(e){return 1}function JL(e){let t=e.family;return Au(t[0])&&t[t.length-1]==="v"||t==="x"||t==="y"||t==="z"||t==="T"?0:Math.abs(e.amount)}var qa=kt(Bo,[HL]),ZL=kt(Bo,[XL]),YL=kt(Bo,[JL]);fe();fe();var Va=class extends nn{traverseAlg(t){let r=0;for(let n of t.childAlgNodes())r+=this.traverseAlgNode(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}},$L=kt(Va);xt();var eB=2,tB=!0,rB=!1;function nB(e,t){let r=[];return t.forEach(function(n){let l=new B(n);if(l.amount!==1)throw new Error("SGS cannot handle def moves with an amount other than 1 yet.");let o=e.identityTransformation();for(let i=1;o=o.applyMove(l),!o.isIdentityTransformation();i++)r.push({move:l.modified({amount:i}),transformation:o})}),r}var Nt=class{constructor(t,r,n){this.kpuzzle=t;this.sgs=r;this.searchMoves=nB(this.kpuzzle,n??Object.keys(this.kpuzzle.definition.moves))}async solve(t,r=eB,n){let l=t.experimentalToTransformation();if(!l)throw new Error("distinguishable pieces are not supported in tremble solver yt");let o=null,i=1e6,s=(a,f,g)=>{if(f===0){let u=this.sgsPhaseSolve(a,i);if(!u)return;let c=g.concat(u).experimentalSimplify({cancel:{puzzleSpecificModWrap:"canonical-centered"},puzzleSpecificSimplifyOptions:{quantumMoveOrder:n}}),p=qa(c);(o===null||p<i)&&(rB&&(console.log(\`New best (\${p} moves): \${c.toString()}\`),console.log(\`Tremble moves are: \${g.toString()}\`)),o=c,i=p);return}for(let u of this.searchMoves)s(a.applyTransformation(u.transformation),f-1,g.concat([u.move]))};for(let a=0;a<=r;a++)s(l,a,new E);if(o===null)throw new Error("SGS search failed.");return o}sgsPhaseSolve(t,r){let n=new Bt,l=t;for(let o of this.sgs.ordering){let i=o.pieceOrdering,s="",a=l.invert();for(let g=0;g<i.length;g++){let u=i[g],c=u.orbitName,p=u.permutationIdx;s+=\` \${a.transformationData[c].permutation[p]} \${a.transformationData[c].orientation[p]}\`}let f=o.lookup[s];if(!f)throw new Error("Missing algorithm in sgs or esgs?");if(n.experimentalPushAlg(f.alg),n.experimentalNumAlgNodes()>=r)return null;if(l=l.applyTransformation(f.transformation),tB)for(let g=0;g<i.length;g++){let u=i[g],c=u.orbitName,p=u.permutationIdx;if(l.transformationData[c].permutation[p]!==p||l.transformationData[c].orientation[p]!==0)throw new Error("bad SGS :-(")}}return n.toAlg()}};function bi(e,t){let r=e.identityTransformation();for(let n of t.ordering){let l=Yt(Object.values(n.lookup));r=r.applyTransformation(l.transformation)}return r.toKState()}_t();var ut=Ke(()=>Promise.resolve().then(()=>(zu(),_u)));var BB=3,Cu=null;async function Nu(){return Cu||(Cu=(async()=>{let e=await(await ut).cachedData222();return new Nt(await Oe["2x2x2"].kpuzzle(),e,"URFLBD".split(""))})())}async function Pu(){await Nu()}async function Ya(e){return Ee(),await(await Nu()).solve(e,BB,()=>4)}function dB(e,t,r,n){ja(r.stateData[t].pieces);let l=e.definition.orbits[t],o=r.stateData[t].orientation,i=0;for(let s=0;s<l.numPieces;s++){let a=H(l.numOrientations);o[s]=a,i+=a}n&&"orientationSum"in n&&(o[0]=((o[0]+n.orientationSum-i)%l.numOrientations+l.numOrientations)%l.numOrientations)}async function RB(){let e=await Oe["2x2x2"].kpuzzle(),t=new me(e,JSON.parse(JSON.stringify(e.startState().stateData)));return dB(e,"CORNERS",t,{orientationSum:0}),t}async function Mu(){return await Ya(await RB())}S0();Ei();_t();var J0=Ke(()=>Promise.resolve().then(()=>(Wc(),Gc)));var _R=[[null,"x","x2","x'","z","z'"],[null,"y","y2","y'"]];async function Kc(){return(await J0).initialize()}async function Z0(){return(await J0).random444Scramble()}async function Qc(){return il(await Z0(),_R)}Ei();fe();xt();function zR(e){switch(e){case 5:return 60;case 6:return 80;default:return 100}}var CR=[["U","D"],["L","R"],["F","B"]],jc=new Map;function NR(e){let t=jc.get(e);if(t)return t;let r=[];for(let n of CR){let l=[];r.push(l);for(let o of n){l.push(new _(o)),e>3&&l.push(new _(\`\${o}w\`));for(let i=3;i<=e/2;i++)l.push(new _(\`\${o}w\`,i))}}return jc.set(e,r),r}async function hr(e){let t=NR(e),r=zR(e),n=new Bt,l=0,o=new Set;for(;n.experimentalNumAlgNodes()<r;){let i=H(3);i!==l&&o.clear(),l=i;let s=Yt(t[l]),a=s.toString();o.has(a)||(o.add(a),n.push(new B(s,Yt([1,2,-1]))))}return n.toAlg()}var PR=[[null,"3Rw","3Rw2","3Rw'","3Fw","3Fw'"],[null,"3Dw","3Dw2","3Dw'"]];async function qc(){return il(await hr(5),PR)}fe();cr();_t();St();_t();var vp=Ke(()=>Promise.resolve().then(()=>(xp(),Sp)));var Ax=Ke(()=>Promise.resolve().then(()=>(d2(),B2)));async function Tp(){return Ee(),new E(await(await vp).randomFTOScrambleString())}St();_t();var Yp=Ke(()=>Promise.resolve().then(()=>(Zp(),Jp)));async function $p(){return Ee(),(await Yp).getRandomKilominxScramble()}fe();St();_t();var mm=Ke(()=>Promise.resolve().then(()=>(pm(),cm)));async function Lm(){return Ee(),new E(await(await mm).randomMasterTetraminxScrambleString())}We();St();var gD=2,Bm=null;async function cD(){return Bm||(Bm=(async()=>{let e=await(await ut).cachedSGSDataMegaminx();return new Nt(await(await ut).cachedMegaminxKPuzzleWithoutMO(),e,["U","R","F","L","BR","BL","FR","FL","DR","DL","B","D"])})())}async function dm(e){Ee();let t=await cD(),r=JSON.parse(JSON.stringify(e.stateData));r.CENTERS.orientation=new Array(12).fill(0);let n=new me(await(await ut).cachedMegaminxKPuzzleWithoutMO(),r);return await t.solve(n,gD,()=>5)}cr();St();var pD=3,Rm=null;async function mD(){return Rm||(Rm=(async()=>{let e=await(await ut).sgsDataPyraminx();return new Nt(await Oe.pyraminx.kpuzzle(),e,"RLUB".split(""))})())}async function b2(e){return Ee(),await(await mD()).solve(e,pD,()=>3)}async function LD(){return Ee(),bi(await Oe.pyraminx.kpuzzle(),await(await ut).sgsDataPyraminxFixedOrientation())}async function hm(){return b2(await LD())}St();_t();var Dm=Ke(()=>Promise.resolve().then(()=>(d2(),B2)));async function Fm(){return Ee(),(await Dm).getRandomRediCubeScramble()}We();St();var BD=3,ym=null;async function dD(){return ym||(ym=(async()=>{let e=await(await ut).sgsDataSkewb();return new Nt(await(await ut).skewbKPuzzleWithoutMOCached(),e,"RLUB".split(""))})())}function RD(e){return new me(e.kpuzzle,{CORNERS:e.stateData.CORNERS,CENTERS:{pieces:e.stateData.CENTERS.pieces,orientation:new Array(6).fill(0)}})}async function E2(e){return Ee(),await(await dD()).solve(RD(e),BD,n=>n.family==="y"?4:3)}async function hD(){return bi(await(await ut).skewbKPuzzleWithoutMOCached(),await(await ut).sgsDataSkewbFixedCorner())}async function Am(){return E2(await hD())}fe();_t();var Nm=Ke(()=>Promise.resolve().then(()=>(Cm(),zm)));async function Pm(){return E.fromString(await(await Nm).getRandomSquare1ScrambleString())}var KD=1e3;Du(!0);var Im=!0;function QD(e){Im=e}function Mm(){return(typeof performance>"u"?Date:performance).now()}async function ze(e,t,r){if(!Im)return t();let n=Mm(),l=t();l?.then&&await l;let o=Mm();return console.warn(\`\${e}\${r?.isPrefetch?" (prefetched)":""}: \${Math.round(o-n)}ms\`),l}var P2=new Map,M2=null;async function Om(e,t){switch(e){case"222":return ze("random222Scramble",Mu,{isPrefetch:t?.isPrefetch});case"333":case"333oh":case"333ft":return ze("random333Scramble",Rl,{isPrefetch:t?.isPrefetch});case"333fm":return ze("random333FewestMovesScramble",kg);case"333bf":case"333mb":return ze("random333OrientedScramble",wg);case"444":return ze("random444Scramble",Z0,{isPrefetch:t?.isPrefetch});case"444bf":return ze("random444OrientedScramble",Qc);case"555":return ze("bigCubeScramble(5)",hr.bind(hr,5));case"555bf":return ze("oriented555RandomMoves",qc);case"666":return ze("bigCubeScramble(6)",hr.bind(hr,6));case"777":return ze("bigCubeScramble(7)",hr.bind(hr,7));case"skewb":return ze("randomSkewbFixedCornerScramble",Am);case"pyram":return ze("randomPyraminxScrambleFixedOrientation",hm);case"sq1":return ze("getRandomSquare1Scramble",Pm,{isPrefetch:t?.isPrefetch});case"fto":return ze("randomFTOScramble",Tp,{isPrefetch:t?.isPrefetch});case"master_tetraminx":return ze("randomMasterTetraminxScramble",Lm);case"kilominx":return ze("randomKilominxScramble",$p,{isPrefetch:t?.isPrefetch});case"redi_cube":return ze("randomRediCubeScramble",Fm,{isPrefetch:t?.isPrefetch});default:throw new Error(\`unsupported event: \${e}\`)}}var O2="auto",I2={initialize:async e=>{switch(e){case"222":return ze("preInitialize222",Pu);case"333":case"333oh":case"333ft":return ze("initialize333",Eg);case"444":return ze("initialize444",Kc);default:throw new Error(\`unsupported event: \${e}\`)}},setScramblePrefetchLevel(e){O2=e},randomScrambleForEvent:async e=>{let t=P2.get(e);return t?P2.delete(e):t=Om(e),O2!=="none"&&t.then(()=>{M2&&clearTimeout(M2),M2=setTimeout(()=>{P2.set(e,Om(e,{isPrefetch:!0}))},O2==="immediate"?0:KD)}),t},randomScrambleStringForEvent:async e=>(await I2.randomScrambleForEvent(e)).toString(),solve333ToString:async e=>{let t=new me(await Oe["3x3x3"].kpuzzle(),e);return(await A0(t)).toString()},solve222ToString:async e=>{let t=new me(await Oe["2x2x2"].kpuzzle(),e);return(await Ya(t)).toString()},solveSkewbToString:async e=>{let t=new me(await Oe.skewb.kpuzzle(),e);return(await E2(t)).toString()},solvePyraminxToString:async e=>{let t=new me(await Oe.pyraminx.kpuzzle(),e);return(await b2(t)).toString()},solveMegaminxToString:async e=>{let t=new me(await Oe.megaminx.kpuzzle(),e);return(await dm(t)).toString()},setDebugMeasurePerf:async e=>{QD(e)}};V2(I2);
|
|
4058
|
+
\`)}var kh,Up=A(()=>{"use strict";gr();ol();kh=null});function Wo(e){if(e<2)return e;let t=1;for(let r=2;r<=e;r++)t*=r;return t}function c2(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 zh(e){e=e.slice();let t=e.length,r=Wo(t-1),n=0;for(;t>1;){t--;let l=e[0];n+=l*r;for(let o=0;o<t;o++){let i=e[o+1];e[o]=i-(i>l)}r/=t}return n}function Ch(e,t){let r=[],n=Wo(t-1);for(let l=0;l<t;l++)r[l]=e/n|0,e%=n,n/=t-1-l;for(let l=t-2;l>=0;l--)for(let o=l+1;o<t;o++)r[o]+=+(r[o]>=r[l]);return r}function bp(e){let t=e.length,r=0;for(let n=0;n<t-1;n++)for(let l=n;l<t;l++)e[n]>e[l]&&(r^=1);return r}function Nh(e,t){let r=[],n=Wo(t-1)/2,l=0;for(let o=0;o<t-1;o++)r[o]=e/n|0,e%=n,n/=t-1-o;r[t-1]=0;for(let o=t-2;o>=0;o--)for(let i=o+1;i<t;i++)r[i]>=r[o]?r[i]++:l^=1;return l===1&&([r[t-2],r[t-1]]=[r[t-1],r[t-2]]),r}function Ep(e){return zh(e)>>1}function wp(e){let t=e.length,r=0;for(let i=0;i<t;i++)r+=+(e[i]===1);let n=t-r;if(n===0||r===0||t===1)return 0;let l=c2(t-1,r),o=0;for(let i=0;n>0&&r>0&&t>1;i++)t--,e[i]===0?l=l*--n/t:(o+=l,l=l*r--/t);return o}function Ph(e,t,r){let n=r-t,l=c2(r-1,t),o=[],i=r-1;for(let s=0;s<i;s++)r--,e<l?(o.push(0),l=l*--n/r):(o.push(1),e-=l,l=l*t--/r);return o.push(t),o}function ws(e,t){let r=[];for(let n=0;n<t.length;n++)r[n]=e[t[n]];return r}function Vr(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 Hr(e,t){let r=Array(t).fill(0);for(let n in e)r[n]=e[n];return r}function Mh(e,t){let r=Array(8).fill(0);for(let n=0;n<8;n++)r[n]=(e[1][n]+t[1][n])%3;return[ws(e[0],t[0]),r]}function Vh(e){let t=["0","","'"];return e.map(([n,l])=>qh[n]+t[l]).join(" ")}function Hh(){let e=Nh(Math.floor(te(Wo(12))/2),12),t=Array(8);for(let r=0;r<8;r++)t[r]=te(3);return[e,t]}function Xh(){return Jh(Hh())}function Jh(e){let t=Zh(e),r=[_p(),zp()],n=[$h(),e3()],l=[Cp(),t3()],o=[r3(),Yh()],i=l3(t,r,n),s,a=new Set,f=+new Date;for(let g=0;g<25;g++){let{value:u,done:c}=i.next(),p=e;for(let[S,v]of u)for(let U=0;U<v;U++)p=Mh(p,Go[S]);if(a.has(p.toString()))continue;a.add(p.toString());let L=Ep(p[0].slice(0,8)),m=0;for(let S=0;S<4;S++)m+=p[1][S]*3**S;let d=[L,m],D=s?s.length-u.length-1:999999,F=n3(d,l,o,D);if(F!==void 0&&((s===void 0||s.length>u.length+F.length)&&(s=u.concat(F)),new Date-f>300))break}return s}function Zh(e){let t=0;for(let o=0;o<4;o++)t+=e[0].indexOf(o+8)*12**o;let r=0;for(let o=0;o<4;o++)r+=e[1][o+4]*3**o;let n=e[0].map(o=>Math.max(-1,o-8)),l=wp(n.map(o=>+(o>=0)))*2+bp(n.filter(o=>o>=0));return[t,r+81*l]}function kp(){if(de.phase1cm)return de.phase1cm;let e=[];for(let t=0;t<81;t++){e[t]=Array(8);let r=[t%3,Math.floor(t/3)%3,Math.floor(t/9)%3,Math.floor(t/27)];e[t][0]=e[t][1]=e[t][2]=e[t][3]=t;for(let n=0;n<4;n++)r[n]=(r[n]+2)%3,e[t][4+n]=r[0]+r[1]*3+r[2]*9+r[3]*27,r[n]=(r[n]+1)%3}return de.phase1cm=e}function Yh(){if(de.phase1cp)return de.phase1cp;let e=Array(81);for(let t=0;t<81;t++){let r=[t%3,Math.floor(t/3)%3,Math.floor(t/9)%3,Math.floor(t/27)];e[t]=(r[0]!==0)+(r[1]!==0)+(r[2]!==0)+(r[3]!==0)}return de.phase1cp=e}function _p(){if(de.phase1em)return de.phase1em;let e=[];for(let r=0;r<12;r++){e[r]=[];for(let n=0;n<8;n++)e[r][n]=Go[n][0].indexOf(r)}let t=Array(12**4);for(let r=0;r<12**4;r++){t[r]=Array(8);for(let n=0;n<8;n++){let l=0;for(let o=0;o<4;o++)l+=e[Math.floor(r/12**o)%12][n]*12**o;t[r][n]=l}}return de.phase1em=t}function $h(){return de.phase1ep?de.phase1ep:de.phase1ep=p2(_p(),[8+12*(9+12*(10+12*11))])}function zp(){if(de.phase1sm)return de.phase1sm;let e=c2(12,4),t=[];for(let l=0;l<e;l++){t[l]=[];let o=Ph(l,4,12),i=[];for(let s=0,a=0;s<12;s++)o[s]===0?i[s]=-1:i[s]=a++;for(let s=0;s<8;s++){let a=ws(i,Go[s][0]),f=ws(o,Go[s][0]),g=bp(a.filter(u=>u>=0));t[l][s]=wp(f)*2+g}}let r=kp(),n=[];for(let l=0;l<e;l++)for(let o=0;o<81;o++){let i=n[o+81*(2*l)]=[],s=n[o+81*(2*l+1)]=[];for(let a=0;a<8;a++)i[a]=r[o][a]+81*t[l][a],s[a]=r[o][a]+81*(t[l][a]^1)}return de.phase1sm=n}function e3(){return de.phase1sp?de.phase1sp:de.phase1sp=p2(zp(),[0])}function t3(){if(de.phase2cm)return de.phase2cm;let e=kp(),t=Array(81);for(let r=0;r<81;r++)t[r]=e[r].slice(4,8);return de.phase2cm=t}function Cp(){if(de.phase2em)return de.phase2em;let e=8,t=Wo(e)/2,r=Array(t),n=[0,1,2,3,4,5,6,7];for(let l=0;l<t;l++){r[l]=Array(4);for(let i=0;i<4;i++){let s=ws(n,Go[i][0].slice(0,8));r[l][i]=Ep(s)}if(l===t-1)break;let o=0;do for(let i=e-2;i>=0;i--){if(n[i]>n[i+1])continue;let s=i+1;for(let a=s;a<e;a++)n[a]>n[i]&&(s=a);[n[i],n[s]]=[n[s],n[i]],o^=1;for(let a=0;i+1+a<e-1-a;a++,o^=1)[n[i+1+a],n[e-1-a]]=[n[e-1-a],n[i+1+a]];break}while(o!==0)}return de.phase2em=r}function r3(){return de.phase2ep?de.phase2ep:de.phase2ep=p2(Cp(),[0])}function p2(e,t){let r=e.length,n=e[0].length,l=Array(r).fill(-1),o=t.slice(),i=[],s=0;for(;o.length>0;){i.length=0;for(let a of o)if(l[a]===-1){l[a]=s;for(let f=0;f<n;f++){let g=e[a][f];for(;g!==a;)i.push(g),g=e[g][f]}}[o,i]=[i,o],s+=1}return l}function n3(e,t,r,n){n=n||999999;let l=e.length,o=0;for(let i=0;i<l;i++)o=Math.max(o,r[i][e[i]]);for(;o<=n;){let i=Np(e,t,r,o,-1);if(i!==void 0)return i;o++}}function Np(e,t,r,n,l){let o=e.length,i=t[0][0].length,s=0;for(let a=0;a<o;a++)s=Math.max(s,r[a][e[a]]);if(!(s>n)){if(n===0)return[];if(!(s===0&&n===1))for(let a=0;a<i;a++){if(a===l||a<l&&ks[a]===ks[l])continue;let f=e.slice();for(let u=0;u<o;u++)f[u]=t[u][e[u]][a];let g=1;for(;e.some((u,c)=>e[c]!==f[c]);){let u=Np(f,t,r,n-1,a);if(u!==void 0)return[[a,g]].concat(u);for(let c=0;c<o;c++)f[c]=t[c][f[c]][a];g++}}}}function*l3(e,t,r){let n=e.length,l=0;for(let o=0;o<n;o++)l=Math.max(l,r[o][e[o]]);for(;;)yield*Pp(e,t,r,l,-1),l++}function*Pp(e,t,r,n,l){let o=e.length,i=t[0][0].length,s=0;for(let a=0;a<o;a++)s=Math.max(s,r[a][e[a]]);if(!(s>n)){if(n===0){yield[];return}if(!(s===0&&n===1))for(let a=0;a<i;a++){if(a===l||a<l&&ks[a]===ks[l])continue;let f=e.slice();for(let u=0;u<o;u++)f[u]=t[u][e[u]][a];let g=1;for(;e.some((u,c)=>e[c]!==f[c]);){let u=Pp(f,t,r,n-1,a);for(;;){let{value:c,done:p}=u.next();if(p)break;yield[[a,g]].concat(c)}for(let c=0;c<o;c++)f[c]=t[c][f[c]][a];g++}}}}async function Mp(){return new E(Vh(Xh()))}var Oh,Ih,Th,Gh,Wh,Kh,Qh,jh,fx,Go,qh,ks,de,Op=A(()=>{"use strict";fe();xt();Oh=[Vr([0,1,4],12),Hr({0:2},8)],Ih=[Vr([1,2,5],12),Hr({1:2},8)],Th=[Vr([2,3,6],12),Hr({2:2},8)],Gh=[Vr([3,0,7],12),Hr({3:2},8)],Wh=[Vr([9,8,4],12),Hr({4:2},8)],Kh=[Vr([10,9,5],12),Hr({5:2},8)],Qh=[Vr([11,10,6],12),Hr({6:2},8)],jh=[Vr([8,11,7],12),Hr({7:2},8)],fx=[Ch(0,12),Array(8).fill(0)],Go=[Oh,Ih,Th,Gh,Wh,Kh,Qh,jh],qh=["UL","U","UR","F","L","B","R","D"],ks=[0,1,0,1,1,0,1,0];de={}});var m2={};Lt(m2,{getRandomRediCubeScramble:()=>Mp,sgsDataFTO:()=>vp});var L2=A(()=>{"use strict";Up();Op()});function Tp(e){if(e<2)return e;let t=1;for(let r=2;r<=e;r++)t*=r;return t}function zs(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 o3(e){e=e.slice();let t=e.length,r=Tp(t-1),n=0;for(;t>1;){t--;let l=e[0];n+=l*r;for(let o=0;o<t;o++){let i=e[o+1];e[o]=i-(i>l)}r/=t}return n}function i3(e){let t=e.length,r=0;for(let n=0;n<t-1;n++)for(let l=n;l<t;l++)e[n]>e[l]&&(r^=1);return r}function s3(e){return o3(e)>>1}function R2(e){let t=e.length,r=0;for(let i=0;i<t;i++)r+=+(e[i]===1);let n=t-r;if(n===0||r===0||t===1)return 0;let l=zs(t-1,r),o=0;for(let i=0;n>0&&r>0&&t>1;i++)t--,e[i]===0?l=l*--n/t:(o+=l,l=l*r--/t);return o}function u3(e,t,r){let n=r-t,l=zs(r-1,t),o=[],i=r-1;for(let s=0;s<i;s++)r--,e<l?(o.push(0),l=l*--n/r):(o.push(1),e-=l,l=l*t--/r);return o.push(t),o}function tr(e,t){let r=[];for(let n=0;n<t.length;n++)r[n]=e[t[n]];return r}function h2(e,t){let r=tr(e[0],t[0]),n=[],l=t[0].length;for(let o=0;o<l;o++)n[o]=(e[1][t[0][o]]+t[1][o])%3;return[r,n]}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 Xr(e,t){let r=Array(t).fill(0);for(let n in e)r[n]=e[n];return r}function B3(){let e=[0];for(let r=1;r<20;r++){let n=te(r+1);e[r]=e[n],e[n]=r}i3(e)===1&&([e[0],e[1]]=[e[1],e[0]]);let t=Array(20).fill(0);for(let r=0;r<19;r++)t[r]=te(3),t[19]+=3-t[r];return t[19]%=3,[e,t]}function d3(e){let t=["0","","2","2'","'"];return e.map(([n,l])=>m3[n]+t[l]).join(" ")}function R3(e,t){for(let[r,n]of t)for(let l=0;l<n;l++)e=h2(e,En[r]);return e}function h3(){return b3(B3())}function F3(e){let t=e[0];if(t.slice(15,20).every(o=>o<15))return[];if(t.slice(0,5).every(o=>o<15))return[[6,1]];let r=t.map(o=>o>=15),n=0,l;for(;l===void 0;)n++,l=Qp(r,n,-1);return l.push([6,1]),l}function Qp(e,t,r){if(t===0)return e.slice(0,5).some(n=>n)?void 0:[];for(let n=0;n<6;n++)if(n!==r)for(let l=1;l<5;l++){let o=tr(e,_s[n][l][0]),i=Qp(o,t-1,n);if(i!==void 0)return[[n,l]].concat(i)}}function y3(e){let t=e[0].slice(0,15),r=e[1],n=R2(t.map(i=>+(i>=15))),l=243*n;for(let i=0,s=0;i<15;i++)t[i]<15||(l+=r[i]*Math.pow(3,s),s++);let o=0;for(let i=0;i<5;i++)o+=t.indexOf(15+i)*Math.pow(15,i);return[l,o]}function A3(e){let t=[Cs(),Ns()],r=[E3(),k3()];return jp(y3(e),t,r).concat([[6,1]])}function S3(e){let t=[5,6,7,8,14],r=e[0].slice(0,15),n=e[1],l=R2(r.map(s=>+(t.indexOf(s)!==-1))),o=243*l;for(let s=0,a=0;s<15;s++)t.indexOf(r[s])!==-1&&(o+=n[s]*Math.pow(3,a),a++);let i=0;for(let s=0;s<5;s++)i+=r.indexOf(t[s])*Math.pow(15,s);return[o,i]}function x3(e){let t=[Cs(),Ns()],r=[w3(),_3()];return jp(S3(e),t,r)}function v3(e){let t=e[0].slice(0,14),r=e[1],n=0,l=[],o=0;for(let i of[0,1,2,3,4,9,10,11,12,13])i!==13&&(n+=r[i]*Math.pow(3,o)),l[o]=t[i]<5?t[i]:t[i]-4,o++;return[n,s3(l)]}function U3(e){return M3(v3(e))}function b3(e){let t=[];for(let r of[F3,A3,x3,U3]){let n=r(e);e=R3(e,n),t=t.concat(n)}return t}function Cs(){if(oe.phase23om)return oe.phase23om;let e=zs(15,5),t=[1,3,9,27,81,243],r=Array(zs(15,5)*t[5]);oe.phase23om=r;for(let n=0;n<e;n++){let l=u3(n,5,15).concat(Array(5).fill(0)),o=[];for(let i=0;i<6;i++){let s=tr(l,En[i][0]).slice(0,15);o[i]=R2(s)}for(let i=0;i<t[5];i++){r[i+243*n]=[];let s=[];for(let a=0,f=0;a<20;a++)l[a]===1?(s[a]=(i/t[f]|0)%3,f++):s[a]=99;for(let a=0;a<6;a++){let f=En[a],g=[];for(let p=0;p<15;p++)g[p]=s[f[0][p]]+f[1][p];let u=g.filter(p=>p<10),c=0;for(let p=0;p<5;p++)c+=u[p]%3*t[p];r[i+243*n][a]=c+243*o[a]}}}return r}function E3(){if(oe.phase2op)return oe.phase2op;let e=Cs();return oe.phase2op=Il(e,[243*3002])}function w3(){if(oe.phase3op)return oe.phase3op;let e=Cs();return oe.phase3op=Il(e,[243*246])}function Ns(){if(oe.phase23pm)return oe.phase23pm;let e=[1,15,225,Math.pow(15,3),Math.pow(15,4),Math.pow(15,5)],t=Array(e[5]),r=Array(15);for(let l=0;l<15;l++){r[l]=Array(6);for(let o=0;o<6;o++)r[l][o]=En[o][0].indexOf(l)}let n=[0,0,0,0,0];for(let l=0;l<e[5];l++){t[l]=Array(6);for(let o=0;o<6;o++){let i=0;for(let s=0;s<5;s++)i+=r[n[s]][o]*e[s];t[l][o]=i}n[0]++;for(let o=0;o<4;o++)n[o]===15&&(n[o]=0,n[o+1]++)}return oe.phase23pm=t}function k3(){if(oe.phase2pp)return oe.phase2pp;let e=Ns();return oe.phase2pp=Il(e,[213090])}function _3(){if(oe.phase3pp)return oe.phase3pp;let e=Ns();return oe.phase3pp=Il(e,[737420])}function D2(){if(oe.phase4om)return oe.phase4om;let e=[1,3,9,27,81,243,729,2187,6561,19683,59049],t=Array(e[9]);for(let r=0;r<e[9];r++){let n=Array(14).fill(0);for(let l=0;l<9;l++){let o=l<5?l:l+4;n[o]=(r/e[l]|0)%3,n[13]-=n[o]}n[13]=(n[13]+999)%3,t[r]=[];for(let l=0;l<3;l++){let o=En[l],i=[0,1,2,3,4,9,10,11,12,13].map(a=>n[o[0][a]]+o[1][a]),s=0;for(let a=0;a<9;a++)s+=i[a]%3*e[a];t[r][l]=s}}return oe.phase4om=t}function F2(){if(oe.phase4pm)return oe.phase4pm;let e=Tp(10)/2,t=10,r=[0,1,2,3,4,-1,-1,-1,-1,5,6,7,8,9],n=[0,1,2,3,4,9,10,11,12,13],l=[tr(r,tr(Gp[0],n)),tr(r,tr(Wp[0],n)),tr(r,tr(Kp[0],n))],o=Array(e),i=Array(10);for(let s=0;s<e;s++){f3(s,i),o[s]=[];for(let a=0;a<3;a++){let f=tr(i,l[a]);o[s][a]=a3(f)}}return oe.phase4pm=o}function z3(){if(oe.phase4op)return oe.phase4op;let e=D2();return oe.phase4op=Il(e,[0])}function C3(){if(oe.phase4pp)return oe.phase4pp;let e=F2();return oe.phase4pp=Il(e,[0])}function N3(e){if(oe.phase4np_list&&oe.phase4np_list.threshold===e)return oe.phase4np_list;let t=[D2(),F2()],r=Math.pow(3,9),n=[0];l(e,[0,0],-1);function l(s,a,f){if(n.push(a[0]+r*a[1]),s===0)return;let g=[];for(let u=0;u<3;u++)if(u!==f){g[0]=a[0],g[1]=a[1];for(let c=1;c<5;c++)g[0]=t[0][g[0]][u],g[1]=t[1][g[1]][u],l(s-1,g,u)}}n.sort((s,a)=>s-a);let o=[],i=-1;for(let s of n)s!==i&&o.push(i=s);return o.threshold=e,oe.phase4np_list=o}function P3(e,t){let r=0,n=e.length-1;for(;n-r>1;){let l=r+n>>1;t>e[l]?r=l+1:n=l}return t===e[r]||t===e[n]}function Il(e,t){let r=e.length,n=e[0].length,l=Array(r).fill(-1);for(let s of t)l[s]=0;let o=0,i=!1;for(;!i;){i=!0;for(let s=0;s<r;s++)if(l[s]===o)for(let a=0;a<n;a++){let f=e[s][a];for(;f!==s;)l[f]===-1&&(i=!1,l[f]=o+1),f=e[f][a]}o++}return l}function jp(e,t,r){let n=e.length,l=0;for(let o=0;o<n;o++)l=Math.max(l,r[o][e[o]]);for(;;){let o=qp(e,t,r,l,-1);if(o!==void 0)return o;l++}}function qp(e,t,r,n,l){let o=e.length,i=t[0][0].length,s=0;for(let a=0;a<o;a++)s=Math.max(s,r[a][e[a]]);if(!(s>n)){if(n===0||s===0)return[];for(let a=0;a<i;a++){if(a===l)continue;let f=e.slice();for(let u=0;u<o;u++)f[u]=t[u][e[u]][a];let g=1;for(;e.some((u,c)=>e[c]!==f[c]);){let u=qp(f,t,r,n-1,a);if(u!==void 0)return[[a,g]].concat(u);for(let c=0;c<o;c++)f[c]=t[c][f[c]][a];g++}}}}function M3(e){let t=D2(),r=F2(),n=z3(),l=C3(),o=N3(B2),i=Math.max(n[e[0]],l[e[1]]);for(;;){let s=Vp(e,i,-1,t,r,n,l,o);if(s!==void 0)return s;i++}}function Vp(e,t,r,n,l,o,i,s){let a=Math.max(o[e[0]],i[e[1]]);if(!(a>t)&&(a<=B2&&!P3(s,e[0]+19683*e[1])&&(a=B2+1),!(a>t))){if(t===0||a===0)return[];for(let f=0;f<3;f++){if(f===r)continue;let g=e.slice();for(let u=1;u<5;u++){g[0]=n[g[0]][f],g[1]=l[g[1]][f];let c=Vp(g,t-1,f,n,l,o,i,s);if(c!==void 0)return[[f,u]].concat(c)}}}}function O3(){return new E(d3(h3()))}var B2,a3,f3,Gp,Wp,Kp,g3,c3,p3,d2,Ax,En,m3,L3,_s,D3,oe,Hp=A(()=>{"use strict";fe();xt();B2=7;[a3,f3]=(()=>{let e=new Int8Array(10240),t=new Int8Array(1024*10);for(let l=0;l<1024;l++)for(let o=0,i=0;o<10;o++)(l>>>o&1)!==0&&(e[o<<10|l]=i,t[i<<10|l]=o,i++);function r(l){let o=1023,i=181440,s=0;for(let a=0;a<8;a++){let f=l[a];s+=e[o|f<<10]*i,o&=~(1<<f),i/=9-a}return s}function n(l,o){let i=1023,s=181440,a=0;for(let f=0;f<8;f++){let g=l/s|0;l-=g*s,a^=g&1;let u=t[i|g<<10];o[f]=u,i&=~(1<<u),s/=9-f}return o[8]=t[i|a<<10],o[9]=t[i|(a^1)<<10],o}return[r,n]})();Gp=[Ol([0,1,2,3,4],20),Xr({},20)],Wp=[Ol([4,3,11,12,13],20),Xr({4:2,3:1,11:1,12:1,13:1},20)],Kp=[Ol([3,2,9,10,11],20),Xr({3:2,2:1,9:1,10:1,11:1},20)],g3=[Ol([2,1,7,8,9],20),Xr({2:2,1:1,7:1,8:1,9:1},20)],c3=[Ol([1,0,5,6,7],20),Xr({1:2,0:1,5:1,6:1,7:1},20)],p3=[Ol([0,4,13,14,5],20),Xr({0:2,4:1,13:1,14:1,5:1},20)],d2=[[15,16,17,18,19,10,9,8,7,6,5,14,13,12,11,0,1,2,3,4],Xr({},20)],Ax=[[1,2,3,4,0,7,8,9,10,11,12,13,14,5,6,19,15,16,17,18],Xr({},20)],En=[Gp,Wp,Kp,g3,c3,p3,d2],m3=["U","R","F","L","BL","BR","x2"],L3=h2(d2,d2),_s=[];for(let e=0;e<En.length;e++){_s[e]=[L3];for(let t=1;t<5;t++)_s[e][t]=h2(_s[e][t-1],En[e])}{let e=Math.sin(Math.PI/5),t=Math.cos(Math.PI/10),r=Math.cos(Math.PI/5),n=Math.sin(Math.PI/10);D3={U:[0,0],L:[-e-t,r-n],F:[0,2*r],R:[e+t,r-n],BR:[t,-1-n],BL:[-t,-1-n],DBR:[2*e+2*t,0],DB:[3*e+3*t,-r-n],DBL:[4*e+4*t,0],DFL:[3*e+4*t,1+r],DFR:[3*e+2*t,1+r],D:[3*e+3*t,r-n]}}oe={}});var Xp={};Lt(Xp,{getRandomKilominxScramble:()=>O3});var Jp=A(()=>{"use strict";Hp()});function Ko(e){if(e<2)return e;let t=1;for(let r=2;r<=e;r++)t*=r;return t}function kn(e){let t=Array(e);for(let r=0;r<e;r++)t[r]=r;return t}function I3(e){e=e.slice();let t=e.length,r=Ko(t-1),n=0;for(;t>1;){t--;let l=e[0];n+=l*r;for(let o=0;o<t;o++){let i=e[o+1];e[o]=i-(i>l)}r/=t}return n}function Ps(e,t){let r=[],n=Ko(t-1)/2,l=0;for(let o=0;o<t-1;o++)r[o]=e/n|0,e%=n,n/=t-1-o;r[t-1]=0;for(let o=t-2;o>=0;o--)for(let i=o+1;i<t;i++)r[i]>=r[o]?r[i]++:l^=1;return l===1&&([r[t-2],r[t-1]]=[r[t-1],r[t-2]]),r}function em(e){return I3(e)>>1}function wn(e,t){let r=[];for(let n=0;n<t.length;n++)r[n]=e[t[n]];return r}function A2(e){let t=[];for(let r=0;r<e.length;r++)t[e[r]]=r;return t}function Qo(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 Jr(e,t){return e.length===0?kn(t):e.map(r=>Qo(r,t)).reduce(wn)}function T3(e,t){let r=Array(4);for(let i=0;i<4;i++)r[i]=(e.co[i]+t.co[i])%3;let n=wn(e.mp,t.mp),l=wn(e.wp,t.wp),o=wn(e.cp,t.cp);return{co:r,mp:n,wp:l,cp:o}}function tm(e,t){return e>=4&&t>=4?!0:e<4&&t<4?e===t:(e^t)===4}function J3(e){let t=["0","","'"];return e.map(([n,l])=>X3[n]+t[l]).join(" ")}function Z3(){let e=Array(4);for(let l=0;l<4;l++)e[l]=te(3);let t=Ps(te(Ko(6)/2),6);for(let l=0,o=0;l<6;l++){let i=l===5?o:te(2);o^=i,t[l]+=i*6,t[l+6]=(t[l]+6)%12}let r=Ps(te(Ko(12)/2),12),n=Ps(te(Ko(4)/2),4);return{co:e,mp:t,wp:r,cp:n}}function Y3(){return eD(Z3(te))}function $3(e=!0,t=!1){let r=J3(Y3());if(!e)return r;let n=["u","l","r","b"],l=["0","","'"];if(!t){for(let u=0;u<4;u++){let c=te(3);c!==0&&(r+=\` \${n[u]}\${l[c]}\`)}return r.trim()}let o=[],i=[],s=[];for(let u=0;u<4;u++)o[u]=te(3),i[u]=te(3),s[u]=(o[u]-i[u]+3)%3;let a=u=>u.filter(c=>c!==0).length;for(;!(a(i)>=1&&a(s)>=1&&a(i)+a(s)>=4);)for(let u=0;u<4;u++)i[u]=te(3),s[u]=(o[u]-i[u]+3)%3;let f=i.map((u,c)=>u!==0?\`\${n[c]}\${l[u]} \`:"").join(""),g=s.map((u,c)=>u!==0?\` \${n[c]}\${l[u]}\`:"").join("");return f+r+g}function eD(e){let t=rD(e),r=[im(),sm()],n=[aD(),fD()],l=oD(t),o,i=new Set,s=performance.now();for(let a=0;a<22;a++){let{value:f,done:g}=l.next(),u=e;for(let[d,D]of f)for(let F=0;F<D;F++)u=T3(u,Tl[d]);let c=JSON.stringify(u);if(i.has(c))continue;i.add(c);let p=iD(u),L=o?o.length-f.length-1:999999,m=uD(p,r,n,L).next().value;if(m!==void 0&&((o===void 0||o.length>f.length+m.length)&&(o=f.concat(m)),performance.now()-s>300))break}return o}function tD(e){return e[3^e.indexOf(3)]}function rD(e){let t=wn(A2(e.mp),e.wp),r=(e.co.reduce((n,l)=>n+l)-tD(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*oD(e){let t=0,r=om(),n=sD();for(;;)yield*nm(...e,r,n,t,-1),t++}function*nm(e,t,r,n,l,o,i,s,a,f){let g=_n,u=yr[e]+yr[t]+yr[r]+yr[n]+yr[l]+yr[o],c=Math.max(s[e%864+t*864],s[r%864+t*864],s[l%864+t*864],s[e%864+n*864],s[r%864+n*864],s[l%864+n*864],s[e%864+o*864],s[r%864+o*864],s[l%864+o*864],s[e%864+r*864],s[e%864+l*864],s[r%864+l*864],s[t%864+n*864],s[t%864+o*864],s[n%864+o*864],x2[u]);if(!(c>a)){if(a===0){yield[];return}if(!(c===0&&a===1))for(let p=0;p<g;p++){if(p===f||p<f&&tm(p,f))continue;let L=e,m=t,d=r,D=n,F=l,S=o;for(let v=1;v<=2;v++){L=i[L][p],m=i[m][p],d=i[d][p],D=i[D][p],F=i[F][p],S=i[S][p];let U=nm(L,m,d,D,F,S,i,s,a-1,p);for(;;){let{value:P,done:J}=U.next();if(J)break;yield[[p,v]].concat(P)}}}}}function iD(e){let t=e.mp,r=em(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),l=e.co.map((i,s)=>i*3**s).reduce((i,s)=>i+s),o=e.cp.indexOf(0);return[r+360*o,n+32*l]}function lm(){if(we.phase1pm)return we.phase1pm;let e=Array(6*12*12).fill().map(()=>Array(_n).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 l=t+6*r+72*n;for(let o=0;o<_n;o++){let i=rm[o][t],s=S2[o][r],a=S2[o][n];i<6?e[l][o]=i+6*s+72*a:e[l][o]=i-6+6*a+72*s}}return we.phase1pm=e}function om(){if(we.phase1pcm)return we.phase1pcm;let e=lm(),t=Array(e.length*3).fill().map(()=>Array(_n).fill(-1));for(let r=0;r<e.length;r++)for(let n=0;n<_n;n++){let l=e[r][n];t[r][n]=l+6*12*12*y2[n],t[r+6*12*12][n]=l+6*12*12*((y2[n]+1)%3),t[r+2*6*12*12][n]=l+6*12*12*((y2[n]+2)%3)}return we.phase1pcm=t}function sD(){if(we.phase1p2cp)return we.phase1p2cp;let e=lm(),t=om(),r=new Int8Array((6*12*12)**2*3);r.fill(-1);let n=[0,1,2,3,4,5].map(o=>o+6*o+72*(o+6));for(let o=0;o<6;o++)for(let i=0;i<6;i++)o!==i&&(r[n[o]+864*n[i]]=0);let l=0;for(;;){let o=!1;for(let i=0;i<r.length;i++){if(r[i]!==l)continue;let s=i%864,a=Math.floor(i/864);for(let f=0;f<_n;f++){let g=s,u=a;for(let c=1;c<=2;c++){g=e[g][f],u=t[u][f];let p=g+864*u;r[p]===-1&&(o=!0,r[p]=l+1)}}}if(!o)break;l++}return we.phase1p2cp=r}function im(){if(we.phase2pm)return we.phase2pm;let e=Array(1440).fill().map(()=>Array(Ms));for(let t=0;t<360;t++){let r=Ps(t,6);for(let n=0;n<6;n++)r[n+6]=r[n]+6;for(let n=0;n<Ms;n++){let l=wn(r,Tl[n].mp),o=em(l.slice(0,6).map(i=>i%6));for(let i=0;i<4;i++){let s=Tl[n].cp[i];e[t+360*s][n]=o+360*i}}}return we.phase2pm=e}function sm(){if(we.phase2om)return we.phase2om;let e=Array(32*81).fill().map(()=>Array(Ms));for(let t=0;t<32;t++){let r=[0,1,2,3,4].map(l=>t>>l&1);r[5]=r.reduce((l,o)=>l^o);let n=[];for(let l=0;l<6;l++)n[l]=l+6*r[l],n[l+6]=l+6*(r[l]^1);for(let l=0;l<81;l++){let o=[0,1,2,3].map(i=>Math.floor(l/3**i)%3);for(let i=0;i<Ms;i++){let a=wn(n,Tl[i].mp).slice(0,5).map(c=>+(c>=6)),f=0;for(let c=0;c<5;c++)f+=a[c]<<c;let g=o.map((c,p)=>(c+Tl[i].co[p])%3),u=0;for(let c=0;c<4;c++)u+=g[c]*3**c;e[t+32*l][i]=f+32*u}}}return we.phase2om=e}function aD(){return we.phase2pp?we.phase2pp:we.phase2pp=am(im(),[0])}function fD(){return we.phase2op?we.phase2op:we.phase2op=am(sm(),[0])}function am(e,t){let r=e.length,n=e[0].length,l=Array(r).fill(-1),o=t.slice(),i=[],s=0;for(;o.length>0;){i.length=0;for(let a of o)if(l[a]===-1){l[a]=s;for(let f=0;f<n;f++){let g=e[a][f];for(;g!==a;)i.push(g),g=e[g][f]}}[o,i]=[i,o],s+=1}return l}function*uD(e,t,r,n){let l=e.length,o=0;for(let i=0;i<l;i++)o=Math.max(o,r[i][e[i]]);for(;o<=n;)yield*fm(e,t,r,o,-1),o++}function*fm(e,t,r,n,l){let o=e.length,i=t[0][0].length,s=0;for(let a=0;a<o;a++)s=Math.max(s,r[a][e[a]]);if(!(s>n)){if(n===0){yield[];return}if(!(s===0&&n===1))for(let a=0;a<i;a++){if(a===l||a<l&&tm(a,l))continue;let f=e.slice();for(let u=0;u<o;u++)f[u]=t[u][e[u]][a];let g=1;for(;e.some((u,c)=>e[c]!==f[c]);){let u=fm(f,t,r,n-1,a);for(;;){let{value:c,done:p}=u.next();if(p)break;yield[[a,g]].concat(c)}for(let c=0;c<o;c++)f[c]=t[c][f[c]][a];g++}}}}async function gD(){return $3(!1)}var _x,zx,Cx,G3,W3,K3,Q3,j3,q3,V3,H3,Tl,X3,_n,Ms,nD,rm,lD,S2,y2,$p,x2,yr,we,um=A(()=>{"use strict";xt();[_x,zx]=(()=>{let e=new Int8Array(49152),t=new Int8Array(4096*12);for(let l=0;l<4096;l++)for(let o=0,i=0;o<12;o++)(l>>>o&1)!==0&&(e[o<<12|l]=i,t[i<<12|l]=o,i++);function r(l){let o=4095,i=19958400,s=0;for(let a=0;a<10;a++){let f=l[a];s+=e[o|f<<12]*i,o&=~(1<<f),i/=11-a}return s}function n(l,o){let i=4095,s=19958400,a=0;for(let f=0;f<10;f++){let g=l/s|0;l-=g*s,a^=g&1;let u=t[i|g<<12];o[f]=u,i&=~(1<<u),s/=11-f}return o[10]=t[i|a<<12],o[11]=t[i|(a^1)<<12],o}return[r,n]})();Cx={co:[0,0,0,0],mp:kn(12),wp:kn(12),cp:[0,1,2,3]},G3={co:[2,0,0,0],mp:kn(12),wp:Qo([1,9,11],12),cp:[0,1,2,3]},W3={co:[0,2,0,0],mp:kn(12),wp:Qo([0,7,2],12),cp:[0,1,2,3]},K3={co:[0,0,2,0],mp:kn(12),wp:Qo([3,6,10],12),cp:[0,1,2,3]},Q3={co:[0,0,0,2],mp:kn(12),wp:Qo([4,8,5],12),cp:[0,1,2,3]},j3={co:[2,0,0,0],mp:Jr([[1,9,11],[7,3,5]],12),wp:Jr([[1,9,11],[7,3,5]],12),cp:[0,2,3,1]},q3={co:[0,2,0,0],mp:Jr([[0,7,2],[6,1,8]],12),wp:Jr([[0,7,2],[6,1,8]],12),cp:[3,1,0,2]},V3={co:[0,0,2,0],mp:Jr([[3,6,10],[9,0,4]],12),wp:Jr([[3,6,10],[9,0,4]],12),cp:[1,3,2,0]},H3={co:[0,0,0,2],mp:Jr([[4,8,5],[10,2,11]],12),wp:Jr([[4,8,5],[10,2,11]],12),cp:[2,0,1,3]},Tl=[j3,q3,V3,H3,G3,W3,K3,Q3],X3=["u","l","r","b","U","L","R","B"],_n=8,Ms=4;nD=[],rm=[],lD=[],S2=[];for(let e=0;e<_n;e++){let t=Tl[e];nD[e]=t.mp,rm[e]=A2(t.mp),lD[e]=t.wp,S2[e]=A2(t.wp)}y2=[0,0,0,0,2,2,2,2],$p=[[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]],x2=new Int8Array(55);for(let e=0;e<25;e++)x2[e]=$p[0][e],x2[e+30]=$p[1][e];yr=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,l=2;t===e?l++:t===(e+6)%12&&l--,r===(e+6)%12?l++:r===e&&l--,yr[n]=l,yr[n+6*12*12]=yr[n+2*6*12*12]=l+5}we={}});var gm={};Lt(gm,{randomMasterTetraminxScrambleString:()=>gD});var cm=A(()=>{"use strict";um()});function FD(e,t){e.ul=t.ul,e.ur=t.ur,e.dl=t.dl,e.dr=t.dr,e.ml=t.ml}function Am(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 yD(e){var t,r,n,l,o;for(n=0,e.arr[0]=rr(e,0),l=1;l<24;++l)rr(e,l)!==e.arr[n]&&(e.arr[++n]=rr(e,l));for(o=0,t=0;t<16;++t)for(r=t+1;r<16;++r)e.arr[t]>e.arr[r]&&(o^=1);return o}function AD(e){var t,r,n,l;return l=e.ur&1118481,l|=~~l>>3,l|=~~l>>6,l=l&15|~~l>>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,jo(yD(e)<<24|n<<18|l<<12|t<<6|r)}function SD(e,t){var r,n;for(r=0;r<8;++r)e.prm[r]=~~(~~rr(e,r*3+1)>>1<<24)>>24;for(t.cornperm=Xo(e.prm),t.topEdgeFirst=rr(e,0)===rr(e,1),r=t.topEdgeFirst?2:0,n=0;n<4;r+=3,++n)e.prm[n]=~~(~~rr(e,r)>>1<<24)>>24;for(t.botEdgeFirst=rr(e,12)===rr(e,13),r=t.botEdgeFirst?14:12;n<8;r+=3,++n)e.prm[n]=~~(~~rr(e,r)>>1<<24)>>24;t.edgeperm=Xo(e.prm),t.ml=e.ml}function rr(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 b2(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 z2(){this.arr=[],this.prm=[]}function xD(){var e,t,r,n,l,o,i,s,a;for(e=new z2,r=Gl[te(3678)],l=19088743<<1|286331153,n=19088743<<1,i=o=8,t=0;t<24;t++)(r>>t&1)===0?(s=te(o)<<2,b2(e,23-t,n>>s&15),a=(1<<s)-1,n=(n&a)+(n>>4&~a),--o):(s=te(i)<<2,b2(e,23-t,l>>s&15),b2(e,22-t,l>>s&15),a=(1<<s)-1,l=(l&a)+(l>>4&~a),--i,++t);return e.ml=te(2),e}function vD(){}function UD(e){var t,r,n,l,o,i;for(FD(e.Search_d,e.Search_c),n=0;n<e.Search_length1;++n)Am(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,o=e.Search_sq.ml,i=Math.max(ve[e.Search_sq.edgeperm<<1|o],ve[e.Search_sq.cornperm<<1|o]),n=i;n<e.Search_maxlen2;++n)if(Is(e,r,t,e.Search_sq.topEdgeFirst,e.Search_sq.botEdgeFirst,o,n,e.Search_length1,0)){for(l=0;l<n;++l)Am(e.Search_d,e.Search_move[e.Search_length1+l]);return e.Search_sol_string=bD(e,n+e.Search_length1),!0}return!1}function bD(e,t){for(var r="",n=0,l=0,o=t-1;o>=0;o--){var i=e.Search_move[o];i>0?(i=12-i,n=i>6?i-12:i):i<0?(i=12+i,l=i>6?i-12:i):(n===0&&l===0?r+=" / ":r+=\`(\${n}, \${l}) / \`,n=l=0)}return(n!==0||l!==0)&&(r+=\`(\${n}, \${l})\`),r}function Os(e,t,r,n,l,o){var i,s,a;if(r===0&&n<4)return n===0&&UD(e);if(o!==0&&(a=Ts[t],s=Ve[a],s<n&&(e.Search_move[l]=0,Os(e,a,s,n-1,l+1,0))))return!0;if(a=t,o<=0){for(i=0;i+=Ho[a],a=~~i>>4,i&=15,!(i>=12||(s=Ve[a],s>n));)if(s<n&&(e.Search_move[l]=i,Os(e,a,s,n-1,l+1,1)))return!0}if(a=t,o<=1){for(i=0;i+=Vo[a],a=~~i>>4,i&=15,!(i>=6||(s=Ve[a],s>n));)if(s<n&&(e.Search_move[l]=-i,Os(e,a,s,n-1,l+1,2)))return!0}return!1}function Is(e,t,r,n,l,o,i,s,a){var f,g,u,c,p,L,m;if(i===0&&!n&&l||a!==0&&n===l&&(u=Jo[t],g=Jo[r],ve[u<<1|1-o]<i&&ve[g<<1|1-o]<i&&(e.Search_move[s]=0,Is(e,u,g,n,l,1-o,i-1,s+1,0))))return!0;if(a<=0)for(m=!n,u=m?Nn[t]:t,g=m?r:Nn[r],c=m?1:2,p=ve[u<<1|o],L=ve[g<<1|o];c<12&&p<=i&&p<=i;){if(p<i&&L<i&&(e.Search_move[s]=c,Is(e,u,g,m,l,o,i-1,s+1,1)))return!0;m=!m,m?(u=Nn[u],p=ve[u<<1|o],c+=1):(g=Nn[g],L=ve[g<<1|o],c+=2)}if(a<=1)for(f=!l,u=f?Cn[t]:t,g=f?r:Cn[r],c=f?1:2,p=ve[u<<1|o],L=ve[g<<1|o];c<(i>3?6:12)&&p<=i&&p<=i;){if(p<i&&L<i&&(e.Search_move[s]=-c,Is(e,u,g,n,f,o,i-1,s+1,2)))return!0;f=!f,f?(u=Cn[u],p=ve[u<<1|o],c+=1):(g=Cn[g],L=ve[g<<1|o],c+=2)}return!1}function ED(e,t){var r;for(e.Search_c=t,r=AD(t),e.Search_length1=Ve[r];e.Search_length1<100&&(e.Search_maxlen2=Math.min(31-e.Search_length1,17),!Os(e,r,Ve[r],e.Search_length1,0,-1));++e.Search_length1);return e.Search_sol_string}function vm(){this.Search_move=[],this.Search_d=new z2,this.Search_sq=new bm}function wD(){}function kD(){Sm||(Sm=!0,qo=[0,3,6,12,15,24,27,30,48,51,54,60,63],Gl=[],Ve=[],Ho=[],Vo=[],Ts=[],CD())}function _D(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((Pn(e.bottom&63)&1)!==0);return(Pn(e.bottom)&2)===0&&(e.Shape_parity^=r),t}function E2(e){var t;return t=wm(Gl,e.top<<12|e.bottom)<<1|e.Shape_parity,t}function w2(e,t){e.Shape_parity=t&1,e.top=Gl[~~t>>1],e.bottom=e.top&4095,e.top>>=12}function zD(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((Pn(e.top&63)&1)!==0);return(Pn(e.top)&2)===0&&(e.Shape_parity^=r),t}function Um(){}function jo(e){var t;return t=wm(Gl,e&16777215)<<1|~~e>>24,t}function CD(){var e,t,r,n,l,o,i,s,a,f,g,u,c,p,L,m;for(e=0,i=0;i<28561;++i)o=qo[i%13],r=qo[~~(i/13)%13],u=qo[~~(~~(i/13)/13)%13],g=qo[~~(~~(~~(i/13)/13)/13)],c=g<<18|u<<12|r<<6|o,Pn(c)===16&&(Gl[e++]=c);for(f=new Um,i=0;i<7356;++i)w2(f,i),Ho[i]=zD(f),Ho[i]|=E2(f)<<4,w2(f,i),Vo[i]=_D(f),Vo[i]|=E2(f)<<4,w2(f,i),m=f.top&63,p=Pn(m),L=Pn(f.bottom&4032),f.Shape_parity^=1&~~(p&L)>>1,f.top=f.top&4032|~~f.bottom>>6&63,f.bottom=f.bottom&63|m<<6,Ts[i]=E2(f);for(i=0;i<7536;++i)Ve[i]=-1;for(Ve[jo(14378715)]=0,Ve[jo(31157686)]=0,Ve[jo(23967451)]=0,Ve[jo(7191990)]=0,n=4,l=0,t=-1;n!==l;)for(l=n,++t,i=0;i<7536;++i)if(Ve[i]===t){a=0,s=i;do s=Ho[s],a+=s&15,s>>=4,Ve[s]===-1&&(++n,Ve[s]=t+1);while(a!==12);a=0,s=i;do s=Vo[s],a+=s&15,s>>=4,Ve[s]===-1&&(++n,Ve[s]=t+1);while(a!==12);s=Ts[i],Ve[s]===-1&&(++n,Ve[s]=t+1)}}function ND(){}function PD(){if(!xm){xm=!0,ve=[],Jo=[],Nn=[],Cn=[],Em=[1,1,2,6,24,120,720,5040],zn=[];for(var e=0;e<12;++e)zn[e]=[];MD()}}function bm(){}function Xo(e){var t,r,n,l;for(r=0,l=1985229328,t=0;t<7;++t)n=e[t]<<2,r=(8-t)*r+(~~l>>n&7),l-=286331152<<n;return r&65535}function MD(){var e,t,r,n,l,o,i,s,a,f,g,u,c;for(l=0;l<12;++l)for(zn[l][0]=1,zn[l][l]=1,a=1;a<l;++a)zn[l][a]=zn[l-1][a-1]+zn[l-1][a];for(u=[],l=0;l<40320;++l)k2(u,l),c=u[2],u[2]=u[4],u[4]=c,c=u[3],u[3]=u[5],u[5]=c,Jo[l]=Xo(u),k2(u,l),c=u[0],u[0]=u[1],u[1]=u[2],u[2]=u[3],u[3]=c,Nn[l]=Xo(u),k2(u,l),c=u[4],u[4]=u[5],u[5]=u[6],u[6]=u[7],u[7]=c,Cn[l]=Xo(u);for(l=0;l<80640;++l)ve[l]=-1;for(ve[0]=0,t=0,r=1;r<80640;){s=t>=11,n=s?-1:t,e=s?t:-1,++t;e:for(l=0;l<80640;++l)if(ve[l]===n){if(o=~~l>>1,g=l&1,i=Jo[o]<<1|1-g,ve[i]===e&&(++r,ve[s?l:i]=~~(t<<24)>>24,s))continue e;for(i=o,f=0;f<4;++f)if(i=Nn[i],ve[i<<1|g]===e&&(++r,ve[s?l:i<<1|g]=~~(t<<24)>>24,s))continue e;for(f=0;f<4;++f)if(i=Cn[i],ve[i<<1|g]===e&&(++r,ve[s?l:i<<1|g]=~~(t<<24)>>24,s))continue e}}}function k2(e,t){var r,n,l,o,i;for(i=1985229328,r=0;r<7;++r)l=Em[7-r],o=~~(t/l),t-=o*l,o<<=2,e[r]=~~((~~i>>o&7)<<24)>>24,n=(1<<o)-1,i=(i&n)+(~~i>>4&~n);e[7]=~~(i<<24)>>24}function OD(){}function Pn(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 wm(e,t){var r,n,l,o;for(n=0,r=e.length-1;n<=r;)if(l=n+(~~(r-n)>>1),o=e[l],o<t)n=l+1;else if(o>t)r=l-1;else return l;return-n-1}function KD(){return WD().scramble_string}var _e,Sm,Vo,Gl,Ve,Ho,Ts,qo,xm,Cn,zn,ve,Nn,Jo,Em,_2,ID,TD,GD,WD,km=A(()=>{"use strict";xt();_e=z2.prototype=vD.prototype;_e.dl=10062778;_e.dr=14536702;_e.ml=0;_e.ul=70195;_e.ur=4544119;_e=vm.prototype=wD.prototype;_e.Search_c=null;_e.Search_length1=0;_e.Search_maxlen2=0;_e.Search_sol_string=null;Sm=!1;_e=Um.prototype=ND.prototype;_e.bottom=0;_e.Shape_parity=0;_e.top=0;xm=!1;_e=bm.prototype=OD.prototype;_e.botEdgeFirst=!1;_e.cornperm=0;_e.edgeperm=0;_e.ml=0;_e.topEdgeFirst=!1;_2=!1,ID=function(e,t,r){_2||(kD(),PD()),r&&r("Done initializing Square-1."),_2=!0,e?.()},TD=function(){return _2||ID(),xD()},GD=function(e){var t=new vm;return ED(t,e)},WD=function(){var e=TD(),t=GD(e);return{state:e,scramble_string:t}}});var _m={};Lt(_m,{getRandomSquare1ScrambleString:()=>KD});var zm=A(()=>{"use strict";km()});var I2=Symbol("Comlink.proxy"),Km=Symbol("Comlink.endpoint"),Qm=Symbol("Comlink.releaseProxy"),Ks=Symbol("Comlink.thrown"),T2=e=>typeof e=="object"&&e!==null||typeof e=="function",jm={canHandle:e=>T2(e)&&e[I2],serialize(e){let{port1:t,port2:r}=new MessageChannel;return Wl(e,t),[r,[r]]},deserialize(e){return e.start(),Hm(e)}},qm={canHandle:e=>T2(e)&&Ks 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}},G2=new Map([["proxy",jm],["throw",qm]]);function Wl(e,t=self){t.addEventListener("message",function r(n){if(!n||!n.data)return;let{id:l,type:o,path:i}=Object.assign({path:[]},n.data),s=(n.data.argumentList||[]).map(Zr),a;try{let f=i.slice(0,-1).reduce((u,c)=>u[c],e),g=i.reduce((u,c)=>u[c],e);switch(o){case"GET":a=g;break;case"SET":f[i.slice(-1)[0]]=Zr(n.data.value),a=!0;break;case"APPLY":a=g.apply(f,s);break;case"CONSTRUCT":{let u=new g(...s);a=Zm(u)}break;case"ENDPOINT":{let{port1:u,port2:c}=new MessageChannel;Wl(e,c),a=Jm(u,[u])}break;case"RELEASE":a=void 0;break;default:return}}catch(f){a={value:f,[Ks]:0}}Promise.resolve(a).catch(f=>({value:f,[Ks]:0})).then(f=>{let[g,u]=js(f);t.postMessage(Object.assign(Object.assign({},g),{id:l}),u),o==="RELEASE"&&(t.removeEventListener("message",r),W2(t))})}),t.start&&t.start()}function Vm(e){return e.constructor.name==="MessagePort"}function W2(e){Vm(e)&&e.close()}function Hm(e,t){return Qs(e,[],t)}function Zo(e){if(e)throw new Error("Proxy has been released and is not useable")}function Qs(e,t=[],r=function(){}){let n=!1,l=new Proxy(r,{get(o,i){if(Zo(n),i===Qm)return()=>Mn(e,{type:"RELEASE",path:t.map(s=>s.toString())}).then(()=>{W2(e),n=!0});if(i==="then"){if(t.length===0)return{then:()=>l};let s=Mn(e,{type:"GET",path:t.map(a=>a.toString())}).then(Zr);return s.then.bind(s)}return Qs(e,[...t,i])},set(o,i,s){Zo(n);let[a,f]=js(s);return Mn(e,{type:"SET",path:[...t,i].map(g=>g.toString()),value:a},f).then(Zr)},apply(o,i,s){Zo(n);let a=t[t.length-1];if(a===Km)return Mn(e,{type:"ENDPOINT"}).then(Zr);if(a==="bind")return Qs(e,t.slice(0,-1));let[f,g]=O2(s);return Mn(e,{type:"APPLY",path:t.map(u=>u.toString()),argumentList:f},g).then(Zr)},construct(o,i){Zo(n);let[s,a]=O2(i);return Mn(e,{type:"CONSTRUCT",path:t.map(f=>f.toString()),argumentList:s},a).then(Zr)}});return l}function Xm(e){return Array.prototype.concat.apply([],e)}function O2(e){let t=e.map(js);return[t.map(r=>r[0]),Xm(t.map(r=>r[1]))]}var K2=new WeakMap;function Jm(e,t){return K2.set(e,t),e}function Zm(e){return Object.assign(e,{[I2]:!0})}function js(e){for(let[t,r]of G2)if(r.canHandle(e)){let[n,l]=r.serialize(e);return[{type:"HANDLER",name:t,value:n},l]}return[{type:"RAW",value:e},K2.get(e)||[]]}function Zr(e){switch(e.type){case"HANDLER":return G2.get(e.name).deserialize(e.value);case"RAW":return e.value}}function Mn(e,t,r){return new Promise(n=>{let l=Ym();e.addEventListener("message",function o(i){!i.data||!i.data.id||i.data.id!==l||(e.removeEventListener("message",o),n(i.data))}),e.start&&e.start(),e.postMessage(Object.assign({id:l},t),r)})}function Ym(){return new Array(4).fill(0).map(()=>Math.floor(Math.random()*Number.MAX_SAFE_INTEGER).toString(16)).join("-")}function $m(e){let t=new WeakMap;return{postMessage:e.postMessage.bind(e),addEventListener:(r,n)=>{let l=o=>{"handleEvent"in n?n.handleEvent({data:o}):n({data:o})};e.on("message",l),t.set(n,l)},removeEventListener:(r,n)=>{let l=t.get(n);!l||(e.off("message",l),t.delete(n))},nodeWorker:e}}var Q2=$m;var eL=typeof globalThis.Worker>"u"&&typeof globalThis.WorkerNavigator>"u",tL="node:w-orker-_threa-ds",rL=()=>tL.replace(/-/g,"");async function nL(){let{parentPort:e}=await import(rL()).catch();return Q2(e)}function j2(e){eL?(async()=>Wl(e,await nL()))():Wl(e)}We();gr();St();We();gr();xt();St();fe();fe();fe();var Bo=class extends nn{constructor(r){super();this.metric=r}traverseAlg(r){let n=0;for(let l of r.childAlgNodes())n+=this.traverseAlgNode(l);return n}traverseGrouping(r){let n=r.alg;return this.traverseAlg(n)*Math.abs(r.amount)}traverseMove(r){return this.metric(r)}traverseCommutator(r){return 2*(this.traverseAlg(r.A)+this.traverseAlg(r.B))}traverseConjugate(r){return 2*this.traverseAlg(r.A)+this.traverseAlg(r.B)}traversePause(r){return 0}traverseNewline(r){return 0}traverseLineComment(r){return 0}};function yu(e){return"A"<=e&&e<="Z"}function XL(e){let t=e.family;return yu(t[0])&&t[t.length-1]==="v"||t==="x"||t==="y"||t==="z"||t==="T"?0:1}function JL(e){return 1}function ZL(e){let t=e.family;return yu(t[0])&&t[t.length-1]==="v"||t==="x"||t==="y"||t==="z"||t==="T"?0:Math.abs(e.amount)}var Qa=kt(Bo,[XL]),YL=kt(Bo,[JL]),$L=kt(Bo,[ZL]);fe();fe();var ja=class extends nn{traverseAlg(t){let r=0;for(let n of t.childAlgNodes())r+=this.traverseAlgNode(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}},eB=kt(ja);xt();var tB=2,rB=!0,nB=!1;function lB(e,t){let r=[];return t.forEach(function(n){let l=new B(n);if(l.amount!==1)throw new Error("SGS cannot handle def moves with an amount other than 1 yet.");let o=e.identityTransformation();for(let i=1;o=o.applyMove(l),!o.isIdentityTransformation();i++)r.push({move:l.modified({amount:i}),transformation:o})}),r}var Nt=class{constructor(t,r,n){this.kpuzzle=t;this.sgs=r;this.searchMoves=lB(this.kpuzzle,n??Object.keys(this.kpuzzle.definition.moves))}async solve(t,r=tB,n){let l=t.experimentalToTransformation();if(!l)throw new Error("distinguishable pieces are not supported in tremble solver yt");let o=null,i=1e6,s=(a,f,g)=>{if(f===0){let u=this.sgsPhaseSolve(a,i);if(!u)return;let c=g.concat(u).experimentalSimplify({cancel:{puzzleSpecificModWrap:"canonical-centered"},puzzleSpecificSimplifyOptions:{quantumMoveOrder:n}}),p=Qa(c);(o===null||p<i)&&(nB&&(console.log(\`New best (\${p} moves): \${c.toString()}\`),console.log(\`Tremble moves are: \${g.toString()}\`)),o=c,i=p);return}for(let u of this.searchMoves)s(a.applyTransformation(u.transformation),f-1,g.concat([u.move]))};for(let a=0;a<=r;a++)s(l,a,new E);if(o===null)throw new Error("SGS search failed.");return o}sgsPhaseSolve(t,r){let n=new Bt,l=t;for(let o of this.sgs.ordering){let i=o.pieceOrdering,s="",a=l.invert();for(let g=0;g<i.length;g++){let u=i[g],c=u.orbitName,p=u.permutationIdx;s+=\` \${a.transformationData[c].permutation[p]} \${a.transformationData[c].orientation[p]}\`}let f=o.lookup[s];if(!f)throw new Error("Missing algorithm in sgs or esgs?");if(n.experimentalPushAlg(f.alg),n.experimentalNumAlgNodes()>=r)return null;if(l=l.applyTransformation(f.transformation),rB)for(let g=0;g<i.length;g++){let u=i[g],c=u.orbitName,p=u.permutationIdx;if(l.transformationData[c].permutation[p]!==p||l.transformationData[c].orientation[p]!==0)throw new Error("bad SGS :-(")}}return n.toAlg()}};function bi(e,t){let r=e.identityTransformation();for(let n of t.ordering){let l=cr(Object.values(n.lookup));r=r.applyTransformation(l.transformation)}return r.toKState()}_t();var ut=Ke(()=>Promise.resolve().then(()=>(_u(),ku)));var dB=3,zu=null;async function Cu(){return zu||(zu=(async()=>{let e=await(await ut).cachedData222();return new Nt(await Oe["2x2x2"].kpuzzle(),e,"URFLBD".split(""))})())}async function Nu(){await Cu()}async function Ja(e){return Ee(),await(await Cu()).solve(e,dB,()=>4)}function RB(e,t,r,n){Fu(r.stateData[t].pieces);let l=e.definition.orbits[t],o=r.stateData[t].orientation,i=0;for(let s=0;s<l.numPieces;s++){let a=te(l.numOrientations);o[s]=a,i+=a}n&&"orientationSum"in n&&(o[0]=((o[0]+n.orientationSum-i)%l.numOrientations+l.numOrientations)%l.numOrientations)}async function hB(){let e=await Oe["2x2x2"].kpuzzle(),t=new me(e,JSON.parse(JSON.stringify(e.startState().stateData)));return RB(e,"CORNERS",t,{orientationSum:0}),t}async function Pu(){return await Ja(await hB())}y0();Ei();_t();var H0=Ke(()=>Promise.resolve().then(()=>(Gc(),Tc)));var zR=[[null,"x","x2","x'","z","z'"],[null,"y","y2","y'"]];async function Wc(){return(await H0).initialize()}async function X0(){return(await H0).random444Scramble()}async function Kc(){return il(await X0(),zR)}Ei();fe();xt();function CR(e){switch(e){case 5:return 60;case 6:return 80;default:return 100}}var NR=[["U","D"],["L","R"],["F","B"]],Qc=new Map;function PR(e){let t=Qc.get(e);if(t)return t;let r=[];for(let n of NR){let l=[];r.push(l);for(let o of n){l.push(new _(o)),e>3&&l.push(new _(\`\${o}w\`));for(let i=3;i<=e/2;i++)l.push(new _(\`\${o}w\`,i))}}return Qc.set(e,r),r}async function hr(e){let t=PR(e),r=CR(e),n=new Bt,l=0,o=new Set;for(;n.experimentalNumAlgNodes()<r;){let i=te(3);i!==l&&o.clear(),l=i;let s=cr(t[l]),a=s.toString();o.has(a)||(o.add(a),n.push(new B(s,cr([1,2,-1]))))}return n.toAlg()}var MR=[[null,"3Rw","3Rw2","3Rw'","3Fw","3Fw'"],[null,"3Dw","3Dw2","3Dw'"]];async function jc(){return il(await hr(5),MR)}fe();gr();_t();St();_t();var xp=Ke(()=>Promise.resolve().then(()=>(Sp(),Ap)));var hx=Ke(()=>Promise.resolve().then(()=>(L2(),m2)));async function Ip(){return Ee(),new E(await(await xp).randomFTOScrambleString())}St();_t();var Zp=Ke(()=>Promise.resolve().then(()=>(Jp(),Xp)));async function Yp(){return Ee(),(await Zp).getRandomKilominxScramble()}fe();St();_t();var pm=Ke(()=>Promise.resolve().then(()=>(cm(),gm)));async function mm(){return Ee(),new E(await(await pm).randomMasterTetraminxScrambleString())}We();St();var cD=2,Lm=null;async function pD(){return Lm||(Lm=(async()=>{let e=await(await ut).cachedSGSDataMegaminx();return new Nt(await(await ut).cachedMegaminxKPuzzleWithoutMO(),e,["U","R","F","L","BR","BL","FR","FL","DR","DL","B","D"])})())}async function Bm(e){Ee();let t=await pD(),r=JSON.parse(JSON.stringify(e.stateData));r.CENTERS.orientation=new Array(12).fill(0);let n=new me(await(await ut).cachedMegaminxKPuzzleWithoutMO(),r);return await t.solve(n,cD,()=>5)}gr();St();var mD=3,dm=null;async function LD(){return dm||(dm=(async()=>{let e=await(await ut).sgsDataPyraminx();return new Nt(await Oe.pyraminx.kpuzzle(),e,"RLUB".split(""))})())}async function v2(e){return Ee(),await(await LD()).solve(e,mD,()=>3)}async function BD(){return Ee(),bi(await Oe.pyraminx.kpuzzle(),await(await ut).sgsDataPyraminxFixedOrientation())}async function Rm(){return v2(await BD())}St();_t();var hm=Ke(()=>Promise.resolve().then(()=>(L2(),m2)));async function Dm(){return Ee(),(await hm).getRandomRediCubeScramble()}We();St();var dD=3,Fm=null;async function RD(){return Fm||(Fm=(async()=>{let e=await(await ut).sgsDataSkewb();return new Nt(await(await ut).skewbKPuzzleWithoutMOCached(),e,"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 U2(e){return Ee(),await(await RD()).solve(hD(e),dD,n=>n.family==="y"?4:3)}async function DD(){return bi(await(await ut).skewbKPuzzleWithoutMOCached(),await(await ut).sgsDataSkewbFixedCorner())}async function ym(){return U2(await DD())}fe();_t();var Cm=Ke(()=>Promise.resolve().then(()=>(zm(),_m)));async function Nm(){return E.fromString(await(await Cm).getRandomSquare1ScrambleString())}var QD=1e3;Ru(!0);var Om=!0;function jD(e){Om=e}function Pm(){return(typeof performance>"u"?Date:performance).now()}async function ze(e,t,r){if(!Om)return t();let n=Pm(),l=t();l?.then&&await l;let o=Pm();return console.warn(\`\${e}\${r?.isPrefetch?" (prefetched)":""}: \${Math.round(o-n)}ms\`),l}var C2=new Map,N2=null;async function Mm(e,t){switch(e){case"222":return ze("random222Scramble",Pu,{isPrefetch:t?.isPrefetch});case"333":case"333oh":case"333ft":return ze("random333Scramble",Rl,{isPrefetch:t?.isPrefetch});case"333fm":return ze("random333FewestMovesScramble",wg);case"333bf":case"333mb":return ze("random333OrientedScramble",Eg);case"444":return ze("random444Scramble",X0,{isPrefetch:t?.isPrefetch});case"444bf":return ze("random444OrientedScramble",Kc);case"555":return ze("bigCubeScramble(5)",hr.bind(hr,5));case"555bf":return ze("oriented555RandomMoves",jc);case"666":return ze("bigCubeScramble(6)",hr.bind(hr,6));case"777":return ze("bigCubeScramble(7)",hr.bind(hr,7));case"skewb":return ze("randomSkewbFixedCornerScramble",ym);case"pyram":return ze("randomPyraminxScrambleFixedOrientation",Rm);case"sq1":return ze("getRandomSquare1Scramble",Nm,{isPrefetch:t?.isPrefetch});case"fto":return ze("randomFTOScramble",Ip,{isPrefetch:t?.isPrefetch});case"master_tetraminx":return ze("randomMasterTetraminxScramble",mm);case"kilominx":return ze("randomKilominxScramble",Yp,{isPrefetch:t?.isPrefetch});case"redi_cube":return ze("randomRediCubeScramble",Dm,{isPrefetch:t?.isPrefetch});default:throw new Error(\`unsupported event: \${e}\`)}}var P2="auto",M2={initialize:async e=>{switch(e){case"222":return ze("preInitialize222",Nu);case"333":case"333oh":case"333ft":return ze("initialize333",bg);case"444":return ze("initialize444",Wc);default:throw new Error(\`unsupported event: \${e}\`)}},setScramblePrefetchLevel(e){P2=e},randomScrambleForEvent:async e=>{let t=C2.get(e);return t?C2.delete(e):t=Mm(e),P2!=="none"&&t.then(()=>{N2&&clearTimeout(N2),N2=setTimeout(()=>{C2.set(e,Mm(e,{isPrefetch:!0}))},P2==="immediate"?0:QD)}),t},randomScrambleStringForEvent:async e=>(await M2.randomScrambleForEvent(e)).toString(),solve333ToString:async e=>{let t=new me(await Oe["3x3x3"].kpuzzle(),e);return(await F0(t)).toString()},solve222ToString:async e=>{let t=new me(await Oe["2x2x2"].kpuzzle(),e);return(await Ja(t)).toString()},solveSkewbToString:async e=>{let t=new me(await Oe.skewb.kpuzzle(),e);return(await U2(t)).toString()},solvePyraminxToString:async e=>{let t=new me(await Oe.pyraminx.kpuzzle(),e);return(await v2(t)).toString()},solveMegaminxToString:async e=>{let t=new me(await Oe.megaminx.kpuzzle(),e);return(await Bm(t)).toString()},setDebugMeasurePerf:async e=>{jD(e)}};j2(M2);
|
|
4059
4059
|
`;
|
|
4060
4060
|
export {
|
|
4061
4061
|
workerSource
|
|
4062
4062
|
};
|
|
4063
|
-
//# sourceMappingURL=search-worker-inside-generated-string-
|
|
4063
|
+
//# sourceMappingURL=search-worker-inside-generated-string-DV5JEWBV.js.map
|