UNPKG

canvaskit-wasm

Version:

A WASM version of Skia's Canvas API

108 lines (106 loc) 182 kB
var CanvasKitInit = (function() { var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined; return ( function(CanvasKitInit) { CanvasKitInit = CanvasKitInit || {}; var aa,ba;var g,h,k;var m;m||(m=typeof CanvasKitInit !== 'undefined' ? CanvasKitInit : {}); (function(a){a.nr=a.nr||[];a.nr.push(function(){a.MakeSWCanvasSurface=function(b){var c=b;if("CANVAS"!==c.tagName&&(c=document.getElementById(b),!c))throw"Canvas with id "+b+" was not found";if(b=a.MakeSurface(c.width,c.height))b.oq=c;return b};a.MakeCanvasSurface||(a.MakeCanvasSurface=a.MakeSWCanvasSurface);a.MakeSurface=function(b,c){var d={width:b,height:c,colorType:a.ColorType.RGBA_8888,alphaType:a.AlphaType.Unpremul},e=b*c*4,f=a._malloc(e);if(d=this._getRasterDirectSurface(d,f,4*b))d.oq=null, d.St=b,d.Ot=c,d.Rt=e,d.Ks=f,d.getCanvas().clear(a.TRANSPARENT);return d};a.SkSurface.prototype.flush=function(){this._flush();if(this.oq){var b=new Uint8ClampedArray(a.buffer,this.Ks,this.Rt);b=new ImageData(b,this.St,this.Ot);this.oq.getContext("2d").putImageData(b,0,0)}};a.SkSurface.prototype.dispose=function(){this.Ks&&a._free(this.Ks);this.delete()};a.currentContext=a.currentContext||function(){};a.setCurrentContext=a.setCurrentContext||function(){}})})(m); (function(a){a.nr=a.nr||[];a.nr.push(function(){function b(a,b,e){return a&&a.hasOwnProperty(b)?a[b]:e}a.GetWebGLContext=function(a,d){d={alpha:b(d,"alpha",1),depth:b(d,"depth",1),stencil:b(d,"stencil",0),antialias:b(d,"antialias",1),premultipliedAlpha:b(d,"premultipliedAlpha",1),preserveDrawingBuffer:b(d,"preserveDrawingBuffer",0),preferLowPowerToHighPerformance:b(d,"preferLowPowerToHighPerformance",0),failIfMajorPerformanceCaveat:b(d,"failIfMajorPerformanceCaveat",0),yt:b(d,"majorVersion",1),kv:b(d, "minorVersion",0),pt:b(d,"enableExtensionsByDefault",1),ev:b(d,"explicitSwapControl",0),rv:b(d,"renderViaOffscreenBackBuffer",0)};return!a||d.explicitSwapControl?0:h.createContext(a,d)};a.MakeWebGLCanvasSurface=function(b,d,e){var c=b;if("CANVAS"!==c.tagName&&(c=document.getElementById(b),!c))throw"Canvas with id "+b+" was not found";b=this.GetWebGLContext(c);if(!b||0>b)throw"failed to create webgl context: err "+b;if(!(c||d&&e))throw"height and width must be provided with context";var l=this.MakeGrContext(b); l.setResourceCacheLimitBytes(268435456);d=this.MakeOnScreenGLSurface(l,d||c.width,e||c.height);if(!d)return d=c.cloneNode(!0),c.parentNode.replaceChild(d,c),d.classList.add("ck-replaced"),a.MakeSWCanvasSurface(d);d.Rr=b;d.grContext=l;return d};a.MakeCanvasSurface=a.MakeWebGLCanvasSurface})})(m); (function(a){function b(a){return Math.round(Math.max(0,Math.min(a||0,255)))}function c(b,c,d){if(!b||!b.length)return 0;d||(d=a._malloc(b.length*c.BYTES_PER_ELEMENT));c.set(b,d/c.BYTES_PER_ELEMENT);return d}function d(b,c,d){if(!b||!b.length)return 0;d||(d=a._malloc(b.length*b[0].length*c.BYTES_PER_ELEMENT));for(var e=0,q=d/c.BYTES_PER_ELEMENT,f=0;f<b.length;f++)for(var v=0;v<b[0].length;v++)c[q+e]=b[f][v],e++;return d}function e(a,b){if(f)require("fs").writeFile(b,new Buffer(a),function(a){if(a)throw a; });else{url=window.URL.createObjectURL(new Blob([a],{type:"application/octet-stream"}));var c=document.createElement("a");document.body.appendChild(c);c.href=url;c.download=b;c.click();setTimeout(function(){URL.revokeObjectURL(url);c.remove()},50)}}a.Color=function(a,c,d,e){void 0===e&&(e=1);return(b(255*e)<<24|b(a)<<16|b(c)<<8|b(d)<<0)>>>0};a.getColorComponents=function(a){return[a>>16&255,a>>8&255,a>>0&255,(a>>24&255)/255]};a.multiplyByAlpha=function(a,c){return 1===c?a:(b((a>>24&255)*c)<<24|a& 16777215)>>>0};var f=!(new Function("try {return this===window;}catch(e){ return false;}"))(),l={};a.wr=function(){this.kr=[];this.Cq=null;Object.defineProperty(this,"length",{enumerable:!0,get:function(){return this.kr.length/4}})};a.wr.prototype.push=function(a,b,c,d){this.Cq||this.kr.push(a,b,c,d)};a.wr.prototype.set=function(b,c,d,e,f){0>b||b>=this.kr.length/4||(b*=4,this.Cq?(b=this.Cq/4+b,a.HEAPF32[b]=c,a.HEAPF32[b+1]=d,a.HEAPF32[b+2]=e,a.HEAPF32[b+3]=f):(this.kr[b]=c,this.kr[b+1]=d,this.kr[b+ 2]=e,this.kr[b+3]=f))};a.wr.prototype.build=function(){return this.Cq?this.Cq:this.Cq=c(this.kr,a.HEAPF32)};a.wr.prototype.delete=function(){this.Cq&&(a._free(this.Cq),this.Cq=null)};a.Qr=function(){this.Wr=[];this.Cq=null;Object.defineProperty(this,"length",{enumerable:!0,get:function(){return this.Wr.length}})};a.Qr.prototype.push=function(a){this.Cq||this.Wr.push(a)};a.Qr.prototype.set=function(b,c){0>b||b>=this.Wr.length||(b*=4,this.Cq?a.HEAPU32[this.Cq/4+b]=c:this.Wr[b]=c)};a.Qr.prototype.build= function(){return this.Cq?this.Cq:this.Cq=c(this.Wr,a.HEAPU32)};a.Qr.prototype.delete=function(){this.Cq&&(a._free(this.Cq),this.Cq=null)};a.SkRectBuilder=a.wr;a.RSXFormBuilder=a.wr;a.SkColorBuilder=a.Qr;a.onRuntimeInitialized=function(){a.SkMatrix={};a.SkMatrix.identity=function(){return[1,0,0,0,1,0,0,0,1]};a.SkMatrix.invert=function(b){var c=b[0]*b[4]*b[8]+b[1]*b[5]*b[6]+b[2]*b[3]*b[7]-b[2]*b[4]*b[6]-b[1]*b[3]*b[8]-b[0]*b[5]*b[7];return c?[(b[4]*b[8]-b[5]*b[7])/c,(b[2]*b[7]-b[1]*b[8])/c,(b[1]*b[5]- b[2]*b[4])/c,(b[5]*b[6]-b[3]*b[8])/c,(b[0]*b[8]-b[2]*b[6])/c,(b[2]*b[3]-b[0]*b[5])/c,(b[3]*b[7]-b[4]*b[6])/c,(b[1]*b[6]-b[0]*b[7])/c,(b[0]*b[4]-b[1]*b[3])/c]:a.SkMatrix.identity()};a.SkMatrix.mapPoints=function(a,b){if(b.length%2)throw"mapPoints requires an even length arr";for(var c=0;c<b.length;c+=2){var d=b[c],e=b[c+1],q=a[6]*d+a[7]*e+a[8],f=a[3]*d+a[4]*e+a[5];b[c]=(a[0]*d+a[1]*e+a[2])/q;b[c+1]=f/q}return b};a.SkMatrix.multiply=function(a,b){for(var c=[0,0,0,0,0,0,0,0,0],d=0;3>d;d++)for(var e= 0;3>e;e++)c[3*d+e]=a[3*d]*b[e]+a[3*d+1]*b[3+e]+(a[3*d+2]||0)*(b[6+e]||0);return c};a.SkMatrix.rotated=function(a,b,c){b=b||0;c=c||0;var d=Math.sin(a);a=Math.cos(a);return[a,-d,d*c+(1-a)*b,d,a,-d*b+(1-a)*c,0,0,1]};a.SkMatrix.scaled=function(a,b,c,d){c=c||0;d=d||0;return[a,0,c-a*c,0,b,d-b*d,0,0,1]};a.SkMatrix.skewed=function(a,b,c,d){return[1,a,-a*(c||0),b,1,-b*(d||0),0,0,1]};a.SkMatrix.translated=function(a,b){return[1,0,a,0,1,b,0,0,1]};a.SkColorMatrix={};a.SkColorMatrix.identity=function(){var a= new Float32Array(20);a[0]=1;a[6]=1;a[12]=1;a[18]=1;return a};a.SkColorMatrix.scaled=function(a,b,c,d){var e=new Float32Array(20);e[0]=a;e[6]=b;e[12]=c;e[18]=d;return e};var b=[[6,7,11,12],[0,10,2,12],[0,1,5,6]];a.SkColorMatrix.rotated=function(c,d,e){var f=a.SkColorMatrix.identity();c=b[c];f[c[0]]=e;f[c[1]]=d;f[c[2]]=-d;f[c[3]]=e;return f};a.SkColorMatrix.postTranslate=function(a,b,c,d,e){a[4]+=b;a[9]+=c;a[14]+=d;a[19]+=e;return a};a.SkColorMatrix.concat=function(a,b){for(var c=new Float32Array(20), d=0,e=0;20>e;e+=5){for(var f=0;4>f;f++)c[d++]=a[e]*b[f]+a[e+1]*b[f+5]+a[e+2]*b[f+10]+a[e+3]*b[f+15];c[d++]=a[e]*b[4]+a[e+1]*b[9]+a[e+2]*b[14]+a[e+3]*b[19]+a[e+4]}return c};a.SkPath.prototype.addArc=function(a,b,c){this._addArc(a,b,c);return this};a.SkPath.prototype.addOval=function(a,b,c){void 0===c&&(c=1);this._addOval(a,!!b,c);return this};a.SkPath.prototype.addPath=function(){var a=Array.prototype.slice.call(arguments),b=a[0],c=!1;"boolean"===typeof a[a.length-1]&&(c=a.pop());if(1===a.length)this._addPath(b, 1,0,0,0,1,0,0,0,1,c);else if(2===a.length)a=a[1],this._addPath(b,a[0],a[1],a[2],a[3],a[4],a[5],a[6]||0,a[7]||0,a[8]||1,c);else if(7===a.length||10===a.length)this._addPath(b,a[1],a[2],a[3],a[4],a[5],a[6],a[7]||0,a[8]||0,a[9]||1,c);else return null;return this};a.SkPath.prototype.addRect=function(){if(1===arguments.length||2===arguments.length){var a=arguments[0];this._addRect(a.fLeft,a.fTop,a.fRight,a.fBottom,arguments[1]||!1)}else if(4===arguments.length||5===arguments.length)a=arguments,this._addRect(a[0], a[1],a[2],a[3],a[4]||!1);else return null;return this};a.SkPath.prototype.addRoundRect=function(){var b=arguments;if(3===b.length||6===b.length)var d=b[b.length-2];else if(6===b.length||7===b.length){d=b[b.length-3];var e=b[b.length-2];d=[d,e,d,e,d,e,d,e]}else return null;if(8!==d.length)return null;d=c(d,a.HEAPF32);if(3===b.length||4===b.length){e=b[0];var f=b[b.length-1];this._addRoundRect(e.fLeft,e.fTop,e.fRight,e.fBottom,d,f)}else 6!==b.length&&7!==b.length||this._addRoundRect(b[0],b[1],b[2], b[3],d,f);a._free(d);return this};a.SkPath.prototype.arc=function(b,c,d,e,f,p){b=a.LTRBRect(b-d,c-d,b+d,c+d);f=(f-e)/Math.PI*180-360*!!p;p=new a.SkPath;p.addArc(b,e/Math.PI*180,f);this.addPath(p,!0);p.delete();return this};a.SkPath.prototype.arcTo=function(){var a=arguments;if(5===a.length)this._arcTo(a[0],a[1],a[2],a[3],a[4]);else if(4===a.length)this._arcTo(a[0],a[1],a[2],a[3]);else if(7===a.length)this._arcTo(a[0],a[1],a[2],!!a[3],!!a[4],a[5],a[6]);else throw"Invalid args for arcTo. Expected 4, 5, or 7, got "+ a.length;return this};a.SkPath.prototype.close=function(){this._close();return this};a.SkPath.prototype.conicTo=function(a,b,c,d,e){this._conicTo(a,b,c,d,e);return this};a.SkPath.prototype.cubicTo=function(a,b,c,d,e,f){this._cubicTo(a,b,c,d,e,f);return this};a.SkPath.prototype.dash=function(a,b,c){return this._dash(a,b,c)?this:null};a.SkPath.prototype.lineTo=function(a,b){this._lineTo(a,b);return this};a.SkPath.prototype.moveTo=function(a,b){this._moveTo(a,b);return this};a.SkPath.prototype.offset= function(a,b){this._transform(1,0,a,0,1,b,0,0,1);return this};a.SkPath.prototype.op=function(a,b){return this._op(a,b)?this:null};a.SkPath.prototype.quadTo=function(a,b,c,d){this._quadTo(a,b,c,d);return this};a.SkPath.prototype.simplify=function(){return this._simplify()?this:null};a.SkPath.prototype.stroke=function(b){b=b||{};b.width=b.width||1;b.miter_limit=b.miter_limit||4;b.cap=b.cap||a.StrokeCap.Butt;b.join=b.join||a.StrokeJoin.Miter;b.precision=b.precision||1;return this._stroke(b)?this:null}; a.SkPath.prototype.transform=function(){if(1===arguments.length){var a=arguments[0];this._transform(a[0],a[1],a[2],a[3],a[4],a[5],a[6]||0,a[7]||0,a[8]||1)}else if(6===arguments.length||9===arguments.length)a=arguments,this._transform(a[0],a[1],a[2],a[3],a[4],a[5],a[6]||0,a[7]||0,a[8]||1);else throw"transform expected to take 1 or 9 arguments. Got "+arguments.length;return this};a.SkPath.prototype.trim=function(a,b,c){return this._trim(a,b,!!c)?this:null};a.SkVertices.prototype.applyBones=function(b){var c= a.HEAPF32;var d=void 0;if(b&&b.length&&b[0].length){d||(d=a._malloc(b.length*b[0].length*b[0][0].length*c.BYTES_PER_ELEMENT));for(var e=0,f=d/c.BYTES_PER_ELEMENT,p=0;p<b.length;p++)for(var q=0;q<b[0].length;q++)for(var l=0;l<b[0][0].length;l++)c[f+e]=b[p][q][l],e++;c=d}else c=0;b=this._applyBones(c,b.length);a._free(c);return b};a.SkImage.prototype.encodeToData=function(){if(!arguments.length)return this._encodeToData();if(2===arguments.length){var a=arguments;return this._encodeToDataWithFormat(a[0], a[1])}throw"encodeToData expected to take 0 or 2 arguments. Got "+arguments.length;};a.SkImage.prototype.makeShader=function(a,b,c){return c?(6===c.length&&c.push(0,0,1),this._makeShader(a,b,c)):this._makeShader(a,b)};a.SkImage.prototype.readPixels=function(b,c,d){switch(b.Vt){case a.ColorType.RGBA_8888:var e=4*b.width;break;case a.ColorType.RGBA_F32:e=16*b.width;break;default:return}var f=e*b.height,p=a._malloc(f);if(!this._readPixels(b,p,e,c,d))return null;c=null;switch(b.Vt){case a.ColorType.RGBA_8888:c= (new Uint8Array(a.buffer,p,f)).slice();break;case a.ColorType.RGBA_F32:c=(new Float32Array(a.buffer,p,f)).slice()}a._free(p);return c};a.SkCanvas.prototype.drawAtlas=function(b,d,e,f,p,l){if(b&&f&&d&&e){p||(p=a.BlendMode.SrcOver);var q;d.build?q=d.build():q=c(d,a.HEAPF32);var v;e.build?v=e.build():v=c(e,a.HEAPF32);var y=0;l&&(l.build?y=l.build():y=c(l,a.HEAPU32));this._drawAtlas(b,v,q,y,e.length,p,f);q&&!d.build&&a._free(q);v&&!e.build&&a._free(v);y&&!l.build&&a._free(y)}};a.SkCanvas.prototype.drawText= function(b,c,d,e,f){if("string"===typeof b){var p=ca(b)+1,l=a._malloc(p);n(b,r,l,p);this._drawSimpleText(l,p,c,d,f,e)}else this._drawShapedText(b,c,d,e)};a.SkCanvas.prototype.readPixels=function(b,c,d,e,f,p,l){f=f||a.AlphaType.Unpremul;p=p||a.ColorType.RGBA_8888;l=l||4*d;var q=e*l,v=a._malloc(q);if(!this._readPixels({width:d,height:e,colorType:p,alphaType:f},v,l,b,c))return a._free(v),null;b=(new Uint8Array(a.HEAPU8.buffer,v,q)).slice();a._free(v);return b};a.SkCanvas.prototype.writePixels=function(b, c,d,e,f,p,l){if(b.byteLength%(c*d))throw"pixels length must be a multiple of the srcWidth * srcHeight";var q=b.byteLength/(c*d);p=p||a.AlphaType.Unpremul;l=l||a.ColorType.RGBA_8888;var v=q*c;q=a._malloc(b.byteLength);a.HEAPU8.set(b,q);b=this._writePixels({width:c,height:d,colorType:l,alphaType:p},q,v,e,f);a._free(q);return b};a.SkColorFilter.MakeMatrix=function(b){if(b&&20===b.length){b=c(b,a.HEAPF32);var d=a.SkColorFilter._makeMatrix(b);a._free(b);return d}};a.SkFont.prototype.getWidths=function(b){var c= b.length+1,d=ca(b)+1,e=a._malloc(d);n(b,r,e,d);b=a._malloc(4*c);if(!this._getWidths(e,d,c,b))return a._free(e),a._free(b),null;c=new Float32Array(a.buffer,b,c);c=Array.from(c);a._free(e);a._free(b);return c};a.SkFontMgr.prototype.MakeTypefaceFromData=function(b){b=new Uint8Array(b);var c=a._malloc(b.byteLength);a.HEAPU8.set(b,c);return(b=this._makeTypefaceFromData(c,b.byteLength))?b:null};a.SkPicture.prototype.DEBUGONLY_saveAsFile=function(b){var c=this.DEBUGONLY_serialize();if(c){var d=a.getSkDataBytes(c); e(d,b);c.delete()}};a.SkSurface.prototype.captureFrameAsSkPicture=function(b){var c=new a.SkPictureRecorder,d=c.beginRecording(a.LTRBRect(0,0,this.width(),this.height()));b(d);b=c.finishRecordingAsPicture();c.delete();return b};a.SkSurface.prototype.requestAnimationFrame=function(b){this.jt||(this.jt=this.getCanvas());window.requestAnimationFrame(function(){void 0!==this.Rr&&a.setCurrentContext(this.Rr);b(this.jt);this.flush()}.bind(this))};a.SkTextBlob.MakeOnPath=function(b,c,d,e){if(b&&b.length&& c&&c.countPoints()){if(1===c.countPoints())return this.MakeFromText(b,d);e||(e=0);var f=d.getWidths(b),p=new a.RSXFormBuilder;c=new a.SkPathMeasure(c,!1,1);for(var l=0;l<b.length;l++){var q=f[l];e+=q/2;if(e>c.getLength()){if(!c.nextContour()){b=b.substring(0,l);break}e=q/2}var v=c.getPosTan(e),x=v[2],z=v[3];p.push(x,z,v[0]-q/2*x,v[1]-q/2*z);e+=q/2}b=this.MakeFromRSXform(b,p,d);p.delete();c.delete();return b}};a.SkTextBlob.MakeFromRSXform=function(b,c,d){var e=ca(b)+1,f=a._malloc(e);n(b,r,f,e);b=c.build(); d=a.SkTextBlob._MakeFromRSXform(f,e-1,b,d,a.TextEncoding.UTF8);if(!d)return null;var p=d.delete.bind(d);d.delete=function(){a._free(f);p()};return d};a.SkTextBlob.MakeFromText=function(b,c){var d=ca(b)+1,e=a._malloc(d);n(b,r,e,d);b=a.SkTextBlob._MakeFromText(e,d-1,c,a.TextEncoding.UTF8);if(!b)return null;var f=b.delete.bind(b);b.delete=function(){a._free(e);f()};return b};a.nr&&a.nr.forEach(function(a){a()})};a.LTRBRect=function(a,b,c,d){return{fLeft:a,fTop:b,fRight:c,fBottom:d}};a.XYWHRect=function(a, b,c,d){return{fLeft:a,fTop:b,fRight:a+c,fBottom:b+d}};a.RRectXY=function(a,b,c){return{rect:a,rx1:b,ry1:c,rx2:b,ry2:c,rx3:b,ry3:c,rx4:b,ry4:c}};a.MakePathFromCmds=function(b){for(var d=0,e=0;e<b.length;e++)d+=b[e].length;if(l[d])var f=l[d];else f=new Float32Array(d),l[d]=f;var p=0;for(e=0;e<b.length;e++)for(var D=0;D<b[e].length;D++)f[p]=b[e][D],p++;b=[c(f,a.HEAPF32),d];d=a._MakePathFromCmds(b[0],b[1]);a._free(b[0]);return d};a.MakeSkDashPathEffect=function(b,d){d||(d=0);if(!b.length||1===b.length% 2)throw"Intervals array must have even length";var e=c(b,a.HEAPF32);b=a._MakeSkDashPathEffect(e,b.length,d);a._free(e);return b};a.MakeImageFromEncoded=function(b){b=new Uint8Array(b);var c=a._malloc(b.byteLength);a.HEAPU8.set(b,c);return(b=a._decodeImage(c,b.byteLength))?b:null};a.Mt=function(b,c,d,e,f){var l=b.byteLength/(c*d);d={width:c,height:d,alphaType:e,colorType:f};e=a._malloc(b.byteLength);a.HEAPU8.set(b,e);return a._MakeImage(d,e,b.byteLength,c*l)};a.MakeLinearGradientShader=function(b, d,e,f,l,D,y){var p=c(e,a.HEAPU32);f=c(f,a.HEAPF32);y=y||0;D?(6===D.length&&D.push(0,0,1),b=a._MakeLinearGradientShader(b,d,p,f,e.length,l,y,D)):b=a._MakeLinearGradientShader(b,d,p,f,e.length,l,y);a._free(p);a._free(f);return b};a.MakeRadialGradientShader=function(b,d,e,f,l,D,y){var p=c(e,a.HEAPU32);f=c(f,a.HEAPF32);y=y||0;D?(6===D.length&&D.push(0,0,1),b=a._MakeRadialGradientShader(b,d,p,f,e.length,l,y,D)):b=a._MakeRadialGradientShader(b,d,p,f,e.length,l,y);a._free(p);a._free(f);return b};a.MakeTwoPointConicalGradientShader= function(b,d,e,f,l,D,y,F,I){var p=c(l,a.HEAPU32);D=c(D,a.HEAPF32);I=I||0;F?(6===F.length&&F.push(0,0,1),b=a._MakeTwoPointConicalGradientShader(b,d,e,f,p,D,l.length,y,I,F)):b=a._MakeTwoPointConicalGradientShader(b,d,e,f,p,D,l.length,y,I);a._free(p);a._free(D);return b};a.MakeSkVertices=function(b,e,f,l,z,D,y,F){var p=y&&y.length||0,q=0;f&&f.length&&(q|=1);l&&l.length&&(q|=2);z&&z.length&&(q|=4);void 0===F||F||(q|=8);b=new a._SkVerticesBuilder(b,e.length,p,q);d(e,a.HEAPF32,b.positions());b.texCoords()&& d(f,a.HEAPF32,b.texCoords());b.colors()&&c(l,a.HEAPU32,b.colors());b.boneIndices()&&d(z,a.HEAP32,b.boneIndices());b.boneWeights()&&d(D,a.HEAPF32,b.boneWeights());b.indices()&&c(y,a.HEAPU16,b.indices());return b.detach()};a.MakeManagedAnimation=function(b,d){if(!a._MakeManagedAnimation)throw"Not compiled with MakeManagedAnimation";if(!d)return a._MakeManagedAnimation(b,0,0,0,0);for(var e=[],f=[],l=[],p=Object.keys(d||{}),q=0;q<p.length;q++){var F=p[q],I=new Uint8Array(d[F]),ja=a._malloc(I.byteLength); a.HEAPU8.set(I,ja);f.push(ja);l.push(I.byteLength);I=ca(F)+1;ja=a._malloc(I);n(F,r,ja,I);e.push(ja)}d=c(e,a.HEAPU32);f=c(f,a.HEAPU32);l=c(l,a.HEAPU32);b=a._MakeManagedAnimation(b,p.length,d,f,l);a._free(d);a._free(f);a._free(l);return b};(function(){function b(a){for(var b=0;b<a.length;b++)if(void 0!==a[b]&&!Number.isFinite(a[b]))return!1;return!0}function c(b){var c=a.getColorComponents(b);b=c[0];var d=c[1],e=c[2];c=c[3];if(1===c)return b=b.toString(16).toLowerCase(),d=d.toString(16).toLowerCase(), e=e.toString(16).toLowerCase(),b=1===b.length?"0"+b:b,d=1===d.length?"0"+d:d,e=1===e.length?"0"+e:e,"#"+b+d+e;c=0===c||1===c?c:c.toFixed(8);return"rgba("+b+", "+d+", "+e+", "+c+")"}function d(a){var b=parseFloat(a)||1;return a&&-1!==a.indexOf("%")?b/100:b}function e(b){b=b.toLowerCase();if(b.startsWith("#")){var c=255;switch(b.length){case 9:c=parseInt(b.slice(7,9),16);case 7:var e=parseInt(b.slice(1,3),16);var f=parseInt(b.slice(3,5),16);var l=parseInt(b.slice(5,7),16);break;case 5:c=17*parseInt(b.slice(4, 5),16);case 4:e=17*parseInt(b.slice(1,2),16),f=17*parseInt(b.slice(2,3),16),l=17*parseInt(b.slice(3,4),16)}return a.Color(e,f,l,c/255)}return b.startsWith("rgba")?(b=b.slice(5,-1),b=b.split(","),a.Color(+b[0],+b[1],+b[2],d(b[3]))):b.startsWith("rgb")?(b=b.slice(4,-1),b=b.split(","),a.Color(+b[0],+b[1],+b[2],d(b[3]))):b.startsWith("gray(")||b.startsWith("hsl")||(b=sd[b],void 0===b)?a.BLACK:b}function l(a){a=td.exec(a);if(!a)return null;var b=parseFloat(a[4]),c=16;switch(a[5]){case "em":case "rem":c= 16*b;break;case "pt":c=4*b/3;break;case "px":c=b;break;case "pc":c=16*b;break;case "in":c=96*b;break;case "cm":c=96*b/2.54;break;case "mm":c=96/25.4*b;break;case "q":c=96/25.4/4*b;break;case "%":c=16/75*b}return{style:a[1],variant:a[2],weight:a[3],sizePx:c,family:a[6].trim()}}function D(d){this.oq=d;this.wq=new a.SkPaint;this.wq.setAntiAlias(!0);this.wq.setStrokeMiter(10);this.wq.setStrokeCap(a.StrokeCap.Butt);this.wq.setStrokeJoin(a.StrokeJoin.Miter);this.hs="10px monospace";this.zr=new a.SkFont(null, 10);this.Nq=this.Xq=a.BLACK;this.Cr=0;this.Ur=a.TRANSPARENT;this.Er=this.Dr=0;this.Vr=this.er=1;this.Tr=0;this.Br=[];this.tq=a.BlendMode.SrcOver;this.pr=a.FilterQuality.Low;this.Sr=!0;this.wq.setStrokeWidth(this.Vr);this.wq.setBlendMode(this.tq);this.yq=new a.SkPath;this.Bq=a.SkMatrix.identity();this.kt=[];this.Hr=[];this.jr=function(){this.yq.delete();this.wq.delete();this.zr.delete();this.Hr.forEach(function(a){a.jr()})};Object.defineProperty(this,"currentTransform",{enumerable:!0,get:function(){return{a:this.Bq[0], c:this.Bq[1],e:this.Bq[2],b:this.Bq[3],d:this.Bq[4],f:this.Bq[5]}},set:function(a){a.a&&this.setTransform(a.a,a.b,a.c,a.d,a.e,a.f)}});Object.defineProperty(this,"fillStyle",{enumerable:!0,get:function(){return Number.isInteger(this.Nq)?c(this.Nq):this.Nq},set:function(a){"string"===typeof a?this.Nq=e(a):a.Ar&&(this.Nq=a)}});Object.defineProperty(this,"font",{enumerable:!0,get:function(){return this.hs},set:function(a){var b=l(a),c=b.family;b.typeface=wa[c]?wa[c][(b.style||"normal")+"|"+(b.variant|| "normal")+"|"+(b.weight||"normal")]||wa[c]["*"]:null;b&&(this.zr.setSize(b.sizePx),this.zr.setTypeface(b.typeface),this.hs=a)}});Object.defineProperty(this,"globalAlpha",{enumerable:!0,get:function(){return this.er},set:function(a){!isFinite(a)||0>a||1<a||(this.er=a)}});Object.defineProperty(this,"globalCompositeOperation",{enumerable:!0,get:function(){switch(this.tq){case a.BlendMode.SrcOver:return"source-over";case a.BlendMode.DstOver:return"destination-over";case a.BlendMode.Src:return"copy";case a.BlendMode.Dst:return"destination"; case a.BlendMode.Clear:return"clear";case a.BlendMode.SrcIn:return"source-in";case a.BlendMode.DstIn:return"destination-in";case a.BlendMode.SrcOut:return"source-out";case a.BlendMode.DstOut:return"destination-out";case a.BlendMode.SrcATop:return"source-atop";case a.BlendMode.DstATop:return"destination-atop";case a.BlendMode.Xor:return"xor";case a.BlendMode.Plus:return"lighter";case a.BlendMode.Multiply:return"multiply";case a.BlendMode.Screen:return"screen";case a.BlendMode.Overlay:return"overlay"; case a.BlendMode.Darken:return"darken";case a.BlendMode.Lighten:return"lighten";case a.BlendMode.ColorDodge:return"color-dodge";case a.BlendMode.ColorBurn:return"color-burn";case a.BlendMode.HardLight:return"hard-light";case a.BlendMode.SoftLight:return"soft-light";case a.BlendMode.Difference:return"difference";case a.BlendMode.Exclusion:return"exclusion";case a.BlendMode.Hue:return"hue";case a.BlendMode.Saturation:return"saturation";case a.BlendMode.Color:return"color";case a.BlendMode.Luminosity:return"luminosity"}}, set:function(b){switch(b){case "source-over":this.tq=a.BlendMode.SrcOver;break;case "destination-over":this.tq=a.BlendMode.DstOver;break;case "copy":this.tq=a.BlendMode.Src;break;case "destination":this.tq=a.BlendMode.Dst;break;case "clear":this.tq=a.BlendMode.Clear;break;case "source-in":this.tq=a.BlendMode.SrcIn;break;case "destination-in":this.tq=a.BlendMode.DstIn;break;case "source-out":this.tq=a.BlendMode.SrcOut;break;case "destination-out":this.tq=a.BlendMode.DstOut;break;case "source-atop":this.tq= a.BlendMode.SrcATop;break;case "destination-atop":this.tq=a.BlendMode.DstATop;break;case "xor":this.tq=a.BlendMode.Xor;break;case "lighter":this.tq=a.BlendMode.Plus;break;case "plus-lighter":this.tq=a.BlendMode.Plus;break;case "plus-darker":throw"plus-darker is not supported";case "multiply":this.tq=a.BlendMode.Multiply;break;case "screen":this.tq=a.BlendMode.Screen;break;case "overlay":this.tq=a.BlendMode.Overlay;break;case "darken":this.tq=a.BlendMode.Darken;break;case "lighten":this.tq=a.BlendMode.Lighten; break;case "color-dodge":this.tq=a.BlendMode.ColorDodge;break;case "color-burn":this.tq=a.BlendMode.ColorBurn;break;case "hard-light":this.tq=a.BlendMode.HardLight;break;case "soft-light":this.tq=a.BlendMode.SoftLight;break;case "difference":this.tq=a.BlendMode.Difference;break;case "exclusion":this.tq=a.BlendMode.Exclusion;break;case "hue":this.tq=a.BlendMode.Hue;break;case "saturation":this.tq=a.BlendMode.Saturation;break;case "color":this.tq=a.BlendMode.Color;break;case "luminosity":this.tq=a.BlendMode.Luminosity; break;default:return}this.wq.setBlendMode(this.tq)}});Object.defineProperty(this,"imageSmoothingEnabled",{enumerable:!0,get:function(){return this.Sr},set:function(a){this.Sr=!!a}});Object.defineProperty(this,"imageSmoothingQuality",{enumerable:!0,get:function(){switch(this.pr){case a.FilterQuality.Low:return"low";case a.FilterQuality.Medium:return"medium";case a.FilterQuality.High:return"high"}},set:function(b){switch(b){case "low":this.pr=a.FilterQuality.Low;break;case "medium":this.pr=a.FilterQuality.Medium; break;case "high":this.pr=a.FilterQuality.High}}});Object.defineProperty(this,"lineCap",{enumerable:!0,get:function(){switch(this.wq.getStrokeCap()){case a.StrokeCap.Butt:return"butt";case a.StrokeCap.Round:return"round";case a.StrokeCap.Square:return"square"}},set:function(b){switch(b){case "butt":this.wq.setStrokeCap(a.StrokeCap.Butt);break;case "round":this.wq.setStrokeCap(a.StrokeCap.Round);break;case "square":this.wq.setStrokeCap(a.StrokeCap.Square)}}});Object.defineProperty(this,"lineDashOffset", {enumerable:!0,get:function(){return this.Tr},set:function(a){isFinite(a)&&(this.Tr=a)}});Object.defineProperty(this,"lineJoin",{enumerable:!0,get:function(){switch(this.wq.getStrokeJoin()){case a.StrokeJoin.Miter:return"miter";case a.StrokeJoin.Round:return"round";case a.StrokeJoin.Bevel:return"bevel"}},set:function(b){switch(b){case "miter":this.wq.setStrokeJoin(a.StrokeJoin.Miter);break;case "round":this.wq.setStrokeJoin(a.StrokeJoin.Round);break;case "bevel":this.wq.setStrokeJoin(a.StrokeJoin.Bevel)}}}); Object.defineProperty(this,"lineWidth",{enumerable:!0,get:function(){return this.wq.getStrokeWidth()},set:function(a){0>=a||!a||(this.Vr=a,this.wq.setStrokeWidth(a))}});Object.defineProperty(this,"miterLimit",{enumerable:!0,get:function(){return this.wq.getStrokeMiter()},set:function(a){0>=a||!a||this.wq.setStrokeMiter(a)}});Object.defineProperty(this,"shadowBlur",{enumerable:!0,get:function(){return this.Cr},set:function(a){0>a||!isFinite(a)||(this.Cr=a)}});Object.defineProperty(this,"shadowColor", {enumerable:!0,get:function(){return c(this.Ur)},set:function(a){this.Ur=e(a)}});Object.defineProperty(this,"shadowOffsetX",{enumerable:!0,get:function(){return this.Dr},set:function(a){isFinite(a)&&(this.Dr=a)}});Object.defineProperty(this,"shadowOffsetY",{enumerable:!0,get:function(){return this.Er},set:function(a){isFinite(a)&&(this.Er=a)}});Object.defineProperty(this,"strokeStyle",{enumerable:!0,get:function(){return c(this.Xq)},set:function(a){"string"===typeof a?this.Xq=e(a):a.Ar&&(this.Xq= a)}});this.arc=function(a,b,c,d,e,f){bb(this.yq,a,b,c,c,0,d,e,f)};this.arcTo=function(a,b,c,d,e){ja(this.yq,a,b,c,d,e)};this.beginPath=function(){this.yq.delete();this.yq=new a.SkPath};this.bezierCurveTo=function(a,c,d,e,f,l){var Ga=this.yq;b([a,c,d,e,f,l])&&(Ga.isEmpty()&&Ga.moveTo(a,c),Ga.cubicTo(a,c,d,e,f,l))};this.clearRect=function(b,c,d,e){this.wq.setStyle(a.PaintStyle.Fill);this.wq.setBlendMode(a.BlendMode.Clear);this.oq.drawRect(a.XYWHRect(b,c,d,e),this.wq);this.wq.setBlendMode(this.tq)}; this.clip=function(b,c){"string"===typeof b?(c=b,b=this.yq):b&&b.Js&&(b=b.Eq);b||(b=this.yq);b=b.copy();c&&"evenodd"===c.toLowerCase()?b.setFillType(a.FillType.EvenOdd):b.setFillType(a.FillType.Winding);this.oq.clipPath(b,a.ClipOp.Intersect,!0);b.delete()};this.closePath=function(){pc(this.yq)};this.createImageData=function(){if(1===arguments.length){var a=arguments[0];return new F(new Uint8ClampedArray(4*a.width*a.height),a.width,a.height)}if(2===arguments.length){a=arguments[0];var b=arguments[1]; return new F(new Uint8ClampedArray(4*a*b),a,b)}throw"createImageData expects 1 or 2 arguments, got "+arguments.length;};this.createLinearGradient=function(a,c,d,e){if(b(arguments)){var f=new I(a,c,d,e);this.Hr.push(f);return f}};this.createPattern=function(a,b){a=new rc(a,b);this.Hr.push(a);return a};this.createRadialGradient=function(a,c,d,e,f,l){if(b(arguments)){var p=new sc(a,c,d,e,f,l);this.Hr.push(p);return p}};this.Qt=function(){var b=this.gs();this.Sr?b.setFilterQuality(this.pr):b.setFilterQuality(a.FilterQuality.None); return b};this.drawImage=function(b){var c=this.Qt();if(3===arguments.length||5===arguments.length)var d=a.XYWHRect(arguments[1],arguments[2],arguments[3]||b.width(),arguments[4]||b.height()),e=a.XYWHRect(0,0,b.width(),b.height());else if(9===arguments.length)d=a.XYWHRect(arguments[5],arguments[6],arguments[7],arguments[8]),e=a.XYWHRect(arguments[1],arguments[2],arguments[3],arguments[4]);else throw"invalid number of args for drawImage, need 3, 5, or 9; got "+arguments.length;this.oq.drawImageRect(b, e,d,c,!1);c.dispose()};this.ellipse=function(a,b,c,d,e,f,l,p){bb(this.yq,a,b,c,d,e,f,l,p)};this.gs=function(){var b=this.wq.copy();b.setStyle(a.PaintStyle.Fill);if(Number.isInteger(this.Nq)){var c=a.multiplyByAlpha(this.Nq,this.er);b.setColor(c)}else c=this.Nq.Ar(this.Bq),b.setColor(a.Color(0,0,0,this.er)),b.setShader(c);b.dispose=function(){this.delete()};return b};this.fill=function(b,c){"string"===typeof b?(c=b,b=this.yq):b&&b.Js&&(b=b.Eq);if("evenodd"===c)this.yq.setFillType(a.FillType.EvenOdd); else{if("nonzero"!==c&&c)throw"invalid fill rule";this.yq.setFillType(a.FillType.Winding)}b||(b=this.yq);c=this.gs();var d=this.ks(c);d&&(this.oq.save(),this.oq.concat(this.js()),this.oq.drawPath(b,d),this.oq.restore(),d.dispose());this.oq.drawPath(b,c);c.dispose()};this.fillRect=function(b,c,d,e){var f=this.gs();this.oq.drawRect(a.XYWHRect(b,c,d,e),f);f.dispose()};this.fillText=function(b,c,d){var e=this.gs();b=a.SkTextBlob.MakeFromText(b,this.zr);var f=this.ks(e);f&&(this.oq.save(),this.oq.concat(this.js()), this.oq.drawTextBlob(b,c,d,f),this.oq.restore(),f.dispose());this.oq.drawTextBlob(b,c,d,e);b.delete();e.dispose()};this.getImageData=function(a,b,c,d){return(a=this.oq.readPixels(a,b,c,d))?new F(new Uint8ClampedArray(a.buffer),c,d):null};this.getLineDash=function(){return this.Br.slice()};this.lt=function(b){var c=a.SkMatrix.invert(this.Bq);a.SkMatrix.mapPoints(c,b);return b};this.isPointInPath=function(b,c,d){var e=arguments;if(3===e.length)var f=this.yq;else if(4===e.length)f=e[0],b=e[1],c=e[2], d=e[3];else throw"invalid arg count, need 3 or 4, got "+e.length;if(!isFinite(b)||!isFinite(c))return!1;d=d||"nonzero";if("nonzero"!==d&&"evenodd"!==d)return!1;e=this.lt([b,c]);b=e[0];c=e[1];f.setFillType("nonzero"===d?a.FillType.Winding:a.FillType.EvenOdd);return f.contains(b,c)};this.isPointInStroke=function(b,c){var d=arguments;if(2===d.length)var e=this.yq;else if(3===d.length)e=d[0],b=d[1],c=d[2];else throw"invalid arg count, need 2 or 3, got "+d.length;if(!isFinite(b)||!isFinite(c))return!1; d=this.lt([b,c]);b=d[0];c=d[1];e=e.copy();e.setFillType(a.FillType.Winding);e.stroke({width:this.lineWidth,miter_limit:this.miterLimit,cap:this.wq.getStrokeCap(),join:this.wq.getStrokeJoin(),precision:.3});d=e.contains(b,c);e.delete();return d};this.lineTo=function(a,b){tc(this.yq,a,b)};this.measureText=function(a){return{width:this.zr.measureText(a)}};this.moveTo=function(a,c){var d=this.yq;b([a,c])&&d.moveTo(a,c)};this.putImageData=function(c,d,e,f,l,p,q){if(b([d,e,f,l,p,q]))if(void 0===f)this.oq.writePixels(c.data, c.width,c.height,d,e);else if(f=f||0,l=l||0,p=p||c.width,q=q||c.height,0>p&&(f+=p,p=Math.abs(p)),0>q&&(l+=q,q=Math.abs(q)),0>f&&(p+=f,f=0),0>l&&(q+=l,l=0),!(0>=p||0>=q)){c=a.Mt(c.data,c.width,c.height,a.AlphaType.Unpremul,a.ColorType.RGBA_8888);var Ga=a.XYWHRect(f,l,p,q);d=a.XYWHRect(d+f,e+l,p,q);e=a.SkMatrix.invert(this.Bq);this.oq.save();this.oq.concat(e);this.oq.drawImageRect(c,Ga,d,null,!1);this.oq.restore();c.delete()}};this.quadraticCurveTo=function(a,c,d,e){var f=this.yq;b([a,c,d,e])&&(f.isEmpty()&& f.moveTo(a,c),f.quadTo(a,c,d,e))};this.rect=function(a,c,d,e){var f=this.yq;b([a,c,d,e])&&f.addRect(a,c,a+d,c+e)};this.resetTransform=function(){this.yq.transform(this.Bq);var b=a.SkMatrix.invert(this.Bq);this.oq.concat(b);this.Bq=this.oq.getTotalMatrix()};this.restore=function(){var b=this.kt.pop();if(b){var c=a.SkMatrix.multiply(this.Bq,a.SkMatrix.invert(b.Xt));this.yq.transform(c);this.wq.delete();this.wq=b.wu;this.Br=b.pu;this.Vr=b.Pu;this.Xq=b.Ou;this.Nq=b.fs;this.Dr=b.Mu;this.Er=b.Nu;this.Cr= b.Fu;this.Ur=b.Lu;this.er=b.au;this.tq=b.bu;this.Tr=b.qu;this.Sr=b.nu;this.pr=b.ou;this.hs=b.$t;this.oq.restore();this.Bq=this.oq.getTotalMatrix()}};this.rotate=function(b){if(isFinite(b)){var c=a.SkMatrix.rotated(-b);this.yq.transform(c);this.oq.rotate(b/Math.PI*180,0,0);this.Bq=this.oq.getTotalMatrix()}};this.save=function(){if(this.Nq.yr){var a=this.Nq.yr();this.Hr.push(a)}else a=this.Nq;if(this.Xq.yr){var b=this.Xq.yr();this.Hr.push(b)}else b=this.Xq;this.kt.push({Xt:this.Bq.slice(),pu:this.Br.slice(), Pu:this.Vr,Ou:b,fs:a,Mu:this.Dr,Nu:this.Er,Fu:this.Cr,Lu:this.Ur,au:this.er,qu:this.Tr,bu:this.tq,nu:this.Sr,ou:this.pr,wu:this.wq.copy(),$t:this.hs});this.oq.save()};this.scale=function(c,d){if(b(arguments)){var e=a.SkMatrix.scaled(1/c,1/d);this.yq.transform(e);this.oq.scale(c,d);this.Bq=this.oq.getTotalMatrix()}};this.setLineDash=function(a){for(var b=0;b<a.length;b++)if(!isFinite(a[b])||0>a[b])return;1===a.length%2&&Array.prototype.push.apply(a,a);this.Br=a};this.setTransform=function(a,c,d,e, f,l){b(arguments)&&(this.resetTransform(),this.transform(a,c,d,e,f,l))};this.js=function(){return a.SkMatrix.translated(this.Dr/this.Bq[0],this.Er/this.Bq[4])};this.ks=function(b){var c=a.multiplyByAlpha(this.Ur,this.er);if(!a.getColorComponents(c)[3]||!(this.Cr||this.Er||this.Dr))return null;b=b.copy();b.setColor(c);var d=a.MakeBlurMaskFilter(a.BlurStyle.Normal,this.Cr/2,!1);b.setMaskFilter(d);b.dispose=function(){d.delete();this.delete()};return b};this.Ls=function(){var b=this.wq.copy();b.setStyle(a.PaintStyle.Stroke); if(Number.isInteger(this.Xq)){var c=a.multiplyByAlpha(this.Xq,this.er);b.setColor(c)}else c=this.Xq.Ar(this.Bq),b.setColor(a.Color(0,0,0,this.er)),b.setShader(c);b.setStrokeWidth(this.Vr);if(this.Br.length){var d=a.MakeSkDashPathEffect(this.Br,this.Tr);b.setPathEffect(d)}b.dispose=function(){d&&d.delete();this.delete()};return b};this.stroke=function(a){a=a?a.Eq:this.yq;var b=this.Ls(),c=this.ks(b);c&&(this.oq.save(),this.oq.concat(this.js()),this.oq.drawPath(a,c),this.oq.restore(),c.dispose());this.oq.drawPath(a, b);b.dispose()};this.strokeRect=function(b,c,d,e){var f=this.Ls();this.oq.drawRect(a.XYWHRect(b,c,d,e),f);f.dispose()};this.strokeText=function(b,c,d){var e=this.Ls();b=a.SkTextBlob.MakeFromText(b,this.zr);var f=this.ks(e);f&&(this.oq.save(),this.oq.concat(this.js()),this.oq.drawTextBlob(b,c,d,f),this.oq.restore(),f.dispose());this.oq.drawTextBlob(b,c,d,e);b.delete();e.dispose()};this.translate=function(c,d){if(b(arguments)){var e=a.SkMatrix.translated(-c,-d);this.yq.transform(e);this.oq.translate(c, d);this.Bq=this.oq.getTotalMatrix()}};this.transform=function(b,c,d,e,f,l){b=[b,d,f,c,e,l,0,0,1];c=a.SkMatrix.invert(b);this.yq.transform(c);this.oq.concat(b);this.Bq=this.oq.getTotalMatrix()};this.addHitRegion=function(){};this.clearHitRegions=function(){};this.drawFocusIfNeeded=function(){};this.removeHitRegion=function(){};this.scrollPathIntoView=function(){};Object.defineProperty(this,"canvas",{value:null,writable:!1})}function y(b){this.Ms=b;this.Rr=new D(b.getCanvas());this.ls=[];this.Nt=a.SkFontMgr.RefDefault(); this.decodeImage=function(b){b=a.MakeImageFromEncoded(b);if(!b)throw"Invalid input";this.ls.push(b);return b};this.loadFont=function(a,b){a=this.Nt.MakeTypefaceFromData(a);if(!a)return null;this.ls.push(a);var c=(b.style||"normal")+"|"+(b.variant||"normal")+"|"+(b.weight||"normal");b=b.family;wa[b]||(wa[b]={"*":a});wa[b][c]=a};this.makePath2D=function(a){a=new ud(a);this.ls.push(a.Eq);return a};this.getContext=function(a){return"2d"===a?this.Rr:null};this.toDataURL=function(b,c){this.Ms.flush();var d= this.Ms.makeImageSnapshot();if(d){b=b||"image/png";var e=a.ImageFormat.PNG;"image/jpeg"===b&&(e=a.ImageFormat.JPEG);if(c=d.encodeToData(e,c||.92)){c=a.getSkDataBytes(c);b="data:"+b+";base64,";if(f)c=Buffer.from(c).toString("base64");else{d=0;e=c.length;for(var l="",p;d<e;)p=c.slice(d,Math.min(d+32768,e)),l+=String.fromCharCode.apply(null,p),d+=32768;c=btoa(l)}return b+c}}};this.dispose=function(){this.Rr.jr();this.ls.forEach(function(a){a.delete()});this.Ms.dispose()}}function F(a,b,c){if(!b||0=== c)throw"invalid dimensions, width and height must be non-zero";if(a.length%4)throw"arr must be a multiple of 4";c=c||a.length/(4*b);Object.defineProperty(this,"data",{value:a,writable:!1});Object.defineProperty(this,"height",{value:c,writable:!1});Object.defineProperty(this,"width",{value:b,writable:!1})}function I(b,c,d,f){this.Gq=null;this.Tq=[];this.Jq=[];this.addColorStop=function(a,b){if(0>a||1<a||!isFinite(a))throw"offset must be between 0 and 1 inclusively";b=e(b);var c=this.Jq.indexOf(a); if(-1!==c)this.Tq[c]=b;else{for(c=0;c<this.Jq.length&&!(this.Jq[c]>a);c++);this.Jq.splice(c,0,a);this.Tq.splice(c,0,b)}};this.yr=function(){var a=new I(b,c,d,f);a.Tq=this.Tq.slice();a.Jq=this.Jq.slice();return a};this.jr=function(){this.Gq&&(this.Gq.delete(),this.Gq=null)};this.Ar=function(e){var l=[b,c,d,f];a.SkMatrix.mapPoints(e,l);e=l[0];var p=l[1],q=l[2];l=l[3];this.jr();return this.Gq=a.MakeLinearGradientShader([e,p],[q,l],this.Tq,this.Jq,a.TileMode.Clamp)}}function ja(a,c,d,e,f,l){if(b([c,d, e,f,l])){if(0>l)throw"radii cannot be negative";a.isEmpty()&&a.moveTo(c,d);a.arcTo(c,d,e,f,l)}}function pc(a){if(!a.isEmpty()){var b=a.getBounds();(b.fBottom-b.fTop||b.fRight-b.fLeft)&&a.close()}}function qc(b,c,d,e,f,l,p){p=(p-l)/Math.PI*180;l=l/Math.PI*180;c=a.LTRBRect(c-e,d-f,c+e,d+f);1E-5>Math.abs(Math.abs(p)-360)?(d=p/2,b.arcTo(c,l,d,!1),b.arcTo(c,l+d,d,!1)):b.arcTo(c,l,p,!1)}function bb(c,d,e,f,l,p,q,y,v){if(b([d,e,f,l,p,q,y])){if(0>f||0>l)throw"radii cannot be negative";var x=2*Math.PI,z=q% x;0>z&&(z+=x);var F=z-q;q=z;y+=F;!v&&y-q>=x?y=q+x:v&&q-y>=x?y=q-x:!v&&q>y?y=q+(x-(q-y)%x):v&&q<y&&(y=q-(x-(y-q)%x));p?(v=a.SkMatrix.rotated(p,d,e),p=a.SkMatrix.rotated(-p,d,e),c.transform(p),qc(c,d,e,f,l,q,y),c.transform(v)):qc(c,d,e,f,l,q,y)}}function tc(a,c,d){b([c,d])&&(a.isEmpty()&&a.moveTo(c,d),a.lineTo(c,d))}function ud(c){this.Eq=null;"string"===typeof c?this.Eq=a.MakePathFromSVGString(c):c&&c.Js?this.Eq=c.Eq.copy():this.Eq=new a.SkPath;this.Js=function(){return this.Eq};this.addPath=function(a, b){b||(b={a:1,c:0,e:0,b:0,d:1,f:0});this.Eq.addPath(a.Eq,[b.a,b.c,b.e,b.b,b.d,b.f])};this.arc=function(a,b,c,d,e,f){bb(this.Eq,a,b,c,c,0,d,e,f)};this.arcTo=function(a,b,c,d,e){ja(this.Eq,a,b,c,d,e)};this.bezierCurveTo=function(a,c,d,e,f,l){var p=this.Eq;b([a,c,d,e,f,l])&&(p.isEmpty()&&p.moveTo(a,c),p.cubicTo(a,c,d,e,f,l))};this.closePath=function(){pc(this.Eq)};this.ellipse=function(a,b,c,d,e,f,l,p){bb(this.Eq,a,b,c,d,e,f,l,p)};this.lineTo=function(a,b){tc(this.Eq,a,b)};this.moveTo=function(a,c){var d= this.Eq;b([a,c])&&d.moveTo(a,c)};this.quadraticCurveTo=function(a,c,d,e){var f=this.Eq;b([a,c,d,e])&&(f.isEmpty()&&f.moveTo(a,c),f.quadTo(a,c,d,e))};this.rect=function(a,c,d,e){var f=this.Eq;b([a,c,d,e])&&f.addRect(a,c,a+d,c+e)}}function rc(c,d){this.Gq=null;this.Pt=c;this._transform=a.SkMatrix.identity();""===d&&(d="repeat");switch(d){case "repeat-x":this.Fr=a.TileMode.Repeat;this.Gr=a.TileMode.Decal;break;case "repeat-y":this.Fr=a.TileMode.Decal;this.Gr=a.TileMode.Repeat;break;case "repeat":this.Gr= this.Fr=a.TileMode.Repeat;break;case "no-repeat":this.Gr=this.Fr=a.TileMode.Decal;break;default:throw"invalid repetition mode "+d;}this.setTransform=function(a){a=[a.a,a.c,a.e,a.b,a.d,a.f,0,0,1];b(a)&&(this._transform=a)};this.yr=function(){var a=new rc;a.Fr=this.Fr;a.Gr=this.Gr;return a};this.jr=function(){this.Gq&&(this.Gq.delete(),this.Gq=null)};this.Ar=function(){this.jr();return this.Gq=this.Pt.makeShader(this.Fr,this.Gr,this._transform)}}function sc(b,c,d,f,l,p){this.Gq=null;this.Tq=[];this.Jq= [];this.addColorStop=function(a,b){if(0>a||1<a||!isFinite(a))throw"offset must be between 0 and 1 inclusively";b=e(b);var c=this.Jq.indexOf(a);if(-1!==c)this.Tq[c]=b;else{for(c=0;c<this.Jq.length&&!(this.Jq[c]>a);c++);this.Jq.splice(c,0,a);this.Tq.splice(c,0,b)}};this.yr=function(){var a=new sc(b,c,d,f,l,p);a.Tq=this.Tq.slice();a.Jq=this.Jq.slice();return a};this.jr=function(){this.Gq&&(this.Gq.delete(),this.Gq=null)};this.Ar=function(e){var q=[b,c,f,l];a.SkMatrix.mapPoints(e,q);var y=q[0],v=q[1], x=q[2];q=q[3];var z=(Math.abs(e[0])+Math.abs(e[4]))/2;e=d*z;z*=p;this.jr();return this.Gq=a.MakeTwoPointConicalGradientShader([y,v],e,[x,q],z,this.Tq,this.Jq,a.TileMode.Clamp)}}a._testing={};var sd={aliceblue:4293982463,antiquewhite:4294634455,aqua:4278255615,aquamarine:4286578644,azure:4293984255,beige:4294309340,bisque:4294960324,black:4278190080,blanchedalmond:4294962125,blue:4278190335,blueviolet:4287245282,brown:4289014314,burlywood:4292786311,cadetblue:4284456608,chartreuse:4286578432,chocolate:4291979550, coral:4294934352,cornflowerblue:4284782061,cornsilk:4294965468,crimson:4292613180,cyan:4278255615,darkblue:4278190219,darkcyan:4278225803,darkgoldenrod:4290283019,darkgray:4289309097,darkgreen:4278215680,darkgrey:4289309097,darkkhaki:4290623339,darkmagenta:4287299723,darkolivegreen:4283788079,darkorange:4294937600,darkorchid:4288230092,darkred:4287299584,darksalmon:4293498490,darkseagreen:4287609999,darkslateblue:4282924427,darkslategray:4281290575,darkslategrey:4281290575,darkturquoise:4278243025, darkviolet:4287889619,deeppink:4294907027,deepskyblue:4278239231,dimgray:4285098345,dimgrey:4285098345,dodgerblue:4280193279,firebrick:4289864226,floralwhite:4294966E3,forestgreen:4280453922,fuchsia:4294902015,gainsboro:4292664540,ghostwhite:4294506751,gold:4294956800,goldenrod:4292519200,gray:4286611584,green:4278222848,greenyellow:4289593135,grey:4286611584,honeydew:4293984240,hotpink:4294928820,indianred:4291648604,indigo:4283105410,ivory:4294967280,khaki:4293977740,lavender:4293322490,lavenderblush:4294963445, lawngreen:4286381056,lemonchiffon:4294965965,lightblue:4289583334,lightcoral:4293951616,lightcyan:4292935679,lightgoldenrodyellow:4294638290,lightgray:4292072403,lightgreen:4287688336,lightgrey:4292072403,lightpink:4294948545,lightsalmon:4294942842,lightseagreen:4280332970,lightskyblue:4287090426,lightslategray:4286023833,lightslategrey:4286023833,lightsteelblue:4289774814,lightyellow:4294967264,lime:4278255360,limegreen:4281519410,linen:4294635750,magenta:4294902015,maroon:4286578688,mediumaquamarine:4284927402, mediumblue:4278190285,mediumorchid:4290401747,mediumpurple:4287852763,mediumseagreen:4282168177,mediumslateblue:4286277870,mediumspringgreen:4278254234,mediumturquoise:4282962380,mediumvioletred:4291237253,midnightblue:4279834992,mintcream:4294311930,mistyrose:4294960353,moccasin:4294960309,navajowhite:4294958765,navy:4278190208,oldlace:4294833638,olive:4286611456,olivedrab:4285238819,orange:4294944E3,orangered:4294919424,orchid:4292505814,palegoldenrod:4293847210,palegreen:4288215960,paleturquoise:4289720046, palevioletred:4292571283,papayawhip:4294963157,peachpuff:4294957753,peru:4291659071,pink:4294951115,plum:4292714717,powderblue:4289781990,purple:4286578816,rebeccapurple:4284887961,red:4294901760,rosybrown:4290547599,royalblue:4282477025,saddlebrown:4287317267,salmon:4294606962,sandybrown:4294222944,seagreen:4281240407,seashell:4294964718,sienna:4288696877,silver:4290822336,skyblue:4287090411,slateblue:4285160141,slategray:4285563024,slategrey:4285563024,snow:4294966010,springgreen:4278255487,steelblue:4282811060, tan:4291998860,teal:4278222976,thistle:4292394968,transparent:0,tomato:4294927175,turquoise:4282441936,violet:4293821166,wheat:4294303411,white:4294967295,whitesmoke:4294309365,yellow:4294967040,yellowgreen:4288335154};a._testing.parseColor=e;a._testing.colorToString=c;var td=/(italic|oblique|normal|)\s*(small-caps|normal|)\s*(bold|bolder|lighter|[1-9]00|normal|)\s*([\d\.]+)(px|pt|pc|in|cm|mm|%|em|ex|ch|rem|q)(.+)/,wa={"Noto Mono":{"*":null},monospace:{"*":null}};a._testing.parseFontString=l;a.MakeCanvas= function(b,c){return(b=a.MakeSurface(b,c))?new y(b):null};a.ImageData=function(){if(2===arguments.length){var a=arguments[0],b=arguments[1];return new F(new Uint8ClampedArray(4*a*b),a,b)}if(3===arguments.length){var c=arguments[0];if(c.prototype.constructor!==Uint8ClampedArray)throw"bytes must be given as a Uint8ClampedArray";a=arguments[1];b=arguments[2];if(c%4)throw"bytes must be given in a multiple of 4";if(c%a)throw"bytes must divide evenly by width";if(b&&b!==c/(4*a))throw"invalid height given"; return new F(c,a,c/(4*a))}throw"invalid number of arguments - takes 2 or 3, saw "+arguments.length;}})()})(m);var da={},ea;for(ea in m)m.hasOwnProperty(ea)&&(da[ea]=m[ea]);m.arguments=[];m.thisProgram="./this.program";m.quit=function(a,b){throw b;};m.preRun=[];m.postRun=[];var fa=!1,ha=!1,ia=!1,ka=!1;fa="object"===typeof window;ha="function"===typeof importScripts;ia="object"===typeof process&&"function"===typeof require&&!fa&&!ha;ka=!fa&&!ia&&!ha;var t=""; if(ia){t=__dirname+"/";var la,ma;m.read=function(a,b){la||(la=require("fs"));ma||(ma=require("path"));a=ma.normalize(a);a=la.readFileSync(a);return b?a:a.toString()};m.readBinary=function(a){a=m.read(a,!0);a.buffer||(a=new Uint8Array(a));assert(a.buffer);return a};1<process.argv.length&&(m.thisProgram=process.argv[1].replace(/\\/g,"/"));m.arguments=process.argv.slice(2);process.on("uncaughtException",function(a){if(!(a instanceof na))throw a;});process.on("unhandledRejection",u);m.quit=function(a){process.exit(a)}; m.inspect=function(){return"[Emscripten Module object]"}}else if(ka)"undefined"!=typeof read&&(m.read=function(a){return read(a)}),m.readBinary=function(a){if("function"===typeof readbuffer)return new Uint8Array(readbuffer(a));a=read(a,"binary");assert("object"===typeof a);return a},"undefined"!=typeof scriptArgs?m.arguments=scriptArgs:"undefined"!=typeof arguments&&(m.arguments=arguments),"function"===typeof quit&&(m.quit=function(a){quit(a)});else if(fa||ha)ha?t=self.location.href:document.currentScript&& (t=document.currentScript.src),_scriptDir&&(t=_scriptDir),0!==t.indexOf("blob:")?t=t.substr(0,t.lastIndexOf("/")+1):t="",m.read=function(a){var b=new XMLHttpRequest;b.open("GET",a,!1);b.send(null);return b.responseText},ha&&(m.readBinary=function(a){var b=new XMLHttpRequest;b.open("GET",a,!1);b.responseType="arraybuffer";b.send(null);return new Uint8Array(b.response)}),m.readAsync=function(a,b,c){var d=new XMLHttpRequest;d.open("GET",a,!0);d.responseType="arraybuffer";d.onload=function(){200==d.status|| 0==d.status&&d.response?b(d.response):c()};d.onerror=c;d.send(null)},m.setWindowTitle=function(a){document.title=a};var oa=m.print||("undefined"!==typeof console?console.log.bind(console):"undefined"!==typeof print?print:null),w=m.printErr||("undefined"!==typeof printErr?printErr:"undefined"!==typeof console&&console.warn.bind(console)||oa);for(ea in da)da.hasOwnProperty(ea)&&(m[ea]=da[ea]);da=void 0;function pa(a){var b=A[qa>>2];a=b+a+15&-16;if(a<=ra)A[qa>>2]=a;else if(!sa(a))return 0;return b} function ta(a){ua||(ua={});ua[a]||(ua[a]=1,w(a))}var ua,va={"f64-rem":function(a,b){return a%b},"debugger":function(){debugger}},xa=0;"object"!==typeof WebAssembly&&w("no native wasm support detected");var ya,B=!1;function assert(a,b){a||u("Assertion failed: "+b)} function za(a){if("number"===typeof a){var b=!0;var c=a}else b=!1,c=a.length;var d=C(Math.max(c,1));if(b){a=d;assert(0==(d&3));for(b=d+(c&-4);a<b;a+=4)A[a>>2]=0;for(b=d+c;a<b;)E[a++>>0]=0;return d}a.subarray||a.slice?r.set(a,d):r.set(new Uint8Array(a),d);return d}var Aa="undefined"!==typeof TextDecoder?new TextDecoder("utf8"):void 0; function Ba(a,b,c){var d=b+c;for(c=b;a[c]&&!(c>=d);)++c;if(16<c-b&&a.subarray&&Aa)return Aa.decode(a.subarray(b,c));for(d="";b<c;){var e=a[b++];if(e&128){var f=a[b++]&63;if(192==(e&224))d+=String.fromCharCode((e&31)<<6|f);else{var l=a[b++]&63;e=224==(e&240)?(e&15)<<12|f<<6|l:(e&7)<<18|f<<12|l<<6|a[b++]&63;65536>e?d+=String.fromCharCode(e):(e-=65536,d+=String.fromCharCode(55296|e>>10,56320|e&1023))}}else d+=String.fromCharCode(e)}return d}function G(a,b){return a?Ba(r,a,b):""} function n(a,b,c,d){if(!(0<d))return 0;var e=c;d=c+d-1;for(var f=0;f<a.length;++f){var l=a.charCodeAt(f);if(55296<=l&&57343>=l){var p=a.charCodeAt(++f);l=65536+((l&1023)<<10)|p&1023}if(127>=l){if(c>=d)break;b[c++]=l}else{if(2047>=l){if(c+1>=d)break;b[c++]=192|l>>6}else{if(65535>=l){if(c+2>=d)break;b[c++]=224|l>>12}else{if(c+3>=d)break;b[c++]=240|l>>18;b[c++]=128|l>>12&63}b[c++]=128|l>>6&63}b[c++]=128|l&63}}b[c]=0;return c-e} function ca(a){for(var b=0,c=0;c<a.length;++c){var d=a.charCodeAt(c);55296<=d&&57343>=d&&(d=65536+((d&1023)<<10)|a.charCodeAt(++c)&1023);127>=d?++b:b=2047>=d?b+2:65535>=d?b+3:b+4}return b}"undefined"!==typeof TextDecoder&&new TextDecoder("utf-16le");function Ca(a){0<a%65536&&(a+=65536-a%65536);return a}var buffer,E,r,Da,Ea,A,H,J,Fa; function Ha(){m.HEAP8=E=new Int8Array(buffer);m.HEAP16=Da=new Int16Array(buffer);m.HEAP32=A=new Int32Array(buffer);m.HEAPU8=r=new Uint8Array(buffer);m.HEAPU16=Ea=new Uint16Array(buffer);m.HEAPU32=H=new Uint32Array(buffer);m.HEAPF32=J=new Float32Array(buffer);m.HEAPF64=Fa=new Float64Array(buffer)}var qa=1909216,ra=m.TOTAL_MEMORY||134217728;5242880>ra&&w("TOTAL_MEMORY should be larger than TOTAL_STACK, was "+ra+"! (TOTAL_STACK=5242880)"); m.buffer?buffer=m.buffer:("object"===typeof WebAssembly&&"function"===typeof WebAssembly.Memory?(ya=new WebAssembly.Memory({initial:ra/65536}),buffer=ya.buffer):buffer=new ArrayBuffer(ra),m.buffer=buffer);Ha();A[qa>>2]=7152352;function Ia(a){for(;0<a.length;){var b=a.shift();if("function"==typeof b)b();else{var c=b.Qq;"number"===typeof c?void 0===b.qr?m.dynCall_v(c):m.dynCall_vi(c,b.qr):c(void 0===b.qr?null:b.qr)}}}var Ja=[],Ka=[],La=[],Ma=[],Na=[],Oa=!1; function Pa(){var a=m.preRun.shift();Ja.unshift(a)}var Qa=Math.abs,Ra=Math.ceil,Sa=Math.floor,Ta=Math.min,Ua=Math.trunc,Va=0,Wa=null,Xa=null;function Ya(){Va++;m.monitorRunDependencies&&m.monitorRunDependencies(Va)}function Za(){Va--;m.monitorRunDependencies&&m.monitorRunDependencies(Va);if(0==Va&&(null!==Wa&&(clearInterval(Wa),Wa=null),Xa)){var a=Xa;Xa=null;a()}}m.preloadedImages={};m.preloadedAudios={}; function $a(){var a=ab;return String.prototype.startsWith?a.startsWith("data:application/octet-stream;base64,"):0===a.indexOf("data:application/octet-stream;base64,")}var ab="canvaskit.wasm";if(!$a()){var cb=ab;ab=m.locateFile?m.locateFile(cb,t):t+cb}function db(){try{if(m.wasmBinary)return new Uint8Array(m.wasmBinary);if(m.readBinary)return m.readBinary(ab);throw"both async and sync