html2pdf-accessible 0.0.0-stage → 0.1.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (183) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +219 -2
  3. package/THIRD_PARTY_NOTICES.md +15 -0
  4. package/deps/canvaskit-pdf/CHROMIUM-LICENSE +27 -0
  5. package/deps/canvaskit-pdf/LICENSE +29 -0
  6. package/deps/canvaskit-pdf/README.md +35 -0
  7. package/deps/canvaskit-pdf/THIRD_PARTY_LICENSES.txt +2152 -0
  8. package/deps/canvaskit-pdf/bin/canvaskit.js +215 -0
  9. package/deps/canvaskit-pdf/chromium-license-source.json +5 -0
  10. package/deps/canvaskit-pdf/package.json +22 -0
  11. package/deps/canvaskit-pdf/pdf_bindings.cpp +179 -0
  12. package/deps/canvaskit-pdf/provenance.json +37 -0
  13. package/deps/canvaskit-pdf/types/google-types.d.ts +4948 -0
  14. package/deps/canvaskit-pdf/types/index.d.ts +48 -0
  15. package/lib/html2pdf-accessible.cjs.js +3 -0
  16. package/lib/html2pdf-accessible.cjs.js.LICENSE.txt +14 -0
  17. package/lib/html2pdf-accessible.cjs.js.map +1 -0
  18. package/lib/html2pdf-accessible.esm.mjs +3 -0
  19. package/lib/html2pdf-accessible.esm.mjs.LICENSE.txt +14 -0
  20. package/lib/html2pdf-accessible.esm.mjs.map +1 -0
  21. package/lib/html2pdf-accessible.js +3 -0
  22. package/lib/html2pdf-accessible.js.LICENSE.txt +14 -0
  23. package/lib/html2pdf-accessible.js.map +1 -0
  24. package/lib/html2pdf-accessible.min.js +17 -0
  25. package/lib/html2pdf-accessible.min.js.map +1 -0
  26. package/lib/types/core/bitwise.d.ts +1 -0
  27. package/lib/types/core/cache-storage.d.ts +27 -0
  28. package/lib/types/core/context.d.ts +17 -0
  29. package/lib/types/core/debugger.d.ts +8 -0
  30. package/lib/types/core/features.d.ts +12 -0
  31. package/lib/types/core/logger.d.ts +18 -0
  32. package/lib/types/core/util.d.ts +1 -0
  33. package/lib/types/css/IPropertyDescriptor.d.ts +36 -0
  34. package/lib/types/css/ITypeDescriptor.d.ts +6 -0
  35. package/lib/types/css/index.d.ts +134 -0
  36. package/lib/types/css/layout/bounds.d.ts +14 -0
  37. package/lib/types/css/layout/text.d.ts +13 -0
  38. package/lib/types/css/property-descriptors/background-clip.d.ts +8 -0
  39. package/lib/types/css/property-descriptors/background-color.d.ts +2 -0
  40. package/lib/types/css/property-descriptors/background-image.d.ts +3 -0
  41. package/lib/types/css/property-descriptors/background-origin.d.ts +8 -0
  42. package/lib/types/css/property-descriptors/background-position.d.ts +5 -0
  43. package/lib/types/css/property-descriptors/background-repeat.d.ts +9 -0
  44. package/lib/types/css/property-descriptors/background-size.d.ts +11 -0
  45. package/lib/types/css/property-descriptors/border-color.d.ts +5 -0
  46. package/lib/types/css/property-descriptors/border-radius.d.ts +7 -0
  47. package/lib/types/css/property-descriptors/border-style.d.ts +12 -0
  48. package/lib/types/css/property-descriptors/border-width.d.ts +5 -0
  49. package/lib/types/css/property-descriptors/box-shadow.d.ts +14 -0
  50. package/lib/types/css/property-descriptors/color.d.ts +2 -0
  51. package/lib/types/css/property-descriptors/content.d.ts +4 -0
  52. package/lib/types/css/property-descriptors/counter-increment.d.ts +7 -0
  53. package/lib/types/css/property-descriptors/counter-reset.d.ts +7 -0
  54. package/lib/types/css/property-descriptors/direction.d.ts +6 -0
  55. package/lib/types/css/property-descriptors/display.d.ts +35 -0
  56. package/lib/types/css/property-descriptors/duration.d.ts +2 -0
  57. package/lib/types/css/property-descriptors/float.d.ts +9 -0
  58. package/lib/types/css/property-descriptors/font-family.d.ts +4 -0
  59. package/lib/types/css/property-descriptors/font-size.d.ts +2 -0
  60. package/lib/types/css/property-descriptors/font-style.d.ts +7 -0
  61. package/lib/types/css/property-descriptors/font-variant.d.ts +2 -0
  62. package/lib/types/css/property-descriptors/font-weight.d.ts +2 -0
  63. package/lib/types/css/property-descriptors/letter-spacing.d.ts +2 -0
  64. package/lib/types/css/property-descriptors/line-break.d.ts +6 -0
  65. package/lib/types/css/property-descriptors/line-height.d.ts +4 -0
  66. package/lib/types/css/property-descriptors/list-style-image.d.ts +3 -0
  67. package/lib/types/css/property-descriptors/list-style-position.d.ts +6 -0
  68. package/lib/types/css/property-descriptors/list-style-type.d.ts +58 -0
  69. package/lib/types/css/property-descriptors/margin.d.ts +5 -0
  70. package/lib/types/css/property-descriptors/object-fit.d.ts +10 -0
  71. package/lib/types/css/property-descriptors/opacity.d.ts +2 -0
  72. package/lib/types/css/property-descriptors/overflow-wrap.d.ts +6 -0
  73. package/lib/types/css/property-descriptors/overflow.d.ts +9 -0
  74. package/lib/types/css/property-descriptors/padding.d.ts +5 -0
  75. package/lib/types/css/property-descriptors/paint-order.d.ts +8 -0
  76. package/lib/types/css/property-descriptors/position.d.ts +9 -0
  77. package/lib/types/css/property-descriptors/quotes.d.ts +8 -0
  78. package/lib/types/css/property-descriptors/text-align.d.ts +7 -0
  79. package/lib/types/css/property-descriptors/text-decoration-color.d.ts +2 -0
  80. package/lib/types/css/property-descriptors/text-decoration-line.d.ts +10 -0
  81. package/lib/types/css/property-descriptors/text-shadow.d.ts +12 -0
  82. package/lib/types/css/property-descriptors/text-transform.d.ts +8 -0
  83. package/lib/types/css/property-descriptors/transform-origin.d.ts +4 -0
  84. package/lib/types/css/property-descriptors/transform.d.ts +4 -0
  85. package/lib/types/css/property-descriptors/visibility.d.ts +7 -0
  86. package/lib/types/css/property-descriptors/webkit-text-stroke-color.d.ts +2 -0
  87. package/lib/types/css/property-descriptors/webkit-text-stroke-width.d.ts +2 -0
  88. package/lib/types/css/property-descriptors/word-break.d.ts +7 -0
  89. package/lib/types/css/property-descriptors/z-index.d.ts +7 -0
  90. package/lib/types/css/syntax/parser.d.ts +34 -0
  91. package/lib/types/css/syntax/tokenizer.d.ts +94 -0
  92. package/lib/types/css/types/angle.d.ts +7 -0
  93. package/lib/types/css/types/color-calculation.d.ts +3 -0
  94. package/lib/types/css/types/color-spaces/a98.d.ts +39 -0
  95. package/lib/types/css/types/color-spaces/p3.d.ts +45 -0
  96. package/lib/types/css/types/color-spaces/pro-photo.d.ts +45 -0
  97. package/lib/types/css/types/color-spaces/rec2020.d.ts +45 -0
  98. package/lib/types/css/types/color-spaces/srgb.d.ts +38 -0
  99. package/lib/types/css/types/color-utilities.d.ts +108 -0
  100. package/lib/types/css/types/color.d.ts +8 -0
  101. package/lib/types/css/types/functions/-prefix-linear-gradient.d.ts +4 -0
  102. package/lib/types/css/types/functions/-prefix-radial-gradient.d.ts +4 -0
  103. package/lib/types/css/types/functions/-webkit-gradient.d.ts +4 -0
  104. package/lib/types/css/types/functions/counter.d.ts +10 -0
  105. package/lib/types/css/types/functions/gradient.d.ts +7 -0
  106. package/lib/types/css/types/functions/linear-gradient.d.ts +4 -0
  107. package/lib/types/css/types/functions/radial-gradient.d.ts +12 -0
  108. package/lib/types/css/types/image.d.ts +54 -0
  109. package/lib/types/css/types/index.d.ts +1 -0
  110. package/lib/types/css/types/length-percentage.d.ts +11 -0
  111. package/lib/types/css/types/length.d.ts +4 -0
  112. package/lib/types/css/types/time.d.ts +2 -0
  113. package/lib/types/dom/document-cloner.d.ts +45 -0
  114. package/lib/types/dom/element-container.d.ts +20 -0
  115. package/lib/types/dom/elements/li-element-container.d.ts +6 -0
  116. package/lib/types/dom/elements/ol-element-container.d.ts +7 -0
  117. package/lib/types/dom/elements/select-element-container.d.ts +6 -0
  118. package/lib/types/dom/elements/textarea-element-container.d.ts +6 -0
  119. package/lib/types/dom/node-parser.d.ts +25 -0
  120. package/lib/types/dom/replaced-elements/canvas-element-container.d.ts +8 -0
  121. package/lib/types/dom/replaced-elements/iframe-element-container.d.ts +11 -0
  122. package/lib/types/dom/replaced-elements/image-element-container.d.ts +8 -0
  123. package/lib/types/dom/replaced-elements/index.d.ts +4 -0
  124. package/lib/types/dom/replaced-elements/input-element-container.d.ts +12 -0
  125. package/lib/types/dom/replaced-elements/pseudo-elements.d.ts +0 -0
  126. package/lib/types/dom/replaced-elements/svg-element-container.d.ts +8 -0
  127. package/lib/types/dom/text-container.d.ts +8 -0
  128. package/lib/types/fonts/font-collection.d.ts +25 -0
  129. package/lib/types/fonts/font-enumeration.d.ts +5 -0
  130. package/lib/types/fonts/font-style-mapping.d.ts +3 -0
  131. package/lib/types/fonts/interfaces.d.ts +27 -0
  132. package/lib/types/html2canvas.d.ts +10 -0
  133. package/lib/types/index.d.ts +7 -0
  134. package/lib/types/invariant.d.ts +1 -0
  135. package/lib/types/pdf/bookmarks.d.ts +4 -0
  136. package/lib/types/pdf/canvaskit-loader.d.ts +56 -0
  137. package/lib/types/pdf/document-structure.d.ts +105 -0
  138. package/lib/types/pdf/dom-updates.d.ts +6 -0
  139. package/lib/types/pdf/finalize-structure.d.ts +6 -0
  140. package/lib/types/pdf/hidden-captions.d.ts +15 -0
  141. package/lib/types/pdf/html-page-break.d.ts +11 -0
  142. package/lib/types/pdf/link-annotations.d.ts +8 -0
  143. package/lib/types/pdf/link-uri.d.ts +2 -0
  144. package/lib/types/pdf/logical-structure.d.ts +3 -0
  145. package/lib/types/pdf/pdf-export.d.ts +29 -0
  146. package/lib/types/pdf/single-html-multi-page.d.ts +14 -0
  147. package/lib/types/pdf/table-headers.d.ts +6 -0
  148. package/lib/types/pdf/xmp-metadata.d.ts +5 -0
  149. package/lib/types/render/background.d.ts +16 -0
  150. package/lib/types/render/bezier-curve.d.ts +14 -0
  151. package/lib/types/render/border.d.ts +6 -0
  152. package/lib/types/render/bound-curves.d.ts +32 -0
  153. package/lib/types/render/box-sizing.d.ts +4 -0
  154. package/lib/types/render/canvas/canvas-renderer.d.ts +53 -0
  155. package/lib/types/render/canvas/foreignobject-renderer.d.ts +11 -0
  156. package/lib/types/render/effects.d.ts +38 -0
  157. package/lib/types/render/font-metrics.d.ts +11 -0
  158. package/lib/types/render/path.d.ts +13 -0
  159. package/lib/types/render/renderer.d.ts +7 -0
  160. package/lib/types/render/skia/skia-font.d.ts +27 -0
  161. package/lib/types/render/skia/skia-renderer.d.ts +69 -0
  162. package/lib/types/render/stacking-context.d.ts +24 -0
  163. package/lib/types/render/vector.d.ts +9 -0
  164. package/lib/wasm/canvaskit-pdf.wasm +0 -0
  165. package/node_modules/@html2pdf-skia/canvaskit-pdf/CHROMIUM-LICENSE +27 -0
  166. package/node_modules/@html2pdf-skia/canvaskit-pdf/LICENSE +29 -0
  167. package/node_modules/@html2pdf-skia/canvaskit-pdf/README.md +35 -0
  168. package/node_modules/@html2pdf-skia/canvaskit-pdf/THIRD_PARTY_LICENSES.txt +2152 -0
  169. package/node_modules/@html2pdf-skia/canvaskit-pdf/bin/canvaskit.js +215 -0
  170. package/node_modules/@html2pdf-skia/canvaskit-pdf/chromium-license-source.json +5 -0
  171. package/node_modules/@html2pdf-skia/canvaskit-pdf/package.json +22 -0
  172. package/node_modules/@html2pdf-skia/canvaskit-pdf/pdf_bindings.cpp +179 -0
  173. package/node_modules/@html2pdf-skia/canvaskit-pdf/provenance.json +37 -0
  174. package/node_modules/@html2pdf-skia/canvaskit-pdf/types/google-types.d.ts +4948 -0
  175. package/node_modules/@html2pdf-skia/canvaskit-pdf/types/index.d.ts +48 -0
  176. package/node_modules/@webgpu/types/LICENSE +26 -0
  177. package/node_modules/@webgpu/types/README.md +132 -0
  178. package/node_modules/@webgpu/types/dist/index.d.ts +3426 -0
  179. package/node_modules/@webgpu/types/package.json +23 -0
  180. package/package.json +125 -4
  181. package/scripts/canvaskit/build.cjs +74 -0
  182. package/scripts/canvaskit/build.py +143 -0
  183. package/scripts/canvaskit/verify.cjs +82 -0
@@ -0,0 +1,215 @@
1
+ var CanvasKitInit = (() => {
2
+ var _scriptName = typeof document != 'undefined' ? document.currentScript?.src : undefined;
3
+ return (
4
+ async function(moduleArg = {}) {
5
+ var moduleRtn;
6
+
7
+ var O=moduleArg,ca="object"==typeof window,ea="undefined"!=typeof WorkerGlobalScope,fa="object"==typeof process&&process.versions?.node&&"renderer"!=process.type;
8
+ (function(a){a.Na=a.Na||[];a.Na.push(function(){a.MakeSWCanvasSurface=function(e){var h=e,k="undefined"!==typeof OffscreenCanvas&&h instanceof OffscreenCanvas;if(!("undefined"!==typeof HTMLCanvasElement&&h instanceof HTMLCanvasElement||k||(h=document.getElementById(e),h)))throw"Canvas with id "+e+" was not found";if(e=a.MakeSurface(h.width,h.height))e.Ga=h;return e};a.MakeCanvasSurface||(a.MakeCanvasSurface=a.MakeSWCanvasSurface);a.MakeSurface=function(e,h){var k={width:e,height:h,colorType:a.ColorType.RGBA_8888,
9
+ alphaType:a.AlphaType.Unpremul,colorSpace:a.ColorSpace.SRGB},r=e*h*4,u=a._malloc(r);if(k=a.Surface._makeRasterDirect(k,u,4*e))k.Ga=null,k.cc=e,k.Zb=h,k.ac=r,k.Kb=u,k.getCanvas().clear(a.TRANSPARENT);return k};a.MakeRasterDirectSurface=function(e,h,k){return a.Surface._makeRasterDirect(e,h.byteOffset,k)};a.Surface.prototype.flush=function(e){this._flush();if(this.Ga){var h=new Uint8ClampedArray(a.HEAPU8.buffer,this.Kb,this.ac);h=new ImageData(h,this.cc,this.Zb);e?this.Ga.getContext("2d").putImageData(h,
10
+ 0,0,e[0],e[1],e[2]-e[0],e[3]-e[1]):this.Ga.getContext("2d").putImageData(h,0,0)}};a.Surface.prototype.dispose=function(){this.Kb&&a._free(this.Kb);this.delete()};a.yc=a.yc||function(){};a.Nb=a.Nb||function(){return null}})})(O);
11
+ (function(a){function e(c,b,d,g,n){for(var p=0;p<c.length;p++)b[p*d+(p*n+g+d)%d]=c[p];return b}function h(c){for(var b=c*c,d=Array(b);b--;)d[b]=0===b%(c+1)?1:0;return d}function k(c){return c?c.constructor===Float32Array&&4===c.length:!1}function r(c){return(w(255*c[3])<<24|w(255*c[0])<<16|w(255*c[1])<<8|w(255*c[2])<<0)>>>0}function u(c){if(c&&c._ck)return c;if(c instanceof Float32Array){for(var b=Math.floor(c.length/4),d=new Uint32Array(b),g=0;g<b;g++)d[g]=r(c.slice(4*g,4*(g+1)));return d}if(c instanceof
12
+ Uint32Array)return c;if(c instanceof Array&&c[0]instanceof Float32Array)return c.map(r)}function x(c){if(void 0===c)return 1;var b=parseFloat(c);return c&&-1!==c.indexOf("%")?b/100:b}function w(c){return Math.round(Math.max(0,Math.min(c||0,255)))}function y(c,b){b&&b._ck||a._free(c)}function t(c,b,d){if(!c||!c.length)return M;if(c&&c._ck)return c.byteOffset;var g=a[b].BYTES_PER_ELEMENT;d||=a._malloc(c.length*g);a[b].set(c,d/g);return d}function E(c){var b={Xa:M,count:c.length,colorType:a.ColorType.RGBA_F32};
13
+ if(c instanceof Float32Array)b.Xa=t(c,"HEAPF32"),b.count=c.length/4;else if(c instanceof Uint32Array)b.Xa=t(c,"HEAPU32"),b.colorType=a.ColorType.RGBA_8888;else if(c instanceof Array){if(c&&c.length){for(var d=a._malloc(16*c.length),g=0,n=d/4,p=0;p<c.length;p++)for(var B=0;4>B;B++)a.HEAPF32[n+g]=c[p][B],g++;c=d}else c=M;b.Xa=c}else throw"Invalid argument to copyFlexibleColorArray, Not a color array "+typeof c;return b}function G(c){if(!c)return M;var b=kb.toTypedArray();if(c.length){if(6===c.length||
14
+ 9===c.length)return t(c,"HEAPF32",ra),6===c.length&&a.HEAPF32.set(kc,6+ra/4),ra;if(16===c.length)return b[0]=c[0],b[1]=c[1],b[2]=c[3],b[3]=c[4],b[4]=c[5],b[5]=c[7],b[6]=c[12],b[7]=c[13],b[8]=c[15],ra;throw"invalid matrix size";}if(void 0===c.m11)throw"invalid matrix argument";b[0]=c.m11;b[1]=c.m21;b[2]=c.m41;b[3]=c.m12;b[4]=c.m22;b[5]=c.m42;b[6]=c.m14;b[7]=c.m24;b[8]=c.m44;return ra}function K(c){if(!c)return M;var b=lb.toTypedArray();if(c.length){if(16!==c.length&&6!==c.length&&9!==c.length)throw"invalid matrix size";
15
+ if(16===c.length)return t(c,"HEAPF32",Ea);b.fill(0);b[0]=c[0];b[1]=c[1];b[3]=c[2];b[4]=c[3];b[5]=c[4];b[7]=c[5];b[10]=1;b[12]=c[6];b[13]=c[7];b[15]=c[8];6===c.length&&(b[12]=0,b[13]=0,b[15]=1);return Ea}if(void 0===c.m11)throw"invalid matrix argument";b[0]=c.m11;b[1]=c.m21;b[2]=c.m31;b[3]=c.m41;b[4]=c.m12;b[5]=c.m22;b[6]=c.m32;b[7]=c.m42;b[8]=c.m13;b[9]=c.m23;b[10]=c.m33;b[11]=c.m43;b[12]=c.m14;b[13]=c.m24;b[14]=c.m34;b[15]=c.m44;return Ea}function S(c,b){return t(c,"HEAPF32",b||Ca)}function W(c,
16
+ b,d,g){var n=mb.toTypedArray();n[0]=c;n[1]=b;n[2]=d;n[3]=g;return Ca}function X(c){for(var b=new Float32Array(4),d=0;4>d;d++)b[d]=a.HEAPF32[c/4+d];return b}function N(c,b){return t(c,"HEAPF32",b||aa)}function sa(c,b){return t(c,"HEAPF32",b||nb)}function ia(){for(var c=0,b=0;b<arguments.length-1;b+=2)c+=arguments[b]*arguments[b+1];return c}function ya(c,b,d){for(var g=Array(c.length),n=0;n<d;n++)for(var p=0;p<d;p++){for(var B=0,F=0;F<d;F++)B+=c[d*n+F]*b[d*F+p];g[n*d+p]=B}return g}function Fa(c,b){for(var d=
17
+ ya(b[0],b[1],c),g=2;g<b.length;)d=ya(d,b[g],c),g++;return d}a.Color=function(c,b,d,g){void 0===g&&(g=1);return a.Color4f(w(c)/255,w(b)/255,w(d)/255,g)};a.ColorAsInt=function(c,b,d,g){void 0===g&&(g=255);return(w(g)<<24|w(c)<<16|w(b)<<8|w(d)<<0&268435455)>>>0};a.Color4f=function(c,b,d,g){void 0===g&&(g=1);return Float32Array.of(c,b,d,g)};Object.defineProperty(a,"TRANSPARENT",{get:function(){return a.Color4f(0,0,0,0)}});Object.defineProperty(a,"BLACK",{get:function(){return a.Color4f(0,0,0,1)}});Object.defineProperty(a,
18
+ "WHITE",{get:function(){return a.Color4f(1,1,1,1)}});Object.defineProperty(a,"RED",{get:function(){return a.Color4f(1,0,0,1)}});Object.defineProperty(a,"GREEN",{get:function(){return a.Color4f(0,1,0,1)}});Object.defineProperty(a,"BLUE",{get:function(){return a.Color4f(0,0,1,1)}});Object.defineProperty(a,"YELLOW",{get:function(){return a.Color4f(1,1,0,1)}});Object.defineProperty(a,"CYAN",{get:function(){return a.Color4f(0,1,1,1)}});Object.defineProperty(a,"MAGENTA",{get:function(){return a.Color4f(1,
19
+ 0,1,1)}});a.getColorComponents=function(c){return[Math.floor(255*c[0]),Math.floor(255*c[1]),Math.floor(255*c[2]),c[3]]};a.parseColorString=function(c,b){c=c.toLowerCase();if(c.startsWith("#")){b=255;switch(c.length){case 9:b=parseInt(c.slice(7,9),16);case 7:var d=parseInt(c.slice(1,3),16);var g=parseInt(c.slice(3,5),16);var n=parseInt(c.slice(5,7),16);break;case 5:b=17*parseInt(c.slice(4,5),16);case 4:d=17*parseInt(c.slice(1,2),16),g=17*parseInt(c.slice(2,3),16),n=17*parseInt(c.slice(3,4),16)}return a.Color(d,
20
+ g,n,b/255)}return c.startsWith("rgba")?(c=c.slice(5,-1),c=c.split(","),a.Color(+c[0],+c[1],+c[2],x(c[3]))):c.startsWith("rgb")?(c=c.slice(4,-1),c=c.split(","),a.Color(+c[0],+c[1],+c[2],x(c[3]))):c.startsWith("gray(")||c.startsWith("hsl")||!b||(c=b[c],void 0===c)?a.BLACK:c};a.multiplyByAlpha=function(c,b){c=c.slice();c[3]=Math.max(0,Math.min(c[3]*b,1));return c};a.Malloc=function(c,b){var d=a._malloc(b*c.BYTES_PER_ELEMENT);return{_ck:!0,length:b,byteOffset:d,kb:null,subarray:function(g,n){g=this.toTypedArray().subarray(g,
21
+ n);g._ck=!0;return g},toTypedArray:function(){if(this.kb&&this.kb.length)return this.kb;this.kb=new c(a.HEAPU8.buffer,d,b);this.kb._ck=!0;return this.kb}}};a.Free=function(c){a._free(c.byteOffset);c.byteOffset=M;c.toTypedArray=null;c.kb=null};var ra=M,kb,Ea=M,lb,Ca=M,mb,ma,aa=M,Hb,za=M,Ib,ob=M,Jb,pb=M,Ta,Ka=M,Kb,nb=M,Lb,Mb=M,kc=Float32Array.of(0,0,1),M=0;a.Yb=function(c){return c.naturalWidth||c.videoWidth||c.displayWidth||c.width};a.Xb=function(c){return c.naturalHeight||c.videoHeight||c.displayHeight||
22
+ c.height};a.onRuntimeInitialized=function(){function c(b,d,g,n,p,B,F){B||(B=4*n.width,n.colorType===a.ColorType.RGBA_F16?B*=2:n.colorType===a.ColorType.RGBA_F32&&(B*=4));var I=B*n.height;var J=p?p.byteOffset:a._malloc(I);if(F?!b._readPixels(n,J,B,d,g,F):!b._readPixels(n,J,B,d,g))return p||a._free(J),null;if(p)return p.toTypedArray();switch(n.colorType){case a.ColorType.RGBA_8888:case a.ColorType.RGBA_F16:b=(new Uint8Array(a.HEAPU8.buffer,J,I)).slice();break;case a.ColorType.RGBA_F32:b=(new Float32Array(a.HEAPU8.buffer,
23
+ J,I)).slice();break;default:return null}a._free(J);return b}mb=a.Malloc(Float32Array,4);Ca=mb.byteOffset;lb=a.Malloc(Float32Array,16);Ea=lb.byteOffset;kb=a.Malloc(Float32Array,9);ra=kb.byteOffset;Kb=a.Malloc(Float32Array,12);nb=Kb.byteOffset;Lb=a.Malloc(Float32Array,12);Mb=Lb.byteOffset;ma=a.Malloc(Float32Array,4);aa=ma.byteOffset;Hb=a.Malloc(Float32Array,4);za=Hb.byteOffset;Ib=a.Malloc(Float32Array,3);ob=Ib.byteOffset;Jb=a.Malloc(Float32Array,3);pb=Jb.byteOffset;Ta=a.Malloc(Int32Array,4);Ka=Ta.byteOffset;
24
+ a.ColorSpace.SRGB=a.ColorSpace._MakeSRGB();a.ColorSpace.DISPLAY_P3=a.ColorSpace._MakeDisplayP3();a.ColorSpace.ADOBE_RGB=a.ColorSpace._MakeAdobeRGB();a.GlyphRunFlags={IsWhiteSpace:a._GlyphRunFlags_isWhiteSpace};a.Path.MakeFromCmds=function(b){var d=t(b,"HEAPF32"),g=a.Path._MakeFromCmds(d,b.length);y(d,b);return g};a.Path.MakeFromVerbsPointsWeights=function(b,d,g){var n=t(b,"HEAPU8"),p=t(d,"HEAPF32"),B=t(g,"HEAPF32"),F=a.Path._MakeFromVerbsPointsWeights(n,b.length,p,d.length/2,B,g&&g.length||0);y(n,
25
+ b);y(p,d);y(B,g);return F};a.PathBuilder.prototype.addArc=function(b,d,g){b=N(b);this._addArc(b,d,g);return this};a.PathBuilder.prototype.addCircle=function(b,d,g,n){this._addCircle(b,d,g,!!n);return this};a.PathBuilder.prototype.addOval=function(b,d,g){void 0===g&&(g=1);b=N(b);this._addOval(b,!!d,g);return this};a.PathBuilder.prototype.addPath=function(){var b=Array.prototype.slice.call(arguments),d=b[0],g=!1;"boolean"===typeof b[b.length-1]&&(g=b.pop());if(1===b.length)this._addPath(d,1,0,0,0,1,
26
+ 0,0,0,1,g);else if(2===b.length)b=b[1],this._addPath(d,b[0],b[1],b[2],b[3],b[4],b[5],b[6]||0,b[7]||0,b[8]||1,g);else if(7===b.length||10===b.length)this._addPath(d,b[1],b[2],b[3],b[4],b[5],b[6],b[7]||0,b[8]||0,b[9]||1,g);else return null;return this};a.PathBuilder.prototype.addPolygon=function(b,d){var g=t(b,"HEAPF32");this._addPolygon(g,b.length/2,d);y(g,b);return this};a.PathBuilder.prototype.addRect=function(b,d){b=N(b);this._addRect(b,!!d);return this};a.PathBuilder.prototype.addRRect=function(b,
27
+ d){b=sa(b);this._addRRect(b,!!d);return this};a.PathBuilder.prototype.addVerbsPointsWeights=function(b,d,g){var n=t(b,"HEAPU8"),p=t(d,"HEAPF32"),B=t(g,"HEAPF32");this._addVerbsPointsWeights(n,b.length,p,d.length/2,B,g&&g.length||0);y(n,b);y(p,d);y(B,g);return this};a.PathBuilder.prototype.arc=function(b,d,g,n,p,B){b=a.LTRBRect(b-g,d-g,b+g,d+g);p=(p-n)/Math.PI*180-360*!!B;n=(new a.PathBuilder).addArc(b,n/Math.PI*180,p).detachAndDelete();this.addPath(n,!0);n.delete();return this};a.PathBuilder.prototype.arcToOval=
28
+ function(b,d,g,n){b=N(b);this._arcToOval(b,d,g,n);return this};a.PathBuilder.prototype.arcToRotated=function(b,d,g,n,p,B,F){this._arcToRotated(b,d,g,!!n,!!p,B,F);return this};a.PathBuilder.prototype.arcToTangent=function(b,d,g,n,p){this._arcToTangent(b,d,g,n,p);return this};a.PathBuilder.prototype.close=function(){this._close();return this};a.PathBuilder.prototype.conicTo=function(b,d,g,n,p){this._conicTo(b,d,g,n,p);return this};a.Path.prototype.computeTightBounds=function(b){this._computeTightBounds(aa);
29
+ var d=ma.toTypedArray();return b?(b.set(d),b):d.slice()};a.PathBuilder.prototype.cubicTo=function(b,d,g,n,p,B){this._cubicTo(b,d,g,n,p,B);return this};a.PathBuilder.prototype.detachAndDelete=function(){var b=this.detach();this.delete();return b};a.Path.prototype.getBounds=function(b){this._getBounds(aa);var d=ma.toTypedArray();return b?(b.set(d),b):d.slice()};a.PathBuilder.prototype.getBounds=function(b){this._getBounds(aa);var d=ma.toTypedArray();return b?(b.set(d),b):d.slice()};a.PathBuilder.prototype.lineTo=
30
+ function(b,d){this._lineTo(b,d);return this};a.PathBuilder.prototype.moveTo=function(b,d){this._moveTo(b,d);return this};a.PathBuilder.prototype.offset=function(b,d){this._transform(1,0,b,0,1,d,0,0,1);return this};a.PathBuilder.prototype.quadTo=function(b,d,g,n){this._quadTo(b,d,g,n);return this};a.PathBuilder.prototype.rArcTo=function(b,d,g,n,p,B,F){this._rArcTo(b,d,g,n,p,B,F);return this};a.PathBuilder.prototype.rConicTo=function(b,d,g,n,p){this._rConicTo(b,d,g,n,p);return this};a.PathBuilder.prototype.rCubicTo=
31
+ function(b,d,g,n,p,B){this._rCubicTo(b,d,g,n,p,B);return this};a.PathBuilder.prototype.rLineTo=function(b,d){this._rLineTo(b,d);return this};a.PathBuilder.prototype.rMoveTo=function(b,d){this._rMoveTo(b,d);return this};a.PathBuilder.prototype.rQuadTo=function(b,d,g,n){this._rQuadTo(b,d,g,n);return this};a.PathBuilder.prototype.setFillType=function(b){this._setFillType(b);return this};a.Path.prototype.makeStroked=function(b){b=b||{};b.width=b.width||1;b.miter_limit=b.miter_limit||4;b.cap=b.cap||a.StrokeCap.Butt;
32
+ b.join=b.join||a.StrokeJoin.Miter;b.precision=b.precision||1;return this._makeStroked(b)};a.PathBuilder.prototype.transform=function(){if(1===arguments.length){var b=arguments[0];this._transform(b[0],b[1],b[2],b[3],b[4],b[5],b[6]||0,b[7]||0,b[8]||1)}else if(6===arguments.length||9===arguments.length)b=arguments,this._transform(b[0],b[1],b[2],b[3],b[4],b[5],b[6]||0,b[7]||0,b[8]||1);else throw"transform expected to take 1 or 9 arguments. Got "+arguments.length;return this};a.Path.prototype.makeTrimmed=
33
+ function(b,d,g){return this._makeTrimmed(b,d,!!g)};a.Image.prototype.encodeToBytes=function(b,d){var g=a.Nb();b=b||a.ImageFormat.PNG;d=d||100;return g?this._encodeToBytes(b,d,g):this._encodeToBytes(b,d)};a.Image.prototype.makeShaderCubic=function(b,d,g,n,p){p=G(p);return this._makeShaderCubic(b,d,g,n,p)};a.Image.prototype.makeShaderOptions=function(b,d,g,n,p){p=G(p);return this._makeShaderOptions(b,d,g,n,p)};a.Image.prototype.readPixels=function(b,d,g,n,p){return c(this,b,d,g,n,p,a.Nb())};a.Canvas.prototype.clear=
34
+ function(b){b=S(b);this._clear(b)};a.Canvas.prototype.clipRRect=function(b,d,g){b=sa(b);this._clipRRect(b,d,g)};a.Canvas.prototype.clipRect=function(b,d,g){b=N(b);this._clipRect(b,d,g)};a.Canvas.prototype.concat=function(b){b=K(b);this._concat(b)};a.Canvas.prototype.drawArc=function(b,d,g,n,p){b=N(b);this._drawArc(b,d,g,n,p)};a.Canvas.prototype.drawAtlas=function(b,d,g,n,p,B,F){if(b&&n&&d&&g&&d.length===g.length){p||(p=a.BlendMode.SrcOver);var I=t(d,"HEAPF32"),J=t(g,"HEAPF32"),P=g.length/4,Q=t(u(B),
35
+ "HEAPU32");if(F&&"B"in F&&"C"in F)this._drawAtlasCubic(b,J,I,Q,P,p,F.B,F.C,n);else{let m=a.FilterMode.Linear,A=a.MipmapMode.None;F&&(m=F.filter,"mipmap"in F&&(A=F.mipmap));this._drawAtlasOptions(b,J,I,Q,P,p,m,A,n)}y(I,d);y(J,g);y(Q,B)}};a.Canvas.prototype.drawCircle=function(b,d,g,n){this._drawCircle(b,d,g,n)};a.Canvas.prototype.drawColor=function(b,d){b=S(b);void 0!==d?this._drawColor(b,d):this._drawColor(b)};a.Canvas.prototype.drawColorInt=function(b,d){this._drawColorInt(b,d||a.BlendMode.SrcOver)};
36
+ a.Canvas.prototype.drawColorComponents=function(b,d,g,n,p){b=W(b,d,g,n);void 0!==p?this._drawColor(b,p):this._drawColor(b)};a.Canvas.prototype.drawDRRect=function(b,d,g){b=sa(b,nb);d=sa(d,Mb);this._drawDRRect(b,d,g)};a.Canvas.prototype.drawImage=function(b,d,g,n){this._drawImage(b,d,g,n||null)};a.Canvas.prototype.drawImageCubic=function(b,d,g,n,p,B){this._drawImageCubic(b,d,g,n,p,B||null)};a.Canvas.prototype.drawImageOptions=function(b,d,g,n,p,B){this._drawImageOptions(b,d,g,n,p,B||null)};a.Canvas.prototype.drawImageNine=
37
+ function(b,d,g,n,p){d=t(d,"HEAP32",Ka);g=N(g);this._drawImageNine(b,d,g,n,p||null)};a.Canvas.prototype.drawImageRect=function(b,d,g,n,p){N(d,aa);N(g,za);this._drawImageRect(b,aa,za,n,!!p)};a.Canvas.prototype.drawImageRectCubic=function(b,d,g,n,p,B){N(d,aa);N(g,za);this._drawImageRectCubic(b,aa,za,n,p,B||null)};a.Canvas.prototype.drawImageRectOptions=function(b,d,g,n,p,B){N(d,aa);N(g,za);this._drawImageRectOptions(b,aa,za,n,p,B||null)};a.Canvas.prototype.drawLine=function(b,d,g,n,p){this._drawLine(b,
38
+ d,g,n,p)};a.Canvas.prototype.drawOval=function(b,d){b=N(b);this._drawOval(b,d)};a.Canvas.prototype.drawPaint=function(b){this._drawPaint(b)};a.Canvas.prototype.drawParagraph=function(b,d,g){this._drawParagraph(b,d,g)};a.Canvas.prototype.drawPatch=function(b,d,g,n,p){if(24>b.length)throw"Need 12 cubic points";if(d&&4>d.length)throw"Need 4 colors";if(g&&8>g.length)throw"Need 4 shader coordinates";const B=t(b,"HEAPF32"),F=d?t(u(d),"HEAPU32"):M,I=g?t(g,"HEAPF32"):M;n||(n=a.BlendMode.Modulate);this._drawPatch(B,
39
+ F,I,n,p);y(I,g);y(F,d);y(B,b)};a.Canvas.prototype.drawPath=function(b,d){this._drawPath(b,d)};a.Canvas.prototype.drawPicture=function(b){this._drawPicture(b)};a.Canvas.prototype.drawPoints=function(b,d,g){var n=t(d,"HEAPF32");this._drawPoints(b,n,d.length/2,g);y(n,d)};a.Canvas.prototype.drawRRect=function(b,d){b=sa(b);this._drawRRect(b,d)};a.Canvas.prototype.drawRect=function(b,d){b=N(b);this._drawRect(b,d)};a.Canvas.prototype.drawRect4f=function(b,d,g,n,p){this._drawRect4f(b,d,g,n,p)};a.Canvas.prototype.drawShadow=
40
+ function(b,d,g,n,p,B,F){var I=t(p,"HEAPF32"),J=t(B,"HEAPF32");d=t(d,"HEAPF32",ob);g=t(g,"HEAPF32",pb);this._drawShadow(b,d,g,n,I,J,F);y(I,p);y(J,B)};a.getShadowLocalBounds=function(b,d,g,n,p,B,F){b=G(b);g=t(g,"HEAPF32",ob);n=t(n,"HEAPF32",pb);if(!this._getShadowLocalBounds(b,d,g,n,p,B,aa))return null;d=ma.toTypedArray();return F?(F.set(d),F):d.slice()};a.Canvas.prototype.drawTextBlob=function(b,d,g,n){this._drawTextBlob(b,d,g,n)};a.Canvas.prototype.drawVertices=function(b,d,g){this._drawVertices(b,
41
+ d,g)};a.Canvas.prototype.getDeviceClipBounds=function(b){this._getDeviceClipBounds(Ka);var d=Ta.toTypedArray();b?b.set(d):b=d.slice();return b};a.Canvas.prototype.quickReject=function(b){b=N(b);return this._quickReject(b)};a.Canvas.prototype.getLocalToDevice=function(){this._getLocalToDevice(Ea);for(var b=Ea,d=Array(16),g=0;16>g;g++)d[g]=a.HEAPF32[b/4+g];return d};a.Canvas.prototype.getTotalMatrix=function(){this._getTotalMatrix(ra);for(var b=Array(9),d=0;9>d;d++)b[d]=a.HEAPF32[ra/4+d];return b};
42
+ a.Canvas.prototype.makeSurface=function(b){b=this._makeSurface(b);b.fb=this.fb;return b};a.Canvas.prototype.readPixels=function(b,d,g,n,p){return c(this,b,d,g,n,p)};a.Canvas.prototype.saveLayer=function(b,d,g,n,p){d=N(d);return this._saveLayer(b||null,d,g||null,n||0,p||a.TileMode.Clamp)};a.Canvas.prototype.writePixels=function(b,d,g,n,p,B,F,I){if(b.byteLength%(d*g))throw"pixels length must be a multiple of the srcWidth * srcHeight";var J=b.byteLength/(d*g);B=B||a.AlphaType.Unpremul;F=F||a.ColorType.RGBA_8888;
43
+ I=I||a.ColorSpace.SRGB;var P=J*d;J=t(b,"HEAPU8");d=this._writePixels({width:d,height:g,colorType:F,alphaType:B,colorSpace:I},J,P,n,p);y(J,b);return d};a.ColorFilter.MakeBlend=function(b,d,g){b=S(b);g=g||a.ColorSpace.SRGB;return a.ColorFilter._MakeBlend(b,d,g)};a.ColorFilter.MakeMatrix=function(b){if(!b||20!==b.length)throw"invalid color matrix";var d=t(b,"HEAPF32"),g=a.ColorFilter._makeMatrix(d);y(d,b);return g};a.ContourMeasure.prototype.getPosTan=function(b,d){this._getPosTan(b,aa);b=ma.toTypedArray();
44
+ return d?(d.set(b),d):b.slice()};a.ImageFilter.prototype.getOutputBounds=function(b,d,g){b=N(b,aa);d=G(d);this._getOutputBounds(b,d,Ka);d=Ta.toTypedArray();return g?(g.set(d),g):d.slice()};a.ImageFilter.MakeDropShadow=function(b,d,g,n,p,B){p=S(p,Ca);return a.ImageFilter._MakeDropShadow(b,d,g,n,p,B)};a.ImageFilter.MakeDropShadowOnly=function(b,d,g,n,p,B){p=S(p,Ca);return a.ImageFilter._MakeDropShadowOnly(b,d,g,n,p,B)};a.ImageFilter.MakeImage=function(b,d,g,n){g=N(g,aa);n=N(n,za);if("B"in d&&"C"in d)return a.ImageFilter._MakeImageCubic(b,
45
+ d.B,d.C,g,n);const p=d.filter;let B=a.MipmapMode.None;"mipmap"in d&&(B=d.mipmap);return a.ImageFilter._MakeImageOptions(b,p,B,g,n)};a.ImageFilter.MakeMatrixTransform=function(b,d,g){b=G(b);if("B"in d&&"C"in d)return a.ImageFilter._MakeMatrixTransformCubic(b,d.B,d.C,g);const n=d.filter;let p=a.MipmapMode.None;"mipmap"in d&&(p=d.mipmap);return a.ImageFilter._MakeMatrixTransformOptions(b,n,p,g)};a.Paint.prototype.getColor=function(){this._getColor(Ca);return X(Ca)};a.Paint.prototype.setColor=function(b,
46
+ d){d=d||null;b=S(b);this._setColor(b,d)};a.Paint.prototype.setColorComponents=function(b,d,g,n,p){p=p||null;b=W(b,d,g,n);this._setColor(b,p)};a.Path.prototype.getPoint=function(b,d){this._getPoint(b,aa);b=ma.toTypedArray();return d?(d[0]=b[0],d[1]=b[1],d):b.slice(0,2)};a.Picture.prototype.makeShader=function(b,d,g,n,p){n=G(n);p=N(p);return this._makeShader(b,d,g,n,p)};a.Picture.prototype.cullRect=function(b){this._cullRect(aa);var d=ma.toTypedArray();return b?(b.set(d),b):d.slice()};a.PictureRecorder.prototype.beginRecording=
47
+ function(b,d){b=N(b);return this._beginRecording(b,!!d)};a.Surface.prototype.getCanvas=function(){var b=this._getCanvas();b.fb=this.fb;return b};a.Surface.prototype.makeImageSnapshot=function(b){b=t(b,"HEAP32",Ka);return this._makeImageSnapshot(b)};a.Surface.prototype.makeSurface=function(b){b=this._makeSurface(b);b.fb=this.fb;return b};a.Surface.prototype.bc=function(b,d){this.xb||(this.xb=this.getCanvas());return requestAnimationFrame(function(){b(this.xb);this.flush(d)}.bind(this))};a.Surface.prototype.requestAnimationFrame||
48
+ (a.Surface.prototype.requestAnimationFrame=a.Surface.prototype.bc);a.Surface.prototype.Wb=function(b,d){this.xb||(this.xb=this.getCanvas());requestAnimationFrame(function(){b(this.xb);this.flush(d);this.dispose()}.bind(this))};a.Surface.prototype.drawOnce||(a.Surface.prototype.drawOnce=a.Surface.prototype.Wb);a.PathEffect.MakeDash=function(b,d){d||=0;if(!b.length||1===b.length%2)throw"Intervals array must have even length";var g=t(b,"HEAPF32");d=a.PathEffect._MakeDash(g,b.length,d);y(g,b);return d};
49
+ a.PathEffect.MakeLine2D=function(b,d){d=G(d);return a.PathEffect._MakeLine2D(b,d)};a.PathEffect.MakePath2D=function(b,d){b=G(b);return a.PathEffect._MakePath2D(b,d)};a.Shader.MakeColor=function(b,d){d=d||null;b=S(b);return a.Shader._MakeColor(b,d)};a.Shader.Blend=a.Shader.MakeBlend;a.Shader.Color=a.Shader.MakeColor;a.Shader.MakeLinearGradient=function(b,d,g,n,p,B,F,I){I=I||null;var J=E(g),P=t(n,"HEAPF32");F=F||0;B=G(B);var Q=ma.toTypedArray();Q.set(b);Q.set(d,2);b=a.Shader._MakeLinearGradient(aa,
50
+ J.Xa,J.colorType,P,J.count,p,F,B,I);y(J.Xa,g);n&&y(P,n);return b};a.Shader.MakeRadialGradient=function(b,d,g,n,p,B,F,I){I=I||null;var J=E(g),P=t(n,"HEAPF32");F=F||0;B=G(B);b=a.Shader._MakeRadialGradient(b[0],b[1],d,J.Xa,J.colorType,P,J.count,p,F,B,I);y(J.Xa,g);n&&y(P,n);return b};a.Shader.MakeSweepGradient=function(b,d,g,n,p,B,F,I,J,P){P=P||null;var Q=E(g),m=t(n,"HEAPF32");F=F||0;I=I||0;J=J||360;B=G(B);b=a.Shader._MakeSweepGradient(b,d,Q.Xa,Q.colorType,m,Q.count,p,I,J,F,B,P);y(Q.Xa,g);n&&y(m,n);return b};
51
+ a.Shader.MakeTwoPointConicalGradient=function(b,d,g,n,p,B,F,I,J,P){P=P||null;var Q=E(p),m=t(B,"HEAPF32");J=J||0;I=G(I);var A=ma.toTypedArray();A.set(b);A.set(g,2);b=a.Shader._MakeTwoPointConicalGradient(aa,d,n,Q.Xa,Q.colorType,m,Q.count,F,J,I,P);y(Q.Xa,p);B&&y(m,B);return b};a.Vertices.prototype.bounds=function(b){this._bounds(aa);var d=ma.toTypedArray();return b?(b.set(d),b):d.slice()};a.Na&&a.Na.forEach(function(b){b()})};a.computeTonalColors=function(c){var b=t(c.ambient,"HEAPF32"),d=t(c.spot,
52
+ "HEAPF32");this._computeTonalColors(b,d);var g={ambient:X(b),spot:X(d)};y(b,c.ambient);y(d,c.spot);return g};a.LTRBRect=function(c,b,d,g){return Float32Array.of(c,b,d,g)};a.XYWHRect=function(c,b,d,g){return Float32Array.of(c,b,c+d,b+g)};a.LTRBiRect=function(c,b,d,g){return Int32Array.of(c,b,d,g)};a.XYWHiRect=function(c,b,d,g){return Int32Array.of(c,b,c+d,b+g)};a.RRectXY=function(c,b,d){return Float32Array.of(c[0],c[1],c[2],c[3],b,d,b,d,b,d,b,d)};a.MakeAnimatedImageFromEncoded=function(c){c=new Uint8Array(c);
53
+ var b=a._malloc(c.byteLength);a.HEAPU8.set(c,b);return(c=a._decodeAnimatedImage(b,c.byteLength))?c:null};a.MakeImageFromEncoded=function(c){c=new Uint8Array(c);var b=a._malloc(c.byteLength);a.HEAPU8.set(c,b);return(c=a._decodeImage(b,c.byteLength))?c:null};var Ua=null;a.MakeImageFromCanvasImageSource=function(c){var b=a.Yb(c),d=a.Xb(c);Ua||=document.createElement("canvas");Ua.width=b;Ua.height=d;var g=Ua.getContext("2d",{willReadFrequently:!0});g.drawImage(c,0,0);c=g.getImageData(0,0,b,d);return a.MakeImage({width:b,
54
+ height:d,alphaType:a.AlphaType.Unpremul,colorType:a.ColorType.RGBA_8888,colorSpace:a.ColorSpace.SRGB},c.data,4*b)};a.MakeImage=function(c,b,d){var g=a._malloc(b.length);a.HEAPU8.set(b,g);return a._MakeImage(c,g,b.length,d)};a.MakeVertices=function(c,b,d,g,n,p){var B=n&&n.length||0,F=0;d&&d.length&&(F|=1);g&&g.length&&(F|=2);void 0===p||p||(F|=4);c=new a._VerticesBuilder(c,b.length/2,B,F);t(b,"HEAPF32",c.positions());c.texCoords()&&t(d,"HEAPF32",c.texCoords());c.colors()&&t(u(g),"HEAPU32",c.colors());
55
+ c.indices()&&t(n,"HEAPU16",c.indices());return c.detach()};a.Matrix={};a.Matrix.identity=function(){return h(3)};a.Matrix.invert=function(c){var b=c[0]*c[4]*c[8]+c[1]*c[5]*c[6]+c[2]*c[3]*c[7]-c[2]*c[4]*c[6]-c[1]*c[3]*c[8]-c[0]*c[5]*c[7];return b?[(c[4]*c[8]-c[5]*c[7])/b,(c[2]*c[7]-c[1]*c[8])/b,(c[1]*c[5]-c[2]*c[4])/b,(c[5]*c[6]-c[3]*c[8])/b,(c[0]*c[8]-c[2]*c[6])/b,(c[2]*c[3]-c[0]*c[5])/b,(c[3]*c[7]-c[4]*c[6])/b,(c[1]*c[6]-c[0]*c[7])/b,(c[0]*c[4]-c[1]*c[3])/b]:null};a.Matrix.mapPoints=function(c,b){for(var d=
56
+ 0;d<b.length;d+=2){var g=b[d],n=b[d+1],p=c[6]*g+c[7]*n+c[8],B=c[3]*g+c[4]*n+c[5];b[d]=(c[0]*g+c[1]*n+c[2])/p;b[d+1]=B/p}return b};a.Matrix.multiply=function(){return Fa(3,arguments)};a.Matrix.rotated=function(c,b,d){b=b||0;d=d||0;var g=Math.sin(c);c=Math.cos(c);return[c,-g,ia(g,d,1-c,b),g,c,ia(-g,b,1-c,d),0,0,1]};a.Matrix.scaled=function(c,b,d,g){d=d||0;g=g||0;var n=e([c,b],h(3),3,0,1);return e([d-c*d,g-b*g],n,3,2,0)};a.Matrix.skewed=function(c,b,d,g){d=d||0;g=g||0;var n=e([c,b],h(3),3,1,-1);return e([-c*
57
+ d,-b*g],n,3,2,0)};a.Matrix.translated=function(c,b){return e(arguments,h(3),3,2,0)};a.Vector={};a.Vector.dot=function(c,b){return c.map(function(d,g){return d*b[g]}).reduce(function(d,g){return d+g})};a.Vector.lengthSquared=function(c){return a.Vector.dot(c,c)};a.Vector.length=function(c){return Math.sqrt(a.Vector.lengthSquared(c))};a.Vector.mulScalar=function(c,b){return c.map(function(d){return d*b})};a.Vector.add=function(c,b){return c.map(function(d,g){return d+b[g]})};a.Vector.sub=function(c,
58
+ b){return c.map(function(d,g){return d-b[g]})};a.Vector.dist=function(c,b){return a.Vector.length(a.Vector.sub(c,b))};a.Vector.normalize=function(c){return a.Vector.mulScalar(c,1/a.Vector.length(c))};a.Vector.cross=function(c,b){return[c[1]*b[2]-c[2]*b[1],c[2]*b[0]-c[0]*b[2],c[0]*b[1]-c[1]*b[0]]};a.M44={};a.M44.identity=function(){return h(4)};a.M44.translated=function(c){return e(c,h(4),4,3,0)};a.M44.scaled=function(c){return e(c,h(4),4,0,1)};a.M44.rotated=function(c,b){return a.M44.rotatedUnitSinCos(a.Vector.normalize(c),
59
+ Math.sin(b),Math.cos(b))};a.M44.rotatedUnitSinCos=function(c,b,d){var g=c[0],n=c[1];c=c[2];var p=1-d;return[p*g*g+d,p*g*n-b*c,p*g*c+b*n,0,p*g*n+b*c,p*n*n+d,p*n*c-b*g,0,p*g*c-b*n,p*n*c+b*g,p*c*c+d,0,0,0,0,1]};a.M44.lookat=function(c,b,d){b=a.Vector.normalize(a.Vector.sub(b,c));d=a.Vector.normalize(d);d=a.Vector.normalize(a.Vector.cross(b,d));var g=a.M44.identity();e(d,g,4,0,0);e(a.Vector.cross(d,b),g,4,1,0);e(a.Vector.mulScalar(b,-1),g,4,2,0);e(c,g,4,3,0);c=a.M44.invert(g);return null===c?a.M44.identity():
60
+ c};a.M44.perspective=function(c,b,d){var g=1/(b-c);d/=2;d=Math.cos(d)/Math.sin(d);return[d,0,0,0,0,d,0,0,0,0,(b+c)*g,2*b*c*g,0,0,-1,1]};a.M44.rc=function(c,b,d){return c[4*b+d]};a.M44.multiply=function(){return Fa(4,arguments)};a.M44.invert=function(c){var b=c[0],d=c[4],g=c[8],n=c[12],p=c[1],B=c[5],F=c[9],I=c[13],J=c[2],P=c[6],Q=c[10],m=c[14],A=c[3],L=c[7],T=c[11];c=c[15];var ba=b*B-d*p,na=b*F-g*p,oa=b*I-n*p,da=d*F-g*B,C=d*I-n*B,f=g*I-n*F,l=J*L-P*A,q=J*T-Q*A,v=J*c-m*A,z=P*T-Q*L,D=P*c-m*L,H=Q*c-m*
61
+ T,U=ba*H-na*D+oa*z+da*v-C*q+f*l,V=1/U;if(0===U||Infinity===V)return null;ba*=V;na*=V;oa*=V;da*=V;C*=V;f*=V;l*=V;q*=V;v*=V;z*=V;D*=V;H*=V;b=[B*H-F*D+I*z,F*v-p*H-I*q,p*D-B*v+I*l,B*q-p*z-F*l,g*D-d*H-n*z,b*H-g*v+n*q,d*v-b*D-n*l,b*z-d*q+g*l,L*f-T*C+c*da,T*oa-A*f-c*na,A*C-L*oa+c*ba,L*na-A*da-T*ba,Q*C-P*f-m*da,J*f-Q*oa+m*na,P*oa-J*C-m*ba,J*da-P*na+Q*ba];return b.every(function(wa){return!isNaN(wa)&&Infinity!==wa&&-Infinity!==wa})?b:null};a.M44.transpose=function(c){return[c[0],c[4],c[8],c[12],c[1],c[5],
62
+ c[9],c[13],c[2],c[6],c[10],c[14],c[3],c[7],c[11],c[15]]};a.M44.mustInvert=function(c){c=a.M44.invert(c);if(null===c)throw"Matrix not invertible";return c};a.M44.setupCamera=function(c,b,d){var g=a.M44.lookat(d.eye,d.coa,d.up);d=a.M44.perspective(d.near,d.far,d.angle);b=[(c[2]-c[0])/2,(c[3]-c[1])/2,b];c=a.M44.multiply(a.M44.translated([(c[0]+c[2])/2,(c[1]+c[3])/2,0]),a.M44.scaled(b));return a.M44.multiply(c,d,g,a.M44.mustInvert(c))};a.ColorMatrix={};a.ColorMatrix.identity=function(){var c=new Float32Array(20);
63
+ c[0]=1;c[6]=1;c[12]=1;c[18]=1;return c};a.ColorMatrix.scaled=function(c,b,d,g){var n=new Float32Array(20);n[0]=c;n[6]=b;n[12]=d;n[18]=g;return n};var lc=[[6,7,11,12],[0,10,2,12],[0,1,5,6]];a.ColorMatrix.rotated=function(c,b,d){var g=a.ColorMatrix.identity();c=lc[c];g[c[0]]=d;g[c[1]]=b;g[c[2]]=-b;g[c[3]]=d;return g};a.ColorMatrix.postTranslate=function(c,b,d,g,n){c[4]+=b;c[9]+=d;c[14]+=g;c[19]+=n;return c};a.ColorMatrix.concat=function(c,b){for(var d=new Float32Array(20),g=0,n=0;20>n;n+=5){for(var p=
64
+ 0;4>p;p++)d[g++]=c[n]*b[p]+c[n+1]*b[p+5]+c[n+2]*b[p+10]+c[n+3]*b[p+15];d[g++]=c[n]*b[4]+c[n+1]*b[9]+c[n+2]*b[14]+c[n+3]*b[19]+c[n+4]}return d};(function(c){c.Na=c.Na||[];c.Na.push(function(){function b(m){m&&(m.dir=0===m.dir?c.TextDirection.RTL:c.TextDirection.LTR);return m}function d(m){if(!m||!m.length)return[];for(var A=[],L=0;L<m.length;L+=5){var T=c.LTRBRect(m[L],m[L+1],m[L+2],m[L+3]),ba=c.TextDirection.LTR;0===m[L+4]&&(ba=c.TextDirection.RTL);A.push({rect:T,dir:ba})}c._free(m.byteOffset);return A}
65
+ function g(m){m=m||{};void 0===m.weight&&(m.weight=c.FontWeight.Normal);m.width=m.width||c.FontWidth.Normal;m.slant=m.slant||c.FontSlant.Upright;return m}function n(m){if(!m||!m.length)return M;for(var A=[],L=0;L<m.length;L++){var T=p(m[L]);A.push(T)}return t(A,"HEAPU32")}function p(m){if(I[m])return I[m];var A=ha(m)+1,L=c._malloc(A);ja(m,L,A);return I[m]=L}function B(m){m._colorPtr=S(m.color);m._foregroundColorPtr=M;m._backgroundColorPtr=M;m._decorationColorPtr=M;m.foregroundColor&&(m._foregroundColorPtr=
66
+ S(m.foregroundColor,J));m.backgroundColor&&(m._backgroundColorPtr=S(m.backgroundColor,P));m.decorationColor&&(m._decorationColorPtr=S(m.decorationColor,Q));Array.isArray(m.fontFamilies)&&m.fontFamilies.length?(m._fontFamiliesPtr=n(m.fontFamilies),m._fontFamiliesLen=m.fontFamilies.length):(m._fontFamiliesPtr=M,m._fontFamiliesLen=0);if(m.locale){var A=m.locale;m._localePtr=p(A);m._localeLen=ha(A)}else m._localePtr=M,m._localeLen=0;if(Array.isArray(m.shadows)&&m.shadows.length){A=m.shadows;var L=A.map(function(C){return C.color||
67
+ c.BLACK}),T=A.map(function(C){return C.blurRadius||0});m._shadowLen=A.length;for(var ba=c._malloc(8*A.length),na=ba/4,oa=0;oa<A.length;oa++){var da=A[oa].offset||[0,0];c.HEAPF32[na]=da[0];c.HEAPF32[na+1]=da[1];na+=2}m._shadowColorsPtr=E(L).Xa;m._shadowOffsetsPtr=ba;m._shadowBlurRadiiPtr=t(T,"HEAPF32")}else m._shadowLen=0,m._shadowColorsPtr=M,m._shadowOffsetsPtr=M,m._shadowBlurRadiiPtr=M;Array.isArray(m.fontFeatures)&&m.fontFeatures.length?(A=m.fontFeatures,L=A.map(function(C){return C.name}),T=A.map(function(C){return C.value}),
68
+ m._fontFeatureLen=A.length,m._fontFeatureNamesPtr=n(L),m._fontFeatureValuesPtr=t(T,"HEAPU32")):(m._fontFeatureLen=0,m._fontFeatureNamesPtr=M,m._fontFeatureValuesPtr=M);Array.isArray(m.fontVariations)&&m.fontVariations.length?(A=m.fontVariations,L=A.map(function(C){return C.axis}),T=A.map(function(C){return C.value}),m._fontVariationLen=A.length,m._fontVariationAxesPtr=n(L),m._fontVariationValuesPtr=t(T,"HEAPF32")):(m._fontVariationLen=0,m._fontVariationAxesPtr=M,m._fontVariationValuesPtr=M)}function F(m){c._free(m._fontFamiliesPtr);
69
+ c._free(m._shadowColorsPtr);c._free(m._shadowOffsetsPtr);c._free(m._shadowBlurRadiiPtr);c._free(m._fontFeatureNamesPtr);c._free(m._fontFeatureValuesPtr);c._free(m._fontVariationAxesPtr);c._free(m._fontVariationValuesPtr)}c.Paragraph.prototype.getRectsForRange=function(m,A,L,T){m=this._getRectsForRange(m,A,L,T);return d(m)};c.Paragraph.prototype.getRectsForPlaceholders=function(){var m=this._getRectsForPlaceholders();return d(m)};c.Paragraph.prototype.getGlyphInfoAt=function(m){return b(this._getGlyphInfoAt(m))};
70
+ c.Paragraph.prototype.getClosestGlyphInfoAtCoordinate=function(m,A){return b(this._getClosestGlyphInfoAtCoordinate(m,A))};c.TypefaceFontProvider.prototype.registerFont=function(m,A){m=c.Typeface.MakeTypefaceFromData(m);if(!m)return null;A=p(A);this._registerFont(m,A);m.delete()};c.ParagraphStyle=function(m){m.disableHinting=m.disableHinting||!1;if(m.ellipsis){var A=m.ellipsis;m._ellipsisPtr=p(A);m._ellipsisLen=ha(A)}else m._ellipsisPtr=M,m._ellipsisLen=0;null==m.heightMultiplier&&(m.heightMultiplier=
71
+ -1);m.maxLines=m.maxLines||0;m.replaceTabCharacters=m.replaceTabCharacters||!1;A=(A=m.strutStyle)||{};A.strutEnabled=A.strutEnabled||!1;A.strutEnabled&&Array.isArray(A.fontFamilies)&&A.fontFamilies.length?(A._fontFamiliesPtr=n(A.fontFamilies),A._fontFamiliesLen=A.fontFamilies.length):(A._fontFamiliesPtr=M,A._fontFamiliesLen=0);A.fontStyle=g(A.fontStyle);null==A.fontSize&&(A.fontSize=-1);null==A.heightMultiplier&&(A.heightMultiplier=-1);A.halfLeading=A.halfLeading||!1;A.leading=A.leading||0;A.forceStrutHeight=
72
+ A.forceStrutHeight||!1;m.strutStyle=A;m.textAlign=m.textAlign||c.TextAlign.Start;m.textDirection=m.textDirection||c.TextDirection.LTR;m.textHeightBehavior=m.textHeightBehavior||c.TextHeightBehavior.All;m.textStyle=c.TextStyle(m.textStyle);m.applyRoundingHack=!1!==m.applyRoundingHack;return m};c.TextStyle=function(m){m.color||(m.color=c.BLACK);m.decoration=m.decoration||0;m.decorationThickness=m.decorationThickness||0;m.decorationStyle=m.decorationStyle||c.DecorationStyle.Solid;m.textBaseline=m.textBaseline||
73
+ c.TextBaseline.Alphabetic;null==m.fontSize&&(m.fontSize=-1);m.letterSpacing=m.letterSpacing||0;m.wordSpacing=m.wordSpacing||0;null==m.heightMultiplier&&(m.heightMultiplier=-1);m.halfLeading=m.halfLeading||!1;m.fontStyle=g(m.fontStyle);return m};var I={},J=c._malloc(16),P=c._malloc(16),Q=c._malloc(16);c.ParagraphBuilder.Make=function(m,A){B(m.textStyle);A=c.ParagraphBuilder._Make(m,A);F(m.textStyle);return A};c.ParagraphBuilder.MakeFromFontProvider=function(m,A){B(m.textStyle);A=c.ParagraphBuilder._MakeFromFontProvider(m,
74
+ A);F(m.textStyle);return A};c.ParagraphBuilder.MakeFromFontCollection=function(m,A){B(m.textStyle);A=c.ParagraphBuilder._MakeFromFontCollection(m,A);F(m.textStyle);return A};c.ParagraphBuilder.ShapeText=function(m,A,L){let T=0;for(const ba of A)T+=ba.length;if(T!==m.length)throw"Accumulated block lengths must equal text.length";return c.ParagraphBuilder._ShapeText(m,A,L)};c.ParagraphBuilder.prototype.pushStyle=function(m){B(m);this._pushStyle(m);F(m)};c.ParagraphBuilder.prototype.pushPaintStyle=function(m,
75
+ A,L){B(m);this._pushPaintStyle(m,A,L);F(m)};c.ParagraphBuilder.prototype.addPlaceholder=function(m,A,L,T,ba){L=L||c.PlaceholderAlignment.Baseline;T=T||c.TextBaseline.Alphabetic;this._addPlaceholder(m||0,A||0,L,T,ba||0)};c.ParagraphBuilder.prototype.setWordsUtf8=function(m){var A=t(m,"HEAPU32");this._setWordsUtf8(A,m&&m.length||0);y(A,m)};c.ParagraphBuilder.prototype.setWordsUtf16=function(m){var A=t(m,"HEAPU32");this._setWordsUtf16(A,m&&m.length||0);y(A,m)};c.ParagraphBuilder.prototype.setGraphemeBreaksUtf8=
76
+ function(m){var A=t(m,"HEAPU32");this._setGraphemeBreaksUtf8(A,m&&m.length||0);y(A,m)};c.ParagraphBuilder.prototype.setGraphemeBreaksUtf16=function(m){var A=t(m,"HEAPU32");this._setGraphemeBreaksUtf16(A,m&&m.length||0);y(A,m)};c.ParagraphBuilder.prototype.setLineBreaksUtf8=function(m){var A=t(m,"HEAPU32");this._setLineBreaksUtf8(A,m&&m.length||0);y(A,m)};c.ParagraphBuilder.prototype.setLineBreaksUtf16=function(m){var A=t(m,"HEAPU32");this._setLineBreaksUtf16(A,m&&m.length||0);y(A,m)}})})(O);a.Na=
77
+ a.Na||[];a.Na.push(function(){});a.Na=a.Na||[];a.Na.push(function(){a.Canvas.prototype.drawText=function(c,b,d,g,n){var p=ha(c),B=a._malloc(p+1);ja(c,B,p+1);this._drawSimpleText(B,p,b,d,n,g);a._free(B)};a.Canvas.prototype.drawGlyphs=function(c,b,d,g,n,p){if(!(2*c.length<=b.length))throw"Not enough positions for the array of gyphs";const B=t(c,"HEAPU16"),F=t(b,"HEAPF32");this._drawGlyphs(c.length,B,F,d,g,n,p);y(F,b);y(B,c)};a.Font.prototype.getGlyphBounds=function(c,b,d){var g=t(c,"HEAPU16"),n=a._malloc(16*
78
+ c.length);this._getGlyphWidthBounds(g,c.length,M,n,b||null);b=new Float32Array(a.HEAPU8.buffer,n,4*c.length);y(g,c);if(d)return d.set(b),a._free(n),d;c=Float32Array.from(b);a._free(n);return c};a.Font.prototype.getGlyphIDs=function(c,b,d){b||(b=c.length);var g=ha(c)+1,n=a._malloc(g);ja(c,n,g);c=a._malloc(2*b);b=this._getGlyphIDs(n,g-1,b,c);a._free(n);if(0>b)return a._free(c),null;n=new Uint16Array(a.HEAPU8.buffer,c,b);if(d)return d.set(n),a._free(c),d;d=Uint16Array.from(n);a._free(c);return d};a.Font.prototype.getGlyphIntercepts=
79
+ function(c,b,d,g){var n=t(c,"HEAPU16"),p=t(b,"HEAPF32");return this._getGlyphIntercepts(n,c.length,!(c&&c._ck),p,b.length,!(b&&b._ck),d,g)};a.Font.prototype.getGlyphWidths=function(c,b,d){var g=t(c,"HEAPU16"),n=a._malloc(4*c.length);this._getGlyphWidthBounds(g,c.length,n,M,b||null);b=new Float32Array(a.HEAPU8.buffer,n,c.length);y(g,c);if(d)return d.set(b),a._free(n),d;c=Float32Array.from(b);a._free(n);return c};a.FontMgr.FromData=function(){if(!arguments.length)return null;var c=arguments;1===c.length&&
80
+ Array.isArray(c[0])&&(c=arguments[0]);if(!c.length)return null;for(var b=[],d=[],g=0;g<c.length;g++){var n=new Uint8Array(c[g]),p=t(n,"HEAPU8");b.push(p);d.push(n.byteLength)}b=t(b,"HEAPU32");d=t(d,"HEAPU32");c=a.FontMgr._fromData(b,d,c.length);a._free(b);a._free(d);return c};a.Typeface.MakeTypefaceFromData=function(c){c=new Uint8Array(c);var b=t(c,"HEAPU8");return(c=a.Typeface._MakeTypefaceFromData(b,c.byteLength))?c:null};a.Typeface.MakeFreeTypeFaceFromData=a.Typeface.MakeTypefaceFromData;a.Typeface.prototype.getGlyphIDs=
81
+ function(c,b,d){b||(b=c.length);var g=ha(c)+1,n=a._malloc(g);ja(c,n,g);c=a._malloc(2*b);b=this._getGlyphIDs(n,g-1,b,c);a._free(n);if(0>b)return a._free(c),null;n=new Uint16Array(a.HEAPU8.buffer,c,b);if(d)return d.set(n),a._free(c),d;d=Uint16Array.from(n);a._free(c);return d};a.TextBlob.MakeOnPath=function(c,b,d,g){if(c&&c.length&&b&&b.countPoints()){if(1===b.countPoints())return this.MakeFromText(c,d);g||=0;var n=d.getGlyphIDs(c);n=d.getGlyphWidths(n);var p=[];b=new a.ContourMeasureIter(b,!1,1);for(var B=
82
+ b.next(),F=new Float32Array(4),I=0;I<c.length&&B;I++){var J=n[I];g+=J/2;if(g>B.length()){B.delete();B=b.next();if(!B){c=c.substring(0,I);break}g=J/2}B.getPosTan(g,F);var P=F[2],Q=F[3];p.push(P,Q,F[0]-J/2*P,F[1]-J/2*Q);g+=J/2}c=this.MakeFromRSXform(c,p,d);B&&B.delete();b.delete();return c}};a.TextBlob.MakeFromRSXform=function(c,b,d){var g=ha(c)+1,n=a._malloc(g);ja(c,n,g);c=t(b,"HEAPF32");d=a.TextBlob._MakeFromRSXform(n,g-1,c,d);a._free(n);return d?d:null};a.TextBlob.MakeFromRSXformGlyphs=function(c,
83
+ b,d){var g=t(c,"HEAPU16");b=t(b,"HEAPF32");d=a.TextBlob._MakeFromRSXformGlyphs(g,2*c.length,b,d);y(g,c);return d?d:null};a.TextBlob.MakeFromGlyphs=function(c,b){var d=t(c,"HEAPU16");b=a.TextBlob._MakeFromGlyphs(d,2*c.length,b);y(d,c);return b?b:null};a.TextBlob.MakeFromText=function(c,b){var d=ha(c)+1,g=a._malloc(d);ja(c,g,d);c=a.TextBlob._MakeFromText(g,d-1,b);a._free(g);return c?c:null};a.MallocGlyphIDs=function(c){return a.Malloc(Uint16Array,c)}});a.Na=a.Na||[];a.Na.push(function(){a.MakePicture=
84
+ function(c){c=new Uint8Array(c);var b=a._malloc(c.byteLength);a.HEAPU8.set(c,b);return(c=a._MakePicture(b,c.byteLength))?c:null}});a.Na=a.Na||[];a.Na.push(function(){a.RuntimeEffect.Make=function(c,b){return a.RuntimeEffect._Make(c,{onError:b||function(d){console.log("RuntimeEffect error",d)}})};a.RuntimeEffect.MakeForBlender=function(c,b){return a.RuntimeEffect._MakeForBlender(c,{onError:b||function(d){console.log("RuntimeEffect error",d)}})};a.RuntimeEffect.prototype.makeShader=function(c,b){var d=
85
+ !c._ck,g=t(c,"HEAPF32");b=G(b);return this._makeShader(g,4*c.length,d,b)};a.RuntimeEffect.prototype.makeShaderWithChildren=function(c,b,d){var g=!c._ck,n=t(c,"HEAPF32");d=G(d);for(var p=[],B=0;B<b.length;B++)p.push(b[B].Fa.La);b=t(p,"HEAPU32");return this._makeShaderWithChildren(n,4*c.length,g,b,p.length,d)};a.RuntimeEffect.prototype.makeBlender=function(c){var b=!c._ck,d=t(c,"HEAPF32");return this._makeBlender(d,4*c.length,b)}});(function(){function c(C){for(var f=0;f<C.length;f++)if(void 0!==C[f]&&
86
+ !Number.isFinite(C[f]))return!1;return!0}function b(C){var f=a.getColorComponents(C);C=f[0];var l=f[1],q=f[2];f=f[3];if(1===f)return C=C.toString(16).toLowerCase(),l=l.toString(16).toLowerCase(),q=q.toString(16).toLowerCase(),C=1===C.length?"0"+C:C,l=1===l.length?"0"+l:l,q=1===q.length?"0"+q:q,"#"+C+l+q;f=0===f||1===f?f:f.toFixed(8);return"rgba("+C+", "+l+", "+q+", "+f+")"}function d(C){return a.parseColorString(C,na)}function g(C){C=oa.exec(C);if(!C)return null;var f=parseFloat(C[4]),l=16;switch(C[5]){case "em":case "rem":l=
87
+ 16*f;break;case "pt":l=4*f/3;break;case "px":l=f;break;case "pc":l=16*f;break;case "in":l=96*f;break;case "cm":l=96*f/2.54;break;case "mm":l=96/25.4*f;break;case "q":l=96/25.4/4*f;break;case "%":l=16/75*f}return{style:C[1],variant:C[2],weight:C[3],sizePx:l,family:C[6].trim()}}function n(){da||={"Noto Mono":{"*":a.Typeface.GetDefault()},monospace:{"*":a.Typeface.GetDefault()}}}function p(C){this.Ga=C;this.Ia=new a.Paint;this.Ia.setAntiAlias(!0);this.Ia.setStrokeMiter(10);this.Ia.setStrokeCap(a.StrokeCap.Butt);
88
+ this.Ia.setStrokeJoin(a.StrokeJoin.Miter);this.Gb="10px monospace";this.hb=new a.Font(a.Typeface.GetDefault(),10);this.hb.setSubpixel(!0);this.Va=this.ab=a.BLACK;this.pb=0;this.zb=a.TRANSPARENT;this.rb=this.qb=0;this.Ab=this.eb=1;this.yb=0;this.ob=[];this.Ha=a.BlendMode.SrcOver;this.Ia.setStrokeWidth(this.Ab);this.Ia.setBlendMode(this.Ha);this.Ka=new a.PathBuilder;this.Ma=a.Matrix.identity();this.Qb=[];this.vb=[];this.gb=function(){this.Ka.delete();this.Ia.delete();this.hb.delete();this.vb.forEach(function(f){f.gb()})};
89
+ Object.defineProperty(this,"currentTransform",{enumerable:!0,get:function(){return{a:this.Ma[0],c:this.Ma[1],e:this.Ma[2],b:this.Ma[3],d:this.Ma[4],f:this.Ma[5]}},set:function(f){f.a&&this.setTransform(f.a,f.b,f.c,f.d,f.e,f.f)}});Object.defineProperty(this,"fillStyle",{enumerable:!0,get:function(){return k(this.Va)?b(this.Va):this.Va},set:function(f){"string"===typeof f?this.Va=d(f):f.nb&&(this.Va=f)}});Object.defineProperty(this,"font",{enumerable:!0,get:function(){return this.Gb},set:function(f){var l=
90
+ g(f);var q=(l.style||"normal")+"|"+(l.variant||"normal")+"|"+(l.weight||"normal");var v=l.family;n();q=da[v]?da[v][q]||da[v]["*"]:a.Typeface.GetDefault();l.typeface=q;l&&(this.hb.setSize(l.sizePx),this.hb.setTypeface(l.typeface),this.Gb=f)}});Object.defineProperty(this,"globalAlpha",{enumerable:!0,get:function(){return this.eb},set:function(f){!isFinite(f)||0>f||1<f||(this.eb=f)}});Object.defineProperty(this,"globalCompositeOperation",{enumerable:!0,get:function(){switch(this.Ha){case a.BlendMode.SrcOver:return"source-over";
91
+ 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";
92
+ 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";
93
+ case a.BlendMode.Saturation:return"saturation";case a.BlendMode.Color:return"color";case a.BlendMode.Luminosity:return"luminosity"}},set:function(f){switch(f){case "source-over":this.Ha=a.BlendMode.SrcOver;break;case "destination-over":this.Ha=a.BlendMode.DstOver;break;case "copy":this.Ha=a.BlendMode.Src;break;case "destination":this.Ha=a.BlendMode.Dst;break;case "clear":this.Ha=a.BlendMode.Clear;break;case "source-in":this.Ha=a.BlendMode.SrcIn;break;case "destination-in":this.Ha=a.BlendMode.DstIn;
94
+ break;case "source-out":this.Ha=a.BlendMode.SrcOut;break;case "destination-out":this.Ha=a.BlendMode.DstOut;break;case "source-atop":this.Ha=a.BlendMode.SrcATop;break;case "destination-atop":this.Ha=a.BlendMode.DstATop;break;case "xor":this.Ha=a.BlendMode.Xor;break;case "lighter":this.Ha=a.BlendMode.Plus;break;case "plus-lighter":this.Ha=a.BlendMode.Plus;break;case "plus-darker":throw"plus-darker is not supported";case "multiply":this.Ha=a.BlendMode.Multiply;break;case "screen":this.Ha=a.BlendMode.Screen;
95
+ break;case "overlay":this.Ha=a.BlendMode.Overlay;break;case "darken":this.Ha=a.BlendMode.Darken;break;case "lighten":this.Ha=a.BlendMode.Lighten;break;case "color-dodge":this.Ha=a.BlendMode.ColorDodge;break;case "color-burn":this.Ha=a.BlendMode.ColorBurn;break;case "hard-light":this.Ha=a.BlendMode.HardLight;break;case "soft-light":this.Ha=a.BlendMode.SoftLight;break;case "difference":this.Ha=a.BlendMode.Difference;break;case "exclusion":this.Ha=a.BlendMode.Exclusion;break;case "hue":this.Ha=a.BlendMode.Hue;
96
+ break;case "saturation":this.Ha=a.BlendMode.Saturation;break;case "color":this.Ha=a.BlendMode.Color;break;case "luminosity":this.Ha=a.BlendMode.Luminosity;break;default:return}this.Ia.setBlendMode(this.Ha)}});Object.defineProperty(this,"imageSmoothingEnabled",{enumerable:!0,get:function(){return!0},set:function(){}});Object.defineProperty(this,"imageSmoothingQuality",{enumerable:!0,get:function(){return"high"},set:function(){}});Object.defineProperty(this,"lineCap",{enumerable:!0,get:function(){switch(this.Ia.getStrokeCap()){case a.StrokeCap.Butt:return"butt";
97
+ case a.StrokeCap.Round:return"round";case a.StrokeCap.Square:return"square"}},set:function(f){switch(f){case "butt":this.Ia.setStrokeCap(a.StrokeCap.Butt);break;case "round":this.Ia.setStrokeCap(a.StrokeCap.Round);break;case "square":this.Ia.setStrokeCap(a.StrokeCap.Square)}}});Object.defineProperty(this,"lineDashOffset",{enumerable:!0,get:function(){return this.yb},set:function(f){isFinite(f)&&(this.yb=f)}});Object.defineProperty(this,"lineJoin",{enumerable:!0,get:function(){switch(this.Ia.getStrokeJoin()){case a.StrokeJoin.Miter:return"miter";
98
+ case a.StrokeJoin.Round:return"round";case a.StrokeJoin.Bevel:return"bevel"}},set:function(f){switch(f){case "miter":this.Ia.setStrokeJoin(a.StrokeJoin.Miter);break;case "round":this.Ia.setStrokeJoin(a.StrokeJoin.Round);break;case "bevel":this.Ia.setStrokeJoin(a.StrokeJoin.Bevel)}}});Object.defineProperty(this,"lineWidth",{enumerable:!0,get:function(){return this.Ia.getStrokeWidth()},set:function(f){0>=f||!f||(this.Ab=f,this.Ia.setStrokeWidth(f))}});Object.defineProperty(this,"miterLimit",{enumerable:!0,
99
+ get:function(){return this.Ia.getStrokeMiter()},set:function(f){0>=f||!f||this.Ia.setStrokeMiter(f)}});Object.defineProperty(this,"shadowBlur",{enumerable:!0,get:function(){return this.pb},set:function(f){0>f||!isFinite(f)||(this.pb=f)}});Object.defineProperty(this,"shadowColor",{enumerable:!0,get:function(){return b(this.zb)},set:function(f){this.zb=d(f)}});Object.defineProperty(this,"shadowOffsetX",{enumerable:!0,get:function(){return this.qb},set:function(f){isFinite(f)&&(this.qb=f)}});Object.defineProperty(this,
100
+ "shadowOffsetY",{enumerable:!0,get:function(){return this.rb},set:function(f){isFinite(f)&&(this.rb=f)}});Object.defineProperty(this,"strokeStyle",{enumerable:!0,get:function(){return b(this.ab)},set:function(f){"string"===typeof f?this.ab=d(f):f.nb&&(this.ab=f)}});this.arc=function(f,l,q,v,z,D){m(this.Ka,f,l,q,q,0,v,z,D)};this.arcTo=function(f,l,q,v,z){P(this.Ka,f,l,q,v,z)};this.beginPath=function(){this.Ka.delete();this.Ka=new a.PathBuilder};this.bezierCurveTo=function(f,l,q,v,z,D){var H=this.Ka;
101
+ c([f,l,q,v,z,D])&&(H.isEmpty()&&H.moveTo(f,l),H.cubicTo(f,l,q,v,z,D))};this.clearRect=function(f,l,q,v){this.Ia.setStyle(a.PaintStyle.Fill);this.Ia.setBlendMode(a.BlendMode.Clear);this.Ga.drawRect(a.XYWHRect(f,l,q,v),this.Ia);this.Ia.setBlendMode(this.Ha)};this.clip=function(f,l){if("string"===typeof f){l=f;var q=this.Ka.snapshot()}else f&&f.cb&&(q=f.cb());q||=this.Ka.snapshot();l&&"evenodd"===l.toLowerCase()?q.setFillType(a.FillType.EvenOdd):q.setFillType(a.FillType.Winding);this.Ga.clipPath(q,a.ClipOp.Intersect,
102
+ !0);q.delete()};this.closePath=function(){var f=this.Ka;f.isEmpty()||1!=f.countPoints()&&f.close()};this.createImageData=function(){if(1===arguments.length){var f=arguments[0];return new I(new Uint8ClampedArray(4*f.width*f.height),f.width,f.height)}if(2===arguments.length){f=arguments[0];var l=arguments[1];return new I(new Uint8ClampedArray(4*f*l),f,l)}throw"createImageData expects 1 or 2 arguments, got "+arguments.length;};this.createLinearGradient=function(f,l,q,v){if(c(arguments)){var z=new J(f,
103
+ l,q,v);this.vb.push(z);return z}};this.createPattern=function(f,l){f=new T(f,l);this.vb.push(f);return f};this.createRadialGradient=function(f,l,q,v,z,D){if(c(arguments)){var H=new ba(f,l,q,v,z,D);this.vb.push(H);return H}};this.drawImage=function(f){f instanceof F&&(f=f.Ub());var l=this.Fb();if(3===arguments.length||5===arguments.length)var q=a.XYWHRect(arguments[1],arguments[2],arguments[3]||f.width(),arguments[4]||f.height()),v=a.XYWHRect(0,0,f.width(),f.height());else if(9===arguments.length)q=
104
+ a.XYWHRect(arguments[5],arguments[6],arguments[7],arguments[8]),v=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.Ga.drawImageRect(f,v,q,l,!1);l.dispose()};this.ellipse=function(f,l,q,v,z,D,H,U){m(this.Ka,f,l,q,v,z,D,H,U)};this.Fb=function(){var f=this.Ia.copy();f.setStyle(a.PaintStyle.Fill);if(k(this.Va)){var l=a.multiplyByAlpha(this.Va,this.eb);f.setColor(l)}else l=this.Va.nb(this.Ma),f.setColor(a.Color(0,
105
+ 0,0,this.eb)),f.setShader(l);f.dispose=function(){this.delete()};return f};this.fill=function(f,l){if("string"===typeof f){l=f;var q=this.Ka.snapshot()}else f&&f.cb&&(q=f.cb());f||(q=this.Ka.snapshot());if("evenodd"===l)q.setFillType(a.FillType.EvenOdd);else{if("nonzero"!==l&&l)throw"invalid fill rule";q.setFillType(a.FillType.Winding)}f=this.Fb();if(l=this.sb(f))this.Ga.save(),this.lb(),this.Ga.drawPath(q,l),this.Ga.restore(),l.dispose();this.Ga.drawPath(q,f);f.dispose();q.delete()};this.fillRect=
106
+ function(f,l,q,v){var z=this.Fb(),D=this.sb(z);D&&(this.Ga.save(),this.lb(),this.Ga.drawRect(a.XYWHRect(f,l,q,v),D),this.Ga.restore(),D.dispose());this.Ga.drawRect(a.XYWHRect(f,l,q,v),z);z.dispose()};this.fillText=function(f,l,q){var v=this.Fb();f=a.TextBlob.MakeFromText(f,this.hb);var z=this.sb(v);z&&(this.Ga.save(),this.lb(),this.Ga.drawTextBlob(f,l,q,z),this.Ga.restore(),z.dispose());this.Ga.drawTextBlob(f,l,q,v);f.delete();v.dispose()};this.getImageData=function(f,l,q,v){return(f=this.Ga.readPixels(f,
107
+ l,{width:q,height:v,colorType:a.ColorType.RGBA_8888,alphaType:a.AlphaType.Unpremul,colorSpace:a.ColorSpace.SRGB}))?new I(new Uint8ClampedArray(f.buffer),q,v):null};this.getLineDash=function(){return this.ob.slice()};this.Rb=function(f){var l=a.Matrix.invert(this.Ma);a.Matrix.mapPoints(l,f);return f};this.isPointInPath=function(f,l,q){var v=arguments;if(3===v.length)var z=this.Ka.snapshot();else if(4===v.length)z=v[0].copy(),f=v[1],l=v[2],q=v[3];else throw"invalid arg count, need 3 or 4, got "+v.length;
108
+ if(!isFinite(f)||!isFinite(l))return z.delete(),!1;q=q||"nonzero";if("nonzero"!==q&&"evenodd"!==q)return z.delete(),!1;v=this.Rb([f,l]);f=v[0];l=v[1];z.setFillType("nonzero"===q?a.FillType.Winding:a.FillType.EvenOdd);v=z.contains(f,l);z.delete();return v};this.isPointInStroke=function(f,l){var q=arguments;if(2===q.length)var v=this.Ka.snapshot();else if(3===q.length)v=q[0].copy(),f=q[1],l=q[2];else throw"invalid arg count, need 2 or 3, got "+q.length;if(!isFinite(f)||!isFinite(l))return v.delete(),
109
+ !1;q=this.Rb([f,l]);f=q[0];l=q[1];v.setFillType(a.FillType.Winding);q=v.makeStroked({width:this.lineWidth,miter_limit:this.miterLimit,cap:this.Ia.getStrokeCap(),join:this.Ia.getStrokeJoin(),precision:.3});var z=q.contains(f,l);q.delete();v.delete();return z};this.lineTo=function(f,l){A(this.Ka,f,l)};this.measureText=function(f){f=this.hb.getGlyphIDs(f);f=this.hb.getGlyphWidths(f);let l=0;for(const q of f)l+=q;return{width:l}};this.moveTo=function(f,l){var q=this.Ka;c([f,l])&&q.moveTo(f,l)};this.putImageData=
110
+ function(f,l,q,v,z,D,H){if(c([l,q,v,z,D,H]))if(void 0===v)this.Ga.writePixels(f.data,f.width,f.height,l,q);else if(v=v||0,z=z||0,D=D||f.width,H=H||f.height,0>D&&(v+=D,D=Math.abs(D)),0>H&&(z+=H,H=Math.abs(H)),0>v&&(D+=v,v=0),0>z&&(H+=z,z=0),!(0>=D||0>=H)){f=a.MakeImage({width:f.width,height:f.height,alphaType:a.AlphaType.Unpremul,colorType:a.ColorType.RGBA_8888,colorSpace:a.ColorSpace.SRGB},f.data,4*f.width);var U=a.XYWHRect(v,z,D,H);l=a.XYWHRect(l+v,q+z,D,H);q=a.Matrix.invert(this.Ma);this.Ga.save();
111
+ this.Ga.concat(q);this.Ga.drawImageRect(f,U,l,null,!1);this.Ga.restore();f.delete()}};this.quadraticCurveTo=function(f,l,q,v){var z=this.Ka;c([f,l,q,v])&&(z.isEmpty()&&z.moveTo(f,l),z.quadTo(f,l,q,v))};this.rect=function(f,l,q,v){var z=this.Ka;f=a.XYWHRect(f,l,q,v);c(f)&&z.addRect(f)};this.resetTransform=function(){this.Ka.transform(this.Ma);var f=a.Matrix.invert(this.Ma);this.Ga.concat(f);this.Ma=this.Ga.getTotalMatrix()};this.restore=function(){var f=this.Qb.pop();if(f){var l=a.Matrix.multiply(this.Ma,
112
+ a.Matrix.invert(f.ec));this.Ka.transform(l);this.Ia.delete();this.Ia=f.tc;this.ob=f.qc;this.Ab=f.Hc;this.ab=f.Gc;this.Va=f.fs;this.qb=f.Ec;this.rb=f.Fc;this.pb=f.xc;this.zb=f.Dc;this.eb=f.ga;this.Ha=f.jc;this.yb=f.sc;this.Gb=f.ic;this.Ga.restore();this.Ma=this.Ga.getTotalMatrix()}};this.rotate=function(f){if(isFinite(f)){var l=a.Matrix.rotated(-f);this.Ka.transform(l);this.Ga.rotate(f/Math.PI*180,0,0);this.Ma=this.Ga.getTotalMatrix()}};this.save=function(){if(this.Va.mb){var f=this.Va.mb();this.vb.push(f)}else f=
113
+ this.Va;if(this.ab.mb){var l=this.ab.mb();this.vb.push(l)}else l=this.ab;this.Qb.push({ec:this.Ma.slice(),qc:this.ob.slice(),Hc:this.Ab,Gc:l,fs:f,Ec:this.qb,Fc:this.rb,xc:this.pb,Dc:this.zb,ga:this.eb,sc:this.yb,jc:this.Ha,tc:this.Ia.copy(),ic:this.Gb});this.Ga.save()};this.scale=function(f,l){if(c(arguments)){var q=a.Matrix.scaled(1/f,1/l);this.Ka.transform(q);this.Ga.scale(f,l);this.Ma=this.Ga.getTotalMatrix()}};this.setLineDash=function(f){for(var l=0;l<f.length;l++)if(!isFinite(f[l])||0>f[l])return;
114
+ 1===f.length%2&&Array.prototype.push.apply(f,f);this.ob=f};this.setTransform=function(f,l,q,v,z,D){c(arguments)&&(this.resetTransform(),this.transform(f,l,q,v,z,D))};this.lb=function(){var f=a.Matrix.invert(this.Ma);this.Ga.concat(f);this.Ga.concat(a.Matrix.translated(this.qb,this.rb));this.Ga.concat(this.Ma)};this.sb=function(f){var l=a.multiplyByAlpha(this.zb,this.eb);if(!a.getColorComponents(l)[3]||!(this.pb||this.rb||this.qb))return null;f=f.copy();f.setColor(l);var q=a.MaskFilter.MakeBlur(a.BlurStyle.Normal,
115
+ this.pb/2,!1);f.setMaskFilter(q);f.dispose=function(){q.delete();this.delete()};return f};this.Lb=function(){var f=this.Ia.copy();f.setStyle(a.PaintStyle.Stroke);if(k(this.ab)){var l=a.multiplyByAlpha(this.ab,this.eb);f.setColor(l)}else l=this.ab.nb(this.Ma),f.setColor(a.Color(0,0,0,this.eb)),f.setShader(l);f.setStrokeWidth(this.Ab);if(this.ob.length){var q=a.PathEffect.MakeDash(this.ob,this.yb);f.setPathEffect(q)}f.dispose=function(){q&&q.delete();this.delete()};return f};this.stroke=function(f){f=
116
+ f?f.cb():this.Ka.snapshot();var l=this.Lb(),q=this.sb(l);q&&(this.Ga.save(),this.lb(),this.Ga.drawPath(f,q),this.Ga.restore(),q.dispose());this.Ga.drawPath(f,l);f.delete();l.dispose()};this.strokeRect=function(f,l,q,v){var z=this.Lb(),D=this.sb(z);D&&(this.Ga.save(),this.lb(),this.Ga.drawRect(a.XYWHRect(f,l,q,v),D),this.Ga.restore(),D.dispose());this.Ga.drawRect(a.XYWHRect(f,l,q,v),z);z.dispose()};this.strokeText=function(f,l,q){var v=this.Lb();f=a.TextBlob.MakeFromText(f,this.hb);var z=this.sb(v);
117
+ z&&(this.Ga.save(),this.lb(),this.Ga.drawTextBlob(f,l,q,z),this.Ga.restore(),z.dispose());this.Ga.drawTextBlob(f,l,q,v);f.delete();v.dispose()};this.translate=function(f,l){if(c(arguments)){var q=a.Matrix.translated(-f,-l);this.Ka.transform(q);this.Ga.translate(f,l);this.Ma=this.Ga.getTotalMatrix()}};this.transform=function(f,l,q,v,z,D){f=[f,q,z,l,v,D,0,0,1];l=a.Matrix.invert(f);this.Ka.transform(l);this.Ga.concat(f);this.Ma=this.Ga.getTotalMatrix()};this.addHitRegion=function(){};this.clearHitRegions=
118
+ function(){};this.drawFocusIfNeeded=function(){};this.removeHitRegion=function(){};this.scrollPathIntoView=function(){};Object.defineProperty(this,"canvas",{value:null,writable:!1})}function B(C){this.Mb=C;this.fb=new p(C.getCanvas());this.Hb=[];this.decodeImage=function(f){f=a.MakeImageFromEncoded(f);if(!f)throw"Invalid input";this.Hb.push(f);return new F(f)};this.loadFont=function(f,l){f=a.Typeface.MakeTypefaceFromData(f);if(!f)return null;this.Hb.push(f);var q=(l.style||"normal")+"|"+(l.variant||
119
+ "normal")+"|"+(l.weight||"normal");l=l.family;n();da[l]||(da[l]={"*":f});da[l][q]=f};this.makePath2D=function(f){f=new L(f);this.Hb.push(f.cb());return f};this.getContext=function(f){return"2d"===f?this.fb:null};this.toDataURL=function(f,l){this.Mb.flush();var q=this.Mb.makeImageSnapshot();if(q){f=f||"image/png";var v=a.ImageFormat.PNG;"image/jpeg"===f&&(v=a.ImageFormat.JPEG);if(l=q.encodeToBytes(v,l||.92)){q.delete();f="data:"+f+";base64,";if("undefined"!==typeof Buffer)l=Buffer.from(l).toString("base64");
120
+ else{q=0;v=l.length;for(var z="",D;q<v;)D=l.slice(q,Math.min(q+32768,v)),z+=String.fromCharCode.apply(null,D),q+=32768;l=btoa(z)}return f+l}}};this.dispose=function(){this.fb.gb();this.Hb.forEach(function(f){f.delete()});this.Mb.dispose()}}function F(C){this.width=C.width();this.height=C.height();this.naturalWidth=this.width;this.naturalHeight=this.height;this.Ub=function(){return C}}function I(C,f,l){if(!f||0===l)throw new TypeError("invalid dimensions, width and height must be non-zero");if(C.length%
121
+ 4)throw new TypeError("arr must be a multiple of 4");l=l||C.length/(4*f);Object.defineProperty(this,"data",{value:C,writable:!1});Object.defineProperty(this,"height",{value:l,writable:!1});Object.defineProperty(this,"width",{value:f,writable:!1})}function J(C,f,l,q){this.Qa=null;this.$a=[];this.Ra=[];this.addColorStop=function(v,z){if(0>v||1<v||!isFinite(v))throw"offset must be between 0 and 1 inclusively";z=d(z);var D=this.Ra.indexOf(v);if(-1!==D)this.$a[D]=z;else{for(D=0;D<this.Ra.length&&!(this.Ra[D]>
122
+ v);D++);this.Ra.splice(D,0,v);this.$a.splice(D,0,z)}};this.mb=function(){var v=new J(C,f,l,q);v.$a=this.$a.slice();v.Ra=this.Ra.slice();return v};this.gb=function(){this.Qa&&(this.Qa.delete(),this.Qa=null)};this.nb=function(v){var z=[C,f,l,q];a.Matrix.mapPoints(v,z);v=z[0];var D=z[1],H=z[2];z=z[3];this.gb();return this.Qa=a.Shader.MakeLinearGradient([v,D],[H,z],this.$a,this.Ra,a.TileMode.Clamp)}}function P(C,f,l,q,v,z){if(c([f,l,q,v,z])){if(0>z)throw"radii cannot be negative";C.isEmpty()&&C.moveTo(f,
123
+ l);C.arcToTangent(f,l,q,v,z)}}function Q(C,f,l,q,v,z,D){D=(D-z)/Math.PI*180;z=z/Math.PI*180;f=a.LTRBRect(f-q,l-v,f+q,l+v);1E-5>Math.abs(Math.abs(D)-360)?(l=D/2,C.arcToOval(f,z,l,!1),C.arcToOval(f,z+l,l,!1)):C.arcToOval(f,z,D,!1)}function m(C,f,l,q,v,z,D,H,U){if(c([f,l,q,v,z,D,H])){if(0>q||0>v)throw"radii cannot be negative";var V=2*Math.PI,wa=D%V;0>wa&&(wa+=V);var Ga=wa-D;D=wa;H+=Ga;!U&&H-D>=V?H=D+V:U&&D-H>=V?H=D-V:!U&&D>H?H=D+(V-(D-H)%V):U&&D<H&&(H=D-(V-(H-D)%V));z?(U=a.Matrix.rotated(z,f,l),z=a.Matrix.rotated(-z,
124
+ f,l),C.transform(z),Q(C,f,l,q,v,D,H),C.transform(U)):Q(C,f,l,q,v,D,H)}}function A(C,f,l){c([f,l])&&(C.isEmpty()&&C.moveTo(f,l),C.lineTo(f,l))}function L(C){this.Ta=new a.PathBuilder;"string"===typeof C?(C=a.Path.MakeFromSVGString(C),this.Ta.addPath(C),C.delete()):C&&C.cb&&(C=C.cb(),this.Ta.addPath(C),C.delete());this.cb=function(){return this.Ta.snapshot()};this.addPath=function(f,l){l||={a:1,c:0,e:0,b:0,d:1,f:0};f=f.cb();this.Ta.addPath(f,[l.a,l.c,l.e,l.b,l.d,l.f]);f.delete()};this.arc=function(f,
125
+ l,q,v,z,D){m(this.Ta,f,l,q,q,0,v,z,D)};this.arcTo=function(f,l,q,v,z){P(this.Ta,f,l,q,v,z)};this.bezierCurveTo=function(f,l,q,v,z,D){var H=this.Ta;c([f,l,q,v,z,D])&&(H.isEmpty()&&H.moveTo(f,l),H.cubicTo(f,l,q,v,z,D))};this.closePath=function(){var f=this.Ta;f.isEmpty()||1!=f.countPoints()&&f.close()};this.ellipse=function(f,l,q,v,z,D,H,U){m(this.Ta,f,l,q,v,z,D,H,U)};this.lineTo=function(f,l){A(this.Ta,f,l)};this.moveTo=function(f,l){var q=this.Ta;c([f,l])&&q.moveTo(f,l)};this.quadraticCurveTo=function(f,
126
+ l,q,v){var z=this.Ta;c([f,l,q,v])&&(z.isEmpty()&&z.moveTo(f,l),z.quadTo(f,l,q,v))};this.rect=function(f,l,q,v){var z=this.Ta;f=a.XYWHRect(f,l,q,v);c(f)&&z.addRect(f)}}function T(C,f){this.Qa=null;C instanceof F&&(C=C.Ub());this.$b=C;this._transform=a.Matrix.identity();""===f&&(f="repeat");switch(f){case "repeat-x":this.tb=a.TileMode.Repeat;this.ub=a.TileMode.Decal;break;case "repeat-y":this.tb=a.TileMode.Decal;this.ub=a.TileMode.Repeat;break;case "repeat":this.ub=this.tb=a.TileMode.Repeat;break;case "no-repeat":this.ub=
127
+ this.tb=a.TileMode.Decal;break;default:throw"invalid repetition mode "+f;}this.setTransform=function(l){l=[l.a,l.c,l.e,l.b,l.d,l.f,0,0,1];c(l)&&(this._transform=l)};this.mb=function(){var l=new T;l.tb=this.tb;l.ub=this.ub;return l};this.gb=function(){this.Qa&&(this.Qa.delete(),this.Qa=null)};this.nb=function(){this.gb();return this.Qa=this.$b.makeShaderCubic(this.tb,this.ub,1/3,1/3,this._transform)}}function ba(C,f,l,q,v,z){this.Qa=null;this.$a=[];this.Ra=[];this.addColorStop=function(D,H){if(0>D||
128
+ 1<D||!isFinite(D))throw"offset must be between 0 and 1 inclusively";H=d(H);var U=this.Ra.indexOf(D);if(-1!==U)this.$a[U]=H;else{for(U=0;U<this.Ra.length&&!(this.Ra[U]>D);U++);this.Ra.splice(U,0,D);this.$a.splice(U,0,H)}};this.mb=function(){var D=new ba(C,f,l,q,v,z);D.$a=this.$a.slice();D.Ra=this.Ra.slice();return D};this.gb=function(){this.Qa&&(this.Qa.delete(),this.Qa=null)};this.nb=function(D){var H=[C,f,q,v];a.Matrix.mapPoints(D,H);var U=H[0],V=H[1],wa=H[2];H=H[3];var Ga=(Math.abs(D[0])+Math.abs(D[4]))/
129
+ 2;D=l*Ga;Ga*=z;this.gb();return this.Qa=a.Shader.MakeTwoPointConicalGradient([U,V],D,[wa,H],Ga,this.$a,this.Ra,a.TileMode.Clamp)}}a._testing={};var na={aliceblue:Float32Array.of(.941,.973,1,1),antiquewhite:Float32Array.of(.98,.922,.843,1),aqua:Float32Array.of(0,1,1,1),aquamarine:Float32Array.of(.498,1,.831,1),azure:Float32Array.of(.941,1,1,1),beige:Float32Array.of(.961,.961,.863,1),bisque:Float32Array.of(1,.894,.769,1),black:Float32Array.of(0,0,0,1),blanchedalmond:Float32Array.of(1,.922,.804,1),blue:Float32Array.of(0,
130
+ 0,1,1),blueviolet:Float32Array.of(.541,.169,.886,1),brown:Float32Array.of(.647,.165,.165,1),burlywood:Float32Array.of(.871,.722,.529,1),cadetblue:Float32Array.of(.373,.62,.627,1),chartreuse:Float32Array.of(.498,1,0,1),chocolate:Float32Array.of(.824,.412,.118,1),coral:Float32Array.of(1,.498,.314,1),cornflowerblue:Float32Array.of(.392,.584,.929,1),cornsilk:Float32Array.of(1,.973,.863,1),crimson:Float32Array.of(.863,.078,.235,1),cyan:Float32Array.of(0,1,1,1),darkblue:Float32Array.of(0,0,.545,1),darkcyan:Float32Array.of(0,
131
+ .545,.545,1),darkgoldenrod:Float32Array.of(.722,.525,.043,1),darkgray:Float32Array.of(.663,.663,.663,1),darkgreen:Float32Array.of(0,.392,0,1),darkgrey:Float32Array.of(.663,.663,.663,1),darkkhaki:Float32Array.of(.741,.718,.42,1),darkmagenta:Float32Array.of(.545,0,.545,1),darkolivegreen:Float32Array.of(.333,.42,.184,1),darkorange:Float32Array.of(1,.549,0,1),darkorchid:Float32Array.of(.6,.196,.8,1),darkred:Float32Array.of(.545,0,0,1),darksalmon:Float32Array.of(.914,.588,.478,1),darkseagreen:Float32Array.of(.561,
132
+ .737,.561,1),darkslateblue:Float32Array.of(.282,.239,.545,1),darkslategray:Float32Array.of(.184,.31,.31,1),darkslategrey:Float32Array.of(.184,.31,.31,1),darkturquoise:Float32Array.of(0,.808,.82,1),darkviolet:Float32Array.of(.58,0,.827,1),deeppink:Float32Array.of(1,.078,.576,1),deepskyblue:Float32Array.of(0,.749,1,1),dimgray:Float32Array.of(.412,.412,.412,1),dimgrey:Float32Array.of(.412,.412,.412,1),dodgerblue:Float32Array.of(.118,.565,1,1),firebrick:Float32Array.of(.698,.133,.133,1),floralwhite:Float32Array.of(1,
133
+ .98,.941,1),forestgreen:Float32Array.of(.133,.545,.133,1),fuchsia:Float32Array.of(1,0,1,1),gainsboro:Float32Array.of(.863,.863,.863,1),ghostwhite:Float32Array.of(.973,.973,1,1),gold:Float32Array.of(1,.843,0,1),goldenrod:Float32Array.of(.855,.647,.125,1),gray:Float32Array.of(.502,.502,.502,1),green:Float32Array.of(0,.502,0,1),greenyellow:Float32Array.of(.678,1,.184,1),grey:Float32Array.of(.502,.502,.502,1),honeydew:Float32Array.of(.941,1,.941,1),hotpink:Float32Array.of(1,.412,.706,1),indianred:Float32Array.of(.804,
134
+ .361,.361,1),indigo:Float32Array.of(.294,0,.51,1),ivory:Float32Array.of(1,1,.941,1),khaki:Float32Array.of(.941,.902,.549,1),lavender:Float32Array.of(.902,.902,.98,1),lavenderblush:Float32Array.of(1,.941,.961,1),lawngreen:Float32Array.of(.486,.988,0,1),lemonchiffon:Float32Array.of(1,.98,.804,1),lightblue:Float32Array.of(.678,.847,.902,1),lightcoral:Float32Array.of(.941,.502,.502,1),lightcyan:Float32Array.of(.878,1,1,1),lightgoldenrodyellow:Float32Array.of(.98,.98,.824,1),lightgray:Float32Array.of(.827,
135
+ .827,.827,1),lightgreen:Float32Array.of(.565,.933,.565,1),lightgrey:Float32Array.of(.827,.827,.827,1),lightpink:Float32Array.of(1,.714,.757,1),lightsalmon:Float32Array.of(1,.627,.478,1),lightseagreen:Float32Array.of(.125,.698,.667,1),lightskyblue:Float32Array.of(.529,.808,.98,1),lightslategray:Float32Array.of(.467,.533,.6,1),lightslategrey:Float32Array.of(.467,.533,.6,1),lightsteelblue:Float32Array.of(.69,.769,.871,1),lightyellow:Float32Array.of(1,1,.878,1),lime:Float32Array.of(0,1,0,1),limegreen:Float32Array.of(.196,
136
+ .804,.196,1),linen:Float32Array.of(.98,.941,.902,1),magenta:Float32Array.of(1,0,1,1),maroon:Float32Array.of(.502,0,0,1),mediumaquamarine:Float32Array.of(.4,.804,.667,1),mediumblue:Float32Array.of(0,0,.804,1),mediumorchid:Float32Array.of(.729,.333,.827,1),mediumpurple:Float32Array.of(.576,.439,.859,1),mediumseagreen:Float32Array.of(.235,.702,.443,1),mediumslateblue:Float32Array.of(.482,.408,.933,1),mediumspringgreen:Float32Array.of(0,.98,.604,1),mediumturquoise:Float32Array.of(.282,.82,.8,1),mediumvioletred:Float32Array.of(.78,
137
+ .082,.522,1),midnightblue:Float32Array.of(.098,.098,.439,1),mintcream:Float32Array.of(.961,1,.98,1),mistyrose:Float32Array.of(1,.894,.882,1),moccasin:Float32Array.of(1,.894,.71,1),navajowhite:Float32Array.of(1,.871,.678,1),navy:Float32Array.of(0,0,.502,1),oldlace:Float32Array.of(.992,.961,.902,1),olive:Float32Array.of(.502,.502,0,1),olivedrab:Float32Array.of(.42,.557,.137,1),orange:Float32Array.of(1,.647,0,1),orangered:Float32Array.of(1,.271,0,1),orchid:Float32Array.of(.855,.439,.839,1),palegoldenrod:Float32Array.of(.933,
138
+ .91,.667,1),palegreen:Float32Array.of(.596,.984,.596,1),paleturquoise:Float32Array.of(.686,.933,.933,1),palevioletred:Float32Array.of(.859,.439,.576,1),papayawhip:Float32Array.of(1,.937,.835,1),peachpuff:Float32Array.of(1,.855,.725,1),peru:Float32Array.of(.804,.522,.247,1),pink:Float32Array.of(1,.753,.796,1),plum:Float32Array.of(.867,.627,.867,1),powderblue:Float32Array.of(.69,.878,.902,1),purple:Float32Array.of(.502,0,.502,1),rebeccapurple:Float32Array.of(.4,.2,.6,1),red:Float32Array.of(1,0,0,1),
139
+ rosybrown:Float32Array.of(.737,.561,.561,1),royalblue:Float32Array.of(.255,.412,.882,1),saddlebrown:Float32Array.of(.545,.271,.075,1),salmon:Float32Array.of(.98,.502,.447,1),sandybrown:Float32Array.of(.957,.643,.376,1),seagreen:Float32Array.of(.18,.545,.341,1),seashell:Float32Array.of(1,.961,.933,1),sienna:Float32Array.of(.627,.322,.176,1),silver:Float32Array.of(.753,.753,.753,1),skyblue:Float32Array.of(.529,.808,.922,1),slateblue:Float32Array.of(.416,.353,.804,1),slategray:Float32Array.of(.439,.502,
140
+ .565,1),slategrey:Float32Array.of(.439,.502,.565,1),snow:Float32Array.of(1,.98,.98,1),springgreen:Float32Array.of(0,1,.498,1),steelblue:Float32Array.of(.275,.51,.706,1),tan:Float32Array.of(.824,.706,.549,1),teal:Float32Array.of(0,.502,.502,1),thistle:Float32Array.of(.847,.749,.847,1),tomato:Float32Array.of(1,.388,.278,1),transparent:Float32Array.of(0,0,0,0),turquoise:Float32Array.of(.251,.878,.816,1),violet:Float32Array.of(.933,.51,.933,1),wheat:Float32Array.of(.961,.871,.702,1),white:Float32Array.of(1,
141
+ 1,1,1),whitesmoke:Float32Array.of(.961,.961,.961,1),yellow:Float32Array.of(1,1,0,1),yellowgreen:Float32Array.of(.604,.804,.196,1)};a._testing.parseColor=d;a._testing.colorToString=b;var oa=RegExp("(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)(.+)"),da;a._testing.parseFontString=g;a.MakeCanvas=function(C,f){return(C=a.MakeSurface(C,f))?new B(C):null};a.ImageData=function(){if(2===arguments.length){var C=
142
+ arguments[0],f=arguments[1];return new I(new Uint8ClampedArray(4*C*f),C,f)}if(3===arguments.length){var l=arguments[0];if(l.prototype.constructor!==Uint8ClampedArray)throw new TypeError("bytes must be given as a Uint8ClampedArray");C=arguments[1];f=arguments[2];if(l%4)throw new TypeError("bytes must be given in a multiple of 4");if(l%C)throw new TypeError("bytes must divide evenly by width");if(f&&f!==l/(4*C))throw new TypeError("invalid height given");return new I(l,C,l/(4*C))}throw new TypeError("invalid number of arguments - takes 2 or 3, saw "+
143
+ arguments.length);}})()})(O);var ka="./this.program",la=(a,e)=>{throw e;};"undefined"!=typeof __filename?_scriptName=__filename:ea&&(_scriptName=self.location.href);var pa="",qa,ta;
144
+ if(fa){var fs=require("fs");pa=__dirname+"/";ta=a=>{a=ua(a)?new URL(a):a;return fs.readFileSync(a)};qa=async a=>{a=ua(a)?new URL(a):a;return fs.readFileSync(a,void 0)};1<process.argv.length&&(ka=process.argv[1].replace(/\\/g,"/"));process.argv.slice(2);la=(a,e)=>{process.exitCode=a;throw e;}}else if(ca||ea){try{pa=(new URL(".",_scriptName)).href}catch{}ea&&(ta=a=>{var e=new XMLHttpRequest;e.open("GET",a,!1);e.responseType="arraybuffer";e.send(null);return new Uint8Array(e.response)});qa=async a=>
145
+ {if(ua(a))return new Promise((h,k)=>{var r=new XMLHttpRequest;r.open("GET",a,!0);r.responseType="arraybuffer";r.onload=()=>{200==r.status||0==r.status&&r.response?h(r.response):k(r.status)};r.onerror=k;r.send(null)});var e=await fetch(a,{credentials:"same-origin"});if(e.ok)return e.arrayBuffer();throw Error(e.status+" : "+e.url);}}var va=console.log.bind(console),xa=console.error.bind(console),Aa=!1,ua=a=>a.startsWith("file://"),Ba,Da,Ha,Ia,Ja,La,Ma,Na,R,Oa,Pa,Qa,Ra,Sa=!1;
146
+ function Va(){var a=Ha.buffer;Ia=new Int8Array(a);La=new Int16Array(a);O.HEAPU8=Ja=new Uint8Array(a);O.HEAPU16=Ma=new Uint16Array(a);O.HEAP32=Na=new Int32Array(a);O.HEAPU32=R=new Uint32Array(a);O.HEAPF32=Oa=new Float32Array(a);Pa=new Float64Array(a);Qa=new BigInt64Array(a);Ra=new BigUint64Array(a)}var Wa=0,Xa=null;function Ya(a){a="Aborted("+a+")";xa(a);Aa=!0;a=new WebAssembly.RuntimeError(a+". Build with -sASSERTIONS for more info.");Da?.(a);throw a;}var Za;
147
+ async function $a(a){try{var e=await qa(a);return new Uint8Array(e)}catch{}if(ta)a=ta(a);else throw"both async and sync fetching of the wasm failed";return a}async function ab(a,e){try{var h=await $a(a);return await WebAssembly.instantiate(h,e)}catch(k){xa(`failed to asynchronously prepare wasm: ${k}`),Ya(k)}}
148
+ async function bb(a){var e=Za;if("function"==typeof WebAssembly.instantiateStreaming&&!ua(e)&&!fa)try{var h=fetch(e,{credentials:"same-origin"});return await WebAssembly.instantiateStreaming(h,a)}catch(k){xa(`wasm streaming compile failed: ${k}`),xa("falling back to ArrayBuffer instantiation")}return ab(e,a)}class cb{name="ExitStatus";constructor(a){this.message=`Program terminated with exit(${a})`;this.status=a}}var db=new TextDecoder,eb={},fb=a=>{for(;a.length;){var e=a.pop();a.pop()(e)}};
149
+ function gb(a){return this.fromWireType(R[a>>2])}
150
+ var hb={},ib={},jb={},qb=class extends Error{constructor(a){super(a);this.name="InternalError"}},sb=(a,e,h)=>{function k(w){w=h(w);if(w.length!==a.length)throw new qb("Mismatched type converter count");for(var y=0;y<a.length;++y)rb(a[y],w[y])}a.forEach(w=>jb[w]=e);var r=Array(e.length),u=[],x=0;e.forEach((w,y)=>{ib.hasOwnProperty(w)?r[y]=ib[w]:(u.push(w),hb.hasOwnProperty(w)||(hb[w]=[]),hb[w].push(()=>{r[y]=ib[w];++x;x===u.length&&k(r)}))});0===u.length&&k(r)},Y=a=>{for(var e="";;){var h=Ja[a++];
151
+ if(!h)return e;e+=String.fromCharCode(h)}},Z=class extends Error{constructor(a){super(a);this.name="BindingError"}};function tb(a,e,h={}){var k=e.name;if(!a)throw new Z(`type "${k}" must have a positive integer typeid pointer`);if(ib.hasOwnProperty(a)){if(h.pc)return;throw new Z(`Cannot register type '${k}' twice`);}ib[a]=e;delete jb[a];hb.hasOwnProperty(a)&&(e=hb[a],delete hb[a],e.forEach(r=>r()))}function rb(a,e,h={}){return tb(a,e,h)}
152
+ var ub=(a,e,h)=>{switch(e){case 1:return h?k=>Ia[k]:k=>Ja[k];case 2:return h?k=>La[k>>1]:k=>Ma[k>>1];case 4:return h?k=>Na[k>>2]:k=>R[k>>2];case 8:return h?k=>Qa[k>>3]:k=>Ra[k>>3];default:throw new TypeError(`invalid integer width (${e}): ${a}`);}},vb=a=>{throw new Z(a.Fa.Oa.Ja.name+" instance already deleted");},wb=!1,xb=()=>{},yb=a=>{if("undefined"===typeof FinalizationRegistry)return yb=e=>e,a;wb=new FinalizationRegistry(e=>{e=e.Fa;--e.count.value;0===e.count.value&&(e.Sa?e.Za.bb(e.Sa):e.Oa.Ja.bb(e.La))});
153
+ yb=e=>{var h=e.Fa;h.Sa&&wb.register(e,{Fa:h},e);return e};xb=e=>{wb.unregister(e)};return yb(a)},zb=[];function Ab(){}
154
+ var Bb=(a,e)=>Object.defineProperty(e,"name",{value:a}),Cb={},Db=(a,e,h)=>{if(void 0===a[e].Pa){var k=a[e];a[e]=function(...r){if(!a[e].Pa.hasOwnProperty(r.length))throw new Z(`Function '${h}' called with an invalid number of arguments (${r.length}) - expects one of (${a[e].Pa})!`);return a[e].Pa[r.length].apply(this,r)};a[e].Pa=[];a[e].Pa[k.ib]=k}},Eb=(a,e,h)=>{if(O.hasOwnProperty(a)){if(void 0===h||void 0!==O[a].Pa&&void 0!==O[a].Pa[h])throw new Z(`Cannot register public name '${a}' twice`);Db(O,
155
+ a,a);if(O[a].Pa.hasOwnProperty(h))throw new Z(`Cannot register multiple overloads of a function with the same number of arguments (${h})!`);O[a].Pa[h]=e}else O[a]=e,O[a].ib=h},Fb=a=>{a=a.replace(/[^a-zA-Z0-9_]/g,"$");var e=a.charCodeAt(0);return 48<=e&&57>=e?`_${a}`:a};function Gb(a,e,h,k,r,u,x,w){this.name=a;this.constructor=e;this.wb=h;this.bb=k;this.Ua=r;this.kc=u;this.Db=x;this.fc=w;this.vc=[]}
156
+ var Nb=(a,e,h)=>{for(;e!==h;){if(!e.Db)throw new Z(`Expected null or instance of ${h.name}, got an instance of ${e.name}`);a=e.Db(a);e=e.Ua}return a},Ob=a=>{if(null===a)return"null";var e=typeof a;return"object"===e||"array"===e||"function"===e?a.toString():""+a};
157
+ function Pb(a,e){if(null===e){if(this.Ob)throw new Z(`null is not a valid ${this.name}`);return 0}if(!e.Fa)throw new Z(`Cannot pass "${Ob(e)}" as a ${this.name}`);if(!e.Fa.La)throw new Z(`Cannot pass deleted object as a pointer of type ${this.name}`);return Nb(e.Fa.La,e.Fa.Oa.Ja,this.Ja)}
158
+ function Qb(a,e){if(null===e){if(this.Ob)throw new Z(`null is not a valid ${this.name}`);if(this.Jb){var h=this.Pb();null!==a&&a.push(this.bb,h);return h}return 0}if(!e||!e.Fa)throw new Z(`Cannot pass "${Ob(e)}" as a ${this.name}`);if(!e.Fa.La)throw new Z(`Cannot pass deleted object as a pointer of type ${this.name}`);if(!this.Ib&&e.Fa.Oa.Ib)throw new Z(`Cannot convert argument of type ${e.Fa.Za?e.Fa.Za.name:e.Fa.Oa.name} to parameter type ${this.name}`);h=Nb(e.Fa.La,e.Fa.Oa.Ja,this.Ja);if(this.Jb){if(void 0===
159
+ e.Fa.Sa)throw new Z("Passing raw pointer to smart pointer is illegal");switch(this.Cc){case 0:if(e.Fa.Za===this)h=e.Fa.Sa;else throw new Z(`Cannot convert argument of type ${e.Fa.Za?e.Fa.Za.name:e.Fa.Oa.name} to parameter type ${this.name}`);break;case 1:h=e.Fa.Sa;break;case 2:if(e.Fa.Za===this)h=e.Fa.Sa;else{var k=e.clone();h=this.wc(h,Rb(()=>k["delete"]()));null!==a&&a.push(this.bb,h)}break;default:throw new Z("Unsupporting sharing policy");}}return h}
160
+ function Sb(a,e){if(null===e){if(this.Ob)throw new Z(`null is not a valid ${this.name}`);return 0}if(!e.Fa)throw new Z(`Cannot pass "${Ob(e)}" as a ${this.name}`);if(!e.Fa.La)throw new Z(`Cannot pass deleted object as a pointer of type ${this.name}`);if(e.Fa.Oa.Ib)throw new Z(`Cannot convert argument of type ${e.Fa.Oa.name} to parameter type ${this.name}`);return Nb(e.Fa.La,e.Fa.Oa.Ja,this.Ja)}
161
+ var Tb=(a,e,h)=>{if(e===h)return a;if(void 0===h.Ua)return null;a=Tb(a,e,h.Ua);return null===a?null:h.fc(a)},Ub={},Vb=(a,e)=>{if(void 0===e)throw new Z("ptr should not be undefined");for(;a.Ua;)e=a.Db(e),a=a.Ua;return Ub[e]},Wb=(a,e)=>{if(!e.Oa||!e.La)throw new qb("makeClassHandle requires ptr and ptrType");if(!!e.Za!==!!e.Sa)throw new qb("Both smartPtrType and smartPtr must be specified");e.count={value:1};return yb(Object.create(a,{Fa:{value:e,writable:!0}}))};
162
+ function Xb(a,e,h,k,r,u,x,w,y,t,E){this.name=a;this.Ja=e;this.Ob=h;this.Ib=k;this.Jb=r;this.uc=u;this.Cc=x;this.Vb=w;this.Pb=y;this.wc=t;this.bb=E;r||void 0!==e.Ua?this.toWireType=Qb:(this.toWireType=k?Pb:Sb,this.Ya=null)}
163
+ var Yb=(a,e,h)=>{if(!O.hasOwnProperty(a))throw new qb("Replacing nonexistent public symbol");void 0!==O[a].Pa&&void 0!==h?O[a].Pa[h]=e:(O[a]=e,O[a].ib=h)},Zb,$b=(a,e)=>{a=Y(a);var h=Zb.get(e);if("function"!=typeof h)throw new Z(`unknown function pointer with signature ${a}: ${e}`);return h};class ac extends Error{}
164
+ var dc=a=>{a=bc(a);var e=Y(a);cc(a);return e},ec=(a,e)=>{function h(u){r[u]||ib[u]||(jb[u]?jb[u].forEach(h):(k.push(u),r[u]=!0))}var k=[],r={};e.forEach(h);throw new ac(`${a}: `+k.map(dc).join([", "]));};function fc(a){for(var e=1;e<a.length;++e)if(null!==a[e]&&void 0===a[e].Ya)return!0;return!1}
165
+ function gc(a,e,h,k,r){var u=e.length;if(2>u)throw new Z("argTypes array size mismatch! Must at least get return value and 'this' types!");var x=null!==e[1]&&null!==h,w=fc(e),y="void"!==e[0].name,t=u-2,E=Array(t),G=[],K=[];return Bb(a,function(...S){K.length=0;G.length=x?2:1;G[0]=r;if(x){var W=e[1].toWireType(K,this);G[1]=W}for(var X=0;X<t;++X)E[X]=e[X+2].toWireType(K,S[X]),G.push(E[X]);S=k(...G);if(w)fb(K);else for(X=x?1:2;X<e.length;X++){var N=1===X?W:E[X-2];null!==e[X].Ya&&e[X].Ya(N)}W=y?e[0].fromWireType(S):
166
+ void 0;return W})}
167
+ var hc=(a,e)=>{for(var h=[],k=0;k<a;k++)h.push(R[e+4*k>>2]);return h},ic=a=>{a=a.trim();const e=a.indexOf("(");return-1===e?a:a.slice(0,e)},jc=[],mc=[0,1,,1,null,1,!0,1,!1,1],nc=a=>{9<a&&0===--mc[a+1]&&(mc[a]=void 0,jc.push(a))},oc=a=>{if(!a)throw new Z(`Cannot use deleted val. handle = ${a}`);return mc[a]},Rb=a=>{switch(a){case void 0:return 2;case null:return 4;case !0:return 6;case !1:return 8;default:const e=jc.pop()||mc.length;mc[e]=a;mc[e+1]=1;return e}},pc={name:"emscripten::val",fromWireType:a=>
168
+ {var e=oc(a);nc(a);return e},toWireType:(a,e)=>Rb(e),Wa:8,readValueFromPointer:gb,Ya:null},qc=(a,e,h)=>{switch(e){case 1:return h?function(k){return this.fromWireType(Ia[k])}:function(k){return this.fromWireType(Ja[k])};case 2:return h?function(k){return this.fromWireType(La[k>>1])}:function(k){return this.fromWireType(Ma[k>>1])};case 4:return h?function(k){return this.fromWireType(Na[k>>2])}:function(k){return this.fromWireType(R[k>>2])};default:throw new TypeError(`invalid integer width (${e}): ${a}`);
169
+ }},rc=(a,e)=>{var h=ib[a];if(void 0===h)throw a=`${e} has unknown type ${dc(a)}`,new Z(a);return h},sc=(a,e)=>{switch(e){case 4:return function(h){return this.fromWireType(Oa[h>>2])};case 8:return function(h){return this.fromWireType(Pa[h>>3])};default:throw new TypeError(`invalid float width (${e}): ${a}`);}},ja=(a,e,h)=>{var k=Ja;if(!(0<h))return 0;var r=e;h=e+h-1;for(var u=0;u<a.length;++u){var x=a.codePointAt(u);if(127>=x){if(e>=h)break;k[e++]=x}else if(2047>=x){if(e+1>=h)break;k[e++]=192|x>>
170
+ 6;k[e++]=128|x&63}else if(65535>=x){if(e+2>=h)break;k[e++]=224|x>>12;k[e++]=128|x>>6&63;k[e++]=128|x&63}else{if(e+3>=h)break;k[e++]=240|x>>18;k[e++]=128|x>>12&63;k[e++]=128|x>>6&63;k[e++]=128|x&63;u++}}k[e]=0;return e-r},ha=a=>{for(var e=0,h=0;h<a.length;++h){var k=a.charCodeAt(h);127>=k?e++:2047>=k?e+=2:55296<=k&&57343>=k?(e+=4,++h):e+=3}return e},tc=new TextDecoder("utf-16le"),uc=(a,e)=>{a>>=1;e=a+e/2;for(var h=a;!(h>=e)&&Ma[h];)++h;return tc.decode(Ma.subarray(a,h))},vc=(a,e,h)=>{h??=2147483647;
171
+ if(2>h)return 0;h-=2;var k=e;h=h<2*a.length?h/2:a.length;for(var r=0;r<h;++r)La[e>>1]=a.charCodeAt(r),e+=2;La[e>>1]=0;return e-k},wc=a=>2*a.length,xc=(a,e)=>{for(var h="",k=0;!(k>=e/4);k++){var r=Na[a+4*k>>2];if(!r)break;h+=String.fromCodePoint(r)}return h},yc=(a,e,h)=>{h??=2147483647;if(4>h)return 0;var k=e;h=k+h-4;for(var r=0;r<a.length;++r){var u=a.codePointAt(r);65535<u&&r++;Na[e>>2]=u;e+=4;if(e+4>h)break}Na[e>>2]=0;return e-k},zc=a=>{for(var e=0,h=0;h<a.length;++h)65535<a.codePointAt(h)&&h++,
172
+ e+=4;return e},Ac=(a,e,h)=>{var k=[];a=a.toWireType(k,h);k.length&&(R[e>>2]=Rb(k));return a},Bc=[],Cc={},Dc=a=>{var e=Cc[a];return void 0===e?Y(a):e},Ec=a=>{var e=Bc.length;Bc.push(a);return e},Fc=(a,e)=>{for(var h=Array(a),k=0;k<a;++k)h[k]=rc(R[e+4*k>>2],`parameter ${k}`);return h},Gc={},Ic=()=>{if(!Hc){var a={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:("object"==typeof navigator&&navigator.language||"C").replace("-","_")+".UTF-8",_:ka||"./this.program"},e;for(e in Gc)void 0===
173
+ Gc[e]?delete a[e]:a[e]=Gc[e];var h=[];for(e in a)h.push(`${e}=${a[e]}`);Hc=h}return Hc},Hc,Jc=[null,[],[]];
174
+ (()=>{let a=Ab.prototype;Object.assign(a,{isAliasOf:function(h){if(!(this instanceof Ab&&h instanceof Ab))return!1;var k=this.Fa.Oa.Ja,r=this.Fa.La;h.Fa=h.Fa;var u=h.Fa.Oa.Ja;for(h=h.Fa.La;k.Ua;)r=k.Db(r),k=k.Ua;for(;u.Ua;)h=u.Db(h),u=u.Ua;return k===u&&r===h},clone:function(){this.Fa.La||vb(this);if(this.Fa.Cb)return this.Fa.count.value+=1,this;var h=yb,k=Object,r=k.create,u=Object.getPrototypeOf(this),x=this.Fa;h=h(r.call(k,u,{Fa:{value:{count:x.count,Bb:x.Bb,Cb:x.Cb,La:x.La,Oa:x.Oa,Sa:x.Sa,Za:x.Za}}}));
175
+ h.Fa.count.value+=1;h.Fa.Bb=!1;return h},["delete"](){this.Fa.La||vb(this);if(this.Fa.Bb&&!this.Fa.Cb)throw new Z("Object already scheduled for deletion");xb(this);var h=this.Fa;--h.count.value;0===h.count.value&&(h.Sa?h.Za.bb(h.Sa):h.Oa.Ja.bb(h.La));this.Fa.Cb||(this.Fa.Sa=void 0,this.Fa.La=void 0)},isDeleted:function(){return!this.Fa.La},deleteLater:function(){this.Fa.La||vb(this);if(this.Fa.Bb&&!this.Fa.Cb)throw new Z("Object already scheduled for deletion");zb.push(this);this.Fa.Bb=!0;return this}});
176
+ const e=Symbol.dispose;e&&(a[e]=a["delete"])})();
177
+ Object.assign(Xb.prototype,{lc(a){this.Vb&&(a=this.Vb(a));return a},Sb(a){this.bb?.(a)},Wa:8,readValueFromPointer:gb,fromWireType:function(a){function e(){return this.Jb?Wb(this.Ja.wb,{Oa:this.uc,La:h,Za:this,Sa:a}):Wb(this.Ja.wb,{Oa:this,La:a})}var h=this.lc(a);if(!h)return this.Sb(a),null;var k=Vb(this.Ja,h);if(void 0!==k){if(0===k.Fa.count.value)return k.Fa.La=h,k.Fa.Sa=a,k.clone();k=k.clone();this.Sb(a);return k}k=this.Ja.kc(h);k=Cb[k];if(!k)return e.call(this);k=this.Ib?k.dc:k.pointerType;var r=
178
+ Tb(h,this.Ja,k.Ja);return null===r?e.call(this):this.Jb?Wb(k.Ja.wb,{Oa:k,La:r,Za:this,Sa:a}):Wb(k.Ja.wb,{Oa:k,La:r})}});
179
+ var bc,Kc,cc,Lc,Mc,Nc,dd={M:function(){return 0},ea:()=>{},ga:function(){return 0},da:()=>{},ha:function(){},ja:()=>Ya(""),C:a=>{var e=eb[a];delete eb[a];var h=e.Pb,k=e.bb,r=e.Tb,u=r.map(x=>x.oc).concat(r.map(x=>x.Ac));sb([a],u,x=>{var w={};r.forEach((y,t)=>{var E=x[t],G=y.mc,K=y.nc,S=x[t+r.length],W=y.zc,X=y.Bc;w[y.hc]={read:N=>E.fromWireType(G(K,N)),write:(N,sa)=>{var ia=[];W(X,N,S.toWireType(ia,sa));fb(ia)},optional:x[t].optional}});return[{name:e.name,fromWireType:y=>{var t={},E;for(E in w)t[E]=
180
+ w[E].read(y);k(y);return t},toWireType:(y,t)=>{for(var E in w)if(!(E in t||w[E].optional))throw new TypeError(`Missing field: "${E}"`);var G=h();for(E in w)w[E].write(G,t[E]);null!==y&&y.push(k,G);return G},Wa:8,readValueFromPointer:gb,Ya:k}]})},T:(a,e,h,k,r)=>{e=Y(e);k=0n===k;let u=x=>x;if(k){const x=8*h;u=w=>BigInt.asUintN(x,w);r=u(r)}rb(a,{name:e,fromWireType:u,toWireType:(x,w)=>{"number"==typeof w&&(w=BigInt(w));return w},Wa:8,readValueFromPointer:ub(e,h,!k),Ya:null})},ua:(a,e,h,k)=>{e=Y(e);rb(a,
181
+ {name:e,fromWireType:function(r){return!!r},toWireType:function(r,u){return u?h:k},Wa:8,readValueFromPointer:function(r){return this.fromWireType(Ja[r])},Ya:null})},m:(a,e,h,k,r,u,x,w,y,t,E,G,K)=>{E=Y(E);u=$b(r,u);w&&=$b(x,w);t&&=$b(y,t);K=$b(G,K);var S=Fb(E);Eb(S,function(){ec(`Cannot construct ${E} due to unbound types`,[k])});sb([a,e,h],k?[k]:[],W=>{W=W[0];if(k){var X=W.Ja;var N=X.wb}else N=Ab.prototype;W=Bb(E,function(...Fa){if(Object.getPrototypeOf(this)!==sa)throw new Z(`Use 'new' to construct ${E}`);
182
+ if(void 0===ia.jb)throw new Z(`${E} has no accessible constructor`);var ra=ia.jb[Fa.length];if(void 0===ra)throw new Z(`Tried to invoke ctor of ${E} with invalid number of parameters (${Fa.length}) - expected (${Object.keys(ia.jb).toString()}) parameters instead!`);return ra.apply(this,Fa)});var sa=Object.create(N,{constructor:{value:W}});W.prototype=sa;var ia=new Gb(E,W,sa,K,X,u,w,t);if(ia.Ua){var ya;(ya=ia.Ua).Eb??(ya.Eb=[]);ia.Ua.Eb.push(ia)}X=new Xb(E,ia,!0,!1,!1);ya=new Xb(E+"*",ia,!1,!1,!1);
183
+ N=new Xb(E+" const*",ia,!1,!0,!1);Cb[a]={pointerType:ya,dc:N};Yb(S,W);return[X,ya,N]})},f:(a,e,h,k,r,u,x)=>{var w=hc(h,k);e=Y(e);e=ic(e);u=$b(r,u);sb([],[a],y=>{function t(){ec(`Cannot call ${E} due to unbound types`,w)}y=y[0];var E=`${y.name}.${e}`;e.startsWith("@@")&&(e=Symbol[e.substring(2)]);var G=y.Ja.constructor;void 0===G[e]?(t.ib=h-1,G[e]=t):(Db(G,e,E),G[e].Pa[h-1]=t);sb([],w,K=>{K=[K[0],null].concat(K.slice(1));K=gc(E,K,null,u,x);void 0===G[e].Pa?(K.ib=h-1,G[e]=K):G[e].Pa[h-1]=K;if(y.Ja.Eb)for(const S of y.Ja.Eb)S.constructor.hasOwnProperty(e)||
184
+ (S.constructor[e]=K);return[]});return[]})},z:(a,e,h,k,r,u)=>{var x=hc(e,h);r=$b(k,r);sb([],[a],w=>{w=w[0];var y=`constructor ${w.name}`;void 0===w.Ja.jb&&(w.Ja.jb=[]);if(void 0!==w.Ja.jb[e-1])throw new Z(`Cannot register multiple constructors with identical number of parameters (${e-1}) for class '${w.name}'! Overload resolution is currently only performed using the parameter count, not actual type info!`);w.Ja.jb[e-1]=()=>{ec(`Cannot construct ${w.name} due to unbound types`,x)};sb([],x,t=>{t.splice(1,
185
+ 0,null);w.Ja.jb[e-1]=gc(y,t,null,r,u);return[]});return[]})},a:(a,e,h,k,r,u,x,w)=>{var y=hc(h,k);e=Y(e);e=ic(e);u=$b(r,u);sb([],[a],t=>{function E(){ec(`Cannot call ${G} due to unbound types`,y)}t=t[0];var G=`${t.name}.${e}`;e.startsWith("@@")&&(e=Symbol[e.substring(2)]);w&&t.Ja.vc.push(e);var K=t.Ja.wb,S=K[e];void 0===S||void 0===S.Pa&&S.className!==t.name&&S.ib===h-2?(E.ib=h-2,E.className=t.name,K[e]=E):(Db(K,e,G),K[e].Pa[h-2]=E);sb([],y,W=>{W=gc(G,W,t,u,x);void 0===K[e].Pa?(W.ib=h-2,K[e]=W):K[e].Pa[h-
186
+ 2]=W;return[]});return[]})},w:(a,e,h)=>{a=Y(a);sb([],[e],k=>{k=k[0];O[a]=k.fromWireType(h);return[]})},sa:a=>rb(a,pc),l:(a,e,h,k)=>{function r(){}e=Y(e);r.values={};rb(a,{name:e,constructor:r,fromWireType:function(u){return this.constructor.values[u]},toWireType:(u,x)=>x.value,Wa:8,readValueFromPointer:qc(e,h,k),Ya:null});Eb(e,r)},c:(a,e,h)=>{var k=rc(a,"enum");e=Y(e);a=k.constructor;k=Object.create(k.constructor.prototype,{value:{value:h},constructor:{value:Bb(`${k.name}_${e}`,function(){})}});a.values[h]=
187
+ k;a[e]=k},S:(a,e,h)=>{e=Y(e);rb(a,{name:e,fromWireType:k=>k,toWireType:(k,r)=>r,Wa:8,readValueFromPointer:sc(e,h),Ya:null})},A:(a,e,h,k,r,u)=>{var x=hc(e,h);a=Y(a);a=ic(a);r=$b(k,r);Eb(a,function(){ec(`Cannot call ${a} due to unbound types`,x)},e-1);sb([],x,w=>{w=[w[0],null].concat(w.slice(1));Yb(a,gc(a,w,null,r,u),e-1);return[]})},E:(a,e,h,k,r)=>{e=Y(e);let u=w=>w;if(0===k){var x=32-8*h;u=w=>w<<x>>>x;r=u(r)}rb(a,{name:e,fromWireType:u,toWireType:(w,y)=>y,Wa:8,readValueFromPointer:ub(e,h,0!==k),Ya:null})},
188
+ u:(a,e,h)=>{function k(u){return new r(Ia.buffer,R[u+4>>2],R[u>>2])}var r=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,BigInt64Array,BigUint64Array][e];h=Y(h);rb(a,{name:h,fromWireType:k,Wa:8,readValueFromPointer:k},{pc:!0})},s:(a,e,h,k,r,u,x,w,y,t,E,G)=>{h=Y(h);u=$b(r,u);w=$b(x,w);t=$b(y,t);G=$b(E,G);sb([a],[e],K=>{K=K[0];return[new Xb(h,K.Ja,!1,!1,!0,K,k,u,w,t,G)]})},ta:(a,e)=>{e=Y(e);rb(a,{name:e,fromWireType:function(h){for(var k=R[h>>2],r=h+4,
189
+ u,x=r,w=0;w<=k;++w){var y=r+w;if(w==k||0==Ja[y]){if(x){for(var t=x+(y-x),E=x;!(E>=t)&&Ja[E];)++E;x=db.decode(Ja.subarray(x,E))}else x="";void 0===u?u=x:(u+=String.fromCharCode(0),u+=x);x=y+1}}cc(h);return u},toWireType:function(h,k){k instanceof ArrayBuffer&&(k=new Uint8Array(k));var r="string"==typeof k;if(!(r||ArrayBuffer.isView(k)&&1==k.BYTES_PER_ELEMENT))throw new Z("Cannot pass non-string to std::string");var u=r?ha(k):k.length;var x=Kc(4+u+1),w=x+4;R[x>>2]=u;r?ja(k,w,u+1):Ja.set(k,w);null!==
190
+ h&&h.push(cc,x);return x},Wa:8,readValueFromPointer:gb,Ya(h){cc(h)}})},K:(a,e,h)=>{h=Y(h);if(2===e){var k=uc;var r=vc;var u=wc;var x=w=>Ma[w>>1]}else 4===e&&(k=xc,r=yc,u=zc,x=w=>R[w>>2]);rb(a,{name:h,fromWireType:w=>{for(var y=R[w>>2],t,E=w+4,G=0;G<=y;++G){var K=w+4+G*e;if(G==y||0==x(K))E=k(E,K-E),void 0===t?t=E:(t+=String.fromCharCode(0),t+=E),E=K+e}cc(w);return t},toWireType:(w,y)=>{if("string"!=typeof y)throw new Z(`Cannot pass non-string to C++ string type ${h}`);var t=u(y),E=Kc(4+t+e);R[E>>2]=
191
+ t/e;r(y,E+4,t+e);null!==w&&w.push(cc,E);return E},Wa:8,readValueFromPointer:gb,Ya(w){cc(w)}})},D:(a,e,h,k,r,u)=>{eb[a]={name:Y(e),Pb:$b(h,k),bb:$b(r,u),Tb:[]}},e:(a,e,h,k,r,u,x,w,y,t)=>{eb[a].Tb.push({hc:Y(e),oc:h,mc:$b(k,r),nc:u,Ac:x,zc:$b(w,y),Bc:t})},va:(a,e)=>{e=Y(e);rb(a,{Ic:!0,name:e,Wa:0,fromWireType:()=>{},toWireType:()=>{}})},V:()=>{throw Infinity;},y:(a,e,h)=>{a=oc(a);e=rc(e,"emval::as");return Ac(e,h,a)},H:(a,e,h,k)=>{a=Bc[a];e=oc(e);return a(null,e,h,k)},x:(a,e,h,k,r)=>{a=Bc[a];e=oc(e);
192
+ h=Dc(h);return a(e,e[h],k,r)},b:nc,J:a=>{if(0===a)return Rb(globalThis);a=Dc(a);return Rb(globalThis[a])},v:(a,e,h)=>{var k=Fc(a,e),r=k.shift();a--;var u=Array(a);e=`methodCaller<(${k.map(x=>x.name).join(", ")}) => ${r.name}>`;return Ec(Bb(e,(x,w,y,t)=>{for(var E=0,G=0;G<a;++G)u[G]=k[G].readValueFromPointer(t+E),E+=k[G].Wa;x=1===h?Reflect.construct(w,u):w.apply(x,u);return Ac(r,y,x)}))},n:(a,e)=>{a=oc(a);e=oc(e);return Rb(a[e])},R:a=>{9<a&&(mc[a+1]+=1)},I:()=>Rb([]),d:a=>Rb(Dc(a)),F:()=>Rb({}),pa:a=>
193
+ {a=oc(a);return!a},k:a=>{var e=oc(a);fb(e);nc(a)},i:(a,e,h)=>{a=oc(a);e=oc(e);h=oc(h);a[e]=h},g:(a,e)=>{a=rc(a,"_emval_take_value");a=a.readValueFromPointer(e);return Rb(a)},qa:a=>{a=oc(a);throw a;},ra:a=>{a=oc(a);return Rb(typeof a)},_:function(a,e){a=-9007199254740992>a||9007199254740992<a?NaN:Number(a);a=new Date(1E3*a);Na[e>>2]=a.getUTCSeconds();Na[e+4>>2]=a.getUTCMinutes();Na[e+8>>2]=a.getUTCHours();Na[e+12>>2]=a.getUTCDate();Na[e+16>>2]=a.getUTCMonth();Na[e+20>>2]=a.getUTCFullYear()-1900;Na[e+
194
+ 24>>2]=a.getUTCDay();Na[e+28>>2]=(a.getTime()-Date.UTC(a.getUTCFullYear(),0,1,0,0,0,0))/864E5|0},Y:function(){return-52},Z:function(){},$:(a,e,h,k)=>{var r=(new Date).getFullYear(),u=(new Date(r,0,1)).getTimezoneOffset();r=(new Date(r,6,1)).getTimezoneOffset();R[a>>2]=60*Math.max(u,r);Na[e>>2]=Number(u!=r);e=x=>{var w=Math.abs(x);return`UTC${0<=x?"-":"+"}${String(Math.floor(w/60)).padStart(2,"0")}${String(w%60).padStart(2,"0")}`};a=e(u);e=e(r);r<u?(ja(a,h,17),ja(e,k,17)):(ja(a,k,17),ja(e,h,17))},
195
+ U:function(a,e,h){if(!(0<=a&&3>=a))return 28;Qa[h>>3]=BigInt(Math.round(1E6*(0===a?Date.now():performance.now())));return 0},ia:()=>Date.now(),W:a=>{var e=Ja.length;a>>>=0;if(2147483648<a)return!1;for(var h=1;4>=h;h*=2){var k=e*(1+.2/h);k=Math.min(k,a+100663296);a:{k=(Math.min(2147483648,65536*Math.ceil(Math.max(a,k)/65536))-Ha.buffer.byteLength+65535)/65536|0;try{Ha.grow(k);Va();var r=1;break a}catch(u){}r=void 0}if(r)return!0}return!1},ba:(a,e)=>{var h=0,k=0,r;for(r of Ic()){var u=e+h;R[a+k>>2]=
196
+ u;h+=ja(r,u,Infinity)+1;k+=4}return 0},ca:(a,e)=>{var h=Ic();R[a>>2]=h.length;a=0;for(var k of h)a+=ha(k)+1;R[e>>2]=a;return 0},ka:a=>{la(a,new cb(a))},N:()=>52,X:function(){return 52},fa:()=>52,aa:function(){return 70},L:(a,e,h,k)=>{for(var r=0,u=0;u<h;u++){var x=R[e>>2],w=R[e+4>>2];e+=8;for(var y=0;y<w;y++){var t=a,E=Ja[x+y],G=Jc[t];if(0===E||10===E){t=1===t?va:xa;for(E=0;G[E]&&!(NaN<=E);)++E;E=db.decode(G.buffer?G.subarray(0,E):new Uint8Array(G.slice(0,E)));t(E);G.length=0}else G.push(E)}r+=w}R[k>>
197
+ 2]=r;return 0},la:Oc,h:Pc,r:Qc,j:Rc,B:Sc,Q:Tc,P:Uc,O:Vc,G:Wc,o:Xc,p:Yc,t:Zc,q:$c,oa:ad,ma:bd,na:cd},ed=await (async function(){Wa++;var a={a:dd};Za??=O.locateFile?O.locateFile("canvaskit.wasm",pa):pa+"canvaskit.wasm";ed=(await bb(a)).instance.exports;Ha=ed.wa;Va();Zb=ed.za;a=ed;bc=a.ya;O._malloc=Kc=a.Aa;O._free=cc=a.Ba;Lc=a.Ca;Mc=a.Da;Nc=a.Ea;Wa--;0==Wa&&Xa&&(a=Xa,Xa=null,a());return ed}());
198
+ function Rc(a,e,h,k){var r=Nc();try{return Zb.get(a)(e,h,k)}catch(u){Mc(r);if(u!==u+0)throw u;Lc(1,0)}}function ad(a,e,h,k,r,u){var x=Nc();try{Zb.get(a)(e,h,k,r,u)}catch(w){Mc(x);if(w!==w+0)throw w;Lc(1,0)}}function $c(a,e,h,k,r){var u=Nc();try{Zb.get(a)(e,h,k,r)}catch(x){Mc(u);if(x!==x+0)throw x;Lc(1,0)}}function Yc(a,e,h){var k=Nc();try{Zb.get(a)(e,h)}catch(r){Mc(k);if(r!==r+0)throw r;Lc(1,0)}}
199
+ function Sc(a,e,h,k,r){var u=Nc();try{return Zb.get(a)(e,h,k,r)}catch(x){Mc(u);if(x!==x+0)throw x;Lc(1,0)}}function Pc(a,e){var h=Nc();try{return Zb.get(a)(e)}catch(k){Mc(h);if(k!==k+0)throw k;Lc(1,0)}}function Zc(a,e,h,k){var r=Nc();try{Zb.get(a)(e,h,k)}catch(u){Mc(r);if(u!==u+0)throw u;Lc(1,0)}}function Xc(a,e){var h=Nc();try{Zb.get(a)(e)}catch(k){Mc(h);if(k!==k+0)throw k;Lc(1,0)}}
200
+ function cd(a,e,h,k,r,u,x,w,y,t){var E=Nc();try{Zb.get(a)(e,h,k,r,u,x,w,y,t)}catch(G){Mc(E);if(G!==G+0)throw G;Lc(1,0)}}function Wc(a){var e=Nc();try{Zb.get(a)()}catch(h){Mc(e);if(h!==h+0)throw h;Lc(1,0)}}function Qc(a,e,h){var k=Nc();try{return Zb.get(a)(e,h)}catch(r){Mc(k);if(r!==r+0)throw r;Lc(1,0)}}function bd(a,e,h,k,r,u,x){var w=Nc();try{Zb.get(a)(e,h,k,r,u,x)}catch(y){Mc(w);if(y!==y+0)throw y;Lc(1,0)}}
201
+ function Oc(a){var e=Nc();try{return Zb.get(a)()}catch(h){Mc(e);if(h!==h+0)throw h;Lc(1,0)}}function Tc(a,e,h,k,r,u,x){var w=Nc();try{return Zb.get(a)(e,h,k,r,u,x)}catch(y){Mc(w);if(y!==y+0)throw y;Lc(1,0)}}function Uc(a,e,h,k,r,u,x,w){var y=Nc();try{return Zb.get(a)(e,h,k,r,u,x,w)}catch(t){Mc(y);if(t!==t+0)throw t;Lc(1,0)}}function Vc(a,e,h,k,r,u,x,w,y,t){var E=Nc();try{return Zb.get(a)(e,h,k,r,u,x,w,y,t)}catch(G){Mc(E);if(G!==G+0)throw G;Lc(1,0)}}
202
+ function fd(){0<Wa?Xa=fd:0<Wa?Xa=fd:(O.calledRun=!0,Aa||(Sa=!0,ed.xa(),Ba?.(O),O.onRuntimeInitialized?.()))}fd();Sa?moduleRtn=O:moduleRtn=new Promise((a,e)=>{Ba=a;Da=e});
203
+
204
+
205
+ return moduleRtn;
206
+ }
207
+ );
208
+ })();
209
+ if (typeof exports === 'object' && typeof module === 'object') {
210
+ module.exports = CanvasKitInit;
211
+ // This default export looks redundant, but it allows TS to import this
212
+ // commonjs style module.
213
+ module.exports.default = CanvasKitInit;
214
+ } else if (typeof define === 'function' && define['amd'])
215
+ define([], () => CanvasKitInit);
@@ -0,0 +1,5 @@
1
+ {
2
+ "url": "https://chromium.googlesource.com/chromium/src/+/164300e8cb378e20da0b3eb9b0494a2562cd5ea2/LICENSE?format=TEXT",
3
+ "revision": "164300e8cb378e20da0b3eb9b0494a2562cd5ea2",
4
+ "sha256": "368cca1106be99d39ecd32a38d8305585d802a475effb66380b91ffc9bcf709b"
5
+ }
@@ -0,0 +1,22 @@
1
+ {
2
+ "name": "@html2pdf-skia/canvaskit-pdf",
3
+ "version": "0.42.0-pdf.1",
4
+ "description": "Google CanvasKit built from pinned source with a reviewable SkPDF bridge",
5
+ "main": "bin/canvaskit.js",
6
+ "types": "types/index.d.ts",
7
+ "license": "BSD-3-Clause AND MIT",
8
+ "files": [
9
+ "bin/canvaskit.js",
10
+ "types",
11
+ "LICENSE",
12
+ "THIRD_PARTY_LICENSES.txt",
13
+ "provenance.json",
14
+ "README.md",
15
+ "pdf_bindings.cpp",
16
+ "CHROMIUM-LICENSE",
17
+ "chromium-license-source.json"
18
+ ],
19
+ "dependencies": {
20
+ "@webgpu/types": "0.1.69"
21
+ }
22
+ }
@@ -0,0 +1,179 @@
1
+ // Copyright 2026 html2pdf-skia contributors. SPDX-License-Identifier: MIT
2
+ // Small, reviewable bridge to Google's open-source SkPDF backend.
3
+ #include "include/core/SkCanvas.h"
4
+ #include "include/core/SkData.h"
5
+ #include "include/core/SkStream.h"
6
+ #include "include/core/SkTypeface.h"
7
+ #include "include/docs/SkPDFDocument.h"
8
+ #include "include/codec/SkJpegDecoder.h"
9
+ #include "include/codec/SkCodec.h"
10
+ #include "include/encode/SkJpegEncoder.h"
11
+ #include <emscripten/bind.h>
12
+ #include <cmath>
13
+ #include <deque>
14
+ #include <limits>
15
+ #include <set>
16
+ #include <string>
17
+
18
+ namespace {
19
+ using emscripten::val;
20
+ [[noreturn]] void invalid(const char* message) {
21
+ val::global("Error").new_(std::string(message)).throw_();
22
+ __builtin_unreachable();
23
+ }
24
+ bool present(const val& value) { return !value.isUndefined() && !value.isNull(); }
25
+ std::string text(const val& object, const char* key, const char* fallback = "") {
26
+ return present(object[key]) ? object[key].as<std::string>() : fallback;
27
+ }
28
+ std::string name(const val& object, const char* key, const char* fallback = "") {
29
+ auto value = text(object, key, fallback);
30
+ if (value.empty()) invalid("Empty PDF name");
31
+ for (const unsigned char c : value) {
32
+ if (!((c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z') ||
33
+ (c >= '0' && c <= '9') || c == '-' || c == '_' || c == '.')) {
34
+ invalid("Invalid PDF name");
35
+ }
36
+ }
37
+ return value;
38
+ }
39
+ double number(const val& value) {
40
+ if (value.typeOf().as<std::string>() != "number") invalid("Expected PDF number");
41
+ const double result = value.as<double>();
42
+ if (!std::isfinite(result)) invalid("Non-finite PDF number");
43
+ return result;
44
+ }
45
+ int integer(const val& value) {
46
+ const double result = number(value);
47
+ if (result != std::trunc(result) || result < std::numeric_limits<int>::min() ||
48
+ result > std::numeric_limits<int>::max()) invalid("Invalid PDF integer");
49
+ return static_cast<int>(result);
50
+ }
51
+
52
+ class PDFDocument {
53
+ // AttributeList retains char pointers: keep stable storage until document close.
54
+ std::deque<std::string> names_;
55
+ std::set<int> ids_;
56
+ size_t nodes_ = 0;
57
+ std::unique_ptr<SkPDF::StructureElementNode> root_;
58
+ SkDynamicMemoryWStream stream_;
59
+ sk_sp<SkDocument> document_;
60
+ bool pageOpen_ = false;
61
+ bool finished_ = false;
62
+
63
+ const char* keep(std::string value) {
64
+ names_.push_back(std::move(value));
65
+ return names_.back().c_str();
66
+ }
67
+ std::unique_ptr<SkPDF::StructureElementNode> node(const val& tag, int depth) {
68
+ if (depth > 128 || ++nodes_ > 50000) invalid("PDF structure limit exceeded");
69
+ auto result = std::make_unique<SkPDF::StructureElementNode>();
70
+ result->fTypeString = SkString(name(tag, "type", "Div"));
71
+ result->fNodeId = present(tag["id"]) ? integer(tag["id"]) : 0;
72
+ if (result->fNodeId > 0 && !ids_.insert(result->fNodeId).second)
73
+ invalid("Duplicate PDF structure ID");
74
+ result->fAlt = SkString(text(tag, "alt"));
75
+ result->fLang = SkString(text(tag, "language"));
76
+ if (present(tag["attributes"])) {
77
+ const auto attributes = tag["attributes"];
78
+ const unsigned count = attributes["length"].as<unsigned>();
79
+ if (count > 1024) invalid("PDF attribute limit exceeded");
80
+ for (unsigned i = 0; i < count; ++i) {
81
+ const auto attribute = attributes[i];
82
+ const char* owner = keep(name(attribute, "owner"));
83
+ const char* key = keep(name(attribute, "name"));
84
+ const auto type = text(attribute, "type");
85
+ if (type == "int") {
86
+ result->fAttributes.appendInt(owner, key, integer(attribute["value"]));
87
+ } else if (type == "float") {
88
+ const float value = static_cast<float>(number(attribute["value"]));
89
+ if (!std::isfinite(value)) invalid("PDF float overflow");
90
+ result->fAttributes.appendFloat(owner, key, value);
91
+ } else if (type == "name") {
92
+ result->fAttributes.appendName(owner, key, keep(name(attribute, "value")));
93
+ } else if (type == "string") {
94
+ result->fAttributes.appendTextString(owner, key, SkString(text(attribute, "value")));
95
+ } else invalid("Unsupported PDF attribute type");
96
+ }
97
+ }
98
+ if (present(tag["children"])) {
99
+ const auto children = tag["children"];
100
+ const unsigned count = children["length"].as<unsigned>();
101
+ if (count > 50000) invalid("PDF child limit exceeded");
102
+ for (unsigned i = 0; i < count; ++i)
103
+ result->fChildVector.push_back(node(children[i], depth + 1));
104
+ }
105
+ return result;
106
+ }
107
+ public:
108
+ explicit PDFDocument(const val& options) {
109
+ SkPDF::Metadata metadata;
110
+ metadata.fTitle = SkString(text(options, "title"));
111
+ metadata.fAuthor = SkString(text(options, "author"));
112
+ metadata.fSubject = SkString(text(options, "subject"));
113
+ metadata.fKeywords = SkString(text(options, "keywords"));
114
+ metadata.fCreator = SkString(text(options, "creator"));
115
+ metadata.fProducer = SkString(text(options, "producer", "html2pdf-skia / Google Skia"));
116
+ metadata.fLang = SkString(text(options, "language"));
117
+ if (present(options["rasterDPI"])) metadata.fRasterDPI = number(options["rasterDPI"]);
118
+ if (metadata.fRasterDPI <= 0) invalid("Invalid PDF raster DPI");
119
+ if (present(options["PDFA"])) metadata.fPDFA = options["PDFA"].as<bool>();
120
+ metadata.jpegDecoder = [](sk_sp<const SkData> data) {
121
+ return SkJpegDecoder::Decode(std::move(data), nullptr);
122
+ };
123
+ metadata.jpegEncoder = [](SkWStream* stream, const SkPixmap& pixmap, int quality) {
124
+ SkJpegEncoder::Options options;
125
+ options.fQuality = quality;
126
+ return SkJpegEncoder::Encode(stream, pixmap, options);
127
+ };
128
+ if (present(options["rootTag"])) {
129
+ root_ = node(options["rootTag"], 0);
130
+ metadata.fStructureElementTreeRoot = root_.get();
131
+ }
132
+ document_ = SkPDF::MakeDocument(&stream_, metadata);
133
+ if (!document_) invalid("Failed to create SkPDF document");
134
+ }
135
+ ~PDFDocument() { if (!finished_) document_->abort(); }
136
+ SkCanvas* beginPage(double width, double height) {
137
+ if (finished_ || pageOpen_ || !std::isfinite(width) || !std::isfinite(height) ||
138
+ width <= 0 || height <= 0 || width > 14400 || height > 14400)
139
+ invalid("Invalid PDF page or lifecycle");
140
+ pageOpen_ = true;
141
+ return document_->beginPage(width, height);
142
+ }
143
+ void endPage() {
144
+ if (finished_ || !pageOpen_) invalid("No open PDF page");
145
+ document_->endPage();
146
+ pageOpen_ = false;
147
+ }
148
+ val close() {
149
+ if (finished_ || pageOpen_) invalid("Invalid PDF close");
150
+ document_->close();
151
+ finished_ = true;
152
+ auto data = stream_.detachAsData();
153
+ // Copy before the C++ buffer is destroyed; never return a dangling heap view.
154
+ return val::global("Uint8Array").new_(val(emscripten::typed_memory_view(
155
+ data->size(), static_cast<const uint8_t*>(data->data()))));
156
+ }
157
+ void abort() {
158
+ if (!finished_) document_->abort();
159
+ finished_ = true;
160
+ pageOpen_ = false;
161
+ }
162
+ };
163
+ }
164
+
165
+ EMSCRIPTEN_BINDINGS(html2pdf_pdf) {
166
+ emscripten::class_<PDFDocument>("PDFDocument")
167
+ .constructor<val>()
168
+ .function("beginPage", &PDFDocument::beginPage, emscripten::allow_raw_pointers())
169
+ .function("endPage", &PDFDocument::endPage)
170
+ .function("close", &PDFDocument::close)
171
+ .function("abort", &PDFDocument::abort);
172
+ emscripten::function("MakePDFDocument", +[](val options) -> PDFDocument* {
173
+ return new PDFDocument(options);
174
+ }, emscripten::return_value_policy::take_ownership());
175
+ emscripten::function("SetPDFTagId", &SkPDF::SetNodeId, emscripten::allow_raw_pointers());
176
+ emscripten::function("GetTypefaceId", +[](SkTypeface* typeface) -> uint32_t {
177
+ return typeface->uniqueID();
178
+ }, emscripten::allow_raw_pointers());
179
+ }