memoscan
← all memos

Memo 0x0e354ccd…f588fd on Ethereum

|dt||Ie||ft:y===3?Ke=Oe||dt||X:y===4?Ke=Oe||dt||me:y===5?Ke=Oe||dt||Ie&&me:y===6?Ke=Oe||dt||!fe&&te>f.wingHoles*.72:y===7?Ke=Oe||dt||(ct?te>.3:X):y===8?Ke=Oe||dt||(St?te>.3:Ie):y===9&&(Ke=Oe||dt||te>.7),(ct||St)&&!ut&&Ke&&(ue(r,g-oe,J),ue(r,g+oe,J))}let Ee=k(g-(S-1)/2),at=Ee+S-1;for(let J=Ee;J<=at;J+=1)if(ue(r,g,J),!R&&f.bodyWidth&&J>Ee+2&&J<at-2&&(J+p)%2===0)for(let oe=1;oe<=k(h);oe+=1)ue(r,g-oe,J),ue(r,g+oe,J);let ie=R?1:f.antennaLength;for(let J=1;J<=ie;J+=1){let oe=Ee-J,Be=1+T(J*.72);ue(r,g-Be,oe),ue(r,g+Be,oe)}let Ce=M(k(2*h),k(D*(p===1?.62:p===3?.38:.5)));for(let J of[-1,1]){let oe=g+J*Ce,Be=z(d-2,at);for(;Be>Ee&&!r[le(oe,Be)];)Be-=1;let Re=R?k(3*h):f.tailLength+(p===1||p===3?k(2*h):0)+(f.mutation===3?k(2*h):0);for(let Ne=1;Ne<=Re;Ne+=1){let Xe=Be+Ne,ct=p===3?T(Ne/(3*h))*J:0;ue(r,oe+ct,Xe)}}return so(r)}function lo(n){let r=0,p=d,y=d,A=-1,R=-1,S=0,D=0,E=[];for(let U=0;U<q;U+=1){let O=B[U],W=Y[U];if(n[U]){r+=1,p=z(p,O),y=z(y,W),A=M(A,O),R=M(R,W);for(let[_,xe]of[[-1,0],[1,0],[0,-1],[0,1]]){let v=O+_,L=W+xe;(v<0||v>=d||L<0||L>=d||!n[le(v,L)])&&(S+=1)}}else{let _=0;for(let xe=-1;xe<=1;xe+=1)for(let v=-1;v<=1;v+=1){let L=O+v,P=W+xe;(v||xe)&&L>=0&&L<d&&P>=0&&P<d&&n[le(L,P)]&&(_+=1)}_>=6&&(D+=1)}}for(let U=y;U<=R;U+=1){let O=0;for(let W=0;W<d;W+=1)n[le(W,U)]&&(O+=1);E.push(O)}let N=A-p+1,F=R-y+1,I=E.reduce((U,O,W)=>U+(W?b(O-E[W-1]):0),0);return{active:r,width:N,height:F,aspect:N/F,density:r/(N*F),perimeter:S,voids:D,rowVariation:I}}function Ss(n){let r=atob(n),p=19,y=d-p>>1,A=ye(!1);for(let R=0;R<p**2;R+=1)r.charCodeAt(R>>3)&128>>(R&7)&&ue(A,R%p+y,T(R/p)+y);return A}let As=["AAAAAAAAAABwAAoAA+AAOAAKgADgACoAA4AAqAAOAAKgADgABwAA4AAAAAAAAA==","AAAAAAADgABQAQ4QG+wBbQBXUAdcAHcAF9ABVAA1gANgALoABwAA4AAAAAAAAA==","AAAAIgAEQCZTI+T4QqEL76CayA5OAH8A994Wc0VVVDyeA1WAICAEBACAgAAAAA=="].map(Ss),he;if(t.lifecycleStates!==void 0){if(!Array.isArray(t.lifecycleStates)||t.lifecycleStates.length!==Ir.length)throw new TypeError("lifecycleStates must contain caterpillar, pupa, and butterfly boards");he=t.lifecycleStates.map((n,r)=>{if(n==null||n.length!==q)throw new RangeError(`${Ir[r]} lifecycle state must contain ${q} cells`);return Array.from(n,Boolean)})}else if(gt)he=As;else{let n=ys(),r=bs(n);he=[n,r,ws(r)]}let ot=he.map(lo),[co,ya,uo]=he,Ms=n=>{let r=[];for(let S=1;S<d-1;S+=1){let D=d,E=-1,N=0;for(let F=1;F<d-1;F+=1)n[le(F,S)]&&(D=z(D,F),E=M(E,F),N+=1);E>=0&&r.push({y:S,extent:E-D+1,active:N,reach:M(g-D,E-g)})}let p=(S,D,E="extent")=>{let N=r.slice(T(r.length*S),M(T(r.length*S)+1,H(r.length*D)));return N.reduce((F,I)=>F+I[E],0)/M(1,N.length)},y=r.filter(S=>S.reach>=3),A=0,R=-2;return y.forEach(S=>{S.y>R+1&&(A+=1),R=S.y}),{rows:r,top:p(0,.28),middle:p(.36,.64),bottom:p(.72,1),edgeVariation:r.reduce((S,D,E)=>S+(E?b(D.extent-r[E-1].extent):0),0),wingRows:y.length,wingFields:M(1,A),centerSpan:r.reduce((S,D)=>S+n[le(g,D.y)],0)}},rn=he.map(Ms),fo=n=>n.density>=.76?"Solid":n.density>=.6?"Filled":n.voids>=7&&n.density<.52?"Windowed":n.density<.34?"Filigree":n.perimeter/M(1,n.active)>2.08?"Lattice":"Ribbed",ba=(n,r,p)=>n.aspect<(p?.36:.25)?p?"Pendant":"Filament":r.middle>M(r.top,r.bottom)*1.3?p?"Diamond":"Lantern":z(r.top,r.bottom)>r.middle*1.18?"Hourglass":r.top>r.bottom*1.32?p?"Mantled":"Crowned":!p&&r.top>r.bottom*1.12?"Tapered":r.edgeVariation/M(1,n.height)>.9?"Segmented":p&&n.aspect>.82?"Orbital":p?"Capsule":n.width>=12?"Armored":"Columnar",xs=(n,r)=>{let p=r.edgeVariation/M(1,n.height),y=n.perimeter/M(1,n.active);return p>2.1||y>2.45?"Barbed":p>1.15||y>2?"Articulated":"Quiet edge"},Es=n=>{let r=n.top<n.middle*.62,p=n.bottom<n.middle*.62;return r&&p?"Suspended":r?"Crowned":p?"Tailed":"Sealed"},Rs=n=>n<=17*h?"Compact":n<=23*h?"Balanced":n<=27*h?"Broad":"Monumental",Cs=n=>n<=8*h?"Shallow":n<=16*h?"Balanced":"Deep",ks=(n,r)=>r.wingRows<=9*h&&r.centerSpan>=18*h?"Axial":r.wingFields>=2?"Split field":n.aspect>=1.55?"Panoramic":n.width>=27*h&&n.height>=24*h?"Monumental":n.density<.34?"Open field":"Balanced",Vt={caterpillar:{profile:ba(ot[0],rn[0],0),surface:fo(ot[0]),edge:xs(ot[0],rn[0])},pupa:{profile:ba(ot[1],rn[1],1),surface:fo(ot[1]),termini:Es(rn[1])},butterfly:{plan:ks(ot[2],rn[2]),span:Rs(ot[2].width),depth:Cs(rn[2].wingRows),surface:fo(ot[2]),fields:rn[2].wingFields}},vs={silhouette:Zi[f.caterpillarStyle],cuticle:Qi[f.caterpillarPattern],appendages:Ji[f.appendageStyle],chrysalis:es[f.pupaStyle],casing:ts[f.pupaPattern],adornment:ns[f.pupaAccent],wingform:rs[f.wingStyle],markings:os[f.wingPattern]},wa=he.map(n=>Zn(n.map(Number).join(""))[0].toString(16).padStart(8,"0")),Sa=he[0].map((n,r)=>he.some(p=>p[r])),Aa=ao.filter((n,r)=>Sa[r]),Ma=gr.filter((n,r)=>Sa[r]),xa=he.map((n,r)=>{let p=he[(r+1)%he.length];return n.reduce((y,A,R)=>y+(A!==p[R]?1:0),0)}),Ea=ot.map(n=>n.density),ho=st?Object.freeze({temperament:Wi,rareStillness:Wt===0,motionScale:mn.timeScale,respirationDepth:[k(z(...Aa)*1e3)/10,k(M(...Aa)*1e3)/10],respirationPeriod:[k(Q*20/M(...Ma))/10,k(Q*20/z(...Ma))/10],openness:k((1-ot[2].density)*100),axiality:k(ot[2].height/M(ot[2].width,ot[2].height)*100),stageContrast:k(xa.reduce((n,r)=>n+r,0)/(q*xa.length)*1e3)/10,densitySpread:k((M(...Ea)-z(...Ea))*1e3)/10,wingFields:Vt.butterfly.fields}):null;e.dataset.shapes=wa.join(","),e.dataset.phenotype=JSON.stringify(Vt);let Ra=(n=null)=>({version:Fr,gridSize:d,gridScale:h,tokenId:nt,collectionSeed:to||null,mintable:nt!==ln,mintData:mt,rarity:gt?"Genesis":as[f.rarityTier],signature:gt?"Canonical triptych":`${Vt.caterpillar.profile} / ${Vt.pupa.profile} / ${Vt.butterfly.plan}`,palette:Ki[f.family],colors:{background:Gt[0],resting:Gt[1],birth:Gt[2],death:Gt[3]},background:Gt[0],cadence:ji[f.kineticFamily],completionPulse:oo,motion:ho,development:ot.map(r=>`${r.width}x${r.height}`).join(" to "),propagation:lt.map(r=>Yi[r.waveMode]).join(" / "),capture:lt.slice(0,2).map(r=>Xi[r.captureMode]).join(" / "),departure:Vi[lt[2].departureMode],pulse:lt.map(r=>qi[r.pulseMode]).join(" / "),construction:vs,phenotype:Vt,shapes:wa,audit:n});if(t.generateOnly){let n=Ra();return Object.freeze({version:Fr,size:d,maxTokenId:En,mintData:mt,genome:f,states:he,stageMetrics:ot,phenotypeTraits:Vt,validatedMotion:st,motionTraits:ho,echoMode:Rt,echoName:oo,kineticPhrases:lt,metadata:n,destroy(){}})}function Ft(n,r,p=f.boundaryMode){let y=r%d,A=T(r/d),R=0;for(let S=-1;S<=1;S+=1)for(let D=-1;D<=1;D+=1){if(D===0&&S===0)continue;let E=y+D,N=A+S;p===1?(E=(E+d)%d,N=(N+d)%d):p===2&&(E=$(E,0,d-1),N=$(N,0,d-1)),E>=0&&E<d&&N>=0&&N<d&&n[le(E,N)]&&(R+=1)}return R}function po(n){return n.map((r,p)=>{let y=Ft(n,p);return y===3||r&&y===2})}let Ct=f.generationCount,yr=f.exitGenerations,br=0,wr=[f.lifeA,f.lifeB,yr];function Ca(n,r){let p=ye(-1),y=[],A=0;for(r.forEach((R,S)=>{R&&n[S]&&(p[S]=0,y.push(S))});A<y.length;){let R=y[A],S=B[R],D=Y[R];A+=1;for(let E=-1;E<=1;E+=1)for(let N=-1;N<=1;N+=1){if(!N&&!E)continue;let F=S+N,I=D+E;if(F<0||F>=d||I<0||I>=d)continue;let U=le(F,I);n[U]&&p[U]<0&&(p[U]=p[R]+1,y.push(U))}}return p}function ka(n){let r=ye(-1),p=[],y=0;for(n.forEach((A,R)=>{A&&(r[R]=0,p.push(R))});y<p.length;){let A=p[y],R=B[A],S=Y[A];y+=1;for(let D=-1;D<=1;D+=1)for(let E=-1;E<=1;E+=1){if(!E&&!D)continue;let N=R+E,F=S+D;if(N<0||N>=d||F<0||F>=d)continue;let I=le(N,F);r[I]>=0||(r[I]=r[A]+1,p.push(I))}}return r}function mo(n,r,p,y,A,R){let S=ye(1/0),D=ye(!1);r.forEach((E,N)=>{E&&n[N]&&(S[N]=0)});for(let E=0;E<q;E+=1){let N=-1,F=1/0;for(let O=0;O<q;O+=1)!D[O]&&S[O]<F&&(N=O,F=S[O]);if(N<0)break;D[N]=!0;let I=B[N],U=Y[N];for(let O=-1;O<=1;O+=1)for(let W=-1;W<=1;W+=1){if(!W&&!O)continue;let _=I+W,xe=U+O;if(_<0||_>=d||xe<0||xe>=d)continue;let v=le(_,xe);if(!n[v]||D[v])continue;let L=le(d-1-_,xe),P=z(v,L),V=(ke(P,y+167,A.waveMode+13)-.5)*.08,de=p[v]?0:R+A.waveMode%3*.04,Ee=y===2?W?O?1.24:1.52:.62:W&&O?Math.SQRT2:1,at=y===2?b(_-g)/M(1,g)*.08:0,ie=F+Ee*(1+V)+de+at;ie<S[v]&&(S[v]=ie)}}return S.map(E=>Number.isFinite(E)?E:-1)}function Wn(n,r){let p=Ae(n);for(let y=0;y<r;y+=1){let A=Ae(p);p.forEach((R,S)=>{if(!R)return;let D=B[S],E=Y[S];for(let N=-1;N<=1;N+=1)for(let F=-1;F<=1;F+=1){let I=D+F,U=E+N;I>0&&I<d-1&&U>0&&U<d-1&&(A[le(I,U)]=!0)}}),p=A}return p}function Ls(n,r,p,y,A){let R=[Ae(n)],S=Ae(n),D=v=>{let L=v.reduce((P,V,de)=>V?z(P,Me[de]):P,1/0);return v.map((P,V)=>P&&Me[V]<=L+.01)},E=D(r),N=[Ae(E)],F=Ca(r,E),I=Ca(n,D(n)),U=M(...F),O=M(...I),W=Wn(n.map((v,L)=>v||r[L]),1+(re.rhythm+A.waveMode+p)%2),_=Te({length:q},(v,L)=>{let P=F[L],V=B[L]-g,de=Y[L]-g,Ee=(Math.atan2(de,V)*f.kineticDirection+Q*2)%(Q*2);return A.captureMode===1?(ke(L,p+101,89)-.5)*1.4:A.captureMode===2?ne(P*1.14+f.kineticPhase+p)*.9:A.captureMode===3?P%3===0?.65:-.25:A.captureMode===4?(ke(L,p+107,101)-.5)*1.1:A.captureMode===5?-de*.09*f.kineticDirection:A.captureMode===6?(.5-Ee/(Q*2))*1.8:A.captureMode===7?(ke(L,p+113,107)-.5)*2.2:0}),xe=$(.52+y/Ct*.48,.58,.78);for(let v=1;v<=Ct;v+=1){let L=v/Ct,P=Cr(L),V=po(S),de=ye(!1),Ee=Ae(E),at=P*(U+2.4);for(let ie=0;ie<q;ie+=1){if(E[ie]){de[ie]=!0;continue}let Ce=r[ie]?Ft(E,ie,0):0,J=A.captureMode===4&&Ce<2?1.15:0,oe=1-We($((L-.68)/.2));if(r[ie]&&Ce>0&&F[ie]<=at+_[ie]*oe-J){de[ie]=!0,Ee[ie]=!0;continue}let Be=I[ie]<0?0:I[ie]/M(1,O),Re=(ke(ie,p+149,v+17)-.5)*.1,Ne=.2+Be*.58+Re,Xe=V[ie]||S[ie]&&ke(ie,v,p+157)>.18+L*.34;if(n[ie]&&L<Ne&&Xe){de[ie]=!0;continue}W[ie]&&V[ie]&&L<xe&&(!r[ie]||F[ie]<=at+3)&&(de[ie]=!0)}v===Ct?(S=Ae(r),E=Ae(r)):(S=de,E=Ee),R.push(S),N.push(E)}return[R,N]}function Ps(n,r,p,y,A){let R=[Ae(n)],S=Ae(n),D=S.map(X=>X?1:0),E=n.map((X,te)=>X&&r[te]),N=[Ae(E)],F=n.map((X,te)=>X&&r[te]),I=F.some(Boolean),U=ka(n),O=ka(r),W=r.reduce((X,te,me)=>te?z(X,U[me]):X,1/0),_=I?Ae(F):r.map((X,te)=>X&&U[te]===W),xe=n.map((X,te)=>X||r[te]),v=Wn(xe,1),L=Wn(r,1),P=mo(L,_,r,p,A,1.05);for(let X=2;X<=4&&!r.every((te,me)=>!te||P[me]>=0);X+=1)L=Wn(r,X),P=mo(L,_,r,p,A,1.05);let V=mo(v,_,xe,p,A,.42),de=M(1,...P.filter((X,te)=>r[te]&&X>=0)),Ee=M(1,...O.filter((X,te)=>n[te]&&!r[te]&&X>=0)),at=M(1,...U.filter((X,te)=>r[te]&&!n[te]&&X>=0)),ie=M(1,...V.filter(X=>X>=0)),Ce=1.4+A.waveMode%3*.35,J=2+(re.rhythm+A.captureMode+p)%3,oe=$(.56+y/Ct*.42,.62,.76),Be=n.reduce((X,te)=>X+(te?1:0),0),Re=r.reduce((X,te)=>X+(te?1:0),0),Ne=X=>z(X,le(d-1-B[X],Y[X])),Xe=Te({length:q},(X,te)=>{if(!n[te]||r[te])return 1;let me=O[te]/Ee,Ie=(ke(Ne(te),p+197,A.captureMode+37)-.5)*.08;return $(.12+Math.pow(1-me,.82)*.58+Ie,.08,.74)}),ct=[],St=Ae(r);for(let X=1;Rt>=0&&X<=3;X+=1){let te=Wn(r,X);ct.push(te.map((me,Ie)=>me&&!St[Ie])),St=te}let jt=[],ut=Ae(r);for(let X=1;Rt>=0&&X<=3;X+=1){let te=ct[X-1].map((ve,fe)=>ve&&Ft(ut,fe,0)>0),me=[];for(let ve=0;ve<q;ve+=1){let fe=le(d-1-B[ve],Y[ve]);ve>fe||!te[ve]||fe!==ve&&!te[fe]||me.push({cells:fe===ve?[ve]:[ve,fe],score:ke(ve,p+229,X+A.waveMode*7)})}me.sort((ve,fe)=>fe.score-ve.score);let Ie=ye(!1),ft=M(Rt===1?6:8,k(Math.sqrt(Re)*(2.2-X*.35)*il[Rt][X-1])),Qe=0;for(let ve of me){if(Qe>=ft)break;if(!(ve.cells.some(Oe=>Ft(Ie,Oe,0)>0)&&Qe<ft*.72)){for(let Oe of ve.cells)Ie[Oe]=!0;Qe+=ve.cells.length}}if(Qe<ft)for(let ve of me){if(Qe>=ft)break;if(!ve.cells.some(fe=>Ie[fe])){for(let fe of ve.cells)Ie[fe]=!0;Qe+=ve.cells.length}}jt.push(Ie),ut=Ie}let je=Te({length:7},()=>ye(!1)),kt=(X,te)=>te.forEach((me,Ie)=>{me&&(je[X][Ie]=!0)});Rt>=0&&al[Rt].forEach((X,te)=>{jt.forEach((me,Ie)=>{X&1<<Ie&&kt(te,me)})});let dt=Ct-6,Sn=(X,te,me,Ie)=>{if(me<=0)return X[te];let ft=B[te],Qe=Y[te];for(let ve=-1;ve<=1;ve+=1)for(let fe=-1;fe<=1;fe+=1){if(!fe&&!ve)continue;let Oe=ft+fe,Ke=Qe+ve;if(Oe<0||Oe>=d||Ke<0||Ke>=d)continue;let $t=le(Oe,Ke);if(X[$t]&&Ie[$t]>=0&&Ie[$t]<me)return!0}return!1};for(let X=1;X<=Ct;X+=1){let te=X/Ct,me=$(te/.78),Ie=Cr(me),ft=Ie*(de+3),Qe=Ie*(ie+3),ve=po(S),fe=ye(!1),Oe=ye(0),Ke=Ae(E),$t=We($((me-.68)/.22));for(let G=0;G<q;G+=1){if(E[G]){fe[G]=!0;continue}let ge=P[G],Ue=Ne(G),Ot=(ke(Ue,p+181,A.captureMode+17)-.5)*.9*(1-$t),Le=ge<0?-1/0:ft+Ot-ge,Pt=r[G]&&!n[G]?U[G]/at:0,Kt=(ke(Ue,p+193,A.waveMode+31)-.5)*.06,At=$(.03+Math.pow(Pt,.82)*.2+Kt,0,.3),An=Le>=0&&me>=At,et=An&&Le<=Ce,jn=Ft(S,G,0),Mn=Ft(E,G,0),Lr=Sn(S,G,ge,P);if(r[G]){if(An&&(S[G]||Lr||Mn>0)){let Tr=ve[G]||jn>=2||Mn>0||et||me>.78;fe[G]=S[G]?Tr:Lr||Mn>0}continue}if(me>=.92||!v[G])continue;let Kn=Xe[G],an=n[G]&&!r[G]&&me>=Kn;if(n[G]&&!an){fe[G]=!0;continue}let Zt=V[G],Pr=Zt<0?-1/0:Qe+Ot-Zt,xn=Pr>=0&&Pr<=Ce,sn=Sn(S,G,Zt,V);if(S[G]){let Dr=(!n[G]||r[G]||me<Kn+.06)&&me<oe&&(ve[G]||jn>=2||ke(Ue,X+191,p+23)>.36+me*.34),Co=$t<1&&ke(Ue,p+197,29)>$t;fe[G]=Dr&&Co}else(!n[G]||me<Kn)&&me<oe&&xn&&sn&&(fe[G]=ve[G]||jn>=2||ke(Ue,p+199,X+31)>.43)}for(let G=0;G<q;G+=1)fe[G]&&(Oe[G]=D[G]+1,r[G]&&Oe[G]>=J&&(Me[G]<=1.5||Ft(fe,G,0)>0)&&(Ke[G]=!0));let qn=fe.reduce((G,ge,Ue)=>G+(ge&&r[Ue]?1:0),0),j=k(Be+(Re-Be)*We(me)),ze=k(ne(me*Q)*M(12,z(Be,Re)*.18)),it=M(qn,j+ze),ht=fe.reduce((G,ge)=>G+(ge?1:0),0);if(ht>it){let G=[];for(let ge=0;ge<q;ge+=1){let Ue=le(d-1-B[ge],Y[ge]);if(ge>Ue||!fe[ge]||r[ge]||n[ge]&&me<Xe[ge]||Ue!==ge&&(!fe[Ue]||r[Ue]))continue;let Ot=V[ge],Le=Ot<0?99:Qe-Ot;G.push({cells:Ue===ge?[ge]:[ge,Ue],score:b(Le-Ce*.5)+(Le>Ce?3:0)+ke(ge,p+211,X+37)})}G.sort((ge,Ue)=>Ue.score-ge.score);for(let ge of G){if(ht<=it)break;if(!(ht-ge.cells.length<qn)){for(let Ue of ge.cells)fe[Ue]=!1,Oe[Ue]=0;ht-=ge.cells.length}}}if(fe.reduce((G,ge,Ue)=>G+(ge!==S[Ue]?1:0),0)<4&&me<.86){let G=[],ge=[];for(let Le=0;Le<q;Le+=1){let Pt=le(d-1-B[Le],Y[Le]);if(Le>Pt)continue;let Kt=Pt===Le?[Le]:[Le,Pt],At=V[Le],An=At>=0&&At<=Qe+Ce+2.5;Kt.every(et=>!S[et]&&!fe[et]&&v[et]&&(!n[et]||me<Xe[et])&&Ft(S,et,0)>0)&&An&&G.push({cells:Kt,score:(r[Le]?4:0)-b(Qe-At)*.12+ke(Le,p+223,X+41)}),Kt.every(et=>fe[et]&&!r[et]&&!E[et]&&Ft(fe,et,0)>=2)&&ge.push({cells:Kt,score:(At<Qe-Ce?2:0)+ke(Le,p+227,X+43)})}G.sort((Le,Pt)=>Pt.score-Le.score),ge.sort((Le,Pt)=>Pt.score-Le.score);let Ue=G[0],Ot=Ue&&ge.find(Le=>Le.cells.length===Ue.cells.length);if(Ue&&Ot){for(let Le of Ot.cells)fe[Le]=!1,Oe[Le]=0;for(let Le of Ue.cells)fe[Le]=!0,Oe[Le]=1}}let Lt=X-dt;if(Lt>=0)for(let G=0;G<q;G+=1){let ge=je[Lt][G];fe[G]=r[G]||ge,Oe[G]=fe[G]?S[G]?D[G]+1:1:0,Ke[G]=r[G]}S=fe,D=Oe,E=Ke,R.push(S),N.push(Ae(E))}return[R,N]}function Ts(n,r,p){let y=[Ae(n)],A=[ye(!1)],R=Ae(n),S=ye(!1),D,E=le(g,g),N=Te({length:q},(I,U)=>{let O=B[U]-g,W=Y[U]-g,_=Math.atan2(W,O);return p.departureMode===1?ne(_*2)*.7+(ke(U,67,43)-.5)*.7:p.departureMode===2?ne(_*3+Me[U]*.8)*.85:p.departureMode===3?(ke(U,67,43)-.5)*2.3:p.departureMode===4?ne(_*5*f.kineticDirection+Me[U]*1.35+f.kineticPhase)*.78:p.departureMode===5?(b(O)-b(W))*.07*f.kineticDirection+(ke(U,71,47)-.5)*.4:p.departureMode===6?(_/Q*f.kineticDirection+Me[U]*.08)*.72:p.departureMode===7?(ke(U,73,53)-.5)*2+((B[U]+Y[U])%2?.25:-.25):(ke(U,67,43)-.5)*1.5}),F=I=>b(B[I]-g)<=2&&b(Y[I]-g)<=2;for(let I=1;I<=Ct;I+=1){let U=po(R),O=I/yr*(De+1.5),W=U.map((v,L)=>{let P=O-1.05+N[L];return io[2][L]>=P&&(v||R[L])}),_=Ae(S);if(D===void 0&&W.every((v,L)=>!v||!F(L))&&(D=I,_[E]=!0),D!==void 0&&I>D)if(!S.some(Boolean))_[E]=!0;else for(let v=0;v<q;v+=1)r[v]&&Ft(S,v,0)>0&&(_[v]=!0);let xe=W.map((v,L)=>v||_[L]);R=W,S=_,y.push(xe),A.push(S)}return[y,A,D]}let Sr=Ze==="morphogenesis"?Ps:Ls,go=[Sr(co,ya,0,wr[0],lt[0]),Sr(ya,uo,1,wr[1],lt[1]),Ze==="morphogenesis"?Sr(uo,co,2,wr[2],lt[2]):Ts(uo,co,lt[2])],_n=go.map(n=>n[0]),va=go.map(n=>n[1]);br=go[2][2]??0;let La=he.map(n=>n.reduce((r,p,y)=>p?M(r,Me[y]):r,0)),Pa=n=>{let r=ye(0);return n.map(p=>{let y=p.map((A,R)=>A?r[R]+1:0);return r=y,y})},Ta=_n.map(Pa),Ds=bt?(()=>{let n=(D,E)=>{let N=0,F=0,I=0,U=0,O=0,W=0,_=d,xe=-1,v=d,L=-1;for(let P=0;P<q;P+=1){D[P]&&(N+=1,F+=B[P],I+=Y[P],_=z(_,B[P]),xe=M(xe,B[P]),v=z(v,Y[P]),L=M(L,Y[P]),(B[P]===0||B[P]===d-1||Y[P]===0||Y[P]===d-1)&&(U+=1));let V=le(d-1-B[P],Y[P]);(D[P]||D[V])&&(O+=1,D[P]!==D[V]&&(W+=1))}return{...E,centerOffset:N?K((_+xe)/2-g,(v+L)/2-g):g,massCenterOffset:N?K(F/N-g,I/N-g):g,edgeCells:U,symmetry:O?1-W/O:0}},r=(D,E)=>{let N=0,F=0;for(let I=0;I<q;I+=1)(D[I]||E[I])&&(F+=1),D[I]&&E[I]&&(N+=1);return F?N/F:1},p=(D,E)=>{let N=q,F=0,I=0,U=0,O=0,W=-1;return D.forEach((_,xe)=>{let v=0,L=0,P=0,V=0,de=D[M(0,xe-1)];for(let Ee=0;Ee<q;Ee+=1)_[Ee]&&(v+=1,(B[Ee]===0||B[Ee]===d-1||Y[Ee]===0||Y[Ee]===d-1)&&(L+=1),b(B[Ee]-g)<=2&&b(Y[Ee]-g)<=2&&(P+=1)),xe&&_[Ee]!==de[Ee]&&(V+=1);N=z(N,v),F=M(F,v),I=M(I,V),O=M(O,L),v||(U+=1),E===2&&W<0&&!P&&(W=xe)}),{frames:D.length,minimumActive:N,maximumActive:F,maximumDelta:I,emptyFrames:U,maximumEdgeCells:O,centerClearFrame:W,reemergeStart:E===2?br:-1}},y=he.map((D,E)=>n(D,ot[E])),A=r(he[0],he[1]),R=1-z(1,b(y[0].aspect-y[1].aspect)),S=1-z(1,b(y[0].active-y[1].active)/M(y[0].active,y[1].active,1));return{mint:mt,rarityTier:Ye,rarityRoll:ia,raritySignature:yn,stage:y,stageOverlap:[A,r(he[1],he[2]),r(he[2],he[0])],stageConfusion:R*.4+S*.25+A*.35,transitions:_n.map(p)}})():null,Gn=f.hold,Ar=f.transition,Mr=Gn+Ar,yo=Mr*he.length,on=Gt[1],Da=Gt[2],Na=Gt[3],Ns=`rgb(${Da.join(" ")} / 0.38)`,Fs=`rgb(${Na.join(" ")} / 0.36)`,wt=ye(0),$n=ye(0),zn=ye(0),Fa=ye(0),Ia=ye(!1),bn="",Yn,wn=Ge,bo=0,pe=null,It=null,qt=1,Oa=0,xr=Ge<0?0:Ge,Xn=null,Is=Ar/(st?mn.timeScale:1),Os=450,Ba=650;function Ua(n){return st?n*mn.timeScale:n}function Er(n,r){if(!n||n.length!==q)return Ae(r);let p=Te({length:q},(y,A)=>!!n[A]);return p.some(Boolean)?p:Ae(r)}function wo(n){let r=wt.map(p=>p>=.34);return r.some(Boolean)?r:Ae(n)}function Bs(n,r,p,y,A=!1){let R=Er(y,he[p]),S=R.reduce((O,W,_)=>W?M(O,Me[_]):O,0),D=n.reduce((O,W,_)=>W?M(O,Me[_]):O,0),E=(r+1)%he.length,N=n.every((O,W)=>O===he[r][W]),F=R.every((O,W)=>O===he[p][W]);if(N&&F&&p===E)return{frames:_n[r],locks:va[r],ages:Ta[r],targetBoard:R,targetRadius:S,sourceRadius:D,contracting:p===0&&(r!==0||!N)};let I=Sr(n,R,11+r*he.length+p,wr[r],lt[r]),U=A?Us(I[0],I[1],239+r*17+p*31):I;return{frames:U[0],locks:U[1],ages:Pa(U[0]),targetBoard:R,targetRadius:S,sourceRadius:D,contracting:p===0&&(r!==0||!N)}}function Us(n,r,p){let y=[Ae(n[0])],A=[Ae(r[0])],R=4;for(let S=0;S<n.length-1;S+=1){let D=n[S],E=n[S+1],N=r[S],F=r[S+1];for(let I=1;I<R;I+=1){let U=I/R,O=ye(!1),W=ye(!1);for(let _=0;_<q;_+=1){let v=D[_]!==E[_]&&ke(_,p+S*7,251)<U;O[_]=v?E[_]:D[_],W[_]=O[_]&&(v?F[_]:N[_])}y.push(O),A.push(W)}y.push(Ae(E)),A.push(Ae(F))}return[y,A]}function Rr(n,r,p=!1,y,A,R=!1,S=!1){let D=Er(y,he[n]),E=Bs(D,n,r,A,S);Xn=null,pe={id:Oa+=1,phase:"transition",source:n,target:r,enterCycle:p,holdTarget:R,fieldBridge:S,startedAt:void 0,...E},Ge=n,Ut=0,It=-1,qt=0,wn=-2,bn=""}function Hs(n,r,p,y,A=null,R=!1){Xn=A,pe={id:Oa+=1,phase:"settle",source:n,stage:r,target:p,heldBoard:A,fieldBridge:R,enterCycle:!1,startedAt:y},Ge=r,Ut=-1,It=n,qt=0,wn=-2,bn=""}function Ws(n){if(pe===null)return;pe.startedAt??(pe.startedAt=n);let r=M(0,n-pe.startedAt);if(pe.phase==="transition"){let A=$(r/Is),R=pe.source;if(Ge=R,Ut=A,It=-1,qt=Je($(r/Os)),A<1)return;let S=pe.target,D=pe.holdTarget?pe.targetBoard:null;if(pe.enterCycle){pe=null,Ge=-1,Ut=-1,bo=S*Mr-Ua(n),It=null,qt=1,wn=-2,bn="";return}Hs(R,S,pe.target,n,D,pe.fieldBridge);return}if(Ge=pe.stage,Ut=-1,It=pe.source,qt=Je($(r/Ba)),r<Ba)return;let p=pe.stage,y=pe.heldBoard;pe=null,It=null,qt=1,Xn=y,Ge=p,Ut=-1}Se(),i.addEventListener("resize",Se);function Ha(n,r,p,y,A){n.beginPath(),n.roundRect(r,p,y,y,A),n.fill()}function _s(){let n=be/d,r=M(1,n*.12),p=M(.5,n-r),y=r/2;m.clearRect(0,0,be,be),m.globalAlpha=.045,m.fillStyle=`rgb(${on.join(" ")})`,m.shadowBlur=0;for(let A=0;A<q;A+=1)Ha(m,B[A]*n+y,Y[A]*n+y,p,z(f.cornerSize*n/19,p*.2));m.globalAlpha=1}function Cr(n){let r=1-n;if(f.kineticFamily===1)return Je(n);if(f.kineticFamily===2)return ee(n,1.35);if(f.kineticFamily===3)return 1-ee(r,1.35);if(f.kineticFamily===4)return n-ne(n*Q*2)*.025;if(f.kineticFamily===5)return n-ne(n*Q*4)*.014-ne(n*Q*8)*.005;if(f.kineticFamily===6){let p=ee(n,2.1),y=ee(r,2.1);return p/M(1e-4,p+y)}return f.kineticFamily===7?n-ne(n*Q*8)*.008-ne(n*Q*14)*.004:n}function Wa(n,r){return r===4?ee(M(0,n),5)*1.45-.18+ee(M(0,-n),9)*.38:r===7?n*.58+(2*n*n-1)*.42:n}function _a(n){Ws(n);let r=Ua(n),y=((r+bo)%yo+yo)%yo,A=Ge<0?T(y/Mr):Ge;xr=A;let R=Ge>=0&&Ut>=0,S=Ze==="morphogenesis"&&Rt>=0&&Ge>=0&&!R,D=Ge>=0&&!R,E=S?(A+he.length-1)%he.length:A,N=lt[E],F=E===2&&Ze==="morphogenesis",I=F?ma:io[E],U=F?ms:hs[E];A!==wn&&(t.onStageChange?.(Bn[A],A),wn=A);let O=1450,W=1100,_=r%(O+W),xe=Ge<0?y-A*Mr:R?Gn+Ut*Ar:0,v=Xn||he[A],L=S?_<O:xe<Gn,P=v,V=v,de=v,Ee=v,at=v,ie=v,Ce=1,J=0,oe=0,Be=0,Re=Yn===void 0?1/60:z((n-Yn)/1e3,.05);if(!L){let j=pe?.phase==="transition"?pe:null,ze=j?.frames||_n[E],it=j?.locks||va[E],ht=ze.length-1;J=S?(_-O)/W:(xe-Gn)/Ar,Be=S?Ct-6+Je($(J))*6:Cr($(J))*ht,oe=z(T(Be),ht-1),P=ze[oe],V=ze[oe+1],de=ze[M(0,oe-1)],Ee=ze[z(ht,oe+2)],at=it[oe],ie=it[oe+1],Ce=Be-oe}let Ne=`${pe?.id||0}:${A}:${E}:${oe}:${L}`;if(Ne!==bn){for(let j=0;j<q;j+=1){let ze=I[j]/M(1,De),it=ke(j,oe,E+31);Fa[j]=L?0:(N.captureMode===0?ze:N.captureMode===3?k(ze*5)/5:N.captureMode===5?Y[j]/(d-1)*.72+it*.28:N.captureMode===6?(Math.atan2(Y[j]-g,B[j]-g)/(Q*2)+1)%1:it)*f.stagger,Ia[j]=!L&&ke(j,oe,E)>.74}bn=Ne}let Xe=r/1e3,ct=f.pulseRate*(.9+N.variant*.07),St=ne(Xe*ct),jt=x(Xe*ct),ut=(E+he.length-1)%he.length,je=It===null?ut:It,kt=je<0?N:lt[je],dt=f.pulseRate*(.9+kt.variant*.07),Sn=ne(Xe*dt),X=x(Xe*dt),te=It!==null?qt:Ge<0&&L?Je($(xe/z(650,Gn*.5))):1,me=-10,Ie=0,ft=-10,Qe=0;if(!L){let j=pe?.phase==="transition"?pe.target:null,ze=pe?.phase==="transition"?pe.targetRadius:La[S?A:j??(A+1)%he.length],it=pe?.phase==="transition"?pe.sourceRadius:La[A],ht=pe?.phase==="transition"&&pe.contracting;if(A===2&&Ze==="validated"){let vt=$(Be/yr),Lt=M(0,Be-br),G=1-We($((Lt-ze)/M(1,Ct-br-ze)));me=vt*(De+1.5),Ie=1-We($((Be-yr+2)/2)),ft=z(Lt,ze),Qe=We($(Lt))*G}else{let vt=Cr($(J)),Lt=ee(M(0,ne($(J)*Q)),.72);me=ht?M(it,ze+1)*(1-vt):vt*De,Ie=Lt*.76,ft=ht?ze+(M(it,ze+1)-ze)*(1-vt):vt*ze,Qe=Lt}}let ve=Te({length:H(De*Fe)+1},(j,ze)=>{let it=ze/Fe;return $(Z(-ee((it-me)/f.outgoingWidth,2))*Ie+Z(-ee((it-ft)/f.incomingWidth,2))*Qe)}),fe=be/d,Oe=M(1,fe*.12),Ke=M(.5,fe-Oe),$t=Oe/2,qn=fe/19;u.clearRect(0,0,be,be),u.globalAlpha=1,u.drawImage(l,0,0,l.width,l.height,0,0,be,be);for(let j=0;j<q;j+=1){let ze=P[j]?1:0,it=V[j]?1:0,ht=Fa[j],vt=L?1:Je($((Ce-ht)/(1-ht))),Lt=ze+(it-ze)*vt,G=L?0:(de[j]?(1-Ce)*f.trail:0)+(Ee[j]?Ce*f.trail:0),ge=M(Lt,G),Ue=!P[j]&&V[j],Ot=!at[j]&&ie[j],Le=P[j]!==V[j],Pt=L?99:(pe?.phase==="transition"?pe.ages:Ta[E])[oe+1][j],Kt=Ue?Z(-M(0,Pt-1)*.55):0,At=Le?ne(Q*vt):0,An=ze&&!it?ne(Q*vt)*.72:0,et=ve[U[j]],jn=$(Kt*At*.72+(Ot?At*.56:0)+(Le&&Ia[j]?At*.16:0)+(Le?et*.18:0)-An,-1,1),Mn=pe?.fieldBridge===!0,Lr=Mn?ge>=wt[j]?68:46:ge>=wt[j]?108:72,Kn=Mn?ge>=wt[j]?14:11:ge>=wt[j]?18:15;$n[j]+=(ge-wt[j])*Lr*Re,$n[j]*=Z(-Kn*Re),wt[j]+=$n[j]*Re,wt[j]=$(wt[j],0,1.08),zn[j]+=(jn-zn[j])*(1-Z(-7*Re));let an=$(wt[j]),Zt=$(zn[j],-1,1),Pr=St*da[E][j]+jt*ua[E][j],xn=Wa(Pr,N.pulseMode),sn=D?0:f.pulseDepth*(N.pulseMode===3?.18:1);if(te<1){let nl=Sn*da[je<0?E:je][j]+X*ua[je<0?E:je][j],Ja=Wa(nl,kt.pulseMode),ei=je<0?0:f.pulseDepth*(kt.pulseMode===3?.18:1);xn=Ja+(xn-Ja)*te,sn=ei+(sn-ei)*te}let Tr=1-sn*.28+xn*sn,Dr=ha[j],Co=.5+ne(Xe*gr[j]+Dr)*.5,Vs=.5+ne(Xe*gr[j]*.43+Dr*1.71+Me[j]*.31)*.5,qs=1-ao[j]*(Co*.76+Vs*.24),js=$(an*fa[j]*(.92*Tr+et*.08+At*f.flutter)*qs),ko=Zt>=0?Da:Na,vo=b(Zt)*$(an*1.25),Ks=k(on[0]+(ko[0]-on[0])*vo),Zs=k(on[1]+(ko[1]-on[1])*vo),Qs=k(on[2]+(ko[2]-on[2])*vo);if(an<.004