0x3b1383e0…50dasent to0x1353fd9d…e4e8·#17,090,964·view on Etherscan
turn vec2(cr*(st.x)+sr*(st.y)+.5,cr*(st.y)-sr*(st.x)+.5);}\nfloat rand(vec2 st){return fract(sin(dot(st,vec2(12.9898,78.233)))*43758.5453);}\nvec2 gO(vec3 bdP){\nvec2 pos=bdP.xy/uVp.xy;\npos.y=(1.-pos.y)/uVp.z;\nreturn pos;\n}\nfloat rect(vec2 st,vec3 bdP,vec2 bdS){\nfloat x=(1.-bdS.x/max(uVp.z,1.)/(1./uB))/2.; \nfloat y=(1.-bdS.y/max(uVp.z,1.)/(1./uB))/2.;\nst=rUV(st-gO(bdP),PI-bdP.z);\nvec2 bl=smoothstep(vec2(x-F,y-F),vec2(x+F,y+F),st);\nvec2 tr=smoothstep(vec2(x-F,y-F),vec2(x+F,y+F),1.-st);\nreturn bl.x*bl.y*tr.x*tr.y;\n}\nvec2 tU(vec2 st,vec3 bdP,vec2 bdS,int i){\nreturn rUV((st-gO(bdP))*(1./uB)*max(uVp.z, 1.),PI*.5-bdP.z)*vec2(1.,1./uBr)*vec2(1./uTl,1.)+vec2(.5*max(1.-uTl,0.)+(1./uTl)*floor(float(i/8)),0.); \n}\nfloat tM(int i,int offset){return step(float(i+offset&7),0.);}\nvoid main(){\nvec2 uv=vUv;\nuv.y/=uVp.z;\nvec4 b=vec4(31./255.,30./255.,28./255.,1.);\nvec4 w=vec4(249./255.,241./255.,234./255.,1.);\nvec4 c=mix(w,b,uI);\nfor (int i=0;i<COUNT;i++){\nvec3 bdP=uBdP[i];\nvec2 bdS=uBdS[i];\nfloat r=rect(uv,bdP,bdS);\nc = max(c-r,0.);\nc+=r*tM(i,0)*texture(uTx[0],tU(uv,bdP,bdS,i));\nc+=r*tM(i,1)*texture(uTx[1],tU(uv,bdP,bdS,i));\nc+=r*tM(i,2)*texture(uTx[2],tU(uv,bdP,bdS,i));\nc+=r*tM(i,3)*texture(uTx[3],tU(uv,bdP,bdS,i));\nc+=r*tM(i,4)*texture(uTx[4],tU(uv,bdP,bdS,i));\nc+=r*tM(i,5)*texture(uTx[5],tU(uv,bdP,bdS,i));\nc+=r*tM(i,6)*texture(uTx[6],tU(uv,bdP,bdS,i));\nc+=r*tM(i,7)*texture(uTx[7],tU(uv,bdP,bdS,i));\n}\nc=clamp(c,b,w)+.18*max(c-w,0.);\nc+=(rand(uv*10.)*2.-1.)*.025;\nfc=c;\n}\n`,u),_=tt(h,et,"#version 300 es\nprecision highp float;\n#define PI 3.1415926535\nin vec2 vUv;\nuniform vec2 uS;\nuniform vec3 uVp,uSu;\nuniform vec4 uCl;\nuniform float uT,uZ,uA,uM,uC,uTn,uTl,uI;\nout vec4 fc;\nmat2 r2d(float t){return mat2(cos(t),sin(t),-sin(t),cos(t));}\n// Noise, Copyright (C) 2011 Ian McEwan, Ashima Arts, MIT License\nfloat rand(vec2 st){return fract(sin(dot(st,vec2(12.9898,78.233)))*43758.5453);}\nvec3 mod289(vec3 x){return x-floor(x*(1./289.))*289.;}vec2 mod289(vec2 x){return x-floor(x*(1./289.))*289.;}vec3 permute(vec3 x){return mod289(((x*34.)+1.)*x);}float noise(vec2 v){const vec4 C=vec4(.211324865405187,.366025403784439,-.577350269189626,.024390243902439);vec2 i=floor(v+dot(v,C.yy));vec2 x0=v-i+dot(i,C.xx);vec2 i1;i1=(x0.x>x0.y)?vec2(1.,0.):vec2(0.,1.);vec4 x12=x0.xyxy+C.xxzz;x12.xy-=i1;i=mod289(i);vec3 p=permute(permute(i.y+vec3(0.,i1.y,1.))+i.x+vec3(0.,i1.x,1.));vec3 m=max(.5-vec3(dot(x0,x0),dot(x12.xy,x12.xy),dot(x12.zw,x12.zw)),0.);m=m*m;m=m*m;vec3 x=2.*fract(p*C.www)-1.;vec3 h=abs(x)-.5;vec3 ox=floor(x+.5);vec3 a0=x-ox;m*=1.79284291400159-.85373472095314*(a0*a0+h*h);vec3 g;g.x=a0.x*x0.x+h.x*x0.y;g.yz=a0.yz*x12.xz+h.yz*x12.yw;return 130.*dot(m,g);}\n#define O 6\nfloat fbm(vec2 uv){\nfloat v=0.,a=.16+.04*uA;\nmat2 rot=mat2(cos(.5),sin(.5),-sin(.5),cos(.5));\nfor(int i=0;i<O;++i){\nv+=a*noise(uv+(uS*2.-1.));\nuv=rot*uv*-2.;a*=.46+.04*uM;\n}\nreturn v;\n}\nfloat frm(vec2 p,float s){return fbm(p+fbm(p+fbm(p+fbm(p+fbm(p+fbm(p+fbm(p+fbm(p+fbm(p+fbm(p*s))))))))));}\nvoid main(){\nvec2 uv=vUv;\nuv.x+=10.*sin(uT*.00001);\nuv.x*=uTl;\nuv*=r2d(PI*-.5);\nvec3 c=vec3(uTn);\nfloat rib=sin((uv.x+uSu.z)*uSu.x+uv.y*uSu.y)*.5+.5;\nuv+=vec2(rib,uv.y+.33*uv.x)*.2;\nc.rgb+=pow(rib,1.5)*.18;\nfloat zoom=.5+.5*uZ;\nc+=(1.3+.2*uC+1.5*uI)*frm(uv,zoom);\nc*=1.-.6*uI;\nc+=2.*vec3(.6,.3+.5*pow(uCl.g,3.)*uCl.a,.15+.5*pow(uCl.b,3.)*uCl.a)*frm(uv*.17,zoom*.88);\nc+=2.*vec3(.6+.4*pow(uCl.r,3.)*uCl.a,.4,.2)*frm(uv*.66,zoom*1.93);\nc+=(rand(uv*10.)*2.-1.)*.025;\nfc=vec4(c,1.);\n}\n",u);let I=!1,T=!1,M=!1,U=!1,R=!1,L=!1,D=!1;const k=Ct[7][1]===wt;let F,O,V,z,X,N,Y,G,W,$=0,J=0,Q=0,nt=[[0,0],[0,0],[0,0]];const at=[];for(let t=0;8>t;t++)at.push([...w(.05)?[0,0,0]:w(.05)?[1,1,1]:[B(.2,1),B(.2,1),B(.2,1)],(ot=Ct[4][1],ot===ft?B(0,.25):ot===yt?B(.25,.5):ot===mt?B(.6,.75):ot===ht?B(.85,.95):B(.05,1))]);var ot;const st=(t=>{for(var e,r,n=t.length,a=[...t];n;)e=~~(A()*n--),r=a[n],a[n]=a[e],a[e]=r;return a})(x).slice(0,2),it=t=>{const e=[x[0],0,0];return t===ct?(e[0]=x[1],e[2]=.28):t===pt?e[0]=x[2]:t===xt?e[0]=x[3]:t===ut?e[0]=x[4]:t===vt?e[0]=x[0]+(x[~~(A()*x.length)]-x[0]):t===dt&&(e[0]=st[w()?0:1]),e},lt=at.map((([t,e,r,n])=>[["uS","v2",[B(1,2),B(1,2)]],["uZ","f",A()],["uA","f",A()],["uM","f",A()],["uC","f",A()],["uTn","f",n],["uCl","v4",[t,e,r,Ct[4][1]===bt?1:0]],["uSu","v3",it(Ct[3][1])],["uTl","f",P.config[2]],["uI","f",k?1:0]])),Bt=[],_t=t=>{j.ud(S,t[0]||1e3/120),P.frame(t,L),J++},It=()=>{U=!1},Tt=t=>t.__size,Mt=t=>[t.pos.x*G[0],t.pos.y*G[1],t.a],Ut=()=>{zt(!0),U=!0,c((()=>{(t=>{const e=Y[2]*P.config[1]*P.config[2],r=.2*e;_.resize(e,r,e/2,r/2);let n=0;const a=()=>{n++,n===Bt.length&&c(t)};lt.forEach(((t,e)=>{_.frame([W,$],t),Bt[e]=new Image,Bt[e].onload=a,Bt[e].src=h.toDataURL()}))})((()=>{C.frame([W,$],[["uB","f",P.config[1]],["uBr","f",.2],["uBdS","v2[]",Float32Array.from(P.bodies().flatMap(Tt))],["uBdP","v3[]",Float32Array.from(P.bodies().flatMap(Mt))],["uTx","t[]",Bt,"REPEAT","LINEAR"],["uTl","f",P.config[2]],["uI","f",k?1:0]]),E.clear(),zt(!1)}))}))},Rt=()=>{F=t.innerWidth,V=t.innerHeight,(M||F!==O||V!==z)&&(O=F,z=V,X=F/V,!M&&(X>=l?F=~~(V*l):V=~~(F/l),X=l),N=s(t.devicePixelRatio,2),Y=[F,V,F*N,V*N,X,N],f(p,{width:`${F}px`,height:`${V}px`}),P.resize(Y),G=[Y[2]/P.size()[0],Y[3]/P.size()[1]],E.resize(Y[2],Y[3],Y[0],Y[1]),C.resize(Y[2],Y[3],Y[0],Y[1]),It())},Lt=()=>{const t=performance.now();W=s(t-Q,1e3/30),Q=t,$+=W,U||(_t([W,$,J]),R=P.resting(),R&&!L?!D&&(Ut(),D=!0):(E.frame(Y[2],Y[3],G,P.bodies(),k),D=!1)),c(Lt)},Dt=({clientX:t,clientY:e},r,n)=>{nt[0]=[t/Y[0],e/Y[1]],r&&(nt[1]=nt[0],L=!0,M||(M=!0,Rt()),It()),nt[2]=[nt[0][0]-nt[1][0],nt[0][1]-nt[1][1]],n&&(((t,e=[0,0])=>{o((e[0]-t[0])*(e[0]-t[0])+(e[1]-t[1])*(e[1]-t[1]))})(nt[2]),L=!1)},kt=t=>Dt(t,!0),Ft=t=>Dt(t),Ot=t=>Dt(t,!1,!0);i(t,"resize",Rt),i(t,"keydown",(t=>{" "===t.key.toLowerCase()&&((t=>{t.preventDefault()})(t),U=!U)})),i(t,"keyup",(t=>{const e=t.key.toLowerCase();"r"===e&&Ut(),"s"===e&&(async(t,e)=>{(async(t,e)=>{const r=document,n=window.URL.createObjectURL(t),a=r.body.appendChild(r.createElement("a"));a.href=n,a.download=e,a.click(),r.body.removeChild(a),window.URL.revokeObjectURL(n)})((t=>{let e=window.atob(t.split(",")[1]),r=new ArrayBuffer(e.length),n=new Uint8Array(r);for(let t=0;t<e.length;t++)n[t]=e.charCodeAt(t);return new Blob([new DataView(r)],{type:t.split(",")[0].split(":")[1].split(";")[0]})})(t),e)})(y.toDataURL("image/png"),`stackslash-${Date.now()}-${Et}.png`),"`"===e&&Vt(!I)})),i(p,"mousedown",kt),i(e,"mousemove",Ft),i(e,"mouseup",Ot),i(p,"touchstart",(t=>{t.clientX=t.touches[0].clientX,t.clientY=t.touches[0].clientY,kt(t)})),i(e,"touchmove",(t=>{t.clientX=t.touches[0].clientX,t.clientY=t.touches[0].clientY,Ft(t)})),i(e,"touchend",(t=>{t.clientX=t.changedTouches[0].clientX,t.clientY=t.changedTouches[0].clientY,Ot(t)})),f(r,{touchAction:"none",margin:0,display:"flex",alignItems:"center",background:d}),f(p,{position:"relative",margin:"0 auto"}),f(m,{pointerEvents:"none",position:"absolute",inset:0}),f(y,{background:k?d:v}),f(h,{pointerEvents:"none",position:"absolute",right:0,bottom:0}),f(b,{position:"absolute",inset:0,background:"rgba(31, 30, 28, 0.2)"}),f(g,{position:"absolute",inset:"50%",width:"20px",height:"80px",margin:"-40px 0 0 -10px",background:v,animation:"3s linear infinite spin"}),a(e.head,n("style")).innerHTML="@keyframes spin{from{transform:none}to{transform:rotate(360deg)}}";const Vt=t=>{I=t,f(h,{display:I?"block":"none"})},zt=t=>{T=t,f(b,{display:T?"block":"none"})};Vt(!1),Rt(),(()=>{for(let t=0;t<1800;t++)_t([0,0,J]);Ut()})(),c(Lt)})()})();