{"version":3,"file":"static/js/vendors-6c44f50a.d3a949a8.js","mappings":"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","sources":["../node_modules/@pdf-lib/upng/UPNG.js"],"sourcesContent":["import pako from 'pako';\n\nvar UPNG = {};\n\n\t\n\nUPNG.toRGBA8 = function(out)\n{\n\tvar w = out.width, h = out.height;\n\tif(out.tabs.acTL==null) return [UPNG.toRGBA8.decodeImage(out.data, w, h, out).buffer];\n\t\n\tvar frms = [];\n\tif(out.frames[0].data==null) out.frames[0].data = out.data;\n\t\n\tvar len = w*h*4, img = new Uint8Array(len), empty = new Uint8Array(len), prev=new Uint8Array(len);\n\tfor(var i=0; i<out.frames.length; i++)\n\t{\n\t\tvar frm = out.frames[i];\n\t\tvar fx=frm.rect.x, fy=frm.rect.y, fw = frm.rect.width, fh = frm.rect.height;\n\t\tvar fdata = UPNG.toRGBA8.decodeImage(frm.data, fw,fh, out);\n\t\t\n\t\tif(i!=0) for(var j=0; j<len; j++) prev[j]=img[j];\n\t\t\n\t\tif     (frm.blend==0) UPNG._copyTile(fdata, fw, fh, img, w, h, fx, fy, 0);\n\t\telse if(frm.blend==1) UPNG._copyTile(fdata, fw, fh, img, w, h, fx, fy, 1);\n\t\t\n\t\tfrms.push(img.buffer.slice(0));\n\t\t\n\t\tif     (frm.dispose==0) {}\n\t\telse if(frm.dispose==1) UPNG._copyTile(empty, fw, fh, img, w, h, fx, fy, 0);\n\t\telse if(frm.dispose==2) for(var j=0; j<len; j++) img[j]=prev[j];\n\t}\n\treturn frms;\n}\nUPNG.toRGBA8.decodeImage = function(data, w, h, out)\n{\n\tvar area = w*h, bpp = UPNG.decode._getBPP(out);\n\tvar bpl = Math.ceil(w*bpp/8);\t// bytes per line\n\n\tvar bf = new Uint8Array(area*4), bf32 = new Uint32Array(bf.buffer);\n\tvar ctype = out.ctype, depth = out.depth;\n\tvar rs = UPNG._bin.readUshort;\n\t\n\t//console.log(ctype, depth);\n\tvar time = Date.now();\n\n\tif     (ctype==6) { // RGB + alpha\n\t\tvar qarea = area<<2;\n\t\tif(depth== 8) for(var i=0; i<qarea;i+=4) {  bf[i] = data[i];  bf[i+1] = data[i+1];  bf[i+2] = data[i+2];  bf[i+3] = data[i+3]; }\n\t\tif(depth==16) for(var i=0; i<qarea;i++ ) {  bf[i] = data[i<<1];  }\n\t}\n\telse if(ctype==2) {\t// RGB\n\t\tvar ts=out.tabs[\"tRNS\"];\n\t\tif(ts==null) {\n\t\t\tif(depth== 8) for(var i=0; i<area; i++) {  var ti=i*3;  bf32[i] = (255<<24)|(data[ti+2]<<16)|(data[ti+1]<<8)|data[ti];  }\n\t\t\tif(depth==16) for(var i=0; i<area; i++) {  var ti=i*6;  bf32[i] = (255<<24)|(data[ti+4]<<16)|(data[ti+2]<<8)|data[ti];  }\n\t\t}\n\t\telse {  var tr=ts[0], tg=ts[1], tb=ts[2];\n\t\t\tif(depth== 8) for(var i=0; i<area; i++) {  var qi=i<<2, ti=i*3;  bf32[i] = (255<<24)|(data[ti+2]<<16)|(data[ti+1]<<8)|data[ti];\n\t\t\t\tif(data[ti]   ==tr && data[ti+1]   ==tg && data[ti+2]   ==tb) bf[qi+3] = 0;  }\n\t\t\tif(depth==16) for(var i=0; i<area; i++) {  var qi=i<<2, ti=i*6;  bf32[i] = (255<<24)|(data[ti+4]<<16)|(data[ti+2]<<8)|data[ti];\n\t\t\t\tif(rs(data,ti)==tr && rs(data,ti+2)==tg && rs(data,ti+4)==tb) bf[qi+3] = 0;  }\n\t\t}\n\t}\n\telse if(ctype==3) {\t// palette\n\t\tvar p=out.tabs[\"PLTE\"], ap=out.tabs[\"tRNS\"], tl=ap?ap.length:0;\n\t\t//console.log(p, ap);\n\t\tif(depth==1) for(var y=0; y<h; y++) {  var s0 = y*bpl, t0 = y*w;\n\t\t\tfor(var i=0; i<w; i++) { var qi=(t0+i)<<2, j=((data[s0+(i>>3)]>>(7-((i&7)<<0)))& 1), cj=3*j;  bf[qi]=p[cj];  bf[qi+1]=p[cj+1];  bf[qi+2]=p[cj+2];  bf[qi+3]=(j<tl)?ap[j]:255;  }\n\t\t}\n\t\tif(depth==2) for(var y=0; y<h; y++) {  var s0 = y*bpl, t0 = y*w;\n\t\t\tfor(var i=0; i<w; i++) { var qi=(t0+i)<<2, j=((data[s0+(i>>2)]>>(6-((i&3)<<1)))& 3), cj=3*j;  bf[qi]=p[cj];  bf[qi+1]=p[cj+1];  bf[qi+2]=p[cj+2];  bf[qi+3]=(j<tl)?ap[j]:255;  }\n\t\t}\n\t\tif(depth==4) for(var y=0; y<h; y++) {  var s0 = y*bpl, t0 = y*w;\n\t\t\tfor(var i=0; i<w; i++) { var qi=(t0+i)<<2, j=((data[s0+(i>>1)]>>(4-((i&1)<<2)))&15), cj=3*j;  bf[qi]=p[cj];  bf[qi+1]=p[cj+1];  bf[qi+2]=p[cj+2];  bf[qi+3]=(j<tl)?ap[j]:255;  }\n\t\t}\n\t\tif(depth==8) for(var i=0; i<area; i++ ) {  var qi=i<<2, j=data[i]                      , cj=3*j;  bf[qi]=p[cj];  bf[qi+1]=p[cj+1];  bf[qi+2]=p[cj+2];  bf[qi+3]=(j<tl)?ap[j]:255;  }\n\t}\n\telse if(ctype==4) {\t// gray + alpha\n\t\tif(depth== 8)  for(var i=0; i<area; i++) {  var qi=i<<2, di=i<<1, gr=data[di];  bf[qi]=gr;  bf[qi+1]=gr;  bf[qi+2]=gr;  bf[qi+3]=data[di+1];  }\n\t\tif(depth==16)  for(var i=0; i<area; i++) {  var qi=i<<2, di=i<<2, gr=data[di];  bf[qi]=gr;  bf[qi+1]=gr;  bf[qi+2]=gr;  bf[qi+3]=data[di+2];  }\n\t}\n\telse if(ctype==0) {\t// gray\n\t\tvar tr = out.tabs[\"tRNS\"] ? out.tabs[\"tRNS\"] : -1;\n\t\tfor(var y=0; y<h; y++) {\n\t\t\tvar off = y*bpl, to = y*w;\n\t\t\tif     (depth== 1) for(var x=0; x<w; x++) {  var gr=255*((data[off+(x>>>3)]>>>(7 -((x&7)   )))& 1), al=(gr==tr*255)?0:255;  bf32[to+x]=(al<<24)|(gr<<16)|(gr<<8)|gr;  }\n\t\t\telse if(depth== 2) for(var x=0; x<w; x++) {  var gr= 85*((data[off+(x>>>2)]>>>(6 -((x&3)<<1)))& 3), al=(gr==tr* 85)?0:255;  bf32[to+x]=(al<<24)|(gr<<16)|(gr<<8)|gr;  }\n\t\t\telse if(depth== 4) for(var x=0; x<w; x++) {  var gr= 17*((data[off+(x>>>1)]>>>(4 -((x&1)<<2)))&15), al=(gr==tr* 17)?0:255;  bf32[to+x]=(al<<24)|(gr<<16)|(gr<<8)|gr;  }\n\t\t\telse if(depth== 8) for(var x=0; x<w; x++) {  var gr=data[off+     x], al=(gr                 ==tr)?0:255;  bf32[to+x]=(al<<24)|(gr<<16)|(gr<<8)|gr;  }\n\t\t\telse if(depth==16) for(var x=0; x<w; x++) {  var gr=data[off+(x<<1)], al=(rs(data,off+(x<<i))==tr)?0:255;  bf32[to+x]=(al<<24)|(gr<<16)|(gr<<8)|gr;  }\n\t\t}\n\t}\n\t//console.log(Date.now()-time);\n\treturn bf;\n}\n\n\n\nUPNG.decode = function(buff)\n{\n\tvar data = new Uint8Array(buff), offset = 8, bin = UPNG._bin, rUs = bin.readUshort, rUi = bin.readUint;\n\tvar out = {tabs:{}, frames:[]};\n\tvar dd = new Uint8Array(data.length), doff = 0;\t // put all IDAT data into it\n\tvar fd, foff = 0;\t// frames\n\t\n\tvar mgck = [0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a];\n\tfor(var i=0; i<8; i++) if(data[i]!=mgck[i]) throw \"The input is not a PNG file!\";\n\n\twhile(offset<data.length)\n\t{\n\t\tvar len  = bin.readUint(data, offset);  offset += 4;\n\t\tvar type = bin.readASCII(data, offset, 4);  offset += 4;\n\t\t//console.log(type,len);\n\t\t\n\t\tif     (type==\"IHDR\")  {  UPNG.decode._IHDR(data, offset, out);  }\n\t\telse if(type==\"IDAT\") {\n\t\t\tfor(var i=0; i<len; i++) dd[doff+i] = data[offset+i];\n\t\t\tdoff += len;\n\t\t}\n\t\telse if(type==\"acTL\")  {\n\t\t\tout.tabs[type] = {  num_frames:rUi(data, offset), num_plays:rUi(data, offset+4)  };\n\t\t\tfd = new Uint8Array(data.length);\n\t\t}\n\t\telse if(type==\"fcTL\")  {\n\t\t\tif(foff!=0) {  var fr = out.frames[out.frames.length-1];\n\t\t\t\tfr.data = UPNG.decode._decompress(out, fd.slice(0,foff), fr.rect.width, fr.rect.height);  foff=0;\n\t\t\t}\n\t\t\tvar rct = {x:rUi(data, offset+12),y:rUi(data, offset+16),width:rUi(data, offset+4),height:rUi(data, offset+8)};\n\t\t\tvar del = rUs(data, offset+22);  del = rUs(data, offset+20) / (del==0?100:del);\n\t\t\tvar frm = {rect:rct, delay:Math.round(del*1000), dispose:data[offset+24], blend:data[offset+25]};\n\t\t\t//console.log(frm);\n\t\t\tout.frames.push(frm);\n\t\t}\n\t\telse if(type==\"fdAT\") {\n\t\t\tfor(var i=0; i<len-4; i++) fd[foff+i] = data[offset+i+4];\n\t\t\tfoff += len-4;\n\t\t}\n\t\telse if(type==\"pHYs\") {\n\t\t\tout.tabs[type] = [bin.readUint(data, offset), bin.readUint(data, offset+4), data[offset+8]];\n\t\t}\n\t\telse if(type==\"cHRM\") {\n\t\t\tout.tabs[type] = [];\n\t\t\tfor(var i=0; i<8; i++) out.tabs[type].push(bin.readUint(data, offset+i*4));\n\t\t}\n\t\telse if(type==\"tEXt\") {\n\t\t\tif(out.tabs[type]==null) out.tabs[type] = {};\n\t\t\tvar nz = bin.nextZero(data, offset);\n\t\t\tvar keyw = bin.readASCII(data, offset, nz-offset);\n\t\t\tvar text = bin.readASCII(data, nz+1, offset+len-nz-1);\n\t\t\tout.tabs[type][keyw] = text;\n\t\t}\n\t\telse if(type==\"iTXt\") {\n\t\t\tif(out.tabs[type]==null) out.tabs[type] = {};\n\t\t\tvar nz = 0, off = offset;\n\t\t\tnz = bin.nextZero(data, off);\n\t\t\tvar keyw = bin.readASCII(data, off, nz-off);  off = nz + 1;\n\t\t\tvar cflag = data[off], cmeth = data[off+1];  off+=2;\n\t\t\tnz = bin.nextZero(data, off);\n\t\t\tvar ltag = bin.readASCII(data, off, nz-off);  off = nz + 1;\n\t\t\tnz = bin.nextZero(data, off);\n\t\t\tvar tkeyw = bin.readUTF8(data, off, nz-off);  off = nz + 1;\n\t\t\tvar text  = bin.readUTF8(data, off, len-(off-offset));\n\t\t\tout.tabs[type][keyw] = text;\n\t\t}\n\t\telse if(type==\"PLTE\") {\n\t\t\tout.tabs[type] = bin.readBytes(data, offset, len);\n\t\t}\n\t\telse if(type==\"hIST\") {\n\t\t\tvar pl = out.tabs[\"PLTE\"].length/3;\n\t\t\tout.tabs[type] = [];  for(var i=0; i<pl; i++) out.tabs[type].push(rUs(data, offset+i*2));\n\t\t}\n\t\telse if(type==\"tRNS\") {\n\t\t\tif     (out.ctype==3) out.tabs[type] = bin.readBytes(data, offset, len);\n\t\t\telse if(out.ctype==0) out.tabs[type] = rUs(data, offset);\n\t\t\telse if(out.ctype==2) out.tabs[type] = [ rUs(data,offset),rUs(data,offset+2),rUs(data,offset+4) ];\n\t\t\t//else console.log(\"tRNS for unsupported color type\",out.ctype, len);\n\t\t}\n\t\telse if(type==\"gAMA\") out.tabs[type] = bin.readUint(data, offset)/100000;\n\t\telse if(type==\"sRGB\") out.tabs[type] = data[offset];\n\t\telse if(type==\"bKGD\")\n\t\t{\n\t\t\tif     (out.ctype==0 || out.ctype==4) out.tabs[type] = [rUs(data, offset)];\n\t\t\telse if(out.ctype==2 || out.ctype==6) out.tabs[type] = [rUs(data, offset), rUs(data, offset+2), rUs(data, offset+4)];\n\t\t\telse if(out.ctype==3) out.tabs[type] = data[offset];\n\t\t}\n\t\telse if(type==\"IEND\") {\n\t\t\tbreak;\n\t\t}\n\t\t//else {  log(\"unknown chunk type\", type, len);  }\n\t\toffset += len;\n\t\tvar crc = bin.readUint(data, offset);  offset += 4;\n\t}\n\tif(foff!=0) {  var fr = out.frames[out.frames.length-1];\n\t\tfr.data = UPNG.decode._decompress(out, fd.slice(0,foff), fr.rect.width, fr.rect.height);  foff=0;\n\t}\t\n\tout.data = UPNG.decode._decompress(out, dd, out.width, out.height);\n\t\n\tdelete out.compress;  delete out.interlace;  delete out.filter;\n\treturn out;\n}\n\nUPNG.decode._decompress = function(out, dd, w, h) {\n\tvar time = Date.now();\n\tvar bpp = UPNG.decode._getBPP(out), bpl = Math.ceil(w*bpp/8), buff = new Uint8Array((bpl+1+out.interlace)*h);\n\tdd = UPNG.decode._inflate(dd,buff);\n\t//console.log(dd.length, buff.length);\n\t//console.log(Date.now()-time);\n\n\tvar time=Date.now();\n\tif     (out.interlace==0) dd = UPNG.decode._filterZero(dd, out, 0, w, h);\n\telse if(out.interlace==1) dd = UPNG.decode._readInterlace(dd, out);\n\t//console.log(Date.now()-time);\n\treturn dd;\n}\n\nUPNG.decode._inflate = function(data, buff) {  var out=UPNG[\"inflateRaw\"](new Uint8Array(data.buffer, 2,data.length-6),buff);  return out;  }\nUPNG.inflateRaw=function(){var H={};H.H={};H.H.N=function(N,W){var R=Uint8Array,i=0,m=0,J=0,h=0,Q=0,X=0,u=0,w=0,d=0,v,C;\nif(N[0]==3&&N[1]==0)return W?W:new R(0);var V=H.H,n=V.b,A=V.e,l=V.R,M=V.n,I=V.A,e=V.Z,b=V.m,Z=W==null;\nif(Z)W=new R(N.length>>>2<<3);while(i==0){i=n(N,d,1);m=n(N,d+1,2);d+=3;if(m==0){if((d&7)!=0)d+=8-(d&7);\nvar D=(d>>>3)+4,q=N[D-4]|N[D-3]<<8;if(Z)W=H.H.W(W,w+q);W.set(new R(N.buffer,N.byteOffset+D,q),w);d=D+q<<3;\nw+=q;continue}if(Z)W=H.H.W(W,w+(1<<17));if(m==1){v=b.J;C=b.h;X=(1<<9)-1;u=(1<<5)-1}if(m==2){J=A(N,d,5)+257;\nh=A(N,d+5,5)+1;Q=A(N,d+10,4)+4;d+=14;var E=d,j=1;for(var c=0;c<38;c+=2){b.Q[c]=0;b.Q[c+1]=0}for(var c=0;\nc<Q;c++){var K=A(N,d+c*3,3);b.Q[(b.X[c]<<1)+1]=K;if(K>j)j=K}d+=3*Q;M(b.Q,j);I(b.Q,j,b.u);v=b.w;C=b.d;\nd=l(b.u,(1<<j)-1,J+h,N,d,b.v);var r=V.V(b.v,0,J,b.C);X=(1<<r)-1;var S=V.V(b.v,J,h,b.D);u=(1<<S)-1;M(b.C,r);\nI(b.C,r,v);M(b.D,S);I(b.D,S,C)}while(!0){var T=v[e(N,d)&X];d+=T&15;var p=T>>>4;if(p>>>8==0){W[w++]=p}else if(p==256){break}else{var z=w+p-254;\nif(p>264){var _=b.q[p-257];z=w+(_>>>3)+A(N,d,_&7);d+=_&7}var $=C[e(N,d)&u];d+=$&15;var s=$>>>4,Y=b.c[s],a=(Y>>>4)+n(N,d,Y&15);\nd+=Y&15;while(w<z){W[w]=W[w++-a];W[w]=W[w++-a];W[w]=W[w++-a];W[w]=W[w++-a]}w=z}}}return W.length==w?W:W.slice(0,w)};\nH.H.W=function(N,W){var R=N.length;if(W<=R)return N;var V=new Uint8Array(R<<1);V.set(N,0);return V};\nH.H.R=function(N,W,R,V,n,A){var l=H.H.e,M=H.H.Z,I=0;while(I<R){var e=N[M(V,n)&W];n+=e&15;var b=e>>>4;\nif(b<=15){A[I]=b;I++}else{var Z=0,m=0;if(b==16){m=3+l(V,n,2);n+=2;Z=A[I-1]}else if(b==17){m=3+l(V,n,3);\nn+=3}else if(b==18){m=11+l(V,n,7);n+=7}var J=I+m;while(I<J){A[I]=Z;I++}}}return n};H.H.V=function(N,W,R,V){var n=0,A=0,l=V.length>>>1;\nwhile(A<R){var M=N[A+W];V[A<<1]=0;V[(A<<1)+1]=M;if(M>n)n=M;A++}while(A<l){V[A<<1]=0;V[(A<<1)+1]=0;A++}return n};\nH.H.n=function(N,W){var R=H.H.m,V=N.length,n,A,l,M,I,e=R.j;for(var M=0;M<=W;M++)e[M]=0;for(M=1;M<V;M+=2)e[N[M]]++;\nvar b=R.K;n=0;e[0]=0;for(A=1;A<=W;A++){n=n+e[A-1]<<1;b[A]=n}for(l=0;l<V;l+=2){I=N[l+1];if(I!=0){N[l]=b[I];\nb[I]++}}};H.H.A=function(N,W,R){var V=N.length,n=H.H.m,A=n.r;for(var l=0;l<V;l+=2)if(N[l+1]!=0){var M=l>>1,I=N[l+1],e=M<<4|I,b=W-I,Z=N[l]<<b,m=Z+(1<<b);\nwhile(Z!=m){var J=A[Z]>>>15-W;R[J]=e;Z++}}};H.H.l=function(N,W){var R=H.H.m.r,V=15-W;for(var n=0;n<N.length;\nn+=2){var A=N[n]<<W-N[n+1];N[n]=R[A]>>>V}};H.H.M=function(N,W,R){R=R<<(W&7);var V=W>>>3;N[V]|=R;N[V+1]|=R>>>8};\nH.H.I=function(N,W,R){R=R<<(W&7);var V=W>>>3;N[V]|=R;N[V+1]|=R>>>8;N[V+2]|=R>>>16};H.H.e=function(N,W,R){return(N[W>>>3]|N[(W>>>3)+1]<<8)>>>(W&7)&(1<<R)-1};\nH.H.b=function(N,W,R){return(N[W>>>3]|N[(W>>>3)+1]<<8|N[(W>>>3)+2]<<16)>>>(W&7)&(1<<R)-1};H.H.Z=function(N,W){return(N[W>>>3]|N[(W>>>3)+1]<<8|N[(W>>>3)+2]<<16)>>>(W&7)};\nH.H.i=function(N,W){return(N[W>>>3]|N[(W>>>3)+1]<<8|N[(W>>>3)+2]<<16|N[(W>>>3)+3]<<24)>>>(W&7)};H.H.m=function(){var N=Uint16Array,W=Uint32Array;\nreturn{K:new N(16),j:new N(16),X:[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],S:[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,999,999,999],T:[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0],q:new N(32),p:[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,65535,65535],z:[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0],c:new W(32),J:new N(512),_:[],h:new N(32),$:[],w:new N(32768),C:[],v:[],d:new N(32768),D:[],u:new N(512),Q:[],r:new N(1<<15),s:new W(286),Y:new W(30),a:new W(19),t:new W(15e3),k:new N(1<<16),g:new N(1<<15)}}();\n(function(){var N=H.H.m,W=1<<15;for(var R=0;R<W;R++){var V=R;V=(V&2863311530)>>>1|(V&1431655765)<<1;\nV=(V&3435973836)>>>2|(V&858993459)<<2;V=(V&4042322160)>>>4|(V&252645135)<<4;V=(V&4278255360)>>>8|(V&16711935)<<8;\nN.r[R]=(V>>>16|V<<16)>>>17}function n(A,l,M){while(l--!=0)A.push(0,M)}for(var R=0;R<32;R++){N.q[R]=N.S[R]<<3|N.T[R];\nN.c[R]=N.p[R]<<4|N.z[R]}n(N._,144,8);n(N._,255-143,9);n(N._,279-255,7);n(N._,287-279,8);H.H.n(N._,9);\nH.H.A(N._,9,N.J);H.H.l(N._,9);n(N.$,32,5);H.H.n(N.$,5);H.H.A(N.$,5,N.h);H.H.l(N.$,5);n(N.Q,19,0);n(N.C,286,0);\nn(N.D,30,0);n(N.v,320,0)}());return H.H.N}()\n\n\nUPNG.decode._readInterlace = function(data, out)\n{\n\tvar w = out.width, h = out.height;\n\tvar bpp = UPNG.decode._getBPP(out), cbpp = bpp>>3, bpl = Math.ceil(w*bpp/8);\n\tvar img = new Uint8Array( h * bpl );\n\tvar di = 0;\n\n\tvar starting_row  = [ 0, 0, 4, 0, 2, 0, 1 ];\n\tvar starting_col  = [ 0, 4, 0, 2, 0, 1, 0 ];\n\tvar row_increment = [ 8, 8, 8, 4, 4, 2, 2 ];\n\tvar col_increment = [ 8, 8, 4, 4, 2, 2, 1 ];\n\n\tvar pass=0;\n\twhile(pass<7)\n\t{\n\t\tvar ri = row_increment[pass], ci = col_increment[pass];\n\t\tvar sw = 0, sh = 0;\n\t\tvar cr = starting_row[pass];  while(cr<h) {  cr+=ri;  sh++;  }\n\t\tvar cc = starting_col[pass];  while(cc<w) {  cc+=ci;  sw++;  }\n\t\tvar bpll = Math.ceil(sw*bpp/8);\n\t\tUPNG.decode._filterZero(data, out, di, sw, sh);\n\n\t\tvar y=0, row = starting_row[pass];\n\t\twhile(row<h)\n\t\t{\n\t\t\tvar col = starting_col[pass];\n\t\t\tvar cdi = (di+y*bpll)<<3;\n\n\t\t\twhile(col<w)\n\t\t\t{\n\t\t\t\tif(bpp==1) {\n\t\t\t\t\tvar val = data[cdi>>3];  val = (val>>(7-(cdi&7)))&1;\n\t\t\t\t\timg[row*bpl + (col>>3)] |= (val << (7-((col&7)<<0)));\n\t\t\t\t}\n\t\t\t\tif(bpp==2) {\n\t\t\t\t\tvar val = data[cdi>>3];  val = (val>>(6-(cdi&7)))&3;\n\t\t\t\t\timg[row*bpl + (col>>2)] |= (val << (6-((col&3)<<1)));\n\t\t\t\t}\n\t\t\t\tif(bpp==4) {\n\t\t\t\t\tvar val = data[cdi>>3];  val = (val>>(4-(cdi&7)))&15;\n\t\t\t\t\timg[row*bpl + (col>>1)] |= (val << (4-((col&1)<<2)));\n\t\t\t\t}\n\t\t\t\tif(bpp>=8) {\n\t\t\t\t\tvar ii = row*bpl+col*cbpp;\n\t\t\t\t\tfor(var j=0; j<cbpp; j++) img[ii+j] = data[(cdi>>3)+j];\n\t\t\t\t}\n\t\t\t\tcdi+=bpp;  col+=ci;\n\t\t\t}\n\t\t\ty++;  row += ri;\n\t\t}\n\t\tif(sw*sh!=0) di += sh * (1 + bpll);\n\t\tpass = pass + 1;\n\t}\n\treturn img;\n}\n\nUPNG.decode._getBPP = function(out) {\n\tvar noc = [1,null,3,1,2,null,4][out.ctype];\n\treturn noc * out.depth;\n}\n\nUPNG.decode._filterZero = function(data, out, off, w, h)\n{\n\tvar bpp = UPNG.decode._getBPP(out), bpl = Math.ceil(w*bpp/8), paeth = UPNG.decode._paeth;\n\tbpp = Math.ceil(bpp/8);\n\t\n\tvar i=0, di=1, type=data[off], x=0;\n\t\n\tif(type>1) data[off]=[0,0,1][type-2];  \n\tif(type==3) for(x=bpp; x<bpl; x++) data[x+1] = (data[x+1] + (data[x+1-bpp]>>>1) )&255;\n\n\tfor(var y=0; y<h; y++)  {\n\t\ti = off+y*bpl; di = i+y+1;\n\t\ttype = data[di-1]; x=0;\n\n\t\tif     (type==0)   for(; x<bpl; x++) data[i+x] = data[di+x];\n\t\telse if(type==1) { for(; x<bpp; x++) data[i+x] = data[di+x];\n\t\t\t\t\t\t   for(; x<bpl; x++) data[i+x] = (data[di+x] + data[i+x-bpp]);  }\n\t\telse if(type==2) { for(; x<bpl; x++) data[i+x] = (data[di+x] + data[i+x-bpl]);  }\n\t\telse if(type==3) { for(; x<bpp; x++) data[i+x] = (data[di+x] + ( data[i+x-bpl]>>>1));\n\t\t\t               for(; x<bpl; x++) data[i+x] = (data[di+x] + ((data[i+x-bpl]+data[i+x-bpp])>>>1) );  }\n\t\telse             { for(; x<bpp; x++) data[i+x] = (data[di+x] + paeth(0, data[i+x-bpl], 0));\n\t\t\t\t\t\t   for(; x<bpl; x++) data[i+x] = (data[di+x] + paeth(data[i+x-bpp], data[i+x-bpl], data[i+x-bpp-bpl]) );  }\n\t}\n\treturn data;\n}\n\nUPNG.decode._paeth = function(a,b,c)\n{\n\tvar p = a+b-c, pa = (p-a), pb = (p-b), pc = (p-c);\n\tif (pa*pa <= pb*pb && pa*pa <= pc*pc)  return a;\n\telse if (pb*pb <= pc*pc)  return b;\n\treturn c;\n}\n\nUPNG.decode._IHDR = function(data, offset, out)\n{\n\tvar bin = UPNG._bin;\n\tout.width  = bin.readUint(data, offset);  offset += 4;\n\tout.height = bin.readUint(data, offset);  offset += 4;\n\tout.depth     = data[offset];  offset++;\n\tout.ctype     = data[offset];  offset++;\n\tout.compress  = data[offset];  offset++;\n\tout.filter    = data[offset];  offset++;\n\tout.interlace = data[offset];  offset++;\n}\n\nUPNG._bin = {\n\tnextZero   : function(data,p)  {  while(data[p]!=0) p++;  return p;  },\n\treadUshort : function(buff,p)  {  return (buff[p]<< 8) | buff[p+1];  },\n\twriteUshort: function(buff,p,n){  buff[p] = (n>>8)&255;  buff[p+1] = n&255;  },\n\treadUint   : function(buff,p)  {  return (buff[p]*(256*256*256)) + ((buff[p+1]<<16) | (buff[p+2]<< 8) | buff[p+3]);  },\n\twriteUint  : function(buff,p,n){  buff[p]=(n>>24)&255;  buff[p+1]=(n>>16)&255;  buff[p+2]=(n>>8)&255;  buff[p+3]=n&255;  },\n\treadASCII  : function(buff,p,l){  var s = \"\";  for(var i=0; i<l; i++) s += String.fromCharCode(buff[p+i]);  return s;    },\n\twriteASCII : function(data,p,s){  for(var i=0; i<s.length; i++) data[p+i] = s.charCodeAt(i);  },\n\treadBytes  : function(buff,p,l){  var arr = [];   for(var i=0; i<l; i++) arr.push(buff[p+i]);   return arr;  },\n\tpad : function(n) { return n.length < 2 ? \"0\" + n : n; },\n\treadUTF8 : function(buff, p, l) {\n\t\tvar s = \"\", ns;\n\t\tfor(var i=0; i<l; i++) s += \"%\" + UPNG._bin.pad(buff[p+i].toString(16));\n\t\ttry {  ns = decodeURIComponent(s); }\n\t\tcatch(e) {  return UPNG._bin.readASCII(buff, p, l);  }\n\t\treturn  ns;\n\t}\n}\nUPNG._copyTile = function(sb, sw, sh, tb, tw, th, xoff, yoff, mode)\n{\n\tvar w = Math.min(sw,tw), h = Math.min(sh,th);\n\tvar si=0, ti=0;\n\tfor(var y=0; y<h; y++)\n\t\tfor(var x=0; x<w; x++)\n\t\t{\n\t\t\tif(xoff>=0 && yoff>=0) {  si = (y*sw+x)<<2;  ti = (( yoff+y)*tw+xoff+x)<<2;  }\n\t\t\telse                   {  si = ((-yoff+y)*sw-xoff+x)<<2;  ti = (y*tw+x)<<2;  }\n\t\t\t\n\t\t\tif     (mode==0) {  tb[ti] = sb[si];  tb[ti+1] = sb[si+1];  tb[ti+2] = sb[si+2];  tb[ti+3] = sb[si+3];  }\n\t\t\telse if(mode==1) {\n\t\t\t\tvar fa = sb[si+3]*(1/255), fr=sb[si]*fa, fg=sb[si+1]*fa, fb=sb[si+2]*fa; \n\t\t\t\tvar ba = tb[ti+3]*(1/255), br=tb[ti]*ba, bg=tb[ti+1]*ba, bb=tb[ti+2]*ba; \n\t\t\t\t\n\t\t\t\tvar ifa=1-fa, oa = fa+ba*ifa, ioa = (oa==0?0:1/oa);\n\t\t\t\ttb[ti+3] = 255*oa;  \n\t\t\t\ttb[ti+0] = (fr+br*ifa)*ioa;  \n\t\t\t\ttb[ti+1] = (fg+bg*ifa)*ioa;   \n\t\t\t\ttb[ti+2] = (fb+bb*ifa)*ioa;  \n\t\t\t}\n\t\t\telse if(mode==2){\t// copy only differences, otherwise zero\n\t\t\t\tvar fa = sb[si+3], fr=sb[si], fg=sb[si+1], fb=sb[si+2]; \n\t\t\t\tvar ba = tb[ti+3], br=tb[ti], bg=tb[ti+1], bb=tb[ti+2]; \n\t\t\t\tif(fa==ba && fr==br && fg==bg && fb==bb) {  tb[ti]=0;  tb[ti+1]=0;  tb[ti+2]=0;  tb[ti+3]=0;  }\n\t\t\t\telse {  tb[ti]=fr;  tb[ti+1]=fg;  tb[ti+2]=fb;  tb[ti+3]=fa;  }\n\t\t\t}\n\t\t\telse if(mode==3){\t// check if can be blended\n\t\t\t\tvar fa = sb[si+3], fr=sb[si], fg=sb[si+1], fb=sb[si+2]; \n\t\t\t\tvar ba = tb[ti+3], br=tb[ti], bg=tb[ti+1], bb=tb[ti+2]; \n\t\t\t\tif(fa==ba && fr==br && fg==bg && fb==bb) continue;\n\t\t\t\t//if(fa!=255 && ba!=0) return false;\n\t\t\t\tif(fa<220 && ba>20) return false;\n\t\t\t}\n\t\t}\n\treturn true;\n}\n\n\n\n\nUPNG.encode = function(bufs, w, h, ps, dels, tabs, forbidPlte)\n{\n\tif(ps==null) ps=0;\n\tif(forbidPlte==null) forbidPlte = false;\n\n\tvar nimg = UPNG.encode.compress(bufs, w, h, ps, [false, false, false, 0, forbidPlte]);\n\tUPNG.encode.compressPNG(nimg, -1);\n\t\n\treturn UPNG.encode._main(nimg, w, h, dels, tabs);\n}\n\nUPNG.encodeLL = function(bufs, w, h, cc, ac, depth, dels, tabs) {\n\tvar nimg = {  ctype: 0 + (cc==1 ? 0 : 2) + (ac==0 ? 0 : 4),      depth: depth,  frames: []  };\n\t\n\tvar time = Date.now();\n\tvar bipp = (cc+ac)*depth, bipl = bipp * w;\n\tfor(var i=0; i<bufs.length; i++)\n\t\tnimg.frames.push({  rect:{x:0,y:0,width:w,height:h},  img:new Uint8Array(bufs[i]), blend:0, dispose:1, bpp:Math.ceil(bipp/8), bpl:Math.ceil(bipl/8)  });\n\t\n\tUPNG.encode.compressPNG(nimg, 0, true);\n\t\n\tvar out = UPNG.encode._main(nimg, w, h, dels, tabs);\n\treturn out;\n}\n\nUPNG.encode._main = function(nimg, w, h, dels, tabs) {\n\tif(tabs==null) tabs={};\n\tvar crc = UPNG.crc.crc, wUi = UPNG._bin.writeUint, wUs = UPNG._bin.writeUshort, wAs = UPNG._bin.writeASCII;\n\tvar offset = 8, anim = nimg.frames.length>1, pltAlpha = false;\n\t\n\tvar leng = 8 + (16+5+4) /*+ (9+4)*/ + (anim ? 20 : 0);\n\tif(tabs[\"sRGB\"]!=null) leng += 8+1+4;\n\tif(tabs[\"pHYs\"]!=null) leng += 8+9+4;\n\tif(nimg.ctype==3) {\n\t\tvar dl = nimg.plte.length;\n\t\tfor(var i=0; i<dl; i++) if((nimg.plte[i]>>>24)!=255) pltAlpha = true;\n\t\tleng += (8 + dl*3 + 4) + (pltAlpha ? (8 + dl*1 + 4) : 0);\n\t}\n\tfor(var j=0; j<nimg.frames.length; j++)\n\t{\n\t\tvar fr = nimg.frames[j];\n\t\tif(anim) leng += 38;\n\t\tleng += fr.cimg.length + 12;\n\t\tif(j!=0) leng+=4;\n\t}\n\tleng += 12; \n\t\n\tvar data = new Uint8Array(leng);\n\tvar wr=[0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a];\n\tfor(var i=0; i<8; i++) data[i]=wr[i];\n\t\n\twUi(data,offset, 13);     offset+=4;\n\twAs(data,offset,\"IHDR\");  offset+=4;\n\twUi(data,offset,w);  offset+=4;\n\twUi(data,offset,h);  offset+=4;\n\tdata[offset] = nimg.depth;  offset++;  // depth\n\tdata[offset] = nimg.ctype;  offset++;  // ctype\n\tdata[offset] = 0;  offset++;  // compress\n\tdata[offset] = 0;  offset++;  // filter\n\tdata[offset] = 0;  offset++;  // interlace\n\twUi(data,offset,crc(data,offset-17,17));  offset+=4; // crc\n\n\t// 13 bytes to say, that it is sRGB\n\tif(tabs[\"sRGB\"]!=null) {\n\t\twUi(data,offset, 1);      offset+=4;\n\t\twAs(data,offset,\"sRGB\");  offset+=4;\n\t\tdata[offset] = tabs[\"sRGB\"];  offset++;\n\t\twUi(data,offset,crc(data,offset-5,5));  offset+=4; // crc\n\t}\n\tif(tabs[\"pHYs\"]!=null) {\n\t\twUi(data,offset, 9);      offset+=4;\n\t\twAs(data,offset,\"pHYs\");  offset+=4;\n\t\twUi(data,offset, tabs[\"pHYs\"][0]);      offset+=4;\n\t\twUi(data,offset, tabs[\"pHYs\"][1]);      offset+=4;\n\t\tdata[offset]=tabs[\"pHYs\"][2];\t\t\toffset++;\n\t\twUi(data,offset,crc(data,offset-13,13));  offset+=4; // crc\n\t}\n\n\tif(anim) {\n\t\twUi(data,offset, 8);      offset+=4;\n\t\twAs(data,offset,\"acTL\");  offset+=4;\n\t\twUi(data,offset, nimg.frames.length);     offset+=4;\n\t\twUi(data,offset, tabs[\"loop\"]!=null?tabs[\"loop\"]:0);      offset+=4;\n\t\twUi(data,offset,crc(data,offset-12,12));  offset+=4; // crc\n\t}\n\n\tif(nimg.ctype==3) {\n\t\tvar dl = nimg.plte.length;\n\t\twUi(data,offset, dl*3);  offset+=4;\n\t\twAs(data,offset,\"PLTE\");  offset+=4;\n\t\tfor(var i=0; i<dl; i++){\n\t\t\tvar ti=i*3, c=nimg.plte[i], r=(c)&255, g=(c>>>8)&255, b=(c>>>16)&255;\n\t\t\tdata[offset+ti+0]=r;  data[offset+ti+1]=g;  data[offset+ti+2]=b;\n\t\t}\n\t\toffset+=dl*3;\n\t\twUi(data,offset,crc(data,offset-dl*3-4,dl*3+4));  offset+=4; // crc\n\n\t\tif(pltAlpha) {\n\t\t\twUi(data,offset, dl);  offset+=4;\n\t\t\twAs(data,offset,\"tRNS\");  offset+=4;\n\t\t\tfor(var i=0; i<dl; i++)  data[offset+i]=(nimg.plte[i]>>>24)&255;\n\t\t\toffset+=dl;\n\t\t\twUi(data,offset,crc(data,offset-dl-4,dl+4));  offset+=4; // crc\n\t\t}\n\t}\n\t\n\tvar fi = 0;\n\tfor(var j=0; j<nimg.frames.length; j++)\n\t{\n\t\tvar fr = nimg.frames[j];\n\t\tif(anim) {\n\t\t\twUi(data, offset, 26);     offset+=4;\n\t\t\twAs(data, offset,\"fcTL\");  offset+=4;\n\t\t\twUi(data, offset, fi++);   offset+=4;\n\t\t\twUi(data, offset, fr.rect.width );   offset+=4;\n\t\t\twUi(data, offset, fr.rect.height);   offset+=4;\n\t\t\twUi(data, offset, fr.rect.x);   offset+=4;\n\t\t\twUi(data, offset, fr.rect.y);   offset+=4;\n\t\t\twUs(data, offset, dels[j]);   offset+=2;\n\t\t\twUs(data, offset,  1000);   offset+=2;\n\t\t\tdata[offset] = fr.dispose;  offset++;\t// dispose\n\t\t\tdata[offset] = fr.blend  ;  offset++;\t// blend\n\t\t\twUi(data,offset,crc(data,offset-30,30));  offset+=4; // crc\n\t\t}\n\t\t\t\t\n\t\tvar imgd = fr.cimg, dl = imgd.length;\n\t\twUi(data,offset, dl+(j==0?0:4));     offset+=4;\n\t\tvar ioff = offset;\n\t\twAs(data,offset,(j==0)?\"IDAT\":\"fdAT\");  offset+=4;\n\t\tif(j!=0) {  wUi(data, offset, fi++);  offset+=4;  }\n\t\tdata.set(imgd,offset);\n\t\toffset += dl;\n\t\twUi(data,offset,crc(data,ioff,offset-ioff));  offset+=4; // crc\n\t}\n\n\twUi(data,offset, 0);     offset+=4;\n\twAs(data,offset,\"IEND\");  offset+=4;\n\twUi(data,offset,crc(data,offset-4,4));  offset+=4; // crc\n\n\treturn data.buffer;\n}\n\nUPNG.encode.compressPNG = function(out, filter, levelZero) {\n\tfor(var i=0; i<out.frames.length; i++) {\n\t\tvar frm = out.frames[i], nw=frm.rect.width, nh=frm.rect.height;\n\t\tvar fdata = new Uint8Array(nh*frm.bpl+nh);\n\t\tfrm.cimg = UPNG.encode._filterZero(frm.img,nh,frm.bpp,frm.bpl,fdata, filter, levelZero);\n\t}\n}\n\n\n\nUPNG.encode.compress = function(bufs, w, h, ps, prms) // prms:  onlyBlend, minBits, forbidPlte\n{\n\t//var time = Date.now();\n\tvar onlyBlend = prms[0], evenCrd = prms[1], forbidPrev = prms[2], minBits = prms[3], forbidPlte = prms[4];\n\t\n\tvar ctype = 6, depth = 8, alphaAnd=255\n\t\n\tfor(var j=0; j<bufs.length; j++)  {  // when not quantized, other frames can contain colors, that are not in an initial frame\n\t\tvar img = new Uint8Array(bufs[j]), ilen = img.length;\n\t\tfor(var i=0; i<ilen; i+=4) alphaAnd &= img[i+3];\n\t}\n\tvar gotAlpha = (alphaAnd!=255);\n\t\n\t//console.log(\"alpha check\", Date.now()-time);  time = Date.now();\n\t\n\t//var brute = gotAlpha && forGIF;\t\t// brute : frames can only be copied, not \"blended\"\n\tvar frms = UPNG.encode.framize(bufs, w, h, onlyBlend, evenCrd, forbidPrev);\n\t//console.log(\"framize\", Date.now()-time);  time = Date.now();\n\t\n\tvar cmap={}, plte=[], inds=[];  \n\t\n\tif(ps!=0) {\n\t\tvar nbufs = [];  for(var i=0; i<frms.length; i++) nbufs.push(frms[i].img.buffer);\n\t\t\n\t\tvar abuf = UPNG.encode.concatRGBA(nbufs), qres = UPNG.quantize(abuf, ps);  \n\t\tvar cof = 0, bb = new Uint8Array(qres.abuf);\n\t\tfor(var i=0; i<frms.length; i++) {  var ti=frms[i].img, bln=ti.length;  inds.push(new Uint8Array(qres.inds.buffer, cof>>2, bln>>2));\n\t\t\tfor(var j=0; j<bln; j+=4) {  ti[j]=bb[cof+j];  ti[j+1]=bb[cof+j+1];  ti[j+2]=bb[cof+j+2];  ti[j+3]=bb[cof+j+3];  }    cof+=bln;  }\n\t\t\n\t\tfor(var i=0; i<qres.plte.length; i++) plte.push(qres.plte[i].est.rgba);\n\t\t//console.log(\"quantize\", Date.now()-time);  time = Date.now();\n\t}\n\telse {\n\t\t// what if ps==0, but there are <=256 colors?  we still need to detect, if the palette could be used\n\t\tfor(var j=0; j<frms.length; j++)  {  // when not quantized, other frames can contain colors, that are not in an initial frame\n\t\t\tvar frm = frms[j], img32 = new Uint32Array(frm.img.buffer), nw=frm.rect.width, ilen = img32.length;\n\t\t\tvar ind = new Uint8Array(ilen);  inds.push(ind);\n\t\t\tfor(var i=0; i<ilen; i++) {\n\t\t\t\tvar c = img32[i];\n\t\t\t\tif     (i!=0 && c==img32[i- 1]) ind[i]=ind[i-1];\n\t\t\t\telse if(i>nw && c==img32[i-nw]) ind[i]=ind[i-nw];\n\t\t\t\telse {\n\t\t\t\t\tvar cmc = cmap[c];\n\t\t\t\t\tif(cmc==null) {  cmap[c]=cmc=plte.length;  plte.push(c);  if(plte.length>=300) break;  }\n\t\t\t\t\tind[i]=cmc;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t//console.log(\"make palette\", Date.now()-time);  time = Date.now();\n\t}\n\t\n\tvar cc=plte.length; //console.log(\"colors:\",cc);\n\tif(cc<=256 && forbidPlte==false) {\n\t\tif(cc<= 2) depth=1;  else if(cc<= 4) depth=2;  else if(cc<=16) depth=4;  else depth=8;\n\t\tdepth =  Math.max(depth, minBits);\n\t}\n\t\n\tfor(var j=0; j<frms.length; j++)\n\t{\n\t\tvar frm = frms[j], nx=frm.rect.x, ny=frm.rect.y, nw=frm.rect.width, nh=frm.rect.height;\n\t\tvar cimg = frm.img, cimg32 = new Uint32Array(cimg.buffer);\n\t\tvar bpl = 4*nw, bpp=4;\n\t\tif(cc<=256 && forbidPlte==false) {\n\t\t\tbpl = Math.ceil(depth*nw/8);\n\t\t\tvar nimg = new Uint8Array(bpl*nh);\n\t\t\tvar inj = inds[j];\n\t\t\tfor(var y=0; y<nh; y++) {  var i=y*bpl, ii=y*nw;\n\t\t\t\tif     (depth==8) for(var x=0; x<nw; x++) nimg[i+(x)   ]   =  (inj[ii+x]             );\n\t\t\t\telse if(depth==4) for(var x=0; x<nw; x++) nimg[i+(x>>1)]  |=  (inj[ii+x]<<(4-(x&1)*4));\n\t\t\t\telse if(depth==2) for(var x=0; x<nw; x++) nimg[i+(x>>2)]  |=  (inj[ii+x]<<(6-(x&3)*2));\n\t\t\t\telse if(depth==1) for(var x=0; x<nw; x++) nimg[i+(x>>3)]  |=  (inj[ii+x]<<(7-(x&7)*1));\n\t\t\t}\n\t\t\tcimg=nimg;  ctype=3;  bpp=1;\n\t\t}\n\t\telse if(gotAlpha==false && frms.length==1) {\t// some next \"reduced\" frames may contain alpha for blending\n\t\t\tvar nimg = new Uint8Array(nw*nh*3), area=nw*nh;\n\t\t\tfor(var i=0; i<area; i++) { var ti=i*3, qi=i*4;  nimg[ti]=cimg[qi];  nimg[ti+1]=cimg[qi+1];  nimg[ti+2]=cimg[qi+2];  }\n\t\t\tcimg=nimg;  ctype=2;  bpp=3;  bpl=3*nw;\n\t\t}\n\t\tfrm.img=cimg;  frm.bpl=bpl;  frm.bpp=bpp;\n\t}\n\t//console.log(\"colors => palette indices\", Date.now()-time);  time = Date.now();\n\t\n\treturn {ctype:ctype, depth:depth, plte:plte, frames:frms  };\n}\nUPNG.encode.framize = function(bufs,w,h,alwaysBlend,evenCrd,forbidPrev) {\n\t/*  DISPOSE\n\t    - 0 : no change\n\t\t- 1 : clear to transparent\n\t\t- 2 : retstore to content before rendering (previous frame disposed)\n\t\tBLEND\n\t\t- 0 : replace\n\t\t- 1 : blend\n\t*/\n\tvar frms = [];\n\tfor(var j=0; j<bufs.length; j++) {\n\t\tvar cimg = new Uint8Array(bufs[j]), cimg32 = new Uint32Array(cimg.buffer);\n\t\tvar nimg;\n\t\t\n\t\tvar nx=0, ny=0, nw=w, nh=h, blend=alwaysBlend?1:0;\n\t\tif(j!=0) {\n\t\t\tvar tlim = (forbidPrev || alwaysBlend || j==1 || frms[j-2].dispose!=0)?1:2, tstp = 0, tarea = 1e9;\n\t\t\tfor(var it=0; it<tlim; it++)\n\t\t\t{\n\t\t\t\tvar pimg = new Uint8Array(bufs[j-1-it]), p32 = new Uint32Array(bufs[j-1-it]);\n\t\t\t\tvar mix=w,miy=h,max=-1,may=-1;\n\t\t\t\tfor(var y=0; y<h; y++) for(var x=0; x<w; x++) {\n\t\t\t\t\tvar i = y*w+x;\n\t\t\t\t\tif(cimg32[i]!=p32[i]) {\n\t\t\t\t\t\tif(x<mix) mix=x;  if(x>max) max=x;\n\t\t\t\t\t\tif(y<miy) miy=y;  if(y>may) may=y;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(max==-1) mix=miy=max=may=0;\n\t\t\t\tif(evenCrd) {  if((mix&1)==1)mix--;  if((miy&1)==1)miy--;  }\n\t\t\t\tvar sarea = (max-mix+1)*(may-miy+1);\n\t\t\t\tif(sarea<tarea) {\n\t\t\t\t\ttarea = sarea;  tstp = it;\n\t\t\t\t\tnx = mix; ny = miy; nw = max-mix+1; nh = may-miy+1;\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\t// alwaysBlend: pokud zjistím, že blendit nelze, nastavím předchozímu snímku dispose=1. Zajistím, aby obsahoval můj obdélník.\n\t\t\tvar pimg = new Uint8Array(bufs[j-1-tstp]);\n\t\t\tif(tstp==1) frms[j-1].dispose = 2;\n\t\t\t\n\t\t\tnimg = new Uint8Array(nw*nh*4);\n\t\t\tUPNG._copyTile(pimg,w,h, nimg,nw,nh, -nx,-ny, 0);\n\t\t\t\n\t\t\tblend =  UPNG._copyTile(cimg,w,h, nimg,nw,nh, -nx,-ny, 3) ? 1 : 0;\n\t\t\tif(blend==1) UPNG.encode._prepareDiff(cimg,w,h,nimg,{x:nx,y:ny,width:nw,height:nh});\n\t\t\telse         UPNG._copyTile(cimg,w,h, nimg,nw,nh, -nx,-ny, 0);\n\t\t\t//UPNG._copyTile(cimg,w,h, nimg,nw,nh, -nx,-ny, blend==1?2:0);\n\t\t}\n\t\telse nimg = cimg.slice(0);\t// img may be rewritten further ... don't rewrite input\n\t\t\n\t\tfrms.push({rect:{x:nx,y:ny,width:nw,height:nh}, img:nimg, blend:blend, dispose:0});\n\t}\n\t\n\t\n\tif(alwaysBlend) for(var j=0; j<frms.length; j++) {\n\t\tvar frm = frms[j];  if(frm.blend==1) continue;\n\t\tvar r0 = frm.rect, r1 = frms[j-1].rect\n\t\tvar miX = Math.min(r0.x, r1.x), miY = Math.min(r0.y, r1.y);\n\t\tvar maX = Math.max(r0.x+r0.width, r1.x+r1.width), maY = Math.max(r0.y+r0.height, r1.y+r1.height);\n\t\tvar r = {x:miX, y:miY, width:maX-miX, height:maY-miY};\n\t\t\n\t\tfrms[j-1].dispose = 1;\n\t\tif(j-1!=0) \n\t\tUPNG.encode._updateFrame(bufs, w,h,frms, j-1,r, evenCrd);\n\t\tUPNG.encode._updateFrame(bufs, w,h,frms, j  ,r, evenCrd);\n\t}\n\tvar area = 0;\n\tif(bufs.length!=1) for(var i=0; i<frms.length; i++) {\n\t\tvar frm = frms[i];\n\t\tarea += frm.rect.width*frm.rect.height;\n\t\t//if(i==0 || frm.blend!=1) continue;\n\t\t//var ob = new Uint8Array(\n\t\t//console.log(frm.blend, frm.dispose, frm.rect);\n\t}\n\t//if(area!=0) console.log(area);\n\treturn frms;\n}\nUPNG.encode._updateFrame = function(bufs, w,h, frms, i, r, evenCrd) {\n\tvar U8 = Uint8Array, U32 = Uint32Array;\n\tvar pimg = new U8(bufs[i-1]), pimg32 = new U32(bufs[i-1]), nimg = i+1<bufs.length ? new U8(bufs[i+1]):null;\n\tvar cimg = new U8(bufs[i]), cimg32 = new U32(cimg.buffer);\n\t\n\tvar mix=w,miy=h,max=-1,may=-1;\n\tfor(var y=0; y<r.height; y++) for(var x=0; x<r.width; x++) {\n\t\tvar cx = r.x+x, cy = r.y+y;\n\t\tvar j = cy*w+cx, cc = cimg32[j];\n\t\t// no need to draw transparency, or to dispose it. Or, if writing the same color and the next one does not need transparency.\n\t\tif(cc==0 || (frms[i-1].dispose==0 && pimg32[j]==cc && (nimg==null || nimg[j*4+3]!=0))/**/) {}\n\t\telse {\n\t\t\tif(cx<mix) mix=cx;  if(cx>max) max=cx;\n\t\t\tif(cy<miy) miy=cy;  if(cy>may) may=cy;\n\t\t}\n\t}\n\tif(max==-1) mix=miy=max=may=0;\n\tif(evenCrd) {  if((mix&1)==1)mix--;  if((miy&1)==1)miy--;  }\n\tr = {x:mix, y:miy, width:max-mix+1, height:may-miy+1};\n\t\n\tvar fr = frms[i];  fr.rect = r;  fr.blend = 1;  fr.img = new Uint8Array(r.width*r.height*4);\n\tif(frms[i-1].dispose==0) {\n\t\tUPNG._copyTile(pimg,w,h, fr.img,r.width,r.height, -r.x,-r.y, 0);\n\t\tUPNG.encode._prepareDiff(cimg,w,h,fr.img,r);\n\t\t//UPNG._copyTile(cimg,w,h, fr.img,r.width,r.height, -r.x,-r.y, 2);\n\t}\n\telse\n\t\tUPNG._copyTile(cimg,w,h, fr.img,r.width,r.height, -r.x,-r.y, 0);\n}\nUPNG.encode._prepareDiff = function(cimg, w,h, nimg, rec) {\n\tUPNG._copyTile(cimg,w,h, nimg,rec.width,rec.height, -rec.x,-rec.y, 2);\n\t/*\n\tvar n32 = new Uint32Array(nimg.buffer);\n\tvar og = new Uint8Array(rec.width*rec.height*4), o32 = new Uint32Array(og.buffer);\n\tUPNG._copyTile(cimg,w,h, og,rec.width,rec.height, -rec.x,-rec.y, 0);\n\tfor(var i=4; i<nimg.length; i+=4) {\n\t\tif(nimg[i-1]!=0 && nimg[i+3]==0 && o32[i>>>2]==o32[(i>>>2)-1]) {\n\t\t\tn32[i>>>2]=o32[i>>>2];\n\t\t\t//var j = i, c=p32[(i>>>2)-1];\n\t\t\t//while(p32[j>>>2]==c) {  n32[j>>>2]=c;  j+=4;  }\n\t\t}\n\t}\n\tfor(var i=nimg.length-8; i>0; i-=4) {\n\t\tif(nimg[i+7]!=0 && nimg[i+3]==0 && o32[i>>>2]==o32[(i>>>2)+1]) {\n\t\t\tn32[i>>>2]=o32[i>>>2];\n\t\t\t//var j = i, c=p32[(i>>>2)-1];\n\t\t\t//while(p32[j>>>2]==c) {  n32[j>>>2]=c;  j+=4;  }\n\t\t}\n\t}*/\n}\n\nUPNG.encode._filterZero = function(img,h,bpp,bpl,data, filter, levelZero)\n{\n\tvar fls = [], ftry=[0,1,2,3,4];\n\tif     (filter!=-1)             ftry=[filter];\n\telse if(h*bpl>500000 || bpp==1) ftry=[0];\n\tvar opts;  if(levelZero) opts={level:0};\n\t\n\tvar CMPR = (levelZero && UZIP!=null) ? UZIP : pako;\n\t\n\tfor(var i=0; i<ftry.length; i++) {\n\t\tfor(var y=0; y<h; y++) UPNG.encode._filterLine(data, img, y, bpl, bpp, ftry[i]);\n\t\t//var nimg = new Uint8Array(data.length);\n\t\t//var sz = UZIP.F.deflate(data, nimg);  fls.push(nimg.slice(0,sz));\n\t\t//var dfl = pako[\"deflate\"](data), dl=dfl.length-4;\n\t\t//var crc = (dfl[dl+3]<<24)|(dfl[dl+2]<<16)|(dfl[dl+1]<<8)|(dfl[dl+0]<<0);\n\t\t//console.log(crc, UZIP.adler(data,2,data.length-6));\n\t\tfls.push(CMPR[\"deflate\"](data,opts));\n\t}\n\tvar ti, tsize=1e9;\n\tfor(var i=0; i<fls.length; i++) if(fls[i].length<tsize) {  ti=i;  tsize=fls[i].length;  }\n\treturn fls[ti];\n}\nUPNG.encode._filterLine = function(data, img, y, bpl, bpp, type)\n{\n\tvar i = y*bpl, di = i+y, paeth = UPNG.decode._paeth\n\tdata[di]=type;  di++;\n\n\tif(type==0) {\n\t\tif(bpl<500) for(var x=0; x<bpl; x++) data[di+x] = img[i+x];\n\t\telse data.set(new Uint8Array(img.buffer,i,bpl),di);\n\t}\n\telse if(type==1) {\n\t\tfor(var x=  0; x<bpp; x++) data[di+x] =  img[i+x];\n\t\tfor(var x=bpp; x<bpl; x++) data[di+x] = (img[i+x]-img[i+x-bpp]+256)&255;\n\t}\n\telse if(y==0) {\n\t\tfor(var x=  0; x<bpp; x++) data[di+x] = img[i+x];\n\n\t\tif(type==2) for(var x=bpp; x<bpl; x++) data[di+x] = img[i+x];\n\t\tif(type==3) for(var x=bpp; x<bpl; x++) data[di+x] = (img[i+x] - (img[i+x-bpp]>>1) +256)&255;\n\t\tif(type==4) for(var x=bpp; x<bpl; x++) data[di+x] = (img[i+x] - paeth(img[i+x-bpp], 0, 0) +256)&255;\n\t}\n\telse {\n\t\tif(type==2) { for(var x=  0; x<bpl; x++) data[di+x] = (img[i+x]+256 - img[i+x-bpl])&255;  }\n\t\tif(type==3) { for(var x=  0; x<bpp; x++) data[di+x] = (img[i+x]+256 - (img[i+x-bpl]>>1))&255;\n\t\t\t\t\t  for(var x=bpp; x<bpl; x++) data[di+x] = (img[i+x]+256 - ((img[i+x-bpl]+img[i+x-bpp])>>1))&255;  }\n\t\tif(type==4) { for(var x=  0; x<bpp; x++) data[di+x] = (img[i+x]+256 - paeth(0, img[i+x-bpl], 0))&255;\n\t\t\t\t\t  for(var x=bpp; x<bpl; x++) data[di+x] = (img[i+x]+256 - paeth(img[i+x-bpp], img[i+x-bpl], img[i+x-bpp-bpl]))&255;  }\n\t}\n}\n\nUPNG.crc = {\n\ttable : ( function() {\n\t   var tab = new Uint32Array(256);\n\t   for (var n=0; n<256; n++) {\n\t\t\tvar c = n;\n\t\t\tfor (var k=0; k<8; k++) {\n\t\t\t\tif (c & 1)  c = 0xedb88320 ^ (c >>> 1);\n\t\t\t\telse        c = c >>> 1;\n\t\t\t}\n\t\t\ttab[n] = c;  }\n\t\treturn tab;  })(),\n\tupdate : function(c, buf, off, len) {\n\t\tfor (var i=0; i<len; i++)  c = UPNG.crc.table[(c ^ buf[off+i]) & 0xff] ^ (c >>> 8);\n\t\treturn c;\n\t},\n\tcrc : function(b,o,l)  {  return UPNG.crc.update(0xffffffff,b,o,l) ^ 0xffffffff;  }\n}\n\n\nUPNG.quantize = function(abuf, ps)\n{\t\n\tvar oimg = new Uint8Array(abuf), nimg = oimg.slice(0), nimg32 = new Uint32Array(nimg.buffer);\n\t\n\tvar KD = UPNG.quantize.getKDtree(nimg, ps);\n\tvar root = KD[0], leafs = KD[1];\n\t\n\tvar planeDst = UPNG.quantize.planeDst;\n\tvar sb = oimg, tb = nimg32, len=sb.length;\n\t\t\n\tvar inds = new Uint8Array(oimg.length>>2);\n\tfor(var i=0; i<len; i+=4) {\n\t\tvar r=sb[i]*(1/255), g=sb[i+1]*(1/255), b=sb[i+2]*(1/255), a=sb[i+3]*(1/255);\n\t\t\n\t\t//  exact, but too slow :(\n\t\tvar nd = UPNG.quantize.getNearest(root, r, g, b, a);\n\t\t//var nd = root;\n\t\t//while(nd.left) nd = (planeDst(nd.est,r,g,b,a)<=0) ? nd.left : nd.right;\n\t\t\n\t\tinds[i>>2] = nd.ind;\n\t\ttb[i>>2] = nd.est.rgba;\n\t}\n\treturn {  abuf:nimg.buffer, inds:inds, plte:leafs  };\n}\n\nUPNG.quantize.getKDtree = function(nimg, ps, err) {\n\tif(err==null) err = 0.0001;\n\tvar nimg32 = new Uint32Array(nimg.buffer);\n\t\n\tvar root = {i0:0, i1:nimg.length, bst:null, est:null, tdst:0, left:null, right:null };  // basic statistic, extra statistic\n\troot.bst = UPNG.quantize.stats(  nimg,root.i0, root.i1  );  root.est = UPNG.quantize.estats( root.bst );\n\tvar leafs = [root];\n\t\n\twhile(leafs.length<ps)\n\t{\n\t\tvar maxL = 0, mi=0;\n\t\tfor(var i=0; i<leafs.length; i++) if(leafs[i].est.L > maxL) {  maxL=leafs[i].est.L;  mi=i;  }\n\t\tif(maxL<err) break;\n\t\tvar node = leafs[mi];\n\t\t\n\t\tvar s0 = UPNG.quantize.splitPixels(nimg,nimg32, node.i0, node.i1, node.est.e, node.est.eMq255);\n\t\tvar s0wrong = (node.i0>=s0 || node.i1<=s0);\n\t\t//console.log(maxL, leafs.length, mi);\n\t\tif(s0wrong) {  node.est.L=0;  continue;  }\n\t\t\n\t\t\n\t\tvar ln = {i0:node.i0, i1:s0, bst:null, est:null, tdst:0, left:null, right:null };  ln.bst = UPNG.quantize.stats( nimg, ln.i0, ln.i1 );  \n\t\tln.est = UPNG.quantize.estats( ln.bst );\n\t\tvar rn = {i0:s0, i1:node.i1, bst:null, est:null, tdst:0, left:null, right:null };  rn.bst = {R:[], m:[], N:node.bst.N-ln.bst.N};\n\t\tfor(var i=0; i<16; i++) rn.bst.R[i] = node.bst.R[i]-ln.bst.R[i];\n\t\tfor(var i=0; i< 4; i++) rn.bst.m[i] = node.bst.m[i]-ln.bst.m[i];\n\t\trn.est = UPNG.quantize.estats( rn.bst );\n\t\t\n\t\tnode.left = ln;  node.right = rn;\n\t\tleafs[mi]=ln;  leafs.push(rn);\n\t}\n\tleafs.sort(function(a,b) {  return b.bst.N-a.bst.N;  });\n\tfor(var i=0; i<leafs.length; i++) leafs[i].ind=i;\n\treturn [root, leafs];\n}\n\nUPNG.quantize.getNearest = function(nd, r,g,b,a)\n{\n\tif(nd.left==null) {  nd.tdst = UPNG.quantize.dist(nd.est.q,r,g,b,a);  return nd;  }\n\tvar planeDst = UPNG.quantize.planeDst(nd.est,r,g,b,a);\n\t\n\tvar node0 = nd.left, node1 = nd.right;\n\tif(planeDst>0) {  node0=nd.right;  node1=nd.left;  }\n\t\n\tvar ln = UPNG.quantize.getNearest(node0, r,g,b,a);\n\tif(ln.tdst<=planeDst*planeDst) return ln;\n\tvar rn = UPNG.quantize.getNearest(node1, r,g,b,a);\n\treturn rn.tdst<ln.tdst ? rn : ln;\n}\nUPNG.quantize.planeDst = function(est, r,g,b,a) {  var e = est.e;  return e[0]*r + e[1]*g + e[2]*b + e[3]*a - est.eMq;  }\nUPNG.quantize.dist     = function(q,   r,g,b,a) {  var d0=r-q[0], d1=g-q[1], d2=b-q[2], d3=a-q[3];  return d0*d0+d1*d1+d2*d2+d3*d3;  }\n\nUPNG.quantize.splitPixels = function(nimg, nimg32, i0, i1, e, eMq)\n{\n\tvar vecDot = UPNG.quantize.vecDot;\n\ti1-=4;\n\tvar shfs = 0;\n\twhile(i0<i1)\n\t{\n\t\twhile(vecDot(nimg, i0, e)<=eMq) i0+=4;\n\t\twhile(vecDot(nimg, i1, e)> eMq) i1-=4;\n\t\tif(i0>=i1) break;\n\t\t\n\t\tvar t = nimg32[i0>>2];  nimg32[i0>>2] = nimg32[i1>>2];  nimg32[i1>>2]=t;\n\t\t\n\t\ti0+=4;  i1-=4;\n\t}\n\twhile(vecDot(nimg, i0, e)>eMq) i0-=4;\n\treturn i0+4;\n}\nUPNG.quantize.vecDot = function(nimg, i, e)\n{\n\treturn nimg[i]*e[0] + nimg[i+1]*e[1] + nimg[i+2]*e[2] + nimg[i+3]*e[3];\n}\nUPNG.quantize.stats = function(nimg, i0, i1){\n\tvar R = [0,0,0,0,  0,0,0,0,  0,0,0,0,  0,0,0,0];\n\tvar m = [0,0,0,0];\n\tvar N = (i1-i0)>>2;\n\tfor(var i=i0; i<i1; i+=4)\n\t{\n\t\tvar r = nimg[i]*(1/255), g = nimg[i+1]*(1/255), b = nimg[i+2]*(1/255), a = nimg[i+3]*(1/255);\n\t\t//var r = nimg[i], g = nimg[i+1], b = nimg[i+2], a = nimg[i+3];\n\t\tm[0]+=r;  m[1]+=g;  m[2]+=b;  m[3]+=a;\n\t\t\n\t\tR[ 0] += r*r;  R[ 1] += r*g;  R[ 2] += r*b;  R[ 3] += r*a;  \n\t\t               R[ 5] += g*g;  R[ 6] += g*b;  R[ 7] += g*a; \n\t\t                              R[10] += b*b;  R[11] += b*a;  \n\t\t                                             R[15] += a*a;  \n\t}\n\tR[4]=R[1];  R[8]=R[2];  R[9]=R[6];  R[12]=R[3];  R[13]=R[7];  R[14]=R[11];\n\t\n\treturn {R:R, m:m, N:N};\n}\nUPNG.quantize.estats = function(stats){\n\tvar R = stats.R, m = stats.m, N = stats.N;\n\t\n\t// when all samples are equal, but N is large (millions), the Rj can be non-zero ( 0.0003.... - precission error)\n\tvar m0 = m[0], m1 = m[1], m2 = m[2], m3 = m[3], iN = (N==0 ? 0 : 1/N);\n\tvar Rj = [\n\t\tR[ 0] - m0*m0*iN,  R[ 1] - m0*m1*iN,  R[ 2] - m0*m2*iN,  R[ 3] - m0*m3*iN,  \n\t\tR[ 4] - m1*m0*iN,  R[ 5] - m1*m1*iN,  R[ 6] - m1*m2*iN,  R[ 7] - m1*m3*iN,\n\t\tR[ 8] - m2*m0*iN,  R[ 9] - m2*m1*iN,  R[10] - m2*m2*iN,  R[11] - m2*m3*iN,  \n\t\tR[12] - m3*m0*iN,  R[13] - m3*m1*iN,  R[14] - m3*m2*iN,  R[15] - m3*m3*iN \n\t];\n\t\n\tvar A = Rj, M = UPNG.M4;\n\tvar b = [0.5,0.5,0.5,0.5], mi = 0, tmi = 0;\n\t\n\tif(N!=0)\n\tfor(var i=0; i<10; i++) {\n\t\tb = M.multVec(A, b);  tmi = Math.sqrt(M.dot(b,b));  b = M.sml(1/tmi,  b);\n\t\tif(Math.abs(tmi-mi)<1e-9) break;  mi = tmi;\n\t}\t\n\t//b = [0,0,1,0];  mi=N;\n\tvar q = [m0*iN, m1*iN, m2*iN, m3*iN];\n\tvar eMq255 = M.dot(M.sml(255,q),b);\n\t\n\treturn {  Cov:Rj, q:q, e:b, L:mi,  eMq255:eMq255, eMq : M.dot(b,q),\n\t\t\t\trgba: (((Math.round(255*q[3])<<24) | (Math.round(255*q[2])<<16) |  (Math.round(255*q[1])<<8) | (Math.round(255*q[0])<<0))>>>0)  };\n}\nUPNG.M4 = {\n\tmultVec : function(m,v) {\n\t\t\treturn [\n\t\t\t\tm[ 0]*v[0] + m[ 1]*v[1] + m[ 2]*v[2] + m[ 3]*v[3],\n\t\t\t\tm[ 4]*v[0] + m[ 5]*v[1] + m[ 6]*v[2] + m[ 7]*v[3],\n\t\t\t\tm[ 8]*v[0] + m[ 9]*v[1] + m[10]*v[2] + m[11]*v[3],\n\t\t\t\tm[12]*v[0] + m[13]*v[1] + m[14]*v[2] + m[15]*v[3]\n\t\t\t];\n\t},\n\tdot : function(x,y) {  return  x[0]*y[0]+x[1]*y[1]+x[2]*y[2]+x[3]*y[3];  },\n\tsml : function(a,y) {  return [a*y[0],a*y[1],a*y[2],a*y[3]];  }\n}\n\nUPNG.encode.concatRGBA = function(bufs) {\n\tvar tlen = 0;\n\tfor(var i=0; i<bufs.length; i++) tlen += bufs[i].byteLength;\n\tvar nimg = new Uint8Array(tlen), noff=0;\n\tfor(var i=0; i<bufs.length; i++) {\n\t\tvar img = new Uint8Array(bufs[i]), il = img.length;\n\t\tfor(var j=0; j<il; j+=4) {  \n\t\t\tvar r=img[j], g=img[j+1], b=img[j+2], a = img[j+3];\n\t\t\tif(a==0) r=g=b=0;\n\t\t\tnimg[noff+j]=r;  nimg[noff+j+1]=g;  nimg[noff+j+2]=b;  nimg[noff+j+3]=a;  }\n\t\tnoff += il;\n\t}\n\treturn nimg.buffer;\n}\n\nexport default UPNG;\n\n"],"names":["N","W","H","UPNG","toRGBA8","out","w","width","h","height","tabs","acTL","decodeImage","data","buffer","frms","frames","len","img","Uint8Array","empty","prev","i","length","frm","fx","rect","x","fy","y","fw","fh","fdata","j","blend","_copyTile","push","slice","dispose","area","bpp","decode","_getBPP","bpl","Math","ceil","bf","bf32","Uint32Array","ctype","depth","rs","_bin","readUshort","Date","now","qarea","ts","ti","tr","tg","tb","qi","p","ap","tl","s0","t0","cj","gr","di","off","to","al","buff","fd","offset","bin","rUs","rUi","readUint","dd","doff","foff","mgck","type","readASCII","_IHDR","num_frames","num_plays","fr","_decompress","rct","del","delay","round","nz","nextZero","keyw","text","readUTF8","readBytes","pl","compress","interlace","filter","_inflate","_filterZero","_readInterlace","inflateRaw","v","C","R","m","J","Q","X","u","d","V","n","b","A","e","l","M","I","Z","c","K","r","S","D","T","z","_","q","$","s","Y","a","set","byteOffset","Uint16Array","t","k","g","cbpp","starting_row","starting_col","row_increment","col_increment","pass","ri","ci","sw","sh","cr","cc","bpll","row","col","cdi","val","ii","paeth","_paeth","pa","pb","pc","writeUshort","writeUint","String","fromCharCode","writeASCII","charCodeAt","arr","pad","ns","toString","decodeURIComponent","sb","tw","th","xoff","yoff","mode","min","si","fa","fg","fb","ba","br","bg","bb","ifa","oa","ioa","encode","bufs","ps","dels","forbidPlte","nimg","compressPNG","_main","encodeLL","ac","bipp","bipl","crc","wUi","wUs","wAs","anim","pltAlpha","leng","dl","plte","cimg","wr","fi","imgd","ioff","levelZero","nh","prms","onlyBlend","evenCrd","forbidPrev","minBits","alphaAnd","ilen","gotAlpha","framize","cmap","inds","nbufs","abuf","concatRGBA","qres","quantize","cof","bln","est","rgba","img32","nw","ind","cmc","max","inj","alwaysBlend","cimg32","nx","ny","tlim","tstp","tarea","it","pimg","p32","mix","miy","may","sarea","_prepareDiff","r0","r1","miX","miY","_updateFrame","U8","U32","pimg32","cx","cy","rec","opts","fls","ftry","level","CMPR","UZIP","pako","_filterLine","tsize","table","tab","update","buf","o","oimg","nimg32","KD","getKDtree","root","leafs","planeDst","nd","getNearest","err","i0","i1","bst","tdst","left","right","stats","estats","maxL","mi","L","node","splitPixels","eMq255","ln","rn","sort","dist","node0","node1","eMq","d0","d1","d2","d3","vecDot","m0","m1","m2","m3","iN","Rj","M4","tmi","multVec","sqrt","dot","sml","abs","Cov","tlen","byteLength","noff","il"],"sourceRoot":""}