Issues (615)

build/jsPDF.min.js (92 issues)

1
var jsPDF=function(a){"use strict";function b(d,e,f,g){var h={};"object"==typeof d&&(h=d,d=h.orientation,e=h.unit||e,f=h.format||f,g=h.compress||h.compressPdf||g),d="undefined"==typeof d?"p":d.toString().toLowerCase(),"undefined"==typeof e&&(e="mm"),"undefined"==typeof f&&(f="a4"),"undefined"==typeof g&&"undefined"==typeof zpipe&&(g=!1);var i,j,k,l,m,n,o,p,q,r=f.toString().toLowerCase(),s=[],t=0,u=g,v="1.3",w={a0:[2383.94,3370.39],a1:[1683.78,2383.94],a2:[1190.55,1683.78],a3:[841.89,1190.55],a4:[595.28,841.89],a5:[419.53,595.28],a6:[297.64,419.53],a7:[209.76,297.64],a8:[147.4,209.76],a9:[104.88,147.4],a10:[73.7,104.88],b0:[2834.65,4008.19],b1:[2004.09,2834.65],b2:[1417.32,2004.09],b3:[1000.63,1417.32],b4:[708.66,1000.63],b5:[498.9,708.66],b6:[354.33,498.9],b7:[249.45,354.33],b8:[175.75,249.45],b9:[124.72,175.75],b10:[87.87,124.72],c0:[2599.37,3676.54],c1:[1836.85,2599.37],c2:[1298.27,1836.85],c3:[918.43,1298.27],c4:[649.13,918.43],c5:[459.21,649.13],c6:[323.15,459.21],c7:[229.61,323.15],c8:[161.57,229.61],c9:[113.39,161.57],c10:[79.37,113.39],letter:[612,792],"government-letter":[576,756],legal:[612,1008],"junior-legal":[576,360],ledger:[1224,792],tabloid:[792,1224]},x=h.textColor||"0 g",y=h.drawColor||"0 G",z=0,A=[],B=2,C=!!h.outToPages,D=[],E={},F={},G=h.fontSize||16,H=h.lineWidth||.200025,I=h.lineHeight||1.15,J={title:"",subject:"",author:"",keywords:"",creator:""},K=0,L=0,M={},N=new PubSub(M),O=function(a){return a.toFixed(2)},P=function(a){return a.toFixed(3)},Q=function(a){var b=a.toFixed(0);return a<10?"0"+b:b},R=function(a){var b=a.toFixed(0);return b.length<10?new Array(11-b.length).join("0")+b:b},S=function(a){C?A[z].push(a):(s.push(a),t+=a.length+1)},T=function(){return B++,D[B]=t,S(B+" 0 obj"),B},U=function(a){S("stream"),S(a),S("endstream")},V=function(){o=k*l,p=j*l;var a,b,c,d,e,f;for(a=1;a<=z;a++){if(T(),S("<</Type /Page"),S("/Parent 1 0 R"),S("/Resources 2 0 R"),S("/Contents "+(B+1)+" 0 R>>"),S("endobj"),b=A[a].join("\n"),T(),u){for(c=[],d=0;d<b.length;++d)c[d]=b.charCodeAt(d);f=adler32cs.from(b),e=new Deflater(6),e.append(new Uint8Array(c)),b=e.flush(),c=[new Uint8Array([120,156]),new Uint8Array(b),new Uint8Array([255&f,f>>8&255,f>>16&255,f>>24&255])],b="";for(d in c)c.hasOwnProperty(d)&&(b+=String.fromCharCode.apply(null,c[d]));S("<</Length "+b.length+" /Filter [/FlateDecode]>>")}else S("<</Length "+b.length+">>");U(b),S("endobj")}for(D[1]=t,S("1 0 obj"),S("<</Type /Pages"),q="/Kids [",d=0;d<z;d++)q+=3+2*d+" 0 R ";S(q+"]"),S("/Count "+z),S("/MediaBox [0 0 "+O(o)+" "+O(p)+"]"),S(">>"),S("endobj")},W=function(a){a.objectNumber=T(),S("<</BaseFont/"+a.PostScriptName+"/Type/Font"),"string"==typeof a.encoding&&S("/Encoding/"+a.encoding),S("/Subtype/Type1>>"),S("endobj")},X=function(){var a;for(a in E)E.hasOwnProperty(a)&&W(E[a])},Y=function(){N.publish("putXobjectDict")},Z=function(){S("/ProcSet [/PDF /Text /ImageB /ImageC /ImageI]"),S("/Font <<");var a;for(a in E)E.hasOwnProperty(a)&&S("/"+a+" "+E[a].objectNumber+" 0 R");S(">>"),S("/XObject <<"),Y(),S(">>")},$=function(){X(),N.publish("putResources"),D[2]=t,S("2 0 obj"),S("<<"),Z(),S(">>"),S("endobj"),N.publish("postPutResources")},_=function(a,b,c){var d;F[b]===d&&(F[b]={}),F[b][c]=a},aa=function(a,b,d,e){var f="F"+(c(E)+1).toString(10),g=E[f]={id:f,PostScriptName:a,fontName:b,fontStyle:d,encoding:e,metadata:{}};return _(f,b,d),N.publish("addFont",g),f},ba=function(){var a,b,c,d,e="helvetica",f="times",g="courier",h="normal",i="bold",j="italic",k="bolditalic",l="StandardEncoding",m=[["Helvetica",e,h],["Helvetica-Bold",e,i],["Helvetica-Oblique",e,j],["Helvetica-BoldOblique",e,k],["Courier",g,h],["Courier-Bold",g,i],["Courier-Oblique",g,j],["Courier-BoldOblique",g,k],["Times-Roman",f,h],["Times-Bold",f,i],["Times-Italic",f,j],["Times-BoldItalic",f,k]];for(a=0,b=m.length;a<b;a++)c=aa(m[a][0],m[a][1],m[a][2],l),d=m[a][0].split("-"),_(c,d[0],d[1]||"");N.publish("addFonts",{fonts:E,dictionary:F})},ca=function(a,b){var c,d,e,f,g,h,j,k,l,m;if(b===e&&(b={}),f=b.sourceEncoding?f:"Unicode",h=b.outputEncoding,(b.autoencode||h)&&E[i].metadata&&E[i].metadata[f]&&E[i].metadata[f].encoding&&(g=E[i].metadata[f].encoding,!h&&E[i].encoding&&(h=E[i].encoding),!h&&g.codePages&&(h=g.codePages[0]),"string"==typeof h&&(h=g[h]),h)){for(k=!1,j=[],c=0,d=a.length;c<d;c++)l=h[a.charCodeAt(c)],l?j.push(String.fromCharCode(l)):j.push(a[c]),j[c].charCodeAt(0)>>8&&(k=!0);a=j.join("")}for(c=a.length;k===e&&0!==c;)a.charCodeAt(c-1)>>8&&(k=!0),c--;if(k){for(j=b.noBOM?[]:[254,255],c=0,d=a.length;c<d;c++){if(l=a.charCodeAt(c),m=l>>8,m>>8)throw new Error("Character at position "+c.toString(10)+" of string '"+a+"' exceeds 16bits. Cannot be encoded into UCS-2 BE");j.push(m),j.push(l-(m<<8))}return String.fromCharCode.apply(e,j)}return a},da=function(a,b){return ca(a,b).replace(/\\/g,"\\\\").replace(/\(/g,"\\(").replace(/\)/g,"\\)")},ea=function(){S("/Producer (jsPDF "+b.version+")"),J.title&&S("/Title ("+da(J.title)+")"),J.subject&&S("/Subject ("+da(J.subject)+")"),J.author&&S("/Author ("+da(J.author)+")"),J.keywords&&S("/Keywords ("+da(J.keywords)+")"),J.creator&&S("/Creator ("+da(J.creator)+")");var a=new Date;S("/CreationDate (D:"+[a.getFullYear(),Q(a.getMonth()+1),Q(a.getDate()),Q(a.getHours()),Q(a.getMinutes()),Q(a.getSeconds())].join("")+")")},fa=function(){S("/Type /Catalog"),S("/Pages 1 0 R"),S("/OpenAction [3 0 R /FitH null]"),S("/PageLayout /OneColumn"),N.publish("putCatalog")},ga=function(){S("/Size "+(B+1)),S("/Root "+B+" 0 R"),S("/Info "+(B-1)+" 0 R")},ha=function(){z++,C=!0,A[z]=[]},ia=function(){ha(),S(O(H*l)+" w"),S(y),0!==K&&S(K.toString(10)+" J"),0!==L&&S(L.toString(10)+" j"),N.publish("addPage",{pageNumber:z})},ja=function(a,b){var c,d;a===d&&(a=E[i].fontName),b===d&&(b=E[i].fontStyle);try{c=F[a][b]}catch(a){c=d}if(!c)throw new Error("Unable to look up font label for font '"+a+"', '"+b+"'. Refer to getFontList() for available fonts.");return c},ka=function(){C=!1,B=2,s=[],D=[],S("%PDF-"+v),V(),$(),T(),S("<<"),ea(),S(">>"),S("endobj"),T(),S("<<"),fa(),S(">>"),S("endobj");var a,b=t;for(S("xref"),S("0 "+(B+1)),S("0000000000 65535 f "),a=1;a<=B;a++)S(R(D[a])+" 00000 n ");return S("trailer"),S("<<"),ga(),S(">>"),S("startxref"),S(b),S("%%EOF"),C=!0,s.join("\n")},la=function(a){var b="S";return"F"===a?b="f":"FD"!==a&&"DF"!==a||(b="B"),b},ma=function(){var a,b,c,d,e;for(a=ka(),b=a.length,c=new Uint8Array(new ArrayBuffer(b)),d=0;d<b;d++)c[d]=a.charCodeAt(d);return e=new Blob([c],{type:"application/pdf"})},na=function(b,c){var d;switch(b){case d:return ka();case"save":if(navigator.getUserMedia){if(void 0===a.URL)return M.output("dataurlnewwindow");if(void 0===a.URL.createObjectURL)return M.output("dataurlnewwindow")}saveAs(ma(),c);break;case"blob":return ma();case"datauristring":case"dataurlstring":return"data:application/pdf;base64,"+btoa(ka());case"datauri":case"dataurl":document.location.href="data:application/pdf;base64,"+btoa(ka());break;case"dataurlnewwindow":a.open("data:application/pdf;base64,"+btoa(ka()));break;default:throw new Error('Output type "'+b+'" is not supported.')}};if("pt"===e)l=1;else if("mm"===e)l=72/25.4;else if("cm"===e)l=72/2.54;else{if("in"!==e)throw"Invalid unit: "+e;l=72}if(w.hasOwnProperty(r))j=w[r][1]/l,k=w[r][0]/l;else try{j=f[1],k=f[0]}catch(a){throw"Invalid format: "+f}if("p"===d||"portrait"===d)d="p",k>j&&(m=k,k=j,j=m);else{if("l"!==d&&"landscape"!==d)throw"Invalid orientation: "+d;d="l",j>k&&(m=k,k=j,j=m)}M.internal={pdfEscape:da,getStyle:la,getFont:function(){return E[ja.apply(M,arguments)]},getFontSize:function(){return G},getLineHeight:function(){return G*I},btoa:btoa,write:function(a,b,c,d){S(1===arguments.length?a:Array.prototype.join.call(arguments," "))},getCoordinateString:function(a){return O(a*l)},getVerticalCoordinateString:function(a){return O((j-a)*l)},collections:{},newObject:T,putStream:U,events:N,scaleFactor:l,pageSize:{width:k,height:j},output:function(a,b){return na(a,b)},getNumberOfPages:function(){return A.length-1},pages:A},M.addPage=function(){return ia(),this},M.text=function(a,b,c,d,e){if("number"==typeof a){var f=c;c=b,b=a,a=f}"string"==typeof a&&a.match(/[\n\r]/)&&(a=a.split(/\r\n|\r|\n/g)),"number"==typeof d&&(e=d,d=null);var g="",h="Td";if(e){e*=Math.PI/180;var k=Math.cos(e),m=Math.sin(e);g=[O(k),O(m),O(m*-1),O(k),""].join(" "),h="Tm"}if(d=d||{},"noBOM"in d||(d.noBOM=!0),"autoencode"in d||(d.autoencode=!0),"string"==typeof a)a=da(a,d);else{if(!(a instanceof Array))throw new Error('Type of text must be string or Array. "'+a+'" is not recognized.');for(var n=a.concat(),o=[],p=n.length;p--;)o.push(da(n.shift(),d));a=o.join(") Tj\nT* (")}return S("BT\n/"+i+" "+G+" Tf\n"+G*I+" TL\n"+x+"\n"+g+O(b*l)+" "+O((j-c)*l)+" "+h+"\n("+a+") Tj\nET"),this},M.line=function(a,b,c,d){return S(O(a*l)+" "+O((j-b)*l)+" m "+O(c*l)+" "+O((j-d)*l)+" l S"),this},M.lines=function(a,b,c,d,e,f){var g,h,i,k,m,n,o,p,q,r,s,t,u,v,w;for("number"==typeof a&&(h=c,i=a,k=b,a=h,b=i,c=k),e=la(e),d=d===g?[1,1]:d,S(P(b*l)+" "+P((j-c)*l)+" m "),m=d[0],n=d[1],p=a.length,v=b,w=c,o=0;o<p;o++)q=a[o],2===q.length?(v=q[0]*m+v,w=q[1]*n+w,S(P(v*l)+" "+P((j-w)*l)+" l")):(r=q[0]*m+v,s=q[1]*n+w,t=q[2]*m+v,u=q[3]*n+w,v=q[4]*m+v,w=q[5]*n+w,S(P(r*l)+" "+P((j-s)*l)+" "+P(t*l)+" "+P((j-u)*l)+" "+P(v*l)+" "+P((j-w)*l)+" c"));return 1==f&&S(" h"),S(e),this},M.rect=function(a,b,c,d,e){var f=la(e);return S([O(a*l),O((j-b)*l),O(c*l),O(-d*l),"re",f].join(" ")),this},M.triangle=function(a,b,c,d,e,f,g){return this.lines([[c-a,d-b],[e-c,f-d],[a-e,b-f]],a,b,[1,1],g,!0),this},M.roundedRect=function(a,b,c,d,e,f,g){var h=4/3*(Math.SQRT2-1);return this.lines([[c-2*e,0],[e*h,0,e,f-f*h,e,f],[0,d-2*f],[0,f*h,-(e*h),f,-e,f],[-c+2*e,0],[-(e*h),0,-e,-(f*h),-e,-f],[0,-d+2*f],[0,-(f*h),e*h,-f,e,-f]],a+e,b,[1,1],g),this},M.ellipse=function(a,b,c,d,e){var f=la(e),g=4/3*(Math.SQRT2-1)*c,h=4/3*(Math.SQRT2-1)*d;return S([O((a+c)*l),O((j-b)*l),"m",O((a+c)*l),O((j-(b-h))*l),O((a+g)*l),O((j-(b-d))*l),O(a*l),O((j-(b-d))*l),"c"].join(" ")),S([O((a-g)*l),O((j-(b-d))*l),O((a-c)*l),O((j-(b-h))*l),O((a-c)*l),O((j-b)*l),"c"].join(" ")),S([O((a-c)*l),O((j-(b+h))*l),O((a-g)*l),O((j-(b+d))*l),O(a*l),O((j-(b+d))*l),"c"].join(" ")),S([O((a+g)*l),O((j-(b+d))*l),O((a+c)*l),O((j-(b+h))*l),O((a+c)*l),O((j-b)*l),"c",f].join(" ")),this},M.circle=function(a,b,c,d){return this.ellipse(a,b,c,c,d)},M.setProperties=function(a){var b;for(b in J)J.hasOwnProperty(b)&&a[b]&&(J[b]=a[b]);return this},M.setFontSize=function(a){return G=a,this},M.setFont=function(a,b){return i=ja(a,b),this},M.setFontStyle=M.setFontType=function(a){var b;return i=ja(b,a),this},M.getFontList=function(){var a,b,c,d={};for(a in F)if(F.hasOwnProperty(a)){d[a]=c=[];for(b in F[a])F[a].hasOwnProperty(b)&&c.push(b)}return d},M.setLineWidth=function(a){return S((a*l).toFixed(2)+" w"),this},M.setDrawColor=function(a,b,c,d){var e;return e=void 0===b||void 0===d&&a===b===c?"string"==typeof a?a+" G":O(a/255)+" G":void 0===d?"string"==typeof a?[a,b,c,"RG"].join(" "):[O(a/255),O(b/255),O(c/255),"RG"].join(" "):"string"==typeof a?[a,b,c,d,"K"].join(" "):[O(a),O(b),O(c),O(d),"K"].join(" "),S(e),this},M.setFillColor=function(a,b,c,d){var e;return e=void 0===b||void 0===d&&a===b===c?"string"==typeof a?a+" g":O(a/255)+" g":void 0===d?"string"==typeof a?[a,b,c,"rg"].join(" "):[O(a/255),O(b/255),O(c/255),"rg"].join(" "):"string"==typeof a?[a,b,c,d,"k"].join(" "):[O(a),O(b),O(c),O(d),"k"].join(" "),S(e),this},M.setTextColor=function(a,b,c){var d=/#[0-9A-Fa-f]{6}/;if("string"==typeof a&&d.test(a)){var e=a.replace("#",""),f=parseInt(e,16);a=f>>16&255,b=f>>8&255,c=255&f}return x=0===a&&0===b&&0===c||"undefined"==typeof b?P(a/255)+" g":[P(a/255),P(b/255),P(c/255),"rg"].join(" "),this},M.CapJoinStyles={0:0,butt:0,but:0,miter:0,1:1,round:1,rounded:1,circle:1,2:2,projecting:2,project:2,square:2,bevel:2},M.setLineCap=function(a){var b=this.CapJoinStyles[a];if(void 0===b)throw new Error("Line cap style of '"+a+"' is not recognized. See or extend .CapJoinStyles property for valid styles");return K=b,S(b.toString(10)+" J"),this},M.setLineJoin=function(a){var b=this.CapJoinStyles[a];if(void 0===b)throw new Error("Line join style of '"+a+"' is not recognized. See or extend .CapJoinStyles property for valid styles");return L=b,S(b.toString(10)+" j"),this},M.output=na,M.save=function(a){M.output("save",a)};for(n in b.API)b.API.hasOwnProperty(n)&&("events"===n&&b.API.events.length?!function(a,b){var c,d,e;for(e=b.length-1;e!==-1;e--)c=b[e][0],d=b[e][1],a.subscribe.apply(a,[c].concat("function"==typeof d?[d]:d))}(N,b.API.events):M[n]=b.API[n]);return ba(),i="F1",ia(),N.publish("initialized"),M}"undefined"==typeof btoa&&(a.btoa=function(a){var b,c,d,e,f,g,h,i,j,k="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",l=k.split(""),m=0,n=0,o="",p=[];do b=a.charCodeAt(m++),c=a.charCodeAt(m++),d=a.charCodeAt(m++),i=b<<16|c<<8|d,e=i>>18&63,f=i>>12&63,g=i>>6&63,h=63&i,p[n++]=l[e]+l[f]+l[g]+l[h];while(m<a.length);return o=p.join(""),j=a.length%3,(j?o.slice(0,j-3):o)+"===".slice(j||3)}),"undefined"==typeof atob&&(a.atob=function(a){var b,c,d,e,f,g,h,i,j="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",k=0,l=0,m="",n=[];if(!a)return a;a+="";do e=j.indexOf(a.charAt(k++)),f=j.indexOf(a.charAt(k++)),g=j.indexOf(a.charAt(k++)),h=j.indexOf(a.charAt(k++)),i=e<<18|f<<12|g<<6|h,b=i>>16&255,c=i>>8&255,d=255&i,64===g?n[l++]=String.fromCharCode(b):64===h?n[l++]=String.fromCharCode(b,c):n[l++]=String.fromCharCode(b,c,d);while(k<a.length);return m=n.join("")});var c="function"==typeof Object.keys?function(a){return Object.keys(a).length}:function(a){var b,c=0;for(b in a)a.hasOwnProperty(b)&&c++;return c};return a.PubSub=function(a){this.topics={},this.context=a,this.publish=function(a,b){if(this.topics[a]){var c,d,e,f,g=this.topics[a],h=[],i=function(){};for(b=Array.prototype.slice.call(arguments,1),d=0,e=g.length;d<e;d++)f=g[d],c=f[0],f[1]&&(f[0]=i,h.push(d)),c.apply(this.context,b);for(d=0,e=h.length;d<e;d++)g.splice(h[d],1)}},this.subscribe=function(a,b,c){return this.topics[a]?this.topics[a].push([b,c]):this.topics[a]=[[b,c]],{topic:a,callback:b}},this.unsubscribe=function(a){if(this.topics[a.topic]){var b,c,d=this.topics[a.topic];for(b=0,c=d.length;b<c;b++)d[b][0]===a.callback&&d.splice(b,1)}}},b.API={events:[]},b.version="1.0.0-trunk","function"==typeof define?define(function(){return b}):a.jsPDF=b,b}(self);!function(a){"use strict";var b=a.getCharWidthsArray=function(a,b){b||(b={});var c,d,e,f=b.widths?b.widths:this.internal.getFont().metadata.Unicode.widths,g=f.fof?f.fof:1,h=b.kerning?b.kerning:this.internal.getFont().metadata.Unicode.kerning,i=h.fof?h.fof:1,j=0,k=f[0]||g,l=[];for(c=0,d=a.length;c<d;c++)e=a.charCodeAt(c),l.push((f[e]||k)/g+(h[e]&&h[e][j]||0)/i),j=e;return l},c=function(a){for(var b=a.length,c=0;b;)b--,c+=a[b];return c},d=(a.getStringUnitWidth=function(a,d){return c(b.call(this,a,d))},function(a,b,c,d){for(var e=[],f=0,g=a.length,h=0;f!==g&&h+b[f]<c;)h+=b[f],f++;e.push(a.slice(0,f));var i=f;for(h=0;f!==g;)h+b[f]>d&&(e.push(a.slice(i,f)),h=0,i=f),h+=b[f],f++;return i!==f&&e.push(a.slice(i,f)),e}),e=function(a,e,f){f||(f={});var g,h,i,j,k,l=b(" ",f)[0],m=a.split(" "),n=[],o=[n],p=f.textIndent||0,q=0,r=0;for(i=0,j=m.length;i<j;i++)if(g=m[i],h=b(g,f),r=c(h),p+q+r>e){if(r>e){for(k=d(g,h,e-(p+q),e),n.push(k.shift()),n=[k.pop()];k.length;)o.push([k.shift()]);r=c(h.slice(g.length-n[0].length))}else n=[g];o.push(n),p=r,q=l}else n.push(g),p+=q+r,q=l;var s=[];for(i=0,j=o.length;i<j;i++)s.push(o[i].join(" "));return s};a.splitTextToSize=function(a,b,c){c||(c={});var d,f=c.fontSize||this.internal.getFontSize(),g=function(a){var b={0:1},c={};if(a.widths&&a.kerning)return{widths:a.widths,kerning:a.kerning};var d=this.internal.getFont(a.fontName,a.fontStyle),e="Unicode";return d.metadata[e]?{widths:d.metadata[e].widths||b,kerning:d.metadata[e].kerning||c}:{widths:b,kerning:c}}.call(this,c);d=a.match(/[\n\r]/)?a.split(/\r\n|\r|\n/g):[a];var h=1*this.internal.scaleFactor*b/f;g.textIndent=c.textIndent?1*c.textIndent*this.internal.scaleFactor/f:0;var i,j,k=[];for(i=0,j=d.length;i<j;i++)k=k.concat(e(d[i],h,g));return k}}(jsPDF.API),function(a){"use strict";var b="addImage_",c=["jpeg","jpg","png"],d=function(a){var b=this.internal.newObject(),c=this.internal.write,e=this.internal.putStream;if(a.n=b,c("<</Type /XObject"),c("/Subtype /Image"),c("/Width "+a.w),c("/Height "+a.h),a.cs===this.color_spaces.INDEXED?c("/ColorSpace [/Indexed /DeviceRGB "+(a.pal.length/3-1)+" "+("smask"in a?b+2:b+1)+" 0 R]"):(c("/ColorSpace /"+a.cs),a.cs===this.color_spaces.DEVICE_CMYK&&c("/Decode [1 0 1 0 1 0 1 0]")),c("/BitsPerComponent "+a.bpc),"f"in a&&c("/Filter /"+a.f),"dp"in a&&c("/DecodeParms <<"+a.dp+">>"),"trns"in a&&a.trns.constructor==Array){for(var f="",g=0,h=a.trns.length;g<h;g++)f+=a.trns[g]+" "+a.trns[g]+" ";c("/Mask ["+f+"]")}if("smask"in a&&c("/SMask "+(b+1)+" 0 R"),c("/Length "+a.data.length+">>"),e(a.data),c("endobj"),"smask"in a){var i="/Predictor 15 /Colors 1 /BitsPerComponent "+a.bpc+" /Columns "+a.w,j={w:a.w,h:a.h,cs:"DeviceGray",bpc:a.bpc,dp:i,data:a.smask};"f"in a&&(j.f=a.f),d.call(this,j)}a.cs===this.color_spaces.INDEXED&&(this.internal.newObject(),c("<< /Length "+a.pal.length+">>"),e(this.arrayBufferToBinaryString(new Uint8Array(a.pal))),c("endobj"))},e=function(){var a=this.internal.collections[b+"images"];for(var c in a)d.call(this,a[c])},f=function(){var a,c=this.internal.collections[b+"images"],d=this.internal.write;for(var e in c)a=c[e],d("/I"+a.i,a.n,"0","R")},g=function(b){return b&&"string"==typeof b&&(b=b.toUpperCase()),b in a.image_compression?b:a.image_compression.NONE},h=function(){var a=this.internal.collections[b+"images"];return a||(this.internal.collections[b+"images"]=a={},this.internal.events.subscribe("putResources",e),this.internal.events.subscribe("putXobjectDict",f)),a},i=function(a){var b=0;return a&&(b=Object.keys?Object.keys(a).length:function(a){var b=0;for(var c in a)a.hasOwnProperty(c)&&b++;return b}(a)),b},j=function(a){return"undefined"==typeof a||null===a},k=function(a){},l=function(a){return c.indexOf(a)===-1},m=function(b){return"function"!=typeof a["process"+b.toUpperCase()]},n=function(a){return"object"==typeof a&&1===a.nodeType},o=function(a,b){var c=document.createElement("canvas");c.width=a.clientWidth||a.width,c.height=a.clientHeight||a.height;var d=c.getContext("2d");if(!d)throw"addImage requires canvas to be supported by browser.";return d.drawImage(a,0,0,c.width,c.height),c.toDataURL("png"==b?"image/png":"image/jpeg")},p=function(a,b){var c;if(b)for(var d in b)if(a===b[d].alias){c=b[d];break}return c},q=function(a,b){return a||b||(a=-96,b=-96),a<0&&(a=-1*info.w*72/a/this.internal.scaleFactor),b<0&&(b=-1*info.h*72/b/this.internal.scaleFactor),0===a&&(a=b*info.w/info.h),0===b&&(b=a*info.h/info.w),[a,b]},r=function(a,b,c,d,e,f,g){var h=q(c,d),i=this.internal.getCoordinateString,j=this.internal.getVerticalCoordinateString;c=h[0],d=h[1],g[f]=e,this.internal.write("q",i(c),"0 0",i(d),i(a),j(b+d),"cm /I"+e.i,"Do Q")};a.color_spaces={DEVICE_RGB:"DeviceRGB",DEVICE_GRAY:"DeviceGray",DEVICE_CMYK:"DeviceCMYK",CAL_GREY:"CalGray",CAL_RGB:"CalRGB",LAB:"Lab",ICC_BASED:"ICCBased",INDEXED:"Indexed",PATTERN:"Pattern",SEPERATION:"Seperation",DEVICE_N:"DeviceN"},a.decode={DCT_DECODE:"DCTDecode",FLATE_DECODE:"FlateDecode",LZW_DECODE:"LZWDecode",JPX_DECODE:"JPXDecode",JBIG2_DECODE:"JBIG2Decode",ASCII85_DECODE:"ASCII85Decode",ASCII_HEX_DECODE:"ASCIIHexDecode",RUN_LENGTH_DECODE:"RunLengthDecode",CCITT_FAX_DECODE:"CCITTFaxDecode"},a.image_compression={NONE:"NONE",FAST:"FAST",MEDIUM:"MEDIUM",SLOW:"SLOW"},a.isString=function(a){return"string"==typeof a},a.extractInfoFromBase64DataURI=function(a){return/^data:([\w]+?\/([\w]+?));base64,(.+?)$/g.exec(a)},a.supportsArrayBuffer=function(){return"function"==typeof ArrayBuffer},a.isArrayBuffer=function(a){return!!this.supportsArrayBuffer()&&a instanceof ArrayBuffer},a.isArrayBufferView=function(a){return!!this.supportsArrayBuffer()&&(a instanceof Int8Array||a instanceof Uint8Array||a instanceof Uint8ClampedArray||a instanceof Int16Array||a instanceof Uint16Array||a instanceof Int32Array||a instanceof Uint32Array||a instanceof Float32Array||a instanceof Float64Array)},a.binaryStringToUint8Array=function(a){for(var b=a.length,c=new Uint8Array(b),d=0;d<b;d++)c[d]=a.charCodeAt(d);return c},a.arrayBufferToBinaryString=function(a){this.isArrayBuffer(a)&&(a=new Uint8Array(a));for(var b="",c=a.byteLength,d=0;d<c;d++)b+=String.fromCharCode(a[d]);return b},a.arrayBufferToBase64=function(a){for(var b,c,d,e,f,g="",h="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",i=new Uint8Array(a),j=i.byteLength,k=j%3,l=j-k,m=0;m<l;m+=3)f=i[m]<<16|i[m+1]<<8|i[m+2],b=(16515072&f)>>18,c=(258048&f)>>12,d=(4032&f)>>6,e=63&f,g+=h[b]+h[c]+h[d]+h[e];return 1==k?(f=i[l],b=(252&f)>>2,c=(3&f)<<4,g+=h[b]+h[c]+"=="):2==k&&(f=i[l]<<8|i[l+1],b=(64512&f)>>10,c=(1008&f)>>4,d=(15&f)<<2,g+=h[b]+h[c]+h[d]+"="),g},a.createImageInfo=function(a,b,c,d,e,f,g,h,i,j,k,l){var m={alias:h,w:b,h:c,cs:d,bpc:e,i:g,data:a};return f&&(m.f=f),i&&(m.dp=i),j&&(m.trns=j),k&&(m.pal=k),l&&(m.smask=l),m},a.addImage=function(a,b,d,e,f,q,s,t){if("number"==typeof b){var u=q;q=f,f=e,e=d,d=b,b=u||"jpeg"}var v,w,x=h.call(this);if(t=g(t),b=b.toLowerCase(),j(s)&&(s=k(a)),n(a)&&(a=o(a,b)),this.isString(a)){var y=this.extractInfoFromBase64DataURI(a);y?(b=y[2],a=atob(y[3]),this.supportsArrayBuffer()&&(w=a,a=this.binaryStringToUint8Array(a))):255!==a.charCodeAt(0)&&(v=p(a,x))}if(l(b))throw new Error("addImage currently only supports formats "+c+", not '"+b+"'");if(m(b))throw new Error("please ensure that the plugin for '"+b+"' support is added");var z=i(x),A=v;if(A||(A=this["process"+b.toUpperCase()](a,z,s,t,w)),!A)throw new Error("An unkwown error occurred whilst processing the image");return r.call(this,d,e,f,q,A,z,x),this};var s=function(a){var b,c;if(255===!a.charCodeAt(0)||216===!a.charCodeAt(1)||255===!a.charCodeAt(2)||224===!a.charCodeAt(3)||!a.charCodeAt(6)==="J".charCodeAt(0)||!a.charCodeAt(7)==="F".charCodeAt(0)||!a.charCodeAt(8)==="I".charCodeAt(0)||!a.charCodeAt(9)==="F".charCodeAt(0)||0===!a.charCodeAt(10))throw new Error("getJpegSize requires a binary string jpeg file");for(var d=256*a.charCodeAt(4)+a.charCodeAt(5),e=4,f=a.length;e<f;){if(e+=d,255!==a.charCodeAt(e))throw new Error("getJpegSize could not find the size of the image");if(192===a.charCodeAt(e+1)||193===a.charCodeAt(e+1)||194===a.charCodeAt(e+1)||195===a.charCodeAt(e+1)||196===a.charCodeAt(e+1)||197===a.charCodeAt(e+1)||198===a.charCodeAt(e+1)||199===a.charCodeAt(e+1))return c=256*a.charCodeAt(e+5)+a.charCodeAt(e+6),b=256*a.charCodeAt(e+7)+a.charCodeAt(e+8),[b,c];e+=2,d=256*a.charCodeAt(e)+a.charCodeAt(e+1)}},t=function(a){var b=a[0]<<8|a[1];if(65496!==b)throw new Error("Supplied data is not a JPEG");for(var c,d,e,f=a.length,g=(a[4]<<8)+a[5],h=4;h<f;){if(h+=g,c=u(a,h),g=(c[2]<<8)+c[3],(192===c[1]||194===c[1])&&255===c[0]&&g>7)return c=u(a,h+5),d=(c[2]<<8)+c[3],e=(c[0]<<8)+c[1],{width:d,height:e};h+=2}throw new Error("getJpegSizeFromBytes could not find the size of the image")},u=function(a,b){return a.subarray(b,b+4)};a.processJPEG=function(a,b,c,d,e){var f,g=this.color_spaces.DEVICE_RGB,h=this.decode.DCT_DECODE,i=8;return this.isString(a)?(f=s(a),this.createImageInfo(a,f[0],f[1],g,i,h,b,c)):(this.isArrayBuffer(a)&&(a=new Uint8Array(a)),this.isArrayBufferView(a)?(f=t(a),a=e||this.arrayBufferToBinaryString(a),this.createImageInfo(a,f.width,f.height,g,i,h,b,c)):null)},a.processJPG=function(a,b,c,d,e){return this.processJPEG(a,b,c,d,e)}}(jsPDF.API);var saveAs=saveAs||navigator.msSaveBlob&&navigator.msSaveBlob.bind(navigator)||function(a){"use strict";var b=a.document,c=function(){return a.URL||a.webkitURL||a},d=a.URL||a.webkitURL||a,e=b.createElementNS("http://www.w3.org/1999/xhtml","a"),f="download"in e,g=function(c){var d=b.createEvent("MouseEvents");return d.initMouseEvent("click",!0,!1,a,0,0,0,0,0,!1,!1,!1,!1,0,null),c.dispatchEvent(d)},h=a.webkitRequestFileSystem,i=a.requestFileSystem||h||a.mozRequestFileSystem,j=function(b){(a.setImmediate||a.setTimeout)(function(){throw b},0)},k="application/octet-stream",l=0,m=[],n=function(){for(var a=m.length;a--;){var b=m[a];"string"==typeof b?d.revokeObjectURL(b):b.remove()}m.length=0},o=function(a,b,c){b=[].concat(b);for(var d=b.length;d--;){var e=a["on"+b[d]];if("function"==typeof e)try{e.call(a,c||a)}catch(a){j(a)}}},p=function(b,d){var j,n,p,q=this,r=b.type,s=!1,t=function(){var a=c().createObjectURL(b);return m.push(a),a},u=function(){o(q,"writestart progress write writeend".split(" "))},v=function(){!s&&j||(j=t(b)),n&&(n.location.href=j),q.readyState=q.DONE,u()},w=function(a){return function(){if(q.readyState!==q.DONE)return a.apply(this,arguments)}},x={create:!0,exclusive:!1};return q.readyState=q.INIT,d||(d="download"),f&&(j=t(b),e.href=j,e.download=d,g(e))?(q.readyState=q.DONE,void u()):(a.chrome&&r&&r!==k&&(p=b.slice||b.webkitSlice,b=p.call(b,0,b.size,k),s=!0),h&&"download"!==d&&(d+=".download"),n=r===k||h?a:a.open(),i?(l+=b.size,void i(a.TEMPORARY,l,w(function(a){a.root.getDirectory("saved",x,w(function(a){var c=function(){a.getFile(d,x,w(function(a){a.createWriter(w(function(c){c.onwriteend=function(b){n.location.href=a.toURL(),m.push(a),q.readyState=q.DONE,o(q,"writeend",b)},c.onerror=function(){var a=c.error;a.code!==a.ABORT_ERR&&v()},"writestart progress write abort".split(" ").forEach(function(a){c["on"+a]=q["on"+a]}),c.write(b),q.abort=function(){c.abort(),q.readyState=q.DONE},q.readyState=q.WRITING}),v)}),v)};a.getFile(d,{create:!1},w(function(a){a.remove(),c()}),w(function(a){a.code===a.NOT_FOUND_ERR?c():v()}))}),v)}),v)):void v())},q=p.prototype,r=function(a,b){return new p(a,b)};return q.abort=function(){var a=this;a.readyState=a.DONE,o(a,"abort")},q.readyState=q.INIT=0,q.WRITING=1,q.DONE=2,q.error=q.onwritestart=q.onprogress=q.onwrite=q.onabort=q.onerror=q.onwriteend=null,a.addEventListener("unload",n,!1),r}(self);!function(a){"use strict";var b=function(){return"function"!=typeof PNG||"function"!=typeof FlateStream},c=function(b){return b!==a.image_compression.NONE&&d()},d=function(){var a="function"==typeof Deflater;if(!a)throw new Error("requires deflate.js for compression");return a},e=function(b,c,d,e){var i=5,n=k;switch(e){case a.image_compression.FAST:i=3,n=j;break;case a.image_compression.MEDIUM:i=6,n=l;break;case a.image_compression.SLOW:i=9,n=m}b=h(b,c,d,n);var o=new Uint8Array(f(i)),p=g(b),q=new Deflater(i),r=q.append(b),s=q.flush(),t=o.length+r.length+s.length,u=new Uint8Array(t+4);return u.set(o),u.set(r,o.length),u.set(s,o.length+r.length),u[t++]=p>>>24&255,u[t++]=p>>>16&255,u[t++]=p>>>8&255,u[t++]=255&p,a.arrayBufferToBinaryString(u)},f=function(a,b){var c=8,d=Math.LOG2E*Math.log(32768)-8,e=d<<4|c,f=e<<8,g=Math.min(3,(b-1&255)>>1);return f|=g<<6,f|=0,f+=31-f%31,[e,255&f&255]},g=function(a,b){for(var c,d=1,e=65535&d,f=d>>>16&65535,g=a.length,h=0;g>0;){c=g>b?b:g,g-=c;do e+=a[h++],f+=e;while(--c);e%=65521,f%=65521}return(f<<16|e)>>>0},h=function(a,b,c,d){for(var e,f,g,h=a.length/b,i=new Uint8Array(a.length+h),j=o(),k=0;k<h;k++){if(g=k*b,e=a.subarray(g,g+b),d)i.set(d(e,c,f),g+k);else{for(var l=0,m=j.length,n=[];l<m;l++)n[l]=j[l](e,c,f);var q=p(n.concat());i.set(n[q],g+k)}f=e}return i},i=function(a,b,c){var d=Array.apply([],a);return d.unshift(0),d},j=function(a,b,c){var d,e=[],f=0,g=a.length;for(e[0]=1;f<g;f++)d=a[f-b]||0,e[f+1]=a[f]-d+256&255;return e},k=function(a,b,c){var d,e=[],f=0,g=a.length;for(e[0]=2;f<g;f++)d=c&&c[f]||0,e[f+1]=a[f]-d+256&255;return e},l=function(a,b,c){var d,e,f=[],g=0,h=a.length;for(f[0]=3;g<h;g++)d=a[g-b]||0,e=c&&c[g]||0,f[g+1]=a[g]+256-(d+e>>>1)&255;return f},m=function(a,b,c){var d,e,f,g,h=[],i=0,j=a.length;for(h[0]=4;i<j;i++)d=a[i-b]||0,e=c&&c[i]||0,f=c&&c[i-b]||0,g=n(d,e,f),h[i+1]=a[i]-g+256&255;return h},n=function(a,b,c){var d=a+b-c,e=Math.abs(d-a),f=Math.abs(d-b),g=Math.abs(d-c);return e<=f&&e<=g?a:f<=g?b:c},o=function(){return[i,j,k,l,m]},p=function(a){for(var b,c,d,e=0,f=a.length;e<f;)b=q(a[e].slice(1)),(b<c||!c)&&(c=b,d=e),e++;return d},q=function(a){for(var b=0,c=a.length,d=0;b<c;)d+=Math.abs(a[b++]);return d};a.processPNG=function(a,d,f,g,h){var i,j,k,l,m,n,o=this.color_spaces.DEVICE_RGB,p=this.decode.FLATE_DECODE,q=8;if(this.isString(a),this.isArrayBuffer(a)&&(a=new Uint8Array(a)),this.isArrayBufferView(a)){if(b())throw new Error("PNG support requires png.js and zlib.js");if(i=new PNG(a),a=i.imgData,q=i.bits,o=i.colorSpace,l=i.colors,[4,6].indexOf(i.colorType)!==-1){if(8===i.bits)for(var r,s,t=window["Uint"+i.pixelBitlength+"Array"],u=new t(i.decodePixels().buffer),v=u.length,w=new Uint8Array(v*i.colors),x=new Uint8Array(v),y=i.pixelBitlength-i.bits,z=0,A=0;z<v;z++){for(r=u[z],s=0;s<y;)w[A++]=r>>>s&255,s+=i.bits;x[z]=r>>>s&255}if(16===i.bits){for(var r,u=new Uint32Array(i.decodePixels().buffer),v=u.length,w=new Uint8Array(v*(32/i.pixelBitlength)*i.colors),x=new Uint8Array(v*(32/i.pixelBitlength)),B=i.colors>1,z=0,A=0,C=0;z<v;)r=u[z++],w[A++]=r>>>0&255,B&&(w[A++]=r>>>16&255,r=u[z++],w[A++]=r>>>0&255),x[C++]=r>>>16&255;q=8}c(g)?(a=e(w,i.width*i.colors,i.colors,g),n=e(x,i.width,1,g)):(a=w,n=x,p=null)}if(3===i.colorType&&(o=this.color_spaces.INDEXED,m=i.palette,i.transparency.indexed)){for(var D=i.transparency.indexed,E=0,z=0,v=D.length;z<v;++z)E+=D[z];if(E/=255,E===v-1&&D.indexOf(0)!==-1)k=[D.indexOf(0)];else if(E!==v){for(var u=i.decodePixels(),x=new Uint8Array(u.length),z=0,v=u.length;z<v;z++)x[z]=D[u[z]];n=e(x,i.width,1)}}return j=p===this.decode.FLATE_DECODE?"/Predictor 15 /Colors "+l+" /BitsPerComponent "+q+" /Columns "+i.width:"/Colors "+l+" /BitsPerComponent "+q+" /Columns "+i.width,(this.isArrayBuffer(a)||this.isArrayBufferView(a))&&(a=this.arrayBufferToBinaryString(a)),(n&&this.isArrayBuffer(n)||this.isArrayBufferView(n))&&(n=this.arrayBufferToBinaryString(n)),this.createImageInfo(a,i.width,i.height,o,q,p,d,f,j,k,m,n)}return info}}(jsPDF.API);var DecodeStream=function(){function a(){this.pos=0,this.bufferLength=0,this.eof=!1,this.buffer=null}return a.prototype={ensureBuffer:function(a){var b=this.buffer,c=b?b.byteLength:0;if(a<c)return b;for(var d=512;d<a;)d<<=1;for(var e=new Uint8Array(d),f=0;f<c;++f)e[f]=b[f];return this.buffer=e},getByte:function(){for(var a=this.pos;this.bufferLength<=a;){if(this.eof)return null;this.readBlock()}return this.buffer[this.pos++]},getBytes:function(a){var b=this.pos;if(a){this.ensureBuffer(b+a);for(var c=b+a;!this.eof&&this.bufferLength<c;)this.readBlock();var d=this.bufferLength;c>d&&(c=d)}else{for(;!this.eof;)this.readBlock();var c=this.bufferLength}return this.pos=c,this.buffer.subarray(b,c)},lookChar:function(){for(var a=this.pos;this.bufferLength<=a;){if(this.eof)return null;this.readBlock()}return String.fromCharCode(this.buffer[this.pos])},getChar:function(){for(var a=this.pos;this.bufferLength<=a;){if(this.eof)return null;this.readBlock()}return String.fromCharCode(this.buffer[this.pos++])},makeSubStream:function(a,b,c){for(var d=a+b;this.bufferLength<=d&&!this.eof;)this.readBlock();return new Stream(this.buffer,a,b,c)},skip:function(a){a||(a=1),this.pos+=a},reset:function(){this.pos=0}},a}(),FlateStream=function(){function a(a){throw new Error(a)}function b(b){var c=0,d=b[c++],e=b[c++];d!=-1&&e!=-1||a("Invalid header in flate stream"),8!=(15&d)&&a("Unknown compression method in flate stream"),((d<<8)+e)%31!=0&&a("Bad FCHECK in flate stream"),32&e&&a("FDICT bit set in flate stream"),this.bytes=b,this.bytesPos=c,this.codeSize=0,this.codeBuf=0,DecodeStream.call(this)}var c=new Uint32Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),d=new Uint32Array([3,4,5,6,7,8,9,10,65547,65549,65551,65553,131091,131095,131099,131103,196643,196651,196659,196667,262211,262227,262243,262259,327811,327843,327875,327907,258,258,258]),e=new Uint32Array([1,2,3,4,65541,65543,131081,131085,196625,196633,262177,262193,327745,327777,393345,393409,459009,459137,524801,525057,590849,591361,657409,658433,724993,727041,794625,798721,868353,876545]),f=[new Uint32Array([459008,524368,524304,524568,459024,524400,524336,590016,459016,524384,524320,589984,524288,524416,524352,590048,459012,524376,524312,589968,459028,524408,524344,590032,459020,524392,524328,59e4,524296,524424,524360,590064,459010,524372,524308,524572,459026,524404,524340,590024,459018,524388,524324,589992,524292,524420,524356,590056,459014,524380,524316,589976,459030,524412,524348,590040,459022,524396,524332,590008,524300,524428,524364,590072,459009,524370,524306,524570,459025,524402,524338,590020,459017,524386,524322,589988,524290,524418,524354,590052,459013,524378,524314,589972,459029,524410,524346,590036,459021,524394,524330,590004,524298,524426,524362,590068,459011,524374,524310,524574,459027,524406,524342,590028,459019,524390,524326,589996,524294,524422,524358,590060,459015,524382,524318,589980,459031,524414,524350,590044,459023,524398,524334,590012,524302,524430,524366,590076,459008,524369,524305,524569,459024,524401,524337,590018,459016,524385,524321,589986,524289,524417,524353,590050,459012,524377,524313,589970,459028,524409,524345,590034,459020,524393,524329,590002,524297,524425,524361,590066,459010,524373,524309,524573,459026,524405,524341,590026,459018,524389,524325,589994,524293,524421,524357,590058,459014,524381,524317,589978,459030,524413,524349,590042,459022,524397,524333,590010,524301,524429,524365,590074,459009,524371,524307,524571,459025,524403,524339,590022,459017,524387,524323,589990,524291,524419,524355,590054,459013,524379,524315,589974,459029,524411,524347,590038,459021,524395,524331,590006,524299,524427,524363,590070,459011,524375,524311,524575,459027,524407,524343,590030,459019,524391,524327,589998,524295,524423,524359,590062,459015,524383,524319,589982,459031,524415,524351,590046,459023,524399,524335,590014,524303,524431,524367,590078,459008,524368,524304,524568,459024,524400,524336,590017,459016,524384,524320,589985,524288,524416,524352,590049,459012,524376,524312,589969,459028,524408,524344,590033,459020,524392,524328,590001,524296,524424,524360,590065,459010,524372,524308,524572,459026,524404,524340,590025,459018,524388,524324,589993,524292,524420,524356,590057,459014,524380,524316,589977,459030,524412,524348,590041,459022,524396,524332,590009,524300,524428,524364,590073,459009,524370,524306,524570,459025,524402,524338,590021,459017,524386,524322,589989,524290,524418,524354,590053,459013,524378,524314,589973,459029,524410,524346,590037,459021,524394,524330,590005,524298,524426,524362,590069,459011,524374,524310,524574,459027,524406,524342,590029,459019,524390,524326,589997,524294,524422,524358,590061,459015,524382,524318,589981,459031,524414,524350,590045,459023,524398,524334,590013,524302,524430,524366,590077,459008,524369,524305,524569,459024,524401,524337,590019,459016,524385,524321,589987,524289,524417,524353,590051,459012,524377,524313,589971,459028,524409,524345,590035,459020,524393,524329,590003,524297,524425,524361,590067,459010,524373,524309,524573,459026,524405,524341,590027,459018,524389,524325,589995,524293,524421,524357,590059,459014,524381,524317,589979,459030,524413,524349,590043,459022,524397,524333,590011,524301,524429,524365,590075,459009,524371,524307,524571,459025,524403,524339,590023,459017,524387,524323,589991,524291,524419,524355,590055,459013,524379,524315,589975,459029,524411,524347,590039,459021,524395,524331,590007,524299,524427,524363,590071,459011,524375,524311,524575,459027,524407,524343,590031,459019,524391,524327,589999,524295,524423,524359,590063,459015,524383,524319,589983,459031,524415,524351,590047,459023,524399,524335,590015,524303,524431,524367,590079]),9],g=[new Uint32Array([327680,327696,327688,327704,327684,327700,327692,327708,327682,327698,327690,327706,327686,327702,327694,0,327681,327697,327689,327705,327685,327701,327693,327709,327683,327699,327691,327707,327687,327703,327695,0]),5];
0 ignored issues
show
The parameter a is not used and could be removed.

This check looks for parameters in functions that are not used in the function body and are not followed by other parameters which are used inside the function.

Loading history...
The variable PubSub seems to be never declared. If this is a global, consider adding a /** global: PubSub */ comment.

This checks looks for references to variables that have not been declared. This is most likey a typographical error or a variable has been renamed.

To learn more about declaring variables in Javascript, see the MDN.

Loading history...
The variable x does not seem to be initialized in case 8 === i.bits on line 1 is false. Are you sure the function e handles undefined variables?
Loading history...
Comprehensibility Naming Best Practice introduced by
The variable x already seems to be declared on line 1. Consider using another variable name or omitting the var keyword.

This check looks for variables that are declared in multiple lines. There may be several reasons for this.

In the simplest case the variable name was reused by mistake. This may lead to very hard to locate bugs.

If you want to reuse a variable for another purpose, consider declaring it at or near the top of your function and just assigning to it subsequently so it is always declared.

Loading history...
The parameter d is not used and could be removed.

This check looks for parameters in functions that are not used in the function body and are not followed by other parameters which are used inside the function.

Loading history...
Comprehensibility introduced by
Are you sure you want to assign to e here, or did you intend to make a comparison like e === new Blob([c], {Ide...Node(application/pdf)})?
Loading history...
The variable q is changed as part of the for loop for example by 3 + 2 * d + " 0 R " on line 1. Only the value of the last iteration will be visible in this function if it is called after the loop.
Loading history...
The variable atob seems to be never declared. If this is a global, consider adding a /** global: atob */ comment.

This checks looks for references to variables that have not been declared. This is most likey a typographical error or a variable has been renamed.

To learn more about declaring variables in Javascript, see the MDN.

Loading history...
The assignment to variable a seems to be never used. Consider removing it.
Loading history...
The variable b seems to be never initialized.
Loading history...
Consider using undefined instead of void(0). It is equivalent and more straightforward to read.
Loading history...
The variable g seems to be never initialized.
Loading history...
The parameter b is not used and could be removed.

This check looks for parameters in functions that are not used in the function body and are not followed by other parameters which are used inside the function.

Loading history...
Comprehensibility Naming Best Practice introduced by
The variable u already seems to be declared on line 1. Consider using another variable name or omitting the var keyword.

This check looks for variables that are declared in multiple lines. There may be several reasons for this.

In the simplest case the variable name was reused by mistake. This may lead to very hard to locate bugs.

If you want to reuse a variable for another purpose, consider declaring it at or near the top of your function and just assigning to it subsequently so it is always declared.

Loading history...
Comprehensibility introduced by
You are assigning a value to the catch variable a, thereby shadowing the original value.
Loading history...
The assignment to variable o seems to be never used. Consider removing it.
Loading history...
The variable d seems to be never declared. If this is a global, consider adding a /** global: d */ comment.

This checks looks for references to variables that have not been declared. This is most likey a typographical error or a variable has been renamed.

To learn more about declaring variables in Javascript, see the MDN.

Loading history...
As per coding-style, switch statements should have a default case.
Loading history...
Coding Style Best Practice introduced by
Curly braces around statements make for more readable code and help prevent bugs when you add further statements.

Consider adding curly braces around all statements when they are executed conditionally. This is optional if there is only one statement, but leaving them out can lead to unexpected behaviour if another statement is added later.

Consider:

if (a > 0)
    b = 42;

If you or someone else later decides to put another statement in, only the first statement will be executed.

if (a > 0)
    console.log("a > 0");
    b = 42;

In this case the statement b = 42 will always be executed, while the logging statement will be executed conditionally.

if (a > 0) {
    console.log("a > 0");
    b = 42;
}

ensures that the proper code will be executed conditionally no matter how many statements are added or removed.

Loading history...
The variable e seems to be never initialized.
Loading history...
The variable self seems to be never declared. If this is a global, consider adding a /** global: self */ comment.

This checks looks for references to variables that have not been declared. This is most likey a typographical error or a variable has been renamed.

To learn more about declaring variables in Javascript, see the MDN.

Loading history...
The parameter h is not used and could be removed.

This check looks for parameters in functions that are not used in the function body and are not followed by other parameters which are used inside the function.

Loading history...
The variable Deflater seems to be never declared. If this is a global, consider adding a /** global: Deflater */ comment.

This checks looks for references to variables that have not been declared. This is most likey a typographical error or a variable has been renamed.

To learn more about declaring variables in Javascript, see the MDN.

Loading history...
The variable info seems to be never declared. If this is a global, consider adding a /** global: info */ comment.

This checks looks for references to variables that have not been declared. This is most likey a typographical error or a variable has been renamed.

To learn more about declaring variables in Javascript, see the MDN.

Loading history...
The variable a seems to be never initialized.
Loading history...
The assignment to variable q seems to be never used. Consider removing it.
Loading history...
Comprehensibility introduced by
Are you sure you want to assign to m here, or did you intend to make a comparison like m === n.join("")?
Loading history...
The variable w seems to not be initialized for all possible execution paths.
Loading history...
Comprehensibility Naming Best Practice introduced by
The variable z already seems to be declared on line 1. Consider using another variable name or omitting the var keyword.

This check looks for variables that are declared in multiple lines. There may be several reasons for this.

In the simplest case the variable name was reused by mistake. This may lead to very hard to locate bugs.

If you want to reuse a variable for another purpose, consider declaring it at or near the top of your function and just assigning to it subsequently so it is always declared.

Loading history...
The variable f seems to not be initialized for all possible execution paths. Are you sure d handles undefined variables?
Loading history...
The variable k seems to not be initialized for all possible execution paths. Are you sure createImageInfo handles undefined variables?
Loading history...
The variable Stream seems to be never declared. If this is a global, consider adding a /** global: Stream */ comment.

This checks looks for references to variables that have not been declared. This is most likey a typographical error or a variable has been renamed.

To learn more about declaring variables in Javascript, see the MDN.

Loading history...
There is no return statement in this branch, but you do return something in other branches. Did you maybe miss it? If you do not want to return anything, consider adding return undefined; explicitly.
Loading history...
The variable navigator seems to be never declared. If this is a global, consider adding a /** global: navigator */ comment.

This checks looks for references to variables that have not been declared. This is most likey a typographical error or a variable has been renamed.

To learn more about declaring variables in Javascript, see the MDN.

Loading history...
The variable f seems to be never initialized.
Loading history...
The variable k does not seem to be initialized in case b === e && b = {}, f = b...typeof h && h = g.h, h on line 1 is false. Are you sure this can never be the case?
Loading history...
The variable adler32cs seems to be never declared. If this is a global, consider adding a /** global: adler32cs */ comment.

This checks looks for references to variables that have not been declared. This is most likey a typographical error or a variable has been renamed.

To learn more about declaring variables in Javascript, see the MDN.

Loading history...
The variable d seems to not be initialized for all possible execution paths.
Loading history...
The variable d seems to be never used. Consider removing it.
Loading history...
Comprehensibility Naming Best Practice introduced by
The variable w already seems to be declared on line 1. Consider using another variable name or omitting the var keyword.

This check looks for variables that are declared in multiple lines. There may be several reasons for this.

In the simplest case the variable name was reused by mistake. This may lead to very hard to locate bugs.

If you want to reuse a variable for another purpose, consider declaring it at or near the top of your function and just assigning to it subsequently so it is always declared.

Loading history...
Comprehensibility Naming Best Practice introduced by
The variable A already seems to be declared on line 1. Consider using another variable name or omitting the var keyword.

This check looks for variables that are declared in multiple lines. There may be several reasons for this.

In the simplest case the variable name was reused by mistake. This may lead to very hard to locate bugs.

If you want to reuse a variable for another purpose, consider declaring it at or near the top of your function and just assigning to it subsequently so it is always declared.

Loading history...
Coding Style Best Practice introduced by
By convention, constructors like t should be capitalized.
Loading history...
The variable c seems to not be initialized for all possible execution paths.
Loading history...
Comprehensibility Naming Best Practice introduced by
The variable c already seems to be declared on line 1. Consider using another variable name or omitting the var keyword.

This check looks for variables that are declared in multiple lines. There may be several reasons for this.

In the simplest case the variable name was reused by mistake. This may lead to very hard to locate bugs.

If you want to reuse a variable for another purpose, consider declaring it at or near the top of your function and just assigning to it subsequently so it is always declared.

Loading history...
Comprehensibility Naming Best Practice introduced by
The variable v already seems to be declared on line 1. Consider using another variable name or omitting the var keyword.

This check looks for variables that are declared in multiple lines. There may be several reasons for this.

In the simplest case the variable name was reused by mistake. This may lead to very hard to locate bugs.

If you want to reuse a variable for another purpose, consider declaring it at or near the top of your function and just assigning to it subsequently so it is always declared.

Loading history...
The variable zpipe seems to be never declared. If this is a global, consider adding a /** global: zpipe */ comment.

This checks looks for references to variables that have not been declared. This is most likey a typographical error or a variable has been renamed.

To learn more about declaring variables in Javascript, see the MDN.

Loading history...
Comprehensibility Naming Best Practice introduced by
The variable r already seems to be declared on line 1. Consider using another variable name or omitting the var keyword.

This check looks for variables that are declared in multiple lines. There may be several reasons for this.

In the simplest case the variable name was reused by mistake. This may lead to very hard to locate bugs.

If you want to reuse a variable for another purpose, consider declaring it at or near the top of your function and just assigning to it subsequently so it is always declared.

Loading history...
A for in loop automatically includes the property of any prototype object, consider checking the key using hasOwnProperty.

When iterating over the keys of an object, this includes not only the keys of the object, but also keys contained in the prototype of that object. It is generally a best practice to check for these keys specifically:

var someObject;
for (var key in someObject) {
    if ( ! someObject.hasOwnProperty(key)) {
        continue; // Skip keys from the prototype.
    }

    doSomethingWith(key);
}
Loading history...
The variable saveAs seems to be never initialized.
Loading history...
The variable btoa seems to be never declared. If this is a global, consider adding a /** global: btoa */ comment.

This checks looks for references to variables that have not been declared. This is most likey a typographical error or a variable has been renamed.

To learn more about declaring variables in Javascript, see the MDN.

Loading history...
The variable v seems to not be initialized for all possible execution paths.
Loading history...
The variable d seems to be never initialized.
Loading history...
The parameter c is not used and could be removed.

This check looks for parameters in functions that are not used in the function body and are not followed by other parameters which are used inside the function.

Loading history...
Comprehensibility introduced by
Usage of the sequence operator is discouraged, since it may lead to obfuscated code.

The sequence or comma operator allows the inclusion of multiple expressions where only is permitted. The result of the sequence is the value of the last expression.

This operator is most often used in for statements.

Used in another places it can make code hard to read, especially when people do not realize it even exists as a seperate operator.

This check looks for usage of the sequence operator in locations where it is not necessary and could be replaced by a series of expressions or statements.

var a,b,c;

a = 1, b = 1,  c= 3;

could just as well be written as:

var a,b,c;

a = 1;
b = 1;
c = 3;

To learn more about the sequence operator, please refer to the MDN.

Loading history...
The variable PNG seems to be never declared. If this is a global, consider adding a /** global: PNG */ comment.

This checks looks for references to variables that have not been declared. This is most likey a typographical error or a variable has been renamed.

To learn more about declaring variables in Javascript, see the MDN.

Loading history...
The variable Blob seems to be never declared. If this is a global, consider adding a /** global: Blob */ comment.

This checks looks for references to variables that have not been declared. This is most likey a typographical error or a variable has been renamed.

To learn more about declaring variables in Javascript, see the MDN.

Loading history...
The variable m does not seem to be initialized in case 3 === i.colorType && o =... i.transparency.indexed on line 1 is false. Are you sure the function createImageInfo handles undefined variables?
Loading history...
The variable a seems to be never declared. If this is a global, consider adding a /** global: a */ comment.

This checks looks for references to variables that have not been declared. This is most likey a typographical error or a variable has been renamed.

To learn more about declaring variables in Javascript, see the MDN.

Loading history...
The call to t seems to have too many arguments starting with b.
Loading history...
The assignment to variable t seems to be never used. Consider removing it.
Loading history...
Coding Style Best Practice introduced by
By convention, constructors like p should be capitalized.
Loading history...
The variable e seems to be never used. Consider removing it.
Loading history...
Complexity Best Practice introduced by
There is no return statement if q.readyState !== q.DONE is false. Are you sure this is correct? If so, consider adding return; explicitly.

This check looks for functions where a return statement is found in some execution paths, but not in all.

Consider this little piece of code

function isBig(a) {
    if (a > 5000) {
        return "yes";
    }
}

console.log(isBig(5001)); //returns yes
console.log(isBig(42)); //returns undefined

The function isBig will only return a specific value when its parameter is bigger than 5000. In any other case, it will implicitly return undefined.

This behaviour may not be what you had intended. In any case, you can add a return undefined to the other execution path to make the return value explicit.

Loading history...
The variable m seems to be never used. Consider removing it.
Loading history...
The variable n does not seem to be initialized in case i = new PNG(a), a = i.im...xOf(i.colorType) !== -1 on line 1 is false. Are you sure the function isArrayBufferView handles undefined variables?
Loading history...
The variable w does not seem to be initialized in case 8 === i.bits on line 1 is false. Are you sure the function e handles undefined variables?
Loading history...
This code seems to be duplicated in your project.
Loading history...
2
return b.prototype=Object.create(DecodeStream.prototype),b.prototype.getBits=function(b){for(var c,d=this.codeSize,e=this.codeBuf,f=this.bytes,g=this.bytesPos;d<b;)"undefined"==typeof(c=f[g++])&&a("Bad encoding in flate stream"),e|=c<<d,d+=8;return c=e&(1<<b)-1,this.codeBuf=e>>b,this.codeSize=d-=b,this.bytesPos=g,c},b.prototype.getCode=function(b){for(var c=b[0],d=b[1],e=this.codeSize,f=this.codeBuf,g=this.bytes,h=this.bytesPos;e<d;){var i;"undefined"==typeof(i=g[h++])&&a("Bad encoding in flate stream"),f|=i<<e,e+=8}var j=c[f&(1<<d)-1],k=j>>16,l=65535&j;return(0==e||e<k||0==k)&&a("Bad encoding in flate stream"),this.codeBuf=f>>k,this.codeSize=e-k,this.bytesPos=h,l},b.prototype.generateHuffmanTable=function(a){for(var b=a.length,c=0,d=0;d<b;++d)a[d]>c&&(c=a[d]);for(var e=1<<c,f=new Uint32Array(e),g=1,h=0,i=2;g<=c;++g,h<<=1,i<<=1)for(var j=0;j<b;++j)if(a[j]==g){for(var k=0,l=h,d=0;d<g;++d)k=k<<1|1&l,l>>=1;for(var d=k;d<e;d+=i)f[d]=g<<16|j;++h}return[f,c]},b.prototype.readBlock=function(){function b(a,b,c,d,e){for(var f=a.getBits(c)+d;f-- >0;)b[x++]=e}var h=this.getBits(3);if(1&h&&(this.eof=!0),h>>=1,0==h){var i,j=this.bytes,k=this.bytesPos;"undefined"==typeof(i=j[k++])&&a("Bad block header in flate stream");var l=i;"undefined"==typeof(i=j[k++])&&a("Bad block header in flate stream"),l|=i<<8,"undefined"==typeof(i=j[k++])&&a("Bad block header in flate stream");var m=i;"undefined"==typeof(i=j[k++])&&a("Bad block header in flate stream"),m|=i<<8,m!=(65535&~l)&&a("Bad uncompressed block length in flate stream"),this.codeBuf=0,this.codeSize=0;var n=this.bufferLength,o=this.ensureBuffer(n+l),p=n+l;this.bufferLength=p;for(var q=n;q<p;++q){if("undefined"==typeof(i=j[k++])){this.eof=!0;break}o[q]=i}return void(this.bytesPos=k)}var r,s;if(1==h)r=f,s=g;else if(2==h){for(var t=this.getBits(5)+257,u=this.getBits(5)+1,v=this.getBits(4)+4,w=Array(c.length),x=0;x<v;)w[c[x++]]=this.getBits(3);for(var y=this.generateHuffmanTable(w),z=0,x=0,A=t+u,B=new Array(A);x<A;){var C=this.getCode(y);16==C?b(this,B,2,3,z):17==C?b(this,B,3,3,z=0):18==C?b(this,B,7,11,z=0):B[x++]=z=C}r=this.generateHuffmanTable(B.slice(0,t)),s=this.generateHuffmanTable(B.slice(t,A))}else a("Unknown block type in flate stream");for(var o=this.buffer,D=o?o.length:0,E=this.bufferLength;;){var F=this.getCode(r);if(F<256)E+1>=D&&(o=this.ensureBuffer(E+1),D=o.length),o[E++]=F;else{if(256==F)return void(this.bufferLength=E);F-=257,F=d[F];var G=F>>16;G>0&&(G=this.getBits(G));var z=(65535&F)+G;F=this.getCode(s),F=e[F],G=F>>16,G>0&&(G=this.getBits(G));var H=(65535&F)+G;E+z>=D&&(o=this.ensureBuffer(E+z),D=o.length);for(var I=0;I<z;++I,++E)o[E]=o[E-H]}}},b}();(function(){var a;a=function(){function a(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p;for(this.data=a,this.pos=8,this.palette=[],this.imgData=[],this.transparency={},this.animation=null,this.text={},g=null;;){switch(b=this.readUInt32(),k=function(){var a,b;for(b=[],h=a=0;a<4;h=++a)b.push(String.fromCharCode(this.data[this.pos++]));return b}.call(this).join("")){case"IHDR":this.width=this.readUInt32(),this.height=this.readUInt32(),this.bits=this.data[this.pos++],this.colorType=this.data[this.pos++],this.compressionMethod=this.data[this.pos++],this.filterMethod=this.data[this.pos++],this.interlaceMethod=this.data[this.pos++];break;case"acTL":this.animation={numFrames:this.readUInt32(),numPlays:this.readUInt32()||1/0,frames:[]};break;case"PLTE":this.palette=this.read(b);break;case"fcTL":g&&this.animation.frames.push(g),this.pos+=4,g={width:this.readUInt32(),height:this.readUInt32(),xOffset:this.readUInt32(),yOffset:this.readUInt32()},f=this.readUInt16(),e=this.readUInt16()||100,g.delay=1e3*f/e,g.disposeOp=this.data[this.pos++],g.blendOp=this.data[this.pos++],g.data=[];break;case"IDAT":case"fdAT":for("fdAT"===k&&(this.pos+=4,b-=4),a=(null!=g?g.data:void 0)||this.imgData,h=n=0;0<=b?n<b:n>b;h=0<=b?++n:--n)a.push(this.data[this.pos++]);break;case"tRNS":switch(this.transparency={},this.colorType){case 3:if(d=this.palette.length/3,this.transparency.indexed=this.read(b),this.transparency.indexed.length>d)throw new Error("More transparent colors than palette size");if(l=d-this.transparency.indexed.length,l>0)for(h=o=0;0<=l?o<l:o>l;h=0<=l?++o:--o)this.transparency.indexed.push(255);break;case 0:this.transparency.grayscale=this.read(b)[0];break;case 2:this.transparency.rgb=this.read(b)}break;case"tEXt":m=this.read(b),i=m.indexOf(0),j=String.fromCharCode.apply(String,m.slice(0,i)),this.text[j]=String.fromCharCode.apply(String,m.slice(i+1));break;case"IEND":return g&&this.animation.frames.push(g),this.colors=function(){switch(this.colorType){case 0:case 3:case 4:return 1;case 2:case 6:return 3}}.call(this),this.hasAlphaChannel=4===(p=this.colorType)||6===p,c=this.colors+(this.hasAlphaChannel?1:0),this.pixelBitlength=this.bits*c,this.colorSpace=function(){switch(this.colors){case 1:return"DeviceGray";case 3:return"DeviceRGB"}}.call(this),void(this.imgData=new Uint8Array(this.imgData));default:this.pos+=b}if(this.pos+=4,this.pos>this.data.length)throw new Error("Incomplete or corrupt PNG file")}}var b,c,d,e,f,g,h,i;return a.load=function(b,c,d){var e;return"function"==typeof c&&(d=c),e=new XMLHttpRequest,e.open("GET",b,!0),e.responseType="arraybuffer",e.onload=function(){var b,f;return b=new Uint8Array(e.response||e.mozResponseArrayBuffer),f=new a(b),"function"==typeof(null!=c?c.getContext:void 0)&&f.render(c),"function"==typeof d?d(f):void 0},e.send(null)},e=0,d=1,f=2,c=0,b=1,a.prototype.read=function(a){var b,c,d;for(d=[],b=c=0;0<=a?c<a:c>a;b=0<=a?++c:--c)d.push(this.data[this.pos++]);return d},a.prototype.readUInt32=function(){var a,b,c,d;return a=this.data[this.pos++]<<24,b=this.data[this.pos++]<<16,c=this.data[this.pos++]<<8,d=this.data[this.pos++],a|b|c|d},a.prototype.readUInt16=function(){var a,b;return a=this.data[this.pos++]<<8,b=this.data[this.pos++],a|b},a.prototype.decodePixels=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x;if(null==a&&(a=this.imgData),0===a.length)return new Uint8Array(0);for(a=new FlateStream(a),a=a.getBytes(),m=this.pixelBitlength/8,q=m*this.width,n=new Uint8Array(q*this.height),g=a.length,p=0,o=0,c=0;o<g;){switch(a[o++]){case 0:for(e=t=0;t<q;e=t+=1)n[c++]=a[o++];break;case 1:for(e=u=0;u<q;e=u+=1)b=a[o++],f=e<m?0:n[c-m],n[c++]=(b+f)%256;break;case 2:for(e=v=0;v<q;e=v+=1)b=a[o++],d=(e-e%m)/m,r=p&&n[(p-1)*q+d*m+e%m],n[c++]=(r+b)%256;break;case 3:for(e=w=0;w<q;e=w+=1)b=a[o++],d=(e-e%m)/m,f=e<m?0:n[c-m],r=p&&n[(p-1)*q+d*m+e%m],n[c++]=(b+Math.floor((f+r)/2))%256;break;case 4:for(e=x=0;x<q;e=x+=1)b=a[o++],d=(e-e%m)/m,f=e<m?0:n[c-m],0===p?r=s=0:(r=n[(p-1)*q+d*m+e%m],s=d&&n[(p-1)*q+(d-1)*m+e%m]),h=f+r-s,i=Math.abs(h-f),k=Math.abs(h-r),l=Math.abs(h-s),j=i<=k&&i<=l?f:k<=l?r:s,n[c++]=(b+j)%256;break;default:throw new Error("Invalid filter algorithm: "+a[o-1])}p++}return n},a.prototype.decodePalette=function(){var a,b,c,d,e,f,g,h,i,j;for(d=this.palette,g=this.transparency.indexed||[],f=new Uint8Array((g.length||0)+d.length),e=0,c=d.length,a=0,b=h=0,i=d.length;h<i;b=h+=3)f[e++]=d[b],f[e++]=d[b+1],f[e++]=d[b+2],f[e++]=null!=(j=g[a++])?j:255;return f},a.prototype.copyToImageData=function(a,b){var c,d,e,f,g,h,i,j,k,l,m;if(d=this.colors,k=null,c=this.hasAlphaChannel,this.palette.length&&(k=null!=(m=this._decodedPalette)?m:this._decodedPalette=this.decodePalette(),d=4,c=!0),e=a.data||a,j=e.length,g=k||b,f=h=0,1===d)for(;f<j;)i=k?4*b[f/4]:h,l=g[i++],e[f++]=l,e[f++]=l,e[f++]=l,e[f++]=c?g[i++]:255,h=i;else for(;f<j;)i=k?4*b[f/4]:h,e[f++]=g[i++],e[f++]=g[i++],e[f++]=g[i++],e[f++]=c?g[i++]:255,h=i},a.prototype.decode=function(){var a;return a=new Uint8Array(this.width*this.height*4),this.copyToImageData(a,this.decodePixels()),a},h=document.createElement("canvas"),i=h.getContext("2d"),g=function(a){var b;return i.width=a.width,i.height=a.height,i.clearRect(0,0,a.width,a.height),i.putImageData(a,0,0),b=new Image,b.src=h.toDataURL(),b},a.prototype.decodeFrames=function(a){var b,c,d,e,f,h,i,j;if(this.animation){for(i=this.animation.frames,j=[],c=f=0,h=i.length;f<h;c=++f)b=i[c],d=a.createImageData(b.width,b.height),e=this.decodePixels(new Uint8Array(b.data)),this.copyToImageData(d,e),b.imageData=d,j.push(b.image=g(d));return j}},a.prototype.renderFrame=function(a,b){var e,g,h;return g=this.animation.frames,e=g[b],h=g[b-1],0===b&&a.clearRect(0,0,this.width,this.height),(null!=h?h.disposeOp:void 0)===d?a.clearRect(h.xOffset,h.yOffset,h.width,h.height):(null!=h?h.disposeOp:void 0)===f&&a.putImageData(h.imageData,h.xOffset,h.yOffset),e.blendOp===c&&a.clearRect(e.xOffset,e.yOffset,e.width,e.height),a.drawImage(e.image,e.xOffset,e.yOffset)},a.prototype.animate=function(a){var b,c,d,e,f,g,h=this;return c=0,g=this.animation,e=g.numFrames,d=g.frames,f=g.numPlays,(b=function(){var g,i;if(g=c++%e,i=d[g],h.renderFrame(a,g),e>1&&c/e<f)return h.animation._timeout=setTimeout(b,i.delay)})()},a.prototype.stopAnimation=function(){var a;return clearTimeout(null!=(a=this.animation)?a._timeout:void 0)},a.prototype.render=function(a){var b,c;return a._png&&a._png.stopAnimation(),a._png=this,a.width=this.width,a.height=this.height,b=a.getContext("2d"),this.animation?(this.decodeFrames(b),this.animate(b)):(c=b.createImageData(this.width,this.height),this.copyToImageData(c,this.decodePixels()),b.putImageData(c,0,0))},a}(),window.PNG=a}).call(this);
0 ignored issues
show
Comprehensibility Naming Best Practice introduced by
The variable x already seems to be declared on line 2. Consider using another variable name or omitting the var keyword.

This check looks for variables that are declared in multiple lines. There may be several reasons for this.

In the simplest case the variable name was reused by mistake. This may lead to very hard to locate bugs.

If you want to reuse a variable for another purpose, consider declaring it at or near the top of your function and just assigning to it subsequently so it is always declared.

Loading history...
Comprehensibility Naming Best Practice introduced by
The variable o already seems to be declared on line 2. Consider using another variable name or omitting the var keyword.

This check looks for variables that are declared in multiple lines. There may be several reasons for this.

In the simplest case the variable name was reused by mistake. This may lead to very hard to locate bugs.

If you want to reuse a variable for another purpose, consider declaring it at or near the top of your function and just assigning to it subsequently so it is always declared.

Loading history...
Consider using undefined instead of void(0). It is equivalent and more straightforward to read.
Loading history...
Comprehensibility introduced by
Usage of the sequence operator is discouraged, since it may lead to obfuscated code.

The sequence or comma operator allows the inclusion of multiple expressions where only is permitted. The result of the sequence is the value of the last expression.

This operator is most often used in for statements.

Used in another places it can make code hard to read, especially when people do not realize it even exists as a seperate operator.

This check looks for usage of the sequence operator in locations where it is not necessary and could be replaced by a series of expressions or statements.

var a,b,c;

a = 1, b = 1,  c= 3;

could just as well be written as:

var a,b,c;

a = 1;
b = 1;
c = 3;

To learn more about the sequence operator, please refer to the MDN.

Loading history...
The variable c seems to be never used. Consider removing it.
Loading history...
The variable x is changed as part of the for loop for example by x++ on line 2. Only the value of the last iteration will be visible in this function if it is called after the loop.
Loading history...
You have used a bitwise operator & in a condition. Did you maybe want to use the logical operator &&
Loading history...
Comprehensibility Naming Best Practice introduced by
The variable z already seems to be declared on line 2. Consider using another variable name or omitting the var keyword.

This check looks for variables that are declared in multiple lines. There may be several reasons for this.

In the simplest case the variable name was reused by mistake. This may lead to very hard to locate bugs.

If you want to reuse a variable for another purpose, consider declaring it at or near the top of your function and just assigning to it subsequently so it is always declared.

Loading history...
Coding Style Best Practice introduced by
Curly braces around statements make for more readable code and help prevent bugs when you add further statements.

Consider adding curly braces around all statements when they are executed conditionally. This is optional if there is only one statement, but leaving them out can lead to unexpected behaviour if another statement is added later.

Consider:

if (a > 0)
    b = 42;

If you or someone else later decides to put another statement in, only the first statement will be executed.

if (a > 0)
    console.log("a > 0");
    b = 42;

In this case the statement b = 42 will always be executed, while the logging statement will be executed conditionally.

if (a > 0) {
    console.log("a > 0");
    b = 42;
}

ensures that the proper code will be executed conditionally no matter how many statements are added or removed.

Loading history...
Comprehensibility introduced by
There is no default case in this switch, so nothing gets returned when all cases fail. You might want to consider adding a default or return undefined explicitly.
Loading history...
Complexity Best Practice introduced by
There is no return statement if this.animation is false. Are you sure this is correct? If so, consider adding return; explicitly.

This check looks for functions where a return statement is found in some execution paths, but not in all.

Consider this little piece of code

function isBig(a) {
    if (a > 5000) {
        return "yes";
    }
}

console.log(isBig(5001)); //returns yes
console.log(isBig(42)); //returns undefined

The function isBig will only return a specific value when its parameter is bigger than 5000. In any other case, it will implicitly return undefined.

This behaviour may not be what you had intended. In any case, you can add a return undefined to the other execution path to make the return value explicit.

Loading history...
The variable Image seems to be never declared. If this is a global, consider adding a /** global: Image */ comment.

This checks looks for references to variables that have not been declared. This is most likey a typographical error or a variable has been renamed.

To learn more about declaring variables in Javascript, see the MDN.

Loading history...
The variable XMLHttpRequest seems to be never declared. If this is a global, consider adding a /** global: XMLHttpRequest */ comment.

This checks looks for references to variables that have not been declared. This is most likey a typographical error or a variable has been renamed.

To learn more about declaring variables in Javascript, see the MDN.

Loading history...
The variable s seems to not be initialized for all possible execution paths. Are you sure getCode handles undefined variables?
Loading history...
The variable e seems to be never used. Consider removing it.
Loading history...
The variable b seems to be never used. Consider removing it.
Loading history...
The assignment to variable e seems to be never used. Consider removing it.
Loading history...
Coding Style Best Practice introduced by
By convention, constructors like a should be capitalized.
Loading history...
As per coding-style, switch statements should have a default case.
Loading history...
The assignment to variable d seems to be never used. Consider removing it.
Loading history...
The variable r seems to not be initialized for all possible execution paths. Are you sure getCode handles undefined variables?
Loading history...
Comprehensibility Naming Best Practice introduced by
The variable d already seems to be declared on line 2. Consider using another variable name or omitting the var keyword.

This check looks for variables that are declared in multiple lines. There may be several reasons for this.

In the simplest case the variable name was reused by mistake. This may lead to very hard to locate bugs.

If you want to reuse a variable for another purpose, consider declaring it at or near the top of your function and just assigning to it subsequently so it is always declared.

Loading history...
Complexity Best Practice introduced by
There is no return statement if g = c++ % e, i = d.g, h.... g), e > 1 && c / e < f is false. Are you sure this is correct? If so, consider adding return; explicitly.

This check looks for functions where a return statement is found in some execution paths, but not in all.

Consider this little piece of code

function isBig(a) {
    if (a > 5000) {
        return "yes";
    }
}

console.log(isBig(5001)); //returns yes
console.log(isBig(42)); //returns undefined

The function isBig will only return a specific value when its parameter is bigger than 5000. In any other case, it will implicitly return undefined.

This behaviour may not be what you had intended. In any case, you can add a return undefined to the other execution path to make the return value explicit.

Loading history...
The variable h seems to be never used. Consider removing it.
Loading history...
This code seems to be duplicated in your project.
Loading history...