0xf429690d…aeacsent to0xa7d8d9ef…d270·#15,463,217·view on Etherscan
class PRG{constructor(r,e,t,u,a){this.v=cS(G,G.VERTEX_SHADER,`${fD}${r}`),this.f=cS(G,G.FRAGMENT_SHADER,`${fD}${fU}${e}`.replace("#UT",fI).replace("#AJ",fA).replace("#NS",fN)),this.P=G.createProgram(),[this.v,this.f].forEach(r=>G.attachShader(this.P,r)),G.linkProgram(this.P),UP(this.P),t.forEach(r=>{this[r]=G.getAttribLocation(this.P,r)}),u.forEach(r=>{this[r]=G.getUniformLocation(this.P,r)}),this.vA=G.createVertexArray(),BV(this.vA),this.vB=CB(),BB(AB,this.vB),BD(AB,new Float32Array([-1,1,0,-1,-1,0,1,-1,0,1,1,0])),-1!==this.aPS&&(EV(this.aPS),AP(this.aPS,3)),a&&(BB(AB,a),EV(this.aTX),AP(this.aTX,2)),this.iB=CB(),BB(EB,this.iB),BD(EB,new Uint16Array([0,1,2,0,2,3])),BV(null),BB(AB,null),BB(EB,null)}D(){G.deleteVertexArray(this.vA),[this.vB,this.iB].forEach(r=>G.deleteBuffer(r)),[(this.v,this.f)].forEach(r=>G.deleteShader(r)),G.deleteProgram(this.P)}}let pR=new PRG(vQ,fR,["aPS","aTX"],["uRS","uT","uR","uP","uM","uC","uW","uL","uO","uY","uZ","uD","uX"]),pB=new PRG(vQ,fB,["aPS","aTX"],["uRS","uT0"],bP),pP=new PRG(vQ,fP,["aPS","aTX"],["uRS","uC","uS","uB","uN","uO","uT0","uT1"],bP),Z=r=>{G.clearColor(0,0,0,0),G.clear(G.COLOR_BUFFER_BIT|G.DEPTH_BUFFER_BIT),UP(pR.P),BF(bR),BV(pR.vA),U2F(pR.uRS,D),U1F(pR.uT,uT),U1V(pR.uR,uR),U3F(pR.uP,uP),U3F(pR.uM,uM),U3F(pR.uC,uC),U4F(pR.uW,uW),U3F(pR.uL,uL),U1F(pR.uY,uY),U1F(pR.uZ,uZ),U3F(pR.uD,uD),U3F(pR.uX,uX),G.drawBuffers(TT);((r,e)=>{[[0,0,r,e],[r,0,r,e],[0,e,r,e],[r,e,r,e]].forEach(r=>{G.viewport(r[0],r[1],r[2],r[3]),DE(),FN()})})(.5*D[0],.5*D[1])},px=new Uint8Array(D[0]*D[1]*4),QC=r=>{G.readPixels(0,0,D[0],D[1],G.RGBA,UB,px);let e=r=>.21*r[0]+.71*r[1]+.07*r[2],t=0,u=0,a=0,n=(r=>{var e,t=r.length,u=new Float32Array(r.length);for(e=0;e<t;e++)u[e]=r[e]/255;return u})(px);for(let r=0;r<n.length;r+=4){let i=n.slice(r,r+4);if(0!==i[3]){let r=e(i);t+=r<.225?1:0,u+=r>.325?1:0,a+=1}}let i=t/a,V=u/a;return i=i>.9?Math.ceil(100*(i+.1))/100:Math.floor(100*(i-.1))/100,V=V>.9?Math.ceil(100*(V+.1))/100:Math.floor(100*(V-.1))/100,i>.9||V>.9},J=r=>{UP(pB.P),AT(T0),U1I(pB.uT0,0),BV(pB.vA),U2F(pB.uRS,D),VP();for(let r=0;r<64;r++)r%2==0?(BT(t0),BF(b1),DE()):(BT(t1),BF(b0),DE()),FN()},K=r=>{UP(pP.P),BF(null),BV(pP.vA),U2F(pP.uRS,D),U3F(pP.uC,uC),U1F(pP.uS,uS),U1F(pP.uB,uB),U1F(pP.uN,uN),U1F(pP.uO,uO),U1I(pP.uT0,0),U1I(pP.uT1,1),AT(T0),BT(tR),AT(T1),BT(t0),VP(),DE()},L=r=>{BV(null),BB(AB,null),BB(EB,null),BF(null),[tR,t0,t1].forEach(r=>G.deleteTexture(r)),[bR,b0,b1].forEach(r=>G.deleteFramebuffer(r)),G.deleteBuffer(bP),pR.D(G),pP.D(G)};if(Object.keys(Q).includes(ID)){do{dw++,I()}while(dw<Q[ID]);Z()}else do{dw++,I(),Z()}while(QC()&&dw<9);J(),K(),L();