snappymail/vendors/qr.js/qr.min.js
2021-02-02 14:10:48 +01:00

5 lines
9.2 KiB
JavaScript

/*! qr-js v1.1.4 | (c) 2015 Alasdair Mercer | GPL v3 License
jsqrencode | (c) 2010 tz@execpc.com | GPL v3 License
*/
(r=>{var f,o,e,a,t,l,i=[0,11,15,19,23,27,31,16,18,20,22,24,26,28,20,22,24,24,26,28,28,22,24,24,26,26,28,28,24,24,26,26,26,28,28,24,26,26,26,28,28],c=[1,0,19,7,1,0,16,10,1,0,13,13,1,0,9,17,1,0,34,10,1,0,28,16,1,0,22,22,1,0,16,28,1,0,55,15,1,0,44,26,2,0,17,18,2,0,13,22,1,0,80,20,2,0,32,18,2,0,24,26,4,0,9,16,1,0,108,26,2,0,43,24,2,2,15,18,2,2,11,22,2,0,68,18,4,0,27,16,4,0,19,24,4,0,15,28,2,0,78,20,4,0,31,18,2,4,14,18,4,1,13,26,2,0,97,24,2,2,38,22,4,2,18,22,4,2,14,26,2,0,116,30,3,2,36,22,4,4,16,20,4,4,12,24,2,2,68,18,4,1,43,26,6,2,19,24,6,2,15,28,4,0,81,20,1,4,50,30,4,4,22,28,3,8,12,24,2,2,92,24,6,2,36,22,4,6,20,26,7,4,14,28,4,0,107,26,8,1,37,22,8,4,20,24,12,4,11,22,3,1,115,30,4,5,40,24,11,5,16,20,11,5,12,24,5,1,87,22,5,5,41,24,5,7,24,30,11,7,12,24,5,1,98,24,7,3,45,28,15,2,19,24,3,13,15,30,1,5,107,28,10,1,46,28,1,15,22,28,2,17,14,28,5,1,120,30,9,4,43,26,17,1,22,28,2,19,14,28,3,4,113,28,3,11,44,26,17,4,21,26,9,16,13,26,3,5,107,28,3,13,41,26,15,5,24,30,15,10,15,28,4,4,116,28,17,0,42,26,17,6,22,28,19,6,16,30,2,7,111,28,17,0,46,28,7,16,24,30,34,0,13,24,4,5,121,30,4,14,47,28,11,14,24,30,16,14,15,30,6,4,117,30,6,14,45,28,11,16,24,30,30,2,16,30,8,4,106,26,8,13,47,28,7,22,24,30,22,13,15,30,10,2,114,28,19,4,46,28,28,6,22,28,33,4,16,30,8,4,122,30,22,3,45,28,8,26,23,30,12,28,15,30,3,10,117,30,3,23,45,28,4,31,24,30,11,31,15,30,7,7,116,30,21,7,45,28,1,37,23,30,19,26,15,30,5,10,115,30,19,10,47,28,15,25,24,30,23,25,15,30,13,3,115,30,2,29,46,28,42,1,24,30,23,28,15,30,17,0,115,30,10,23,46,28,10,35,24,30,19,35,15,30,17,1,115,30,14,21,46,28,29,19,24,30,11,46,15,30,13,6,115,30,14,23,46,28,44,7,24,30,59,1,16,30,12,7,121,30,12,26,47,28,39,14,24,30,22,41,15,30,6,14,121,30,6,34,47,28,46,10,24,30,2,64,15,30,17,4,122,30,29,14,46,28,49,10,24,30,24,46,15,30,4,18,122,30,13,32,46,28,48,14,24,30,42,32,15,30,20,4,117,30,40,7,47,28,43,22,24,30,10,67,15,30,19,6,118,30,18,31,47,28,34,34,24,30,20,61,15,30],s={L:1,M:2,Q:3,H:4},n=[30660,29427,32170,30877,26159,25368,27713,26998,21522,20773,24188,23371,17913,16590,20375,19104,13663,12392,16177,14854,9396,8579,11994,11245,5769,5054,7399,6608,1890,597,3340,2107],v=[1,2,4,8,16,32,64,128,29,58,116,232,205,135,19,38,76,152,45,90,180,117,234,201,143,3,6,12,24,48,96,192,157,39,78,156,37,74,148,53,106,212,181,119,238,193,159,35,70,140,5,10,20,40,80,160,93,186,105,210,185,111,222,161,95,190,97,194,153,47,94,188,101,202,137,15,30,60,120,240,253,231,211,187,107,214,177,127,254,225,223,163,91,182,113,226,217,175,67,134,17,34,68,136,13,26,52,104,208,189,103,206,129,31,62,124,248,237,199,147,59,118,236,197,151,51,102,204,133,23,46,92,184,109,218,169,79,158,33,66,132,21,42,84,168,77,154,41,82,164,85,170,73,146,57,114,228,213,183,115,230,209,191,99,198,145,63,126,252,229,215,179,123,246,241,255,227,219,171,75,150,49,98,196,149,55,110,220,165,87,174,65,130,25,50,100,200,141,7,14,28,56,112,224,221,167,83,166,81,162,89,178,121,242,249,239,195,155,43,86,172,69,138,9,18,36,72,144,61,122,244,245,247,243,251,235,203,139,11,22,44,88,176,125,250,233,207,131,27,54,108,216,173,71,142,0],h=[255,0,1,25,2,50,26,198,3,223,51,238,27,104,199,75,4,100,224,14,52,141,239,129,28,193,105,248,200,8,76,113,5,138,101,47,225,36,15,33,53,147,142,218,240,18,130,69,29,181,194,125,106,39,249,185,201,154,9,120,77,228,114,166,6,191,139,98,102,221,48,253,226,152,37,179,16,145,34,136,54,208,148,206,143,150,219,189,241,210,19,92,131,56,70,64,30,66,182,163,195,72,126,110,107,58,40,84,250,133,186,61,202,94,155,159,10,21,121,43,78,212,229,172,115,243,167,87,7,112,192,247,140,128,99,13,103,74,222,237,49,197,254,24,227,165,153,119,38,184,180,124,17,68,146,217,35,32,137,46,55,63,209,91,149,188,207,205,144,135,151,178,220,252,190,97,242,86,211,171,20,42,93,158,132,60,57,83,71,109,65,162,31,45,67,216,183,123,164,118,196,23,73,236,127,12,111,246,108,161,59,82,41,157,85,170,251,96,134,177,187,204,62,90,203,89,95,176,156,169,160,81,11,245,22,235,122,117,44,215,79,174,213,233,230,231,173,232,116,214,244,234,168,80,88,175],u=[3220,1468,2713,1235,3062,1890,2119,1549,2344,2936,1117,2583,1330,2470,1667,2249,2028,3780,481,4011,142,3098,831,3445,592,2517,1776,2234,1951,2827,1070,2660,1345,3177],b=[],k=[],d=1,g=[],R=[],p=[],w=[];const y=(r,f)=>{var o;r>f&&(o=r,r=f,f=o),o=f,o*=f,o+=f,o>>=1,R[o+=r]=1},L=(r,f)=>{var o;for(g[r+l*f]=1,o=-2;o<2;o++)g[r+o+l*(f-2)]=1,g[r-2+l*(f+o+1)]=1,g[r+2+l*(f+o)]=1,g[r+o+1+l*(f+2)]=1;for(o=0;o<2;o++)y(r-1,f+o),y(r+1,f-o),y(r-o,f-1),y(r+o,f+1)},S=r=>{for(;r>=255;)r=((r-=255)>>8)+(255&r);return r},m=(r,f,o,e)=>{var a,t,l;for(t=0;t<e;t++)w[o+t]=0;for(t=0;t<f;t++){if(255!==(a=h[w[r+t]^w[o]]))for(l=1;l<e;l++)w[o+l-1]=w[o+l]^v[S(a+p[e-l])];else for(l=o;l<o+e;l++)w[l]=w[l+1];w[o+e-1]=255===a?0:v[S(a+p[0])]}},z=(r,f)=>{var o;return r>f&&(o=r,r=f,f=o),o=f,o+=f*f,o>>=1,1===R[o+=r]},C=r=>{var f,o,e,a;switch(r){case 0:for(o=0;o<l;o++)for(f=0;f<l;f++)f+o&1||z(f,o)||(g[f+o*l]^=1);break;case 1:for(o=0;o<l;o++)for(f=0;f<l;f++)1&o||z(f,o)||(g[f+o*l]^=1);break;case 2:for(o=0;o<l;o++)for(e=0,f=0;f<l;f++,e++)3===e&&(e=0),e||z(f,o)||(g[f+o*l]^=1);break;case 3:for(a=0,o=0;o<l;o++,a++)for(3===a&&(a=0),e=a,f=0;f<l;f++,e++)3===e&&(e=0),e||z(f,o)||(g[f+o*l]^=1);break;case 4:for(o=0;o<l;o++)for(e=0,a=o>>1&1,f=0;f<l;f++,e++)3===e&&(e=0,a=!a),a||z(f,o)||(g[f+o*l]^=1);break;case 5:for(a=0,o=0;o<l;o++,a++)for(3===a&&(a=0),e=0,f=0;f<l;f++,e++)3===e&&(e=0),(f&o&1)+!(!e|!a)||z(f,o)||(g[f+o*l]^=1);break;case 6:for(a=0,o=0;o<l;o++,a++)for(3===a&&(a=0),e=0,f=0;f<l;f++,e++)3===e&&(e=0),(f&o&1)+(e&&e===a)&1||z(f,o)||(g[f+o*l]^=1);break;case 7:for(a=0,o=0;o<l;o++,a++)for(3===a&&(a=0),e=0,f=0;f<l;f++,e++)3===e&&(e=0),(e&&e===a)+(f+o&1)&1||z(f,o)||(g[f+o*l]^=1)}},M=r=>{var f,o=0;for(f=0;f<=r;f++)b[f]>=5&&(o+=3+b[f]-5);for(f=3;f<r-1;f+=2)b[f-2]===b[f+2]&&b[f+2]===b[f-1]&&b[f-1]===b[f+1]&&3*b[f-1]===b[f]&&(0===b[f-3]||f+3>r||3*b[f-3]>=4*b[f]||3*b[f+3]>=4*b[f])&&(o+=40);return o},U=()=>{var r,f,o,e,a,t,i,c,s;for(o=a=t=0,s=0;s<l-1;s++)for(c=0;c<l-1;c++)(g[c+l*s]&&g[c+1+l*s]&&g[c+l*(s+1)]&&g[c+1+l*(s+1)]||!(g[c+l*s]||g[c+1+l*s]||g[c+l*(s+1)]||g[c+1+l*(s+1)]))&&(o+=3);for(s=0;s<l;s++){for(b[0]=0,i=r=c=0;c<l;c++)(f=g[c+l*s])===r?b[i]++:b[++i]=1,a+=(r=f)?1:-1;o+=M(i)}for(a<0&&(a=-a),e=a,e+=e<<2,e<<=1;e>l*l;)e-=l*l,t++;for(o+=10*t,c=0;c<l;c++){for(b[0]=0,i=r=s=0;s<l;s++)(f=g[c+l*s])===r?b[i]++:b[++i]=1,r=f;o+=M(i)}return o};r.qr={VERSION:"1.1.4",toDataURL:r=>{var b=(r=(r=>("string"==typeof r&&(r={value:r}),r||{}))(r)).size>=1&&r.size<=10?r.size:4;b*=25;var M=document.createElement("canvas"),D=M.getContext("2d");D.canvas.width=b,D.canvas.height=b,D.fillStyle=r.background||"#fff",D.fillRect(0,0,b,b),d=s[r.level&&r.level.toUpperCase()||"L"];var E=(r=>{var s,b,M,D,E,q,x,A;E=r.length,t=0;do{if(M=4*(d-1)+16*(++t-1),e=c[M++],a=c[M++],f=c[M++],o=c[M],E<=(M=f*(e+a)+a-3+(t<=9)))break}while(t<40);for(l=17+4*t,q=f+(f+o)*(e+a)+a,E=0;E<q;E++)k[E]=0;for(w=r.slice(0),E=0;E<l*l;E++)g[E]=0;for(E=0;E<(l*(l+1)+1)/2;E++)R[E]=0;for(E=0;E<3;E++){for(M=A=0,1===E&&(M=l-7),2===E&&(A=l-7),g[A+3+l*(M+3)]=1,x=0;x<6;x++)g[A+x+l*M]=1,g[A+l*(M+x+1)]=1,g[A+6+l*(M+x)]=1,g[A+x+1+l*(M+6)]=1;for(x=1;x<5;x++)y(A+x,M+1),y(A+1,M+x+1),y(A+5,M+x),y(A+x+1,M+5);for(x=2;x<4;x++)g[A+x+l*(M+2)]=1,g[A+2+l*(M+x+1)]=1,g[A+4+l*(M+x)]=1,g[A+x+1+l*(M+4)]=1}if(t>1)for(E=i[t],A=l-7;;){for(x=l-7;x>E-3&&(L(x,A),!(x<E));)x-=E;if(A<=E+9)break;L(6,A-=E),L(A,6)}for(g[8+l*(l-8)]=1,A=0;A<7;A++)y(7,A),y(l-8,A),y(7,A+l-7);for(x=0;x<8;x++)y(x,7),y(x+l-8,7),y(x,l-8);for(x=0;x<9;x++)y(x,8);for(x=0;x<8;x++)y(x+l-8,8),y(8,x);for(A=0;A<7;A++)y(8,A+l-7);for(x=0;x<l-14;x++)1&x?(y(8+x,6),y(6,8+x)):(g[8+x+6*l]=1,g[6+l*(8+x)]=1);if(t>6)for(E=u[t-7],M=17,x=0;x<6;x++)for(A=0;A<3;A++,M--)1&(M>11?t>>M-12:E>>M)?(g[5-x+l*(2-A+l-11)]=1,g[2-A+l-11+l*(5-x)]=1):(y(5-x,2-A+l-11),y(2-A+l-11,5-x));for(A=0;A<l;A++)for(x=0;x<=A;x++)g[x+l*A]&&y(x,A);for(q=w.length,s=0;s<q;s++)k[s]=w.charCodeAt(s);if(w=k.slice(0),q>=(x=f*(e+a)+a)-2&&(q=x-2,t>9&&q--),s=q,t>9){for(w[s+2]=0,w[s+3]=0;s--;)E=w[s],w[s+3]|=255&E<<4,w[s+2]=E>>4;w[2]|=255&q<<4,w[1]=q>>4,w[0]=64|q>>12}else{for(w[s+1]=0,w[s+2]=0;s--;)E=w[s],w[s+2]|=255&E<<4,w[s+1]=E>>4;w[1]|=255&q<<4,w[0]=64|q>>4}for(s=q+3-(t<10);s<x;)w[s++]=236,w[s++]=17;for(p[0]=1,s=0;s<o;s++){for(p[s+1]=1,b=s;b>0;b--)p[b]=p[b]?p[b-1]^v[S(h[p[b]]+s)]:p[b-1];p[0]=v[S(h[p[0]]+s)]}for(s=0;s<=o;s++)p[s]=h[p[s]];for(M=x,A=0,s=0;s<e;s++)m(A,f,M,o),A+=f,M+=o;for(s=0;s<a;s++)m(A,f+1,M,o),A+=f+1,M+=o;for(A=0,s=0;s<f;s++){for(b=0;b<e;b++)k[A++]=w[s+b*f];for(b=0;b<a;b++)k[A++]=w[e*f+s+b*(f+1)]}for(b=0;b<a;b++)k[A++]=w[e*f+s+b*(f+1)];for(s=0;s<o;s++)for(b=0;b<e+a;b++)k[A++]=w[x+s+b*o];for(w=k,x=A=l-1,M=q=1,D=(f+o)*(e+a)+a,s=0;s<D;s++)for(E=w[s],b=0;b<8;b++,E<<=1){128&E&&(g[x+l*A]=1);do{q?x--:(x++,M?0!==A?A--:(M=!M,6==(x-=2)&&(x--,A=9)):A!==l-1?A++:(M=!M,6==(x-=2)&&(x--,A-=8))),q=!q}while(z(x,A))}for(w=g.slice(0),E=0,A=3e4,M=0;M<8&&(C(M),(x=U())<A&&(A=x,E=M),7!==E);M++)g=w.slice(0);for(E!==M&&C(E),A=n[E+(d-1<<3)],M=0;M<8;M++,A>>=1)1&A&&(g[l-1-M+8*l]=1,M<6?g[8+l*M]=1:g[8+l*(M+1)]=1);for(M=0;M<7;M++,A>>=1)1&A&&(g[8+l*(l-7+M)]=1,M?g[6-M+8*l]=1:g[7+8*l]=1);return g})(r.value||"");D.lineWidth=1;var q=b;q/=l,q=Math.floor(q);var x,A,H=Math.floor((b-q*l)/2);for(D.clearRect(0,0,b,b),D.fillStyle=r.background||"#fff",D.fillRect(0,0,b,b),D.fillStyle=r.foreground||"#000",x=0;x<l;x++)for(A=0;A<l;A++)E[A*l+x]&&D.fillRect(q*x+H,q*A+H,q,q);return M.toDataURL("image/png")}}})(this);