textmode.js 0.1.6-beta.6 → 0.1.6-beta.7

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 (36) hide show
  1. package/dist/textmode.esm.js +1193 -1167
  2. package/dist/textmode.esm.min.js +1234 -1208
  3. package/dist/textmode.umd.js +56 -18
  4. package/dist/textmode.umd.min.js +56 -18
  5. package/dist/types/errors/Error.d.ts +3 -5
  6. package/dist/types/errors/ErrorHandler.d.ts +3 -3
  7. package/dist/types/export/base/DataExtractor.d.ts +3 -3
  8. package/dist/types/export/base/FileHandler.d.ts +6 -6
  9. package/dist/types/export/image/ImageContentGenerator.d.ts +3 -3
  10. package/dist/types/export/image/ImageDataExtractor.d.ts +1 -1
  11. package/dist/types/export/image/ImageExporter.d.ts +8 -8
  12. package/dist/types/export/image/ImageFileHandler.d.ts +3 -15
  13. package/dist/types/export/svg/SVGContentGenerator.d.ts +11 -11
  14. package/dist/types/export/svg/SVGDataExtractor.d.ts +3 -3
  15. package/dist/types/export/svg/SVGExporter.d.ts +6 -6
  16. package/dist/types/export/svg/SVGFileHandler.d.ts +3 -3
  17. package/dist/types/export/svg/SVGPathGenerator.d.ts +5 -6
  18. package/dist/types/export/txt/TXTContentGenerator.d.ts +1 -1
  19. package/dist/types/export/txt/TXTDataExtractor.d.ts +1 -1
  20. package/dist/types/export/txt/TXTExporter.d.ts +6 -6
  21. package/dist/types/export/txt/TXTFileHandler.d.ts +2 -2
  22. package/dist/types/rendering/webgl/Framebuffer.d.ts +8 -8
  23. package/dist/types/rendering/webgl/Renderer.d.ts +35 -35
  24. package/dist/types/rendering/webgl/Shader.d.ts +14 -14
  25. package/dist/types/rendering/webgl/geometries/BaseGeometry.d.ts +10 -10
  26. package/dist/types/rendering/webgl/geometries/Line.d.ts +1 -1
  27. package/dist/types/rendering/webgl/geometries/Rectangle.d.ts +2 -2
  28. package/dist/types/textmode/Canvas.d.ts +9 -7
  29. package/dist/types/textmode/ConversionPipeline.d.ts +23 -15
  30. package/dist/types/textmode/Grid.d.ts +6 -6
  31. package/dist/types/textmode/Textmodifier.d.ts +13 -15
  32. package/dist/types/textmode/converters/BrightnessConverter.d.ts +8 -8
  33. package/dist/types/textmode/converters/Converter.d.ts +5 -5
  34. package/dist/types/textmode/converters/FeatureConverter.d.ts +6 -6
  35. package/dist/types/textmode/font/TextmodeFont.d.ts +8 -8
  36. package/package.json +1 -1
@@ -1,26 +1,64 @@
1
- var UA=Object.defineProperty;var FA=(I,P,b)=>P in I?UA(I,P,{enumerable:!0,configurable:!0,writable:!0,value:b}):I[P]=b;var g=(I,P,b)=>FA(I,typeof P!="symbol"?P+"":P,b);var A,t;A=this,t=function(I){class P extends Error{constructor(B,s,Q={}){super(P.t(B,Q));g(this,"A");g(this,"context");this.name="TextmodeError",this.A=s,this.context=Q}static t(B,s){let Q=B;if(s&&Object.keys(s).length>0){Q+=`
1
+ var SA=Object.defineProperty;var WA=(d,u,v)=>u in d?SA(d,u,{enumerable:!0,configurable:!0,writable:!0,value:v}):d[u]=v;var g=(d,u,v)=>WA(d,typeof u!="symbol"?u+"":u,v);var A,t;A=this,t=function(d){class u extends Error{constructor(e,r={}){super(u.A(e,r)),this.name="TextmodeError"}static A(e,r){let B=e;if(r&&Object.keys(r).length>0){B+=`
2
2
 
3
- 📋 Context:`;for(const[i,E]of Object.entries(s))Q+=`
4
- - ${i}: ${P.i(E)}`}return Q+=`
3
+ 📋 Context:`;for(const[s,i]of Object.entries(r))B+=`
4
+ - ${s}: ${u.i(i)}`}return B+=`
5
5
 
6
- `,Q+="↓".repeat(24)+`
7
- `,Q}static i(B){if(B===null)return"null";if(B===void 0)return"undefined";if(typeof B=="string")return`"${B}"`;if(typeof B=="number"||typeof B=="boolean")return B+"";if(Array.isArray(B))return B.length===0?"[]":B.length<=5?`[${B.map(s=>P.i(s)).join(", ")}]`:`[${B.slice(0,3).map(s=>P.i(s)).join(", ")}, ... +${B.length-3} more]`;if(typeof B=="object"){const s=Object.keys(B);return s.length===0?"{}":s.length<=3?`{ ${s.map(Q=>`${Q}: ${P.i(B[Q])}`).join(", ")} }`:`{ ${s.slice(0,2).map(Q=>`${Q}: ${P.i(B[Q])}`).join(", ")}, ... +${s.length-2} more }`}return B+""}}var b=(o=>(o[o.SILENT=0]="SILENT",o[o.WARNING=1]="WARNING",o[o.ERROR=2]="ERROR",o[o.THROW=3]="THROW",o))(b||{});const _=class _{constructor(){g(this,"h",{D:3})}static l(){return _.o||(_.o=new _),_.o}C(e,B,s){const Q="%c[textmode.js] Oops! (╯°□°)╯︵ Something went wrong in your code.",i="color: #f44336; font-weight: bold; background: #ffebee; padding: 2px 6px; border-radius: 3px;";switch(this.h.D){case 0:return!1;case 1:return console.group(Q,i),console.warn(P.t(e,B)),console.groupEnd(),!1;case 2:return console.group(Q,i),console.error(P.t(e,B)),console.groupEnd(),!1;default:throw new P(e,s,B)}}validate(e,B,s){return!!e||(this.C(B,s),!1)}u(e){this.h.D=e}};g(_,"o",null);let k=_;const d=k.l(),N=new WeakMap;function F(o,e){N.set(o,e)}function J(o){return N.get(o)}class X{constructor(e,B,s=B,Q={}){g(this,"P");g(this,"I");g(this,"m");g(this,"p");g(this,"v");g(this,"options");g(this,"_",null);g(this,"M",null);this.P=e,this.p=B,this.v=s,this.options={filter:"nearest",wrap:"clamp",format:"rgba",type:"unsigned_byte",...Q},this.m=this.createTexture(),this.I=e.createFramebuffer(),this.G()}F(e){const{P:B}=this,s=B.getParameter(B.FRAMEBUFFER_BINDING);B.bindFramebuffer(B.FRAMEBUFFER,this.I);try{return e()}finally{B.bindFramebuffer(B.FRAMEBUFFER,s)}}createTexture(){const{P:e}=this,B=e.createTexture();e.bindTexture(e.TEXTURE_2D,B);const s=this.options.filter==="linear"?e.LINEAR:e.NEAREST,Q=this.options.wrap==="repeat"?e.REPEAT:e.CLAMP_TO_EDGE;return e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,s),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,s),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,Q),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,Q),this.Y(),B}Y(){const{P:e}=this,B=this.options.type==="float"?e.FLOAT:e.UNSIGNED_BYTE;e.texImage2D(e.TEXTURE_2D,0,e.RGBA,this.p,this.v,0,e.RGBA,B,null)}G(){const{P:e}=this;e.bindFramebuffer(e.FRAMEBUFFER,this.I),e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,this.m,0),e.bindFramebuffer(e.FRAMEBUFFER,null)}update(e){const{P:B}=this;B.bindTexture(B.TEXTURE_2D,this.m),B.pixelStorei(B.UNPACK_FLIP_Y_WEBGL,1),B.texImage2D(B.TEXTURE_2D,0,B.RGBA,B.RGBA,B.UNSIGNED_BYTE,e),B.bindTexture(B.TEXTURE_2D,null)}S(e,B,s){const{P:Q}=this;Q.bindTexture(Q.TEXTURE_2D,this.m),Q.texImage2D(Q.TEXTURE_2D,0,Q.RGBA,B,s,0,Q.RGBA,Q.UNSIGNED_BYTE,e),Q.bindTexture(Q.TEXTURE_2D,null)}resize(e,B){const{P:s}=this;this.p=e,this.v=B,this.M=null,s.bindTexture(s.TEXTURE_2D,this.m),this.Y(),s.bindTexture(s.TEXTURE_2D,null)}O(){const{P:e}=this;this._={framebuffer:e.getParameter(e.FRAMEBUFFER_BINDING),viewport:e.getParameter(e.VIEWPORT)},e.bindFramebuffer(e.FRAMEBUFFER,this.I),e.viewport(0,0,this.p,this.v),F(e,[0,0,this.p,this.v])}end(){if(!this._)return;const{P:e}=this;e.bindFramebuffer(e.FRAMEBUFFER,this._.framebuffer),e.viewport(...this._.viewport),F(e,this._.viewport),this._=null}U(){const{P:e}=this;this.M||(this.M=new Uint8Array(this.p*this.v*4)),this.F(()=>{e.readPixels(0,0,this.p,this.v,e.RGBA,e.UNSIGNED_BYTE,this.M)})}get(e,B,s,Q){const{P:i}=this;if(e===void 0&&B===void 0){const E=new Uint8Array(this.p*this.v*4);return this.F(()=>(i.readPixels(0,0,this.p,this.v,i.RGBA,i.UNSIGNED_BYTE,E),E))}if(s===void 0&&Q===void 0){(e<0||B<0||e>=this.p||B>=this.v)&&(console.warn("The x and y values passed to Framebuffer.get are outside of its range and will be clamped."),e=Math.max(0,Math.min(e,this.p-1)),B=Math.max(0,Math.min(B,this.v-1)));const E=new Uint8Array(4);return this.F(()=>(i.readPixels(e,B,1,1,i.RGBA,i.UNSIGNED_BYTE,E),[E[0],E[1],E[2],E[3]]))}{e=Math.max(0,Math.min(e,this.p-1)),B=Math.max(0,Math.min(B,this.v-1)),s=Math.max(1,Math.min(s,this.p-e)),Q=Math.max(1,Math.min(Q,this.v-B));const E=new Uint8Array(s*Q*4);return this.F(()=>(i.readPixels(e,B,s,Q,i.RGBA,i.UNSIGNED_BYTE,E),E))}}dispose(){this.I&&this.P.deleteFramebuffer(this.I),this.m&&this.P.deleteTexture(this.m)}get framebuffer(){return this.I}get texture(){return this.m}get width(){return this.p}get height(){return this.v}get k(){return this.M}}class v{constructor(e,B,s){g(this,"P");g(this,"V");g(this,"H",new Map);g(this,"R",new Map);g(this,"$",0);g(this,"J");this.P=e,this.V=this.createProgram(B,s),this.J=e.getParameter(e.MAX_TEXTURE_IMAGE_UNITS),this.L()}L(){const e=this.P.getProgramParameter(this.V,this.P.ACTIVE_UNIFORMS);for(let B=0;B<e;B++){const s=this.P.getActiveUniform(this.V,B);if(s){const Q=this.P.getUniformLocation(this.V,s.name);Q&&(this.H.set(s.name,Q),this.R.set(s.name,s.type))}}}createProgram(e,B){const s=this.createShader(this.P.VERTEX_SHADER,e),Q=this.createShader(this.P.FRAGMENT_SHADER,B),i=this.P.createProgram();if(this.P.attachShader(i,s),this.P.attachShader(i,Q),this.P.linkProgram(i),!this.P.getProgramParameter(i,this.P.LINK_STATUS)){const E=this.P.getProgramInfoLog(i);throw Error("Shader program link error: "+E)}return this.P.deleteShader(s),this.P.deleteShader(Q),i}createShader(e,B){const s=this.P.createShader(e);if(this.P.shaderSource(s,B),this.P.compileShader(s),!this.P.getShaderParameter(s,this.P.COMPILE_STATUS)){const Q=this.P.getShaderInfoLog(s);throw this.P.deleteShader(s),Error("Shader compilation error: "+Q)}return s}K(){this.P.useProgram(this.V),this.W()}j(e,B){const s=this.H.get(e);if(s)if(typeof B=="number")this.Z(e)?this.P.uniform1i(s,Math.floor(B)):this.P.uniform1f(s,B);else if(typeof B=="boolean")this.P.uniform1i(s,B?1:0);else if(Array.isArray(B))switch(B.length){case 2:this.P.uniform2f(s,B[0],B[1]);break;case 3:this.P.uniform3f(s,B[0],B[1],B[2]);break;case 4:this.P.uniform4f(s,B[0],B[1],B[2],B[3]);break;default:console.warn(`Unsupported array length ${B.length} for uniform '${e}'`)}else if(B instanceof WebGLTexture){const Q=this.N();this.P.uniform1i(s,Q),this.P.activeTexture(this.P.TEXTURE0+Q),this.P.bindTexture(this.P.TEXTURE_2D,B)}else if(B instanceof X){const Q=this.N();this.P.uniform1i(s,Q),this.P.activeTexture(this.P.TEXTURE0+Q),this.P.bindTexture(this.P.TEXTURE_2D,B.texture)}else console.warn(`Unsupported uniform type for '${e}':`,typeof B)}N(){return this.$>=this.J&&console.warn(`Exceeded maximum texture units (${this.J}). Texture may not render correctly.`),this.$++}Z(e){const B=this.R.get(e);return!!B&&(B===this.P.INT||B===this.P.INT_VEC2||B===this.P.INT_VEC3||B===this.P.INT_VEC4||B===this.P.SAMPLER_2D||B===this.P.SAMPLER_CUBE)}get X(){return this.V}dispose(){this.P.deleteProgram(this.V)}W(){this.$=0}}class W{constructor(e){g(this,"P");g(this,"q",null);g(this,"AA",16);g(this,"tA",new Map);this.P=e}eA(){if(this.q)return;const e=this.P;this.q=e.createBuffer(),e.bindBuffer(e.ARRAY_BUFFER,this.q)}BA(){const e=this.P,B=e.getParameter(e.CURRENT_PROGRAM);let s=this.tA.get(B);return s||(s={QA:e.getAttribLocation(B,"a_position"),sA:e.getAttribLocation(B,"a_texCoord")},this.tA.set(B,s)),e.enableVertexAttribArray(s.QA),e.vertexAttribPointer(s.QA,2,e.FLOAT,!1,this.AA,0),e.enableVertexAttribArray(s.sA),e.vertexAttribPointer(s.sA,2,e.FLOAT,!1,this.AA,8),{iA:s.QA,EA:s.sA}}rA(e,B){const s=this.P;s.disableVertexAttribArray(e),s.disableVertexAttribArray(B)}gA(e,B){const s=this.P,Q=J(s)||[0,0,s.canvas.width,s.canvas.height];return{oA:e/Q[2]*2-1,nA:1-B/Q[3]*2}}hA(e,B,s,Q){const i=this.P;this.eA(),i.bindBuffer(i.ARRAY_BUFFER,this.q);const E=new Float32Array([e,Q,0,0,s,Q,1,0,e,B,0,1,e,B,0,1,s,Q,1,0,s,B,1,1]);i.bufferData(i.ARRAY_BUFFER,E,i.DYNAMIC_DRAW)}dispose(){this.q&&this.P.deleteBuffer(this.q)}}class QA extends W{constructor(e){super(e)}aA(e,B,s,Q){const i=this.gA(e,B),E=this.gA(e+s,B+Q);this.hA(i.oA,i.nA,E.oA,E.nA);const r=this.BA();this.P.drawArrays(this.P.TRIANGLES,0,6),this.rA(r.iA,r.EA)}DA(e,B,s,Q,i){this.aA(e,B,s,i),this.aA(e+s-i,B,i,Q),this.aA(e,B+Q-i,s,i),this.aA(e,B,i,Q)}}class iA extends W{constructor(e){super(e)}draw(e,B,s,Q,i){const E=s-e,r=Q-B,n=Math.hypot(E,r);if(n===0){const a=i/2,D=this.gA(e-a,B-a),l=this.gA(e+a,B+a);this.hA(D.oA,D.nA,l.oA,l.nA)}else{const a=-r/n,D=E/n,l=i/2,u=e+a*l,w=B+D*l,c=e-a*l,f=B-D*l,p=s+a*l,m=Q+D*l,y=s-a*l,M=Q-D*l,O=this.gA(u,w),T=this.gA(c,f),R=this.gA(p,m),sA=this.gA(y,M),U=this.P;this.eA(),U.bindBuffer(U.ARRAY_BUFFER,this.q);const GA=new Float32Array([O.oA,O.nA,0,0,T.oA,T.nA,0,1,R.oA,R.nA,1,0,T.oA,T.nA,0,1,sA.oA,sA.nA,1,1,R.oA,R.nA,1,0]);U.bufferData(U.ARRAY_BUFFER,GA,U.DYNAMIC_DRAW)}const h=this.BA();this.P.drawArrays(this.P.TRIANGLES,0,6),this.rA(h.iA,h.EA)}}var x="attribute vec2 a_position;attribute vec2 a_texCoord;varying vec2 v_uv;uniform float u_rotation;uniform vec2 u_center;uniform float u_aspectRatio;mat2 rotate2D(float angle){float s=sin(angle);float c=cos(angle);return mat2(c,-s,s,c);}void main(){v_uv=a_texCoord;vec2 pos=a_position;pos-=u_center;pos.x*=u_aspectRatio;pos=rotate2D(-u_rotation)*pos;pos.x/=u_aspectRatio;pos+=u_center;gl_Position=vec4(pos,0.0,1.0);}";class EA{constructor(e){g(this,"P");g(this,"lA");g(this,"CA");g(this,"cA",null);g(this,"uA");g(this,"PA");g(this,"IA",[1,1,1,1]);g(this,"wA",!0);g(this,"fA",[0,0,0,1]);g(this,"dA",1);g(this,"mA",!0);g(this,"pA",0);g(this,"vA",[]);this.P=e,this.lA=new v(this.P,x,"precision lowp float;uniform sampler2D u_texture;varying vec2 v_uv;void main(){gl_FragColor=texture2D(u_texture,v_uv);}"),this.CA=new v(this.P,x,"precision lowp float;uniform vec4 u_color;void main(){gl_FragColor=u_color;}"),this.uA=new QA(this.P),this.PA=new iA(this.P),this.P.enable(this.P.BLEND),this.P.blendEquation(this.P.FUNC_ADD),this.P.blendFunc(this.P.ONE,this.P.ONE_MINUS_SRC_ALPHA),F(this.P,[0,0,this.P.canvas.width,this.P.canvas.height])}bA(e){this.cA!==e&&(this.cA=e,e.K())}fill(e,B,s,Q){if(this.wA=!0,B===void 0&&s===void 0&&Q===void 0){const i=e/255;this.IA=[i,i,i,1]}else if(s!==void 0&&Q===void 0)this.IA=[e/255,B/255,s/255,1];else{if(s===void 0||Q===void 0)throw Error("Invalid fill parameters. Use fill(gray), fill(r,g,b), or fill(r,g,b,a)");this.IA=[e/255,B/255,s/255,Q/255]}}stroke(e,B,s,Q){if(this.mA=!0,B===void 0&&s===void 0&&Q===void 0){const i=e/255;this.fA=[i,i,i,1]}else if(s!==void 0&&Q===void 0)this.fA=[e/255,B/255,s/255,1];else{if(s===void 0||Q===void 0)throw Error("Invalid stroke parameters. Use stroke(gray), stroke(r,g,b), or stroke(r,g,b,a)");this.fA=[e/255,B/255,s/255,Q/255]}}xA(e){if(e<0)throw Error("Stroke weight must be non-negative");this.dA=e}_A(){this.mA=!1}yA(){this.wA=!1}rotate(e){this.pA=e}push(){this.vA.push({MA:[...this.IA],wA:this.wA,GA:[...this.fA],xA:this.dA,mA:this.mA,rotation:this.pA})}pop(){const e=this.vA.pop();e?(this.IA=e.MA,this.wA=e.wA,this.fA=e.GA,this.dA=e.xA,this.mA=e.mA,this.pA=e.rotation):console.warn("pop() called without matching push()")}reset(){this.cA=null,this.vA=[],this.pA=0}createShader(e,B){return new v(this.P,e,B)}FA(e){return new v(this.P,x,e)}j(e,B){this.cA.j(e,B)}rect(e,B,s,Q){if(this.cA!==null){const{YA:D,TA:l,SA:u,aspectRatio:w}=this.OA(e,B,s,Q);return this.j("u_rotation",u),this.j("u_center",[D,l]),this.j("u_aspectRatio",w),this.uA.aA(e,B,s,Q),void(this.cA=null)}const i=this.CA;let E=0,r=0,n=0,h=1;const a=this.OA(e,B,s,Q);E=a.YA,r=a.TA,n=a.SA,h=a.aspectRatio,this.wA&&(this.bA(i),this.j("u_color",this.IA),this.j("u_rotation",n),this.j("u_center",[E,r]),this.j("u_aspectRatio",h),this.uA.aA(e,B,s,Q)),this.mA&&this.dA>0&&(this.bA(i),this.j("u_color",this.fA),this.j("u_rotation",n),this.j("u_center",[E,r]),this.j("u_aspectRatio",h),this.uA.DA(e,B,s,Q,this.dA)),this.cA=null}line(e,B,s,Q){if(this.cA!==null){const c=(e+s)/2,f=(B+Q)/2,p=Math.abs(s-e)||1,m=Math.abs(Q-B)||1,{YA:y,TA:M,SA:O,aspectRatio:T}=this.OA(c-p/2,f-m/2,p,m);this.j("u_rotation",O),this.j("u_center",[y,M]),this.j("u_aspectRatio",T);const R=this.dA>0?this.dA:1;return this.PA.draw(e,B,s,Q,R),void(this.cA=null)}if(!this.mA||this.dA<=0)return;const i=this.CA,E=(e+s)/2,r=(B+Q)/2,n=Math.abs(s-e)||1,h=Math.abs(Q-B)||1,a=this.pA!==0;let D=0,l=0,u=0,w=1;if(a){const c=this.OA(E-n/2,r-h/2,n,h);D=c.YA,l=c.TA,u=c.SA,w=c.aspectRatio}this.bA(i),this.j("u_color",this.fA),a&&(this.j("u_rotation",u),this.j("u_center",[D,l]),this.j("u_aspectRatio",w)),this.PA.draw(e,B,s,Q,this.dA)}OA(e,B,s,Q){const i=J(this.P)||[0,0,this.P.canvas.width,this.P.canvas.height],E=i[2],r=i[3],n=E/r;return{YA:(e+s/2)/E*2-1,TA:1-(B+Q/2)/r*2,SA:this.pA*Math.PI/180,aspectRatio:n}}createFramebuffer(e,B,s={}){return new X(this.P,e,B,s)}background(e,B=e,s=e,Q=255){this.clear(e/255,B/255,s/255,Q/255)}clear(e=0,B=0,s=0,Q=0){this.P.clearColor(e,B,s,Q),this.P.clear(this.P.COLOR_BUFFER_BIT)}UA(){this.P.viewport(0,0,this.P.canvas.width,this.P.canvas.height),F(this.P,[0,0,this.P.canvas.width,this.P.canvas.height])}get context(){return this.P}dispose(){this.lA.dispose(),this.CA.dispose(),this.uA.dispose(),this.PA.dispose()}image(e,B,s,Q,i){const E=this.P,r=Q??e.width,n=i??e.height;this.bA(this.lA),this.j("u_texture",e.texture);const h=this.OA(B,s,r,n);this.j("u_rotation",h.SA),this.j("u_center",[h.YA,h.TA]),this.j("u_aspectRatio",h.aspectRatio),this.uA.aA(B,s,r,n),E.bindTexture(E.TEXTURE_2D,null),this.cA=null}}var S,C={parse:function(o){var e=function(B,s,Q,i){var E=C.T,r={cmap:E.cmap,head:E.head,hhea:E.hhea,maxp:E.maxp,hmtx:E.hmtx,loca:E.loca,glyf:E.glyf},n={_data:B,_index:s,_offset:Q};for(var h in r){var a=C.findTable(B,h,Q);if(a){var D=a[0],l=i[D];l==null&&(l=r[h].kA(B,D,a[1],n)),n[h]=i[D]=l}}return n}(new Uint8Array(o),0,0,{});return[e]},findTable:function(o,e,B){for(var s=C.B,Q=s.VA(o,B+4),i=B+12,E=0;E<Q;E++){var r=s.HA(o,i,4);s.RA(o,i+4);var n=s.RA(o,i+8),h=s.RA(o,i+12);if(r==e)return[n,h];i+=16}return null},T:{}};C.B={$A:function(o,e){return C.B.zA.uint16[0]=o[e]<<8|o[e+1],C.B.zA.int16[0]},VA:function(o,e){return o[e]<<8|o[e+1]},JA:function(o,e,B){for(var s=[],Q=0;Q<B;Q++)s.push(C.B.VA(o,e+2*Q));return s},RA:function(o,e){var B=C.B.zA.uint8;return B[3]=o[e],B[2]=o[e+1],B[1]=o[e+2],B[0]=o[e+3],C.B.zA.uint32[0]},HA:function(o,e,B){for(var s="",Q=0;Q<B;Q++)s+=String.fromCharCode(o[e+Q]);return s},zA:(S=new ArrayBuffer(8),{uint8:new Uint8Array(S),int16:new Int16Array(S),uint16:new Uint16Array(S),uint32:new Uint32Array(S)})},C.T.cmap={kA:function(o,e,B){var s={LA:[],KA:{},off:e};o=new Uint8Array(o.buffer,e,B),e=0;var Q=C.B,i=Q.VA,E=C.T.cmap;i(o,e);var r=i(o,e+=2);e+=2;for(var n=[],h=0;h<r;h++){var a=i(o,e),D=i(o,e+=2);e+=2;var l=Q.RA(o,e);e+=4;var u="p"+a+"e"+D,w=n.indexOf(l);if(w==-1){w=s.LA.length;var c={};n.push(l);var f=c.format=i(o,l);f==4?c=E.WA(o,l,c):f==12&&(c=E.jA(o,l,c)),s.LA.push(c)}s.KA[u]!=null&&console.log("multiple tables for one platform+encoding: "+u),s.KA[u]=w}return s},WA:function(o,e,B){var s=C.B,Q=s.VA,i=s.JA,E=e,r=Q(o,e+=2);Q(o,e+=2);var n=Q(o,e+=2);e+=2;var h=n>>>1;B.ZA=Q(o,e),e+=2,B.NA=Q(o,e),e+=2,B.XA=Q(o,e),e+=2,B.qA=i(o,e,h),e+=2*h,e+=2,B.At=i(o,e,h),e+=2*h,B.tt=[];for(var a=0;a<h;a++)B.tt.push(s.$A(o,e)),e+=2;return B.et=i(o,e,h),e+=2*h,B.Bt=i(o,e,E+r-e>>1),B},jA:function(o,e,B){var s=C.B.RA;s(o,e+=4),s(o,e+=4);var Q=3*s(o,e+=4);e+=4;for(var i=B.groups=new Uint32Array(Q),E=0;E<Q;E+=3)i[E]=s(o,e+(E<<2)),i[E+1]=s(o,e+(E<<2)+4),i[E+2]=s(o,e+(E<<2)+8);return B}},C.T.head={kA:function(o,e,B){var s=C.B,Q={};return e+=18,Q.unitsPerEm=s.VA(o,e),e+=2,e+=16,Q.xMin=s.$A(o,e),e+=2,Q.yMin=s.$A(o,e),e+=2,Q.xMax=s.$A(o,e),e+=2,Q.yMax=s.$A(o,e),e+=2,e+=6,Q.indexToLocFormat=s.$A(o,e),Q}},C.T.hhea={kA:function(o,e,B){var s=C.B,Q={};e+=4;for(var i=["ascender","descender","lineGap","advanceWidthMax","minLeftSideBearing","minRightSideBearing","xMaxExtent","caretSlopeRise","caretSlopeRun","caretOffset","res0","res1","res2","res3","metricDataFormat","numberOfHMetrics"],E=0;E<i.length;E++){var r=i[E],n=r=="advanceWidthMax"||r=="numberOfHMetrics"?s.VA:s.$A;Q[r]=n(o,e+2*E)}return Q}},C.T.hmtx={kA:function(o,e,B,s){for(var Q=C.B,i=[],E=[],r=s.maxp.numGlyphs,n=s.hhea.numberOfHMetrics,h=0,a=0,D=0;D<n;)h=Q.VA(o,e+(D<<2)),a=Q.$A(o,e+(D<<2)+2),i.push(h),E.push(a),D++;for(;D<r;)i.push(h),E.push(a),D++;return{Qt:i,st:E}}},C.T.maxp={kA:function(o,e,B){var s=C.B,Q=s.VA,i={};return s.RA(o,e),e+=4,i.numGlyphs=Q(o,e),e+=2,i}},C.T.loca={kA:function(o,e,B,s){var Q=C.B,i=[],E=s.head.indexToLocFormat,r=s.maxp.numGlyphs+1;if(E==0)for(var n=0;n<r;n++)i.push(Q.VA(o,e+(n<<1))<<1);if(E==1)for(n=0;n<r;n++)i.push(Q.RA(o,e+(n<<2)));return i}},C.T.glyf={kA:function(o,e,B,s){for(var Q=[],i=s.maxp.numGlyphs,E=0;E<i;E++)Q.push(null);return Q},it:function(o,e){var B=C.B,s=o._data,Q=o.loca;if(Q[e]==Q[e+1])return null;var i=C.findTable(s,"glyf",o._offset)[0]+Q[e],E={};if(E.Et=B.$A(s,i),i+=2,E.xMin=B.$A(s,i),i+=2,E.yMin=B.$A(s,i),i+=2,E.xMax=B.$A(s,i),i+=2,E.yMax=B.$A(s,i),i+=2,E.xMin>=E.xMax||E.yMin>=E.yMax)return null;if(E.Et>0){E.rt=[];for(var r=0;r<E.Et;r++)E.rt.push(B.VA(s,i)),i+=2;var n=B.VA(s,i);if(i+=2,s.length-i<n)return null;i+=n;var h=E.rt[E.Et-1]+1;for(E.flags=[],r=0;r<h;r++){var a=s[i];if(i++,E.flags.push(a),8&a){var D=s[i];i++;for(var l=0;l<D;l++)E.flags.push(a),r++}}for(E.gt=[],r=0;r<h;r++){var u=!!(2&E.flags[r]),w=!!(16&E.flags[r]);u?(E.gt.push(w?s[i]:-s[i]),i++):w?E.gt.push(0):(E.gt.push(B.$A(s,i)),i+=2)}for(E.ot=[],r=0;r<h;r++)u=!!(4&E.flags[r]),w=!!(32&E.flags[r]),u?(E.ot.push(w?s[i]:-s[i]),i++):w?E.ot.push(0):(E.ot.push(B.$A(s,i)),i+=2);var c=0,f=0;for(r=0;r<h;r++)c+=E.gt[r],f+=E.ot[r],E.gt[r]=c,E.ot[r]=f}else E.nt=[];return E}},typeof module<"u"&&module.exports?module.exports=C:typeof window<"u"&&(window.Typr=C);class rA{ht(e){var s;const B=[];return(s=e==null?void 0:e.cmap)!=null&&s.LA?(e.cmap.LA.forEach(Q=>{if(Q.format===4){const i=this.Dt(Q);B.push(...i)}else if(Q.format===12){const i=this.lt(Q);B.push(...i)}}),[...new Set(B)]):[]}Dt(e){const B=[];if(!(e.At&&e.qA&&e.et&&e.tt))return B;for(let s=0;s<e.At.length;s++){const Q=e.At[s],i=e.qA[s];if(Q!==65535||i!==65535){for(let E=Q;E<=i;E++)if(this.Ct(e,E,s)>0){const r=String.fromCodePoint(E);B.push(r)}}}return B}lt(e){const B=[];if(!e.groups)return B;for(let s=0;s<e.groups.length;s+=3){const Q=e.groups[s],i=e.groups[s+1],E=e.groups[s+2];for(let r=Q;r<=i;r++)if(E+(r-Q)>0){const n=String.fromCodePoint(r);B.push(n)}}return B}Ct(e,B,s){if(e.et[s]===0)return B+e.tt[s]&65535;{const Q=e.et[s]/2+(B-e.At[s])-(e.At.length-s);if(Q>=0&&e.Bt&&Q<e.Bt.length){const i=e.Bt[Q];if(i!==0)return i+e.tt[s]&65535}}return 0}ct(e){return e.filter(B=>this.ut(B))}ut(e){const B=e.codePointAt(0)||0;return!(B>=0&&B<=31&&B!==9&&B!==10&&B!==13||B>=127&&B<=159)}}class gA{constructor(e){g(this,"Pt");g(this,"It");g(this,"wt");this.wt=e,this.Pt=document.createElement("canvas"),this.It=this.Pt.getContext("2d",{ft:!0,alpha:!1})}dt(e,B,s,Q){const i=e.length,E=Math.ceil(Math.sqrt(i)),r=Math.ceil(i/E),n=B.width*E,h=B.height*r;this.vt(n,h,s,Q),this.bt(e,B,E,s),this.xt();const a=this.wt.createFramebuffer(n,h,{filter:"nearest"});return a.update(this.Pt),{framebuffer:a,columns:E,rows:r}}vt(e,B,s,Q){this.Pt.width=e,this.Pt.height=B,this.Pt.style.width=e+"px",this.Pt.style.height=e+"px",this.It.imageSmoothingEnabled=!1,this.Pt.style.imageRendering="pixelated",this.It.fillStyle="black",this.It.fillRect(0,0,e,B),this.It.font=`${s}px ${Q}`,this.It.textBaseline="top",this.It.textAlign="left",this.It.fillStyle="white"}bt(e,B,s,Q){for(let i=0;i<e.length;i++){const E=i%s,r=Math.floor(i/s),n=E*B.width+.5*B.width,h=r*B.height+.5*B.height,a=Math.round(n-.5*B.width),D=Math.round(h-.5*Q);this.It.fillText(e[i]._t,a,D)}}xt(e=128){const B=this.It.getImageData(0,0,this.Pt.width,this.Pt.height),s=B.data;for(let Q=0;Q<s.length;Q+=4){const i=.299*s[Q]+.587*s[Q+1]+.114*s[Q+2]>e+32?255:0;s[Q]=i,s[Q+1]=i,s[Q+2]=i}this.It.putImageData(B,0,0)}}class oA{constructor(){g(this,"yt");g(this,"Mt");this.yt=document.createElement("canvas"),this.Mt=this.yt.getContext("2d")}Gt(e,B,s){this.Mt.font=`${B}px ${s}`;let Q=0,i=0;for(const E of e){const r=this.Mt.measureText(E);Q=Math.max(Q,r.width),i=Math.max(i,r.actualBoundingBoxAscent+r.actualBoundingBoxDescent)}return{width:Q,height:i}}}class nA{Ft(e,B){return e.map((s,Q)=>{const i=s.codePointAt(0)||0,E=this.Yt(Q);let r=0;if(B.hmtx&&B.hmtx.Qt){const n=this.Tt(B,i);n>0&&B.hmtx.Qt[n]!==void 0&&(r=B.hmtx.Qt[n])}return{_t:s,unicode:i,color:E,St:r}})}Tt(e,B){const s=e.cmap;if(!s||!s.LA)return 0;for(const Q of s.LA)if(Q.format===4){for(let i=0;i<Q.At.length;i++)if(B>=Q.At[i]&&B<=Q.qA[i]){if(Q.et[i]===0)return B+Q.tt[i]&65535;{const E=Q.et[i]/2+(B-Q.At[i])-(Q.At.length-i);if(E>=0&&E<Q.Bt.length){const r=Q.Bt[E];if(r!==0)return r+Q.tt[i]&65535}}}}return 0}Yt(e){return[e%256,Math.floor(e/256)%256,Math.floor(e/65536)%256]}Ot(e,B){if(!d.validate(typeof e=="string","Character must be a string.",{method:"getCharacterColor",Ut:e}))return[0,0,0];const s=B.find(Q=>Q._t===e);return s?s.color:[0,0,0]}kt(e,B){return d.validate(typeof e=="string"&&e.length>0,"Characters must be a string with at least one character.",{method:"getCharacterColors",Ut:e})?e.split("").map(s=>this.Ot(s,B)||[0,0,0]):[[0,0,0]]}}class K{constructor(e,B=16){g(this,"Vt");g(this,"Ht",[]);g(this,"Rt");g(this,"$t",16);g(this,"zt",0);g(this,"Jt",0);g(this,"Lt",{width:0,height:0});g(this,"Kt");g(this,"Wt","UrsaFont");g(this,"jt");g(this,"Zt");g(this,"Nt");g(this,"Xt");this.$t=B,this.jt=new rA,this.Zt=new gA(e),this.Nt=new oA,this.Xt=new nA}async initialize(e){let B;if(e){const s=await fetch(e);if(!s.ok)throw new P(`Failed to load font file: ${s.status} ${s.statusText}`);B=await s.arrayBuffer()}else B=await(await fetch(`data:font/truetype;charset=utf-8;base64,AAEAAAAKAIAAAwAgT1MvMs+QEyQAAAEoAAAAYGNtYXAg7yVJAAAFjAAACSBnbHlmuHLTdAAAErQAAGi0aGVhZFvXdUwAAACsAAAANmhoZWELAQUCAAAA5AAAACRobXR4BACDgAAAAYgAAAQEbG9jYQAy54AAAA6sAAAECG1heHABIgCCAAABCAAAACBuYW1lVs/OSgAAe2gAAAOicG9zdABpADQAAH8MAAAAIAABAAAAAQAAzOWHqV8PPPUAAAQAAAAAAHxiGCcAAAAAfGIYJwAAAAAEAAQAAAAACAACAAEAAAAAAAEAAAQAAAAAAAQAAAAAAAcAAAEAAAAAAAAAAAAAAAAAAAEBAAEAAAEBAIAAIAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAgQAAZAABQAEAgACAAAAAAACAAIAAAACAAAzAMwAAAAABAAAAAAAAACAAACLAABw4wAAAAAAAAAAWUFMLgBAACAmawQAAAAAAAQAAAAAAAFRAAAAAAMABAAAAAAgAAAEAAAABAAAAAQAAAAEAAGABAABAAQAAIAEAACABAAAgAQAAIAEAAGABAABAAQAAQAEAACABAABAAQAAIAEAACABAABAAQAAIAEAACABAAAgAQAAIAEAACABAAAgAQAAIAEAACABAAAgAQAAIAEAACABAABAAQAAIAEAAEABAAAgAQAAIAEAACABAAAgAQAAIAEAACABAAAgAQAAIAEAACABAAAgAQAAIAEAACABAAAgAQAAIAEAACABAAAgAQAAIAEAACABAAAgAQAAIAEAACABAAAgAQAAIAEAACABAAAgAQAAIAEAACABAAAgAQAAIAEAACABAABAAQAAIAEAAEABAAAgAQAAIAEAAEABAAAgAQAAIAEAACABAAAgAQAAIAEAAEABAAAgAQAAIAEAAGABAAAgAQAAIAEAAGABAAAgAQAAIAEAACABAAAgAQAAIAEAAEABAAAgAQAAIAEAACABAAAgAQAAIAEAACABAAAgAQAAIAEAACABAABgAQAAQAEAACABAAAAAQAAgAEAACABAAAgAQAAIAEAACABAACAAQAAAAEAAIABAABgAQAAgAEAACABAAAgAQAAAAEAACABAAAAAQAAAAEAAAABAAAAAQAAAAEAAIABAADAAQAAAAEAAAABAAAgAQAAYAEAAAABAAAAAQAAIAEAAAA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AIAAAACA/YAAgAAAAIAAAP8AAoABAAAA/4AAAP+A/4AAgAAAAIAAAP8AA4AAAP8AAAAAgAAAAIAAAP+AAAD/gAAA/4AAAP+AAAD/gAAA/4AAAACAAAAAgAAAAIAAAACAAAAAgAAAAAAAAP+AAAD/gAAAAAAAAP8AAAAAgAAAAAAAAP+AAAD/gAAAAAAAAwCAAIAEAAQAABcAHQAjAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAIAAAAAgAAA/4AAAACAAAAAgAAA/4AAAACAAAD9AAAA/4AAAACAAAD/gAAAAIAAgAAAAIAAAACAAAD/AAAAAQAAAP+AAAAEAAAA/4AAAP8AAAD/gAAAAIAAAP8AAAD/gAAA/4AAAACAAAABAAAAAIAAAAEAAAAAAP+AAAD/gAAAAQD+gP8AAAAAgAAAAIAAAAABAYACgAKABAAAAwAAAQEBAQGAAQAAAP8ABAAAAP6AAAAAAAABAQAAgAMABAAAEwAAAQEBAQEBAQEBAQEBAQEBAQEBAQECAAEAAAD/gAAA/4AAAACAAAAAgAAA/wAAAP+AAAD/gAAAAIAAAACABAAAAP+AAAD/gAAA/oAAAP+AAAD/gAAAAIAAAACAAAABgAAAAIAAAAAAAAEBAACAAwAEAAATAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQAAAACAAAAAgAAA/4AAAP+AAAD/AAAAAIAAAACAAAD/gAAA/4AEAAAA/4AAAP+AAAD+gAAA/4AAAP+AAAAAgAAAAIAAAAGAAAAAgAAAAAAABQCAAYADgAQAAAMABwATABcAGwAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAIAAAP+AAYAAgAAA/4D/AAEAAAABAAAA/wAAAP8AAAD/AAAAAQD/gACAAAD/gAGAAIAAAP+ABAAAAP+AAAAAgAAA/4AAAAAAAAD/gAAA/4AAAP+AAAAAgAAAAIAAAP8AAAD/gAAAAIAAAP+AAAAAAAABAQAAgAOAAwAACwAAAQEBAQEBAQEBAQEBAgAAgAAAAQAAAP8AAAD/gAAA/wAAAAEAAwAAAP8AAAD/gAAA/wAAAAEAAAAAgAAAAAAAAQCAAAACAAGAAAcAAAEBAQEBAQEBAQABAAAA/4AAAP8AAAAAgAGAAAD/AAAA/4AAAACAAAAAAAABAIABgAOAAgAAAwAAAQEBAQCAAwAAAP0AAgAAAP+AAAAAAAABAQAAgAIAAYAAAwAAAQEBAQEAAQAAAP8AAYAAAP8AAAAAAAABAIAAgAQAA4AAFwAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAwABAAAA/4AAAP+AAAD/gAAA/4AAAP+AAAD/AAAAAIAAAACAAAAAgAAAAIAAAACAA4AAAP+AAAD/gAAA/4AAAP+AAAD/gAAA/4AAAACAAAAAgAAAAIAAAACAAAAAgAAAAAAAAwCAAIADgAQAAAsAEQAXAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAIAAAAAgAAA/4AAAP4AAAD/gAAAAIAAgAAAAIAAAACAAAD/gAAA/4AAAAEAAAAEAAAA/4AAAP2AAAD/gAAAAIAAAAKAAAAAAP8AAAAAgAAAAID/AP+AAAD/AAAAAYAAAAABAIAAgAOABAAADQAAAQEBAQEBAQEBAQEBAQEBgAEAAAABAAAA/QAAAAEAAAD/AAAAAIAAAACABAAAAP0AAAD/gAAAAIAAAAGAAAAAgAAAAIAAAAABAIAAgAOABAAAGwAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAgAAAACAAAD/gAAA/4AAAP+AAAABgAAA/QAAAACAAAAAgAAAAIAAAACAAAD/AAAA/wAAAACABAAAAP+AAAD/AAAA/4AAAP+AAAD/gAAA/4AAAACAAAAAgAAAAIAAAACAAAABAAAA/wAAAAEAAAAAAAABAIAAgAOABAAAGwAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAgAAAACAAAD/gAAAAIAAAP+AAAD+AAAA/4AAAAEAAAABAAAA/wAAAAEAAAD/AAAA/wAAAACABAAAAP+AAAD/AAAA/4AAAP8AAAD/gAAAAIAAAACAAAD/gAAAAQAAAACAAAABAAAA/4AAAACAAAAAAAABAIAAgAOABAAAEQAAAQEBAQEBAQEBAQEBAQEBAQEBAYABAAAA/4AAAP+AAAABAAAAAQAAAP8AAAD+AAAAAIAAAACABAAAAP+AAAD/gAAA/wAAAAEAAAD9gAAAAQAAAAGAAAAAgAAAAAEAgACAA4AEAAATAAABAQEBAQEBAQEBAQEBAQEBAQEBAQCAAwAAAP4AAAABgAAAAIAAAP+AAAD+AAAA/4AAAAEAAAABAAAA/gAEAAAA/4AAAP8AAAD/gAAA/wAAAP+AAAAAgAAAAIAAAP+AAAABAAAAAAAAAgCAAIADgAQAABMAFwAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQACAAAAAIAAAP8AAAD/AAAAAYAAAACAAAD/gAAA/gAAAP+AAAAAgACAAAABAAAABAAAAP+AAAD/gAAAAIAAAP8AAAD/gAAA/wAAAP+AAAAAgAAAAoAAAP6A/wAAAAEAAAEAgACAA4AEAAAPAAABAQEBAQEBAQEBAQEBAQEBAIADAAAA/4AAAP+AAAD/AAAAAIAAAACAAAD+gAAA/4AEAAAA/oAAAP+AAAD+gAAAAYAAAACAAAABAAAA/4AAAAAAAAMAgACAA4AEAAATABcAGwAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAgAAAACAAAD/gAAAAIAAAP+AAAD+AAAA/4AAAACAAAD/gAAAAIAAgAAAAQAAAP8AAAABAAAABAAAAP+AAAD/AAAA/4AAAP8AAAD/gAAAAIAAAAEAAAAAgAAAAQAAAAAA/wAAAAEA/oD/AAAAAQAAAAACAIAAgAOABAAACwAPAAABAQEBAQEBAQEBAQEBAQEBAQACAAAAAIAAAP8AAAD+gAAA/4AAAACAAIAAAAEAAAAEAAAA/4AAAP0AAAABAAAAAIAAAAGAAAAAAP6AAAABgAACAQABAAIAA4AAAwAHAAABAQEBAQEBAQEAAQAAAP8AAAABAAAA/wADgAAA/wAAAP+AAAD/AAAAAAIAgACAAgADgAADAAsAAAEBAQEBAQEBAQEBAQEAAQAAAP8AAAABAAAA/4AAAP8AAAAAgAOAAAD/AAAA/4AAAP8AAAD/gAAAAIAAAAABAQAAgAOABAAAGwAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQKAAQAAAP+AAAD/gAAA/4AAAACAAAAAgAAAAIAAAP8AAAD/gAAA/4AAAP+AAAAAgAAAAIAAAACABAAAAP+AAAD/gAAA/4AAAP+AAAD/gAAA/4AAAP+AAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAAAACAIABgAOAAwAAAwAHAAABAQEBAQEBAQCAAwAAAP0AAAADAAAA/QADAAAA/4AAAP+AAAD/gAAAAAEAgACAAwAEAAAbAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAIABAAAAAIAAAACAAAAAgAAA/4AAAP+AAAD/gAAA/wAAAACAAAAAgAAAAIAAAP+AAAD/gAAA/4AEAAAA/4AAAP+AAAD/gAAA/4AAAP+AAAD/gAAA/4AAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAAAAAAIAgACAA4AEAAATABcAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAgAAAACAAAD/gAAA/4AAAP8AAAAAgAAAAIAAAP8AAAD/AAAAAIAAgAEAAAD/AAQAAAD/gAAA/4AAAP+AAAD/gAAAAIAAAACAAAAAgAAA/4AAAACAAAD+AAAA/wAAAAACAIAAgAOABAAAEQAVAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQACAAAAAIAAAP6AAAAAgAAA/wAAAAGAAAD+AAAA/4AAAACAAgAAgAAA/4AEAAAA/4AAAP6AAAABAAAAAIAAAP2AAAD/gAAAAIAAAAKAAAD+AAAA/4AAAAAAAAIAgACAA4AEAAAPABMAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAYABAAAAAIAAAACAAAD/AAAA/wAAAP8AAAAAgAAAAIAAAAAAAQAAAAQAAAD/gAAA/4AAAP2AAAABAAAA/wAAAAKAAAAAgAAA/4D/AAAAAQAAAwCAAIADgAQAAAsADwATAAABAQEBAQEBAQEBAQEBAQEBAQEBAQCAAoAAAACAAAD/gAAAAIAAAP+AAAD9gAEAAAABAAAA/wAAAAEAAAAEAAAA/4AAAP8AAAD/gAAA/wAAAP+AAAADAP8AAAABAP6A/wAAAAEAAAAAAQCAAIADgAQAABMAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQACAAAAAIAAAP8AAAD/AAAAAQAAAAEAAAD/gAAA/gAAAP+AAAAAgAQAAAD/gAAA/4AAAACAAAD9gAAAAIAAAP+AAAD/gAAAAIAAAAKAAAAAAAACAIAAgAOABAAACwATAAABAQEBAQEBAQEBAQEBAQEBAQEBAQCAAgAAAACAAAAAgAAA/4AAAP+AAAD+AAEAAAAAgAAAAIAAAP+AAAAEAAAA/4AAAP+AAAD+gAAA/4AAAP+AAAADAP2AAAAAgAAAAYAAAACAAAEAgACAA4AEAAAXAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAIAAAAAgAAA/wAAAP8AAAABAAAA/wAAAAEAAAABAAAA/4AAAP4AAAD/gAAAAIAEAAAA/4AAAP+AAAAAgAAA/wAAAP+AAAD/AAAAAIAAAP+AAAD/gAAAAIAAAAKAAAAAAAABAIAAgAOABAAACQAAAQEBAQEBAQEBAQCAAwAAAP4AAAABAAAA/wAAAP8ABAAAAP+AAAD/AAAA/4AAAP6AAAAAAQCAAIADgAQAABUAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAIAAAAAgAAA/wAAAP8AAAABAAAA/4AAAAGAAAD/gAAA/gAAAP+AAAAAgAQAAAD/gAAA/4AAAACAAAD9gAAAAQAAAACAAAD+gAAA/4AAAACAAAACgAAAAAEAgACAA4AEAAALAAABAQEBAQEBAQEBAQEAgAEAAAABAAAAAQAAAP8AAAD/AAAA/wAEAAAA/gAAAAIAAAD8gAAAAQAAAP8AAAAAAAABAIAAgAOABAAACwAAAQEBAQEBAQEBAQEBAIADAAAA/wAAAAEAAAD9AAAAAQAAAP8ABAAAAP+AAAD9gAAA/4AAAACAAAACgAAAAAAAAQCAAIAEAAQAAA8AAAEBAQEBAQEBAQEBAQEBAQEBAAMAAAD/gAAA/4AAAP4AAAD/gAAAAQAAAAEAAAD+gAQAAAD/gAAA/YAAAP+AAAAAgAAAAQAAAP8AAAACgAAAAAAAAQCAAIADgAQAABsAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAgAEAAAAAgAAAAIAAAAEAAAD/gAAA/4AAAP+AAAAAgAAAAIAAAACAAAD/AAAA/4AAAP+AAAD/AAQAAAD/AAAAAIAAAACAAAD/gAAA/4AAAP+AAAD/gAAA/4AAAP+AAAD/gAAAAIAAAACAAAD/AAAAAAAAAQCAAIADgAQAAAUAAAEBAQEBAQCAAQAAAAIAAAD9AAQAAAD9AAAA/4AAAAABAIAAgAQABAAAEwAAAQEBAQEBAQEBAQEBAQEBAQEBAQEAgAEAAAAAgAAAAIAAAACAAAABAAAA/wAAAP+AAAD/gAAA/4AAAP8ABAAAAP+AAAD/gAAAAIAAAACAAAD8gAAAAgAAAP+AAAAAgAAA/gAAAAAAAAEAgACABAAEAAATAAABAQEBAQEBAQEBAQEBAQEBAQEBAQCAAQAAAACAAAAAgAAAAIAAAAEAAAD/AAAA/4AAAP+AAAD/gAAA/wAEAAAA/4AAAP+AAAD/gAAAAYAAAPyAAAABAAAAAIAAAACAAAD+AAAAAAAAAgCAAIADgAQAAAsADwAAAQEBAQEBAQEBAQEBAQEBAQEAAgAAAACAAAD/gAAA/gAAAP+AAAAAgACAAAABAAAABAAAAP+AAAD9gAAA/4AAAACAAAACgAAAAAD9gAAAAoAAAgCAAIADgAQAAAkADQAAAQEBAQEBAQEBAQEBAQEAgAKAAAAAgAAA/4AAAP6AAAD/AAEAAAABAAAABAAAAP+AAAD+gAAA/4AAAP8AAAADAP6AAAABgAAAAAIAgACABAAEAAAPABcAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAgAAAACAAAAAgAAA/4AAAP+AAAD+AAAA/4AAAACAAIAAAAEAAAD/gAAAAIAAAAQAAAD/gAAA/gAAAP8AAAAAgAAA/4AAAACAAAACgAAAAAD9gAAAAIAAAACAAAABgAACAIAAgAOABAAAEwAXAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAgAKAAAAAgAAA/4AAAP+AAAAAgAAAAIAAAP8AAAD/gAAA/4AAAP8AAQAAAAEAAAAEAAAA/4AAAP8AAAD/gAAA/4AAAP+AAAD/gAAAAIAAAACAAAD/AAAAAwD/AAAAAQAAAQCAAIADgAQAABsAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAIAAAAAgAAA/wAAAP8AAAABgAAAAIAAAP+AAAD+AAAA/4AAAAEAAAABAAAA/oAAAP+AAAAAgAQAAAD/gAAA/4AAAACAAAD/AAAA/4AAAP8AAAD/gAAAAIAAAACAAAD/gAAAAQAAAACAAAABAAAAAAAAAQCAAIADgAQAAAcAAAEBAQEBAQEBAIADAAAA/wAAAP8AAAD/AAQAAAD/gAAA/QAAAAMAAAAAAAABAIAAgAOABAAACwAAAQEBAQEBAQEBAQEBAIABAAAAAQAAAAEAAAD/gAAA/gAAAP+ABAAAAP0AAAADAAAA/QAAAP+AAAAAgAAAAAAAAQCAAIADgAQAAA8AAAEBAQEBAQEBAQEBAQEBAQEAgAEAAAABAAAAAQAAAP+AAAD/gAAA/wAAAP+AAAD/gAQAAAD+AAAAAgAAAP4AAAD/AAAA/4AAAACAAAABAAAAAAAAAQCAAIAEAAQAABMAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAIABAAAAAIAAAACAAAAAgAAAAQAAAP8AAAD/gAAA/4AAAP+AAAD/AAQAAAD+AAAAAIAAAP+AAAACAAAA/IAAAACAAAAAgAAA/4AAAP+AAAAAAAABAIAAgAOABAAAGwAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQCAAQAAAAEAAAABAAAA/4AAAP+AAAAAgAAAAIAAAP8AAAD/AAAA/wAAAACAAAAAgAAA/4AAAP+ABAAAAP8AAAABAAAA/wAAAP+AAAD/gAAA/4AAAP8AAAABAAAA/wAAAAEAAAAAgAAAAIAAAACAAAAAAAABAIAAgAOABAAADwAAAQEBAQEBAQEBAQEBAQEBAQCAAQAAAAEAAAABAAAA/4AAAP+AAAD/AAAA/4AAAP+ABAAAAP6AAAABgAAA/oAAAP+AAAD+gAAAAYAAAACAAAAAAAABAIAAgAOABAAAFwAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAIADAAAA/4AAAP+AAAD/gAAA/4AAAAIAAAD9AAAAAIAAAACAAAAAgAAAAIAAAP4ABAAAAP8AAAD/gAAA/4AAAP+AAAD/gAAA/4AAAAEAAAAAgAAAAIAAAACAAAAAgAAAAAAAAQEAAIADAAQAAAcAAAEBAQEBAQEBAQACAAAA/wAAAAEAAAD+AAQAAAD/gAAA/YAAAP+AAAAAAAABAIAAgAQAA4AAFwAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAIABAAAAAIAAAACAAAAAgAAAAIAAAACAAAD/AAAA/4AAAP+AAAD/gAAA/4AAAP+AA4AAAP+AAAD/gAAA/4AAAP+AAAD/gAAA/4AAAACAAAAAgAAAAIAAAACAAAAAgAAAAAAAAQEAAIADAAQAAAcAAAEBAQEBAQEBAQACAAAA/gAAAAEAAAD/AAQAAAD8gAAAAIAAAAKAAAAAAAABAIACAAQABAAAFwAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAgAAgAAAAIAAAACAAAAAgAAA/wAAAP+AAAD/gAAA/4AAAP8AAAAAgAAAAIAAAACABAAAAP+AAAD/gAAA/4AAAP+AAAAAgAAAAIAAAP+AAAD/gAAAAIAAAACAAAAAgAAAAAAAAQCAAIADgAEAAAMAAAEBAQEAgAMAAAD9AAEAAAD/gAAAAAAAAQEAAoACgAQAAAkAAAEBAQEBAQEBAQEBAAEAAAAAgAAA/4AAAP+AAAD/gAQAAAD/gAAA/wAAAACAAAAAgAAAAAEAgACAA4ADAAAPAAABAQEBAQEBAQEBAQEBAQEBAQACgAAA/4AAAP+AAAD/AAAAAQAAAP6AAAD/gAAAAIADAAAA/YAAAACAAAABgAAA/oAAAP+AAAAAgAAAAYAAAAAAAAIAgACAA4AEAAAJAA0AAAEBAQEBAQEBAQEBAQEBAIABAAAAAYAAAACAAAD/gAAA/YABAAAAAQAAAAQAAAD/AAAA/4AAAP6AAAD/gAAAAgD+gAAAAYAAAAABAIAAgAOAAwAAEwAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAIAAAAAgAAA/wAAAP8AAAABAAAAAQAAAP+AAAD+AAAA/4AAAACAAwAAAP+AAAD/gAAAAIAAAP6AAAAAgAAA/4AAAP+AAAAAgAAAAYAAAAAAAAIAgACAA4AEAAAJAA0AAAEBAQEBAQEBAQEBAQEBAoABAAAA/YAAAP+AAAAAgAAAAYD/AAAAAQAAAAQAAAD8gAAAAIAAAAGAAAAAgAAA/4D+gAAAAYAAAAACAIAAgAOAAwAADQARAAABAQEBAQEBAQEBAQEBAQEBAQEBAAIAAAAAgAAA/gAAAAGAAAD+AAAA/4AAAACAAIAAAAEAAAADAAAA/4AAAP8AAAD/gAAA/4AAAACAAAABgAAAAAD/gAAAAIAAAAABAQAAgAOAA4AACwAAAQEBAQEBAQEBAQEBAYACAAAA/oAAAAEAAAD/AAAA/wAAAACAA4AAAP+AAAD/AAAA/4AAAP8AAAACgAAAAAAAAgCAAIADgAOAAA8AEwAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAIAAAAAgAAA/4AAAP4AAAABgAAA/oAAAP+AAAAAgACAAAABAAAAA4AAAP+AAAD+AAAA/4AAAACAAAAAgAAAAIAAAAEAAAAAAP8AAAABAAABAIAAgAOABAAACwAAAQEBAQEBAQEBAQEBAIABAAAAAYAAAACAAAD/AAAA/wAAAP8ABAAAAP8AAAD/gAAA/gAAAAIAAAD+AAAAAAAAAgGAAIACgAQAAAMABwAAAQEBAQEBAQEBgAEAAAD/AAAAAQAAAP8ABAAAAP+AAAD/gAAA/YAAAAACAIAAgAOABAAAAwAPAAABAQEBAQEBAQEBAQEBAQEBAoABAAAA/wAAAAEAAAD/gAAA/gAAAP+AAAABAAAAAQAEAAAA/4AAAP+AAAD+AAAA/4AAAACAAAABAAAA/wAAAAABAIAAgAOAA4AAEwAAAQEBAQEBAQEBAQEBAQEBAQEBAQEAgAEAAAAAgAAAAQAAAP+AAAAAgAAAAIAAAP8AAAD/gAAA/4AAAP8AA4AAAP8AAAAAgAAA/4AAAP8AAAD/gAAA/4AAAACAAAAAgAAA/wAAAAAAAAEBgACAAwAEAAAHAAABAQEBAQEBAQGAAQAAAACAAAD/AAAA/4AEAAAA/QAAAP+AAAAAgAAAAAAAAQCAAIAEAAMAABMAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAAAAAIAAAAEAAAAAgAAA/wAAAP+AAAD/gAAA/4AAAP8AAAAAgAMAAAD/gAAAAIAAAP+AAAD+AAAAAYAAAP+AAAAAgAAA/oAAAAIAAAAAAAABAIAAgAOAAwAADwAAAQEBAQEBAQEBAQEBAQEBAQCAAQAAAACAAAABAAAAAIAAAP8AAAD/gAAA/4AAAP8AAwAAAP+AAAAAgAAA/4AAAP4AAAABgAAA/4AAAP8AAAAAAAACAIAAgAOAAwAACwAPAAABAQEBAQEBAQEBAQEBAQEBAQACAAAAAIAAAP+AAAD+AAAA/4AAAACAAIAAAAEAAAADAAAA/4AAAP6AAAD/gAAAAIAAAAGAAAAAAP6AAAABgAACAIAAgAOAAwAACQANAAABAQEBAQEBAQEBAQEBAQCAAoAAAACAAAD/gAAA/oAAAP8AAQAAAAEAAAADAAAA/4AAAP+AAAD/gAAA/wAAAAIA/4AAAACAAAAAAgCAAIAEAAMAAA0AEQAAAQEBAQEBAQEBAQEBAQEBAQEBAQACgAAAAIAAAP+AAAD/AAAA/oAAAP+AAAAAgACAAAABAAAAAwAAAP6AAAD/gAAA/4AAAAEAAAAAgAAAAIAAAAAA/4AAAACAAAAAAQEAAIADgAMAAAkAAAEBAQEBAQEBAQEBAAIAAAAAgAAA/wAAAP+AAAD/AAMAAAD/gAAA/wAAAAEAAAD+AAAAAAEAgACABAADAAATAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEAAoAAAP6AAAABgAAAAIAAAP+AAAD9AAAAAgAAAP6AAAD/gAAAAIADAAAA/4AAAP+AAAD/gAAA/4AAAP+AAAAAgAAAAIAAAACAAAAAgAAAAAAAAQCAAIADgAOAABMAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAAAAAQAAAP8AAAAAgAAAAQAAAP+AAAD+gAAA/4AAAP+AAAAAgAOAAAD/gAAA/4AAAP6AAAAAgAAA/4AAAP+AAAAAgAAAAYAAAACAAAAAAAABAIAAgAOAAwAADwAAAQEBAQEBAQEBAQEBAQEBAQCAAQAAAACAAAAAgAAAAQAAAP+AAAD/gAAA/oAAAP+AAwAAAP4AAAAAgAAAAYAAAP2AAAAAgAAA/4AAAACAAAAAAAABAIAAgAOAAwAADwAAAQEBAQEBAQEBAQEBAQEBAQCAAQAAAAEAAAABAAAA/4AAAP+AAAD/AAAA/4AAAP+AAwAAAP6AAAABgAAA/oAAAP+AAAD/gAAAAIAAAACAAAAAAAABAIAAgAQAAwAAEwAAAQEBAQEBAQEBAQEBAQEBAQEBAQEAgAEAAAAAgAAAAIAAAACAAAABAAAA/4AAAP8AAAD/gAAA/wAAAP+AAwAAAP6AAAAAgAAA/4AAAAGAAAD+AAAA/4AAAACAAAD/gAAAAIAAAAAAAAEAgACAA4ADAAAbAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAIABAAAAAQAAAAEAAAD/gAAA/4AAAACAAAAAgAAA/wAAAP8AAAD/AAAAAIAAAACAAAD/gAAA/4ADAAAA/4AAAACAAAD/gAAA/4AAAP+AAAD/gAAA/4AAAACAAAD/gAAAAIAAAACAAAAAgAAAAIAAAAAAAAEAgACAA4ADAAAPAAABAQEBAQEBAQEBAQEBAQEBAIABAAAAAQAAAAEAAAD/gAAA/gAAAAGAAAD+gAAA/4ADAAAA/wAAAAEAAAD+AAAA/4AAAACAAAAAgAAAAIAAAAAAAAEAgACAA4ADAAATAAABAQEBAQEBAQEBAQEBAQEBAQEBAQCAAwAAAP+AAAD/gAAA/4AAAAGAAAD9AAAAAIAAAACAAAAAgAAA/oADAAAA/4AAAP+AAAD/gAAA/4AAAP+AAAAAgAAAAIAAAACAAAAAgAAAAAAAAQCAAIADAAQAABMAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAYABgAAA/wAAAP+AAAAAgAAAAQAAAP6AAAD/gAAA/4AAAACAAAAAgAQAAAD/gAAA/wAAAP+AAAD/AAAA/4AAAACAAAABAAAAAIAAAAEAAAAAAAABAYAAgAKABAAAAwAAAQEBAQGAAQAAAP8ABAAAAPyAAAAAAAABAQAAgAOABAAAEwAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAGAAAAAgAAAAIAAAP+AAAD/gAAA/oAAAAEAAAAAgAAA/4AAAP8ABAAAAP+AAAD/AAAA/4AAAP8AAAD/gAAAAIAAAAEAAAAAgAAAAQAAAAAAAAEAgAGAA4ADAAAPAAABAQEBAQEBAQEBAQEBAQEBAQABAAAAAQAAAACAAAD/gAAA/wAAAP8AAAD/gAAAAIADAAAA/4AAAACAAAD/AAAA/4AAAACAAAD/gAAAAQAAAAAAAAEAAAAABAAEAAATAAABAQEBAQEBAQEBAQEBAQEBAQEBAQAAAYAAAAEAAAAAgAAAAIAAAACAAAD/AAAA/4AAAP+AAAD/AAAA/wAEAAAA/4AAAP+AAAD/gAAA/wAAAP6AAAABAAAAAQAAAACAAAAAgAAAAAAAAQIAAAAEAAQAAAMAAAEBAQECAAIAAAD+AAQAAAD8AAAAAAAAAgCAAIADgAQAABcAGwAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQGAAYAAAP8AAAABAAAA/4AAAP+AAAABgAAA/QAAAACAAAAAgAAA/wAAAACAAAAAgAGAAIAAAP+ABAAAAP+AAAD/AAAA/4AAAP+AAAD/gAAA/4AAAACAAAAAgAAAAIAAAACAAAABAAAAAAAAAP+AAAAAAQCAAIADgAQAABsAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAgAEAAAABAAAAAQAAAP+AAAAAgAAA/wAAAAEAAAD/AAAA/wAAAP8AAAABAAAA/wAAAACAAAD/gAQAAAD+gAAAAYAAAP8AAAD/gAAA/4AAAP+AAAD/gAAA/4AAAACAAAAAgAAAAIAAAACAAAAAgAAAAAAABACAAIAEAAQAABcAGwAfACMAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAoAAAP4AAAABgAAAAIAAAACAAAD/gAAA/YAAAAIAAAD+gAAA/4AAAP+AAAAAgAEAAAAAgAAAAQAAgAAA/4D9AACAAAD/gAQAAAD/gAAA/4AAAP+AAAD/gAAA/wAAAP+AAAAAgAAAAIAAAACAAAAAgAAAAQAAAP8A/4AAAACAAQAAAP+AAAD+gAAA/4AAAAAEAIAAgAQAA4AAAwAHAAsADwAAAQEBAQEBAQEBAQEBAQEBAQCAAIAAAP+AAQAAgAAA/4ABAACAAAD/gAEAAIAAAP+AA4AAAP0AAAADAAAA/QAAAAMAAAD9AAAAAwAAAP0AAAAAAQIAAAAEAAQAAAkAAAEBAQEBAQEBAQEDgACAAAD+AAAAAIAAAACAAAAAgAQAAAD8AAAAAQAAAAEAAAABAAAAAAgAAAAABAAEAAADAAcACwAPABMAFwAbAB8AAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAABAAAA/wACAAEAAAD/AP8AAQAAAP8AAgABAAAA/wD9AAEAAAD/AAIAAQAAAP8A/wABAAAA/wACAAEAAAD/AAQAAAD/AAAAAQAAAP8AAAAAAAAA/wAAAAEAAAD/AAAAAAAAAP8AAAABAAAA/wAAAAAAAAD/AAAAAQAAAP8AAAAAAQIAAAADAAQAAAMAAAEBAQECAAEAAAD/AAQAAAD8AAAAAAAAAgGAAIACgAQAAAMABwAAAQEBAQEBAQEBgAEAAAD/AAAAAQAAAP8ABAAAAP6AAAD/gAAA/oAAAAABAgAAAAQAAgAAAwAAAQEBAQIAAgAAAP4AAgAAAP4AAAAAAAAEAIAAAAQABAAAAwAHAAsADwAAAQEBAQEBAQEBAQEBAQEBAQCAAIAAAP+AAQAAgAAA/4ABAACAAAD/gAEAAIAAAP+ABAAAAPwAAAAEAAAA/AAAAAQAAAD8AAAABAAAAPwAAAAAAQCAAIADgAOAABMAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAoABAAAA/oAAAP+AAAD/gAAA/4AAAACAAAAAgAAAAIAAAAEAAAD/gAOAAAD+AAAA/wAAAACAAAAAgAAAAIAAAACAAAAAgAAA/wAAAAEAAAAAAAABAAAAAAQABAAACwAAAQEBAQEBAQEBAQEBAAAEAAAA/gAAAP+AAAD/gAAA/4AAAP+ABAAAAPwAAAAAgAAAAIAAAACAAAAAgAAAAAAAAQCAAIAEAAOAABsAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAgACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAD/gAAA/4AAAP+AAAD/gAAA/4AAAP+AAAD/gAOAAAD/gAAAAIAAAP8AAAABAAAA/oAAAAGAAAD9AAAAAIAAAP+AAAABAAAA/wAAAAGAAAD+gAAAAAAAAQAAAAACAAQAAAkAAAEBAQEBAQEBAQEAAACAAAAAgAAAAIAAAACAAAD+AAQAAAD/AAAA/wAAAP8AAAD/AAAAAAEAAAAABAAEAAATAAABAQEBAQEBAQEBAQEBAQEBAQEBAQKAAYAAAP8AAAD/AAAA/4AAAP+AAAD/AAAAAIAAAACAAAAAgAAAAQAEAAAA/wAAAP+AAAD/gAAA/wAAAP8AAAABgAAAAQAAAACAAAAAgAAAAAAAAQAAAAAEAAIAAA8AAAEBAQEBAQEBAQEBAQEBAQEBgAEAAAAAgAAAAIAAAACAAAD8AAAAAIAAAACAAAAAgAIAAAD/gAAA/4AAAP+AAAD/gAAAAIAAAACAAAAAgAAAAAAAAgAAAAAEAAQAAAMABwAAAQEBAQEBAQEAAAIAAAD+AAIAAgAAAP4ABAAAAP4AAAAAAAAA/gAAAAAEAAACAAQABAAAAwAHAAsADwAAAQEBAQEBAQEBAQEBAQEBAQAAAQAAAP8AAgABAAAA/wD/AAEAAAD/AAIAAQAAAP8ABAAAAP8AAAABAAAA/wAAAAAAAAD/AAAAAQAAAP8AAAAABAIAAAAEAAQAAAMABwALAA8AAAEBAQEBAQEBAQEBAQEBAQECAAEAAAD/AAEAAQAAAP8A/wABAAAA/wABAAEAAAD/AAQAAAD/AAAAAAAAAP8AAAAAAAAA/wAAAAAAAAD/AAAAAAEDAAAABAAEAAADAAABAQEBAwABAAAA/wAEAAAA/AAAAAAAAAEAAAAABAAEAAAFAAABAQEBAQEAAAQAAAD9AAAA/wAEAAAA/wAAAP0AAAAAAQAAAAABAAQAAAMAAAEBAQEAAAEAAAD/AAQAAAD8AAAAAAAAAwCAAIADAAOAAAMABwALAAABAQEBAQEBAQEBAQEAgACAAAD/gAEAAIAAAP+AAQAAgAAA/4ADgAAA/QAAAAMAAAD9AAAAAwAAAP0AAAAAAAABAYABgAQABAAACwAAAQEBAQEBAQEBAQEBAYABAAAAAIAAAAEAAAD+gAAA/4AAAP+ABAAAAP8AAAD/gAAA/wAAAACAAAAAgAAAAAAAAQAAAYACgAQAAAsAAAEBAQEBAQEBAQEBAQGAAQAAAP+AAAD/gAAA/oAAAAEAAAAAgAQAAAD+gAAA/4AAAP+AAAABAAAAAIAAAAAAAAEAAAAABAAEAAAJAAABAQEBAQEBAQEBAwABAAAA/AAAAAEAAAABAAAAAQAEAAAA/AAAAAKAAAAAgAAAAIAAAAABAIAAgAMABAAACwAAAQEBAQEBAQEBAQEBAgABAAAA/4AAAP6AAAD/gAAAAIAAAAEABAAAAP0AAAD/gAAAAIAAAAEAAAAAgAAAAAAAAQAAAAAEAAQAAAUAAAEBAQEBAQAAAQAAAAMAAAD8AAQAAAD9AAAA/wAAAAACAIAAgAMAAoAACwAPAAABAQEBAQEBAQEBAQEBAQEBAQABgAAAAIAAAP+AAAD+gAAAAQAAAP8A/4AAgAAA/4ACgAAA/4AAAP8AAAD/gAAAAIAAAAEAAAAAAAAA/wAAAAACAIAAgAMABAAACwAPAAABAQEBAQEBAQEBAQEBAQEBAgABAAAA/4AAAP6AAAABAAAA/wAAAAEA/oAAgAAA/4AEAAAA/QAAAP+AAAAAgAAAAQAAAACAAAD/gAAA/wAAAAABAIAAgAQABAAADQAAAQEBAQEBAQEBAQEBAQECAAIAAAD/AAAA/4AAAP6AAAD/gAAAAIAAAAEABAAAAP+AAAD9gAAA/4AAAACAAAABAAAAAIAAAAACAAAAAAQABAAAAwAHAAABAQEBAQEBAQAABAAAAPwAAQAAAAIAAAAEAAAA/AAAAAMA/gAAAAIAAAEAgACABAAEAAARAAABAQEBAQEBAQEBAQEBAQEBAQECAAIAAAD/AAAAAQAAAP8AAAD/gAAA/oAAAP+AAAAAgAAAAQAEAAAA/4AAAP+AAAD/gAAA/oAAAP+AAAAAgAAAAQAAAACAAAAAAQAAAAACgAKAAAsAAAEBAQEBAQEBAQEBAQAAAYAAAACAAAAAgAAA/wAAAP+AAAD/AAKAAAD/gAAA/4AAAP6AAAABAAAAAIAAAAAAAAEAAAAABAAEAAAFAAABAQEBAQEAAAQAAAD/AAAA/QAEAAAA/AAAAAMAAAAAAQCAAIAEAAQAABUAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQECAAIAAAD/AAAAAQAAAP8AAAABAAAA/wAAAP+AAAD+gAAA/4AAAACAAAABAAQAAAD/gAAA/4AAAP+AAAD/gAAA/4AAAP+AAAD/gAAAAIAAAAEAAAAAgAAAAAEBgAAABAACgAALAAABAQEBAQEBAQEBAQECgAGAAAD/AAAA/4AAAP8AAAAAgAAAAIACgAAA/wAAAP+AAAD/AAAAAYAAAACAAAAAAAABAAAAAAQABAAAEQAAAQEBAQEBAQEBAQEBAQEBAQEBAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAPwABAAAAP+AAAD/gAAA/4AAAP+AAAD/gAAA/4AAAP+AAAD/gAAAAAEAAAAABAABAAADAAABAQEBAAAEAAAA/AABAAAA/wAAAAAAAAEAAAAABAAEAAARAAABAQEBAQEBAQEBAQEBAQEBAQEDgACAAAD8AAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAEAAAA/AAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAAQAAAgAEAAQAAAMAAAEBAQEAAAQAAAD8AAQAAAD+AAAAAAAAAgCAAIACAAOAAAMABwAAAQEBAQEBAQEAgACAAAD/gAEAAIAAAP+AA4AAAP0AAAADAAAA/QAAAAAEAIAAgAQABAAAAwAHAAsADwAAAQEBAQEBAQEBAQEBAQEBAQCAA4AAAPyAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAABAAAAPyAAAADAP+AAAAAgP8A/4AAAACA/wD/gAAAAIAAAQAAAAAEAAQAAAUAAAEBAQEBAQMAAQAAAPwAAAADAAQAAAD8AAAAAQAAAAACAIAAgAQABAAAAwAHAAABAQEBAQEBAQCAA4AAAPyAAYAAAACAAAAEAAAA/IAAAAIA/4AAAACAAAMAgACABAAEAAADAAcACwAAAQEBAQEBAQEBAQEBAIADgAAA/IAAgAAAAIAAAAGAAAAAgAAABAAAAPyAAAADAP+AAAAAgP4A/4AAAACAAAAABAAAAIAEAAQAAAMABwALAA8AAAEBAQEBAQEBAQEBAQEBAQEAAAQAAAD8AAAABAAAAPwAAAAEAAAA/AAAAAQAAAD8AAQAAAD/gAAA/4AAAP+AAAD/gAAA/4AAAP+AAAD/gAAAAAYAgACABAAEAAADAAcACwAPABMAFwAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAIADgAAA/IAAgAAAAIAAAAGAAAAAgAAA/oAAAACAAAD+gAAAAIAAAAGAAAAAgAAABAAAAPyAAAADAP+AAAAAgAAA/4AAAACA/wD/gAAAAID/AP+AAAAAgAAA/4AAAACAAAEAgACAAQADgAADAAABAQEBAIAAgAAA/4ADgAAA/QAAAAAAAAUAgACABAAEAAADAAcACwAPABMAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAIADgAAA/IAAgAAAAIAAAAGAAAAAgAAA/YAAAACAAAABgAAAAIAAAAQAAAD8gAAAAwD/gAAAAIAAAP+AAAAAgP4A/4AAAACAAAD/gAAAAIAAAAABAAADAAQABAAAAwAAAQEBAQAABAAAAPwABAAAAP8AAAAAAAAHAIAAgAQABAAAAwAHAAsADwATABcAGwAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQCAA4AAAPyAAIAAAACAAAABgAAAAIAAAP2AAAAAgAAAAYAAAACAAAD9gAAAAIAAAAGAAAAAgAAABAAAAPyAAAADAP+AAAAAgAAA/4AAAACA/wD/gAAAAIAAAP+AAAAAgP8A/4AAAACAAAD/gAAAAIAAAAAEAAAAAAQAAgAAAwAHAAsADwAAAQEBAQEBAQEBAQEBAQEBAQAAAQAAAP8AAgABAAAA/wD/AAEAAAD/AAIAAQAAAP8AAgAAAP8AAAABAAAA/wAAAAAAAAD/AAAAAQAAAP8AAAAAAQAAAAAEAAQAAAkAAAEBAQEBAQEBAQEAAAEAAAABAAAAAQAAAAEAAAD8AAQAAAD/gAAA/4AAAP+AAAD9gAAAAAEBAAAAAgAEAAADAAABAQEBAQABAAAA/wAEAAAA/AAAAAAAAAEAAAAABAAEAAALAAABAQEBAQEBAQEBAQECgAGAAAD8AAAAAIAAAACAAAAAgAAAAQAEAAAA/AAAAAGAAAABAAAAAIAAAACAAAAAAAABAAABAAQAAgAAAwAAAQEBAQAABAAAAPwAAgAAAP8AAAAAAAABAAAAAAQABAAACwAAAQEBAQEBAQEBAQEBAgACAAAA/AAAAACAAAAAgAAAAIAAAACABAAAAPwAAAACAAAAAIAAAACAAAAAgAAAAAAAAQAAAAAEAAIAAAkAAAEBAQEBAQEBAQEDAAEAAAD8AAAAAQAAAAEAAAABAAIAAAD+AAAAAIAAAACAAAAAgAAAAAEAAAAABAAEAAALAAABAQEBAQEBAQEBAQEAAAIAAAAAgAAAAIAAAACAAAAAgAAA/AAEAAAA/4AAAP+AAAD/gAAA/4AAAP4AAAAAAAADAAAAAAQABAAAGwAnADMAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAEAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAD/AAAA/4AAAP+AAAD/gAAA/4AAAP+AAAD/gAIAAYAAAACAAAD/gAAA/4AAAP+AAAD/gP4AAIAAAACAAAAAgAAAAIAAAP6AAAD/gAQAAAD/gAAA/4AAAP+AAAD/gAAA/4AAAP+AAAD/AAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAQAAAP+AAAD+gAAAAIAAAACAAAAAgAAA/oAAAP+AAAD/gAAA/4AAAP+AAAAAgAAAAAAAAQAAAAAEAAIAAAkAAAEBAQEBAQEBAQEAAAEAAAABAAAAAQAAAAEAAAD8AAIAAAD/gAAA/4AAAP+AAAD/gAAAAAEAAAAABAAEAAALAAABAQEBAQEBAQEBAQEAAAGAAAABAAAAAIAAAACAAAAAgAAA/AAEAAAA/4AAAP+AAAD/gAAA/wAAAP6AAAAAAAAEAAAAgAQABAAAAwAHAAsADwAAAQEBAQEBAQEBAQEBAQEBAQCAAYAAAP6AAgABgAAA/oD9gAGAAAD+gAIAAYAAAP6ABAAAAP6AAAABgAAA/oAAAP+AAAD+gAAAAYAAAP6AAAAAAQIAAgAEAAQAAAMAAAEBAQECAAIAAAD+AAQAAAD+AAAAAAAABACAAIAEAAQAAAMABwAjACcAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAAD/AAGAAQAAAP8A/gAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAA/4AAAP+AAAD/gAAA/4AAAP+AAAD/gAAA/4ABgACAAAD/gAQAAAD/gAAAAIAAAP+AAAAAAAAA/wAAAP+AAAD/gAAAAIAAAACAAAABAAAA/oAAAP+AAAD/gAAA/4AAAACAAAAAgAAAAIAAAAGAAAD/gAAAAAQAAAAABAAEAAADAAcACwAPAAABAQEBAQEBAQEBAQEBAQEBAAAAgAAA/4ADgACAAAD/gPyAAIAAAP+AA4AAgAAA/4AEAAAA/4AAAACAAAD/gAAA/QAAAP+AAAAAgAAA/4AAAAABAAAAAAIAAgAAAwAAAQEBAQAAAgAAAP4AAgAAAP4AAAAAAAAEAAAAAAIABAAAAwAHAAsADwAAAQEBAQEBAQEBAQEBAQEBAQAAAQAAAP8AAQABAAAA/wD/AAEAAAD/AAEAAQAAAP8ABAAAAP8AAAAAAAAA/wAAAAAAAAD/AAAAAAAAAP8AAAAAAQCAAQADgAOAABMAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAYABAAAA/4AAAAGAAAD+gAAAAIAAAP8AAAD/gAAA/4AAAACAAAAAgAOAAAD/gAAA/4AAAP+AAAD/gAAA/4AAAACAAAAAgAAAAIAAAACAAAAAAAABAQABAAOABAAAEwAAAQEBAQEBAQEBAQEBAQEBAQEBAQECAACAAAAAgAAAAIAAAP+AAAD/gAAA/4AAAP+AAAD/gAAAAIAAAACABAAAAP+AAAD/gAAA/wAAAACAAAD+gAAAAYAAAP+AAAABAAAAAIAAAAAAAAEBAAEABAADgAATAAABAQEBAQEBAQEBAQEBAQEBAQEBAQIAAQAAAACAAAAAgAAA/4AAAP+AAAD/AAAAAIAAAP6AAAABgAAA/4ADgAAA/4AAAP+AAAD/gAAA/4AAAP+AAAAAgAAAAIAAAACAAAAAgAAAAAAAAQEAAIADgAOAABMAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAgAAgAAAAIAAAACAAAD/gAAA/4AAAP+AAAD/gAAA/4AAAACAAAAAgAOAAAD+gAAAAIAAAP8AAAD/gAAA/4AAAACAAAAAgAAAAQAAAP+AAAAAAAABAQAAgAOABAAADwAAAQEBAQEBAQEBAQEBAQEBAQIAAIAAAACAAAAAgAAA/4AAAP6AAAD/gAAAAIAAAACABAAAAP8AAAD/AAAA/wAAAP+AAAAAgAAAAQAAAAEAAAAAAAACAIAAgAOAA4AAAwAJAAABAQEBAQEBAQEBAIADAAAA/QAAgAAAAgAAAP8AAAADgAAA/QAAAAKA/gAAAAEAAAABAAAAAAIAgACABAAEAAAbACcAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQECAACAAAAAgAAAAIAAAACAAAD/gAAA/4AAAP+AAAD/gAAA/4AAAP+AAAD/gAAAAIAAAACAAAAAgAAAAAD/gAAAAIAAAACAAAAAgAAA/4AAAAQAAAD/gAAA/4AAAP+AAAD/gAAA/4AAAP+AAAD/gAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAA/4D/gAAA/4AAAP+AAAAAgAAAAIAAAACAAAEAAAIABAADAAADAAABAQEBAAAEAAAA/AADAAAA/wAAAAAAAAEAAAAABAAEAAALAAABAQEBAQEBAQEBAQEAAAQAAAD/gAAA/4AAAP+AAAD/gAAA/gAEAAAA/gAAAP+AAAD/gAAA/4AAAP+AAAAAAAABAAACAAIABAAAAwAAAQEBAQAAAgAAAP4ABAAAAP4AAAAAAAACAQAAgAOAA4AAFwAbAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAYABgAAAAIAAAP8AAAAAgAAAAIAAAP8AAAD/gAAA/wAAAACAAAAAgAAA/wAAAACAAIAAAACAAAADgAAA/wAAAP+AAAD/gAAA/4AAAP+AAAAAgAAA/4AAAACAAAAAgAAAAIAAAACAAAAAgP+AAAAAgAADAAAAAAQABAAACwAnADMAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAgAGAAAD/gAAA/4AAAP+AAAD/gAAAAIACgAEAAAD/gAAA/4AAAP+AAAD/gAAA/4AAAP+AAAD/AAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgACAAIAAAP+AAAD+gAAAAIAAAACAAAAAgAQAAAD/gAAA/4AAAP+AAAD/gAAAAYAAAACAAAD/AAAA/4AAAP+AAAD/gAAA/4AAAP+AAAD/gAAAAQAAAACAAAAAgAAAAIAAAACAAAAAgAAA/oAAAP6AAAD/gAAAAIAAAACAAAAAgAAAAAAAAgCAAIADgAQAAA8AHwAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAAABAAAAAIAAAP+AAAD/AAAA/wAAAP+AAAAAgAAAAQAAAAEAAAAAgAAA/4AAAP8AAAD/AAAA/4AAAACABAAAAP+AAAAAgAAA/wAAAP+AAAAAgAAA/4AAAAEAAAD+gAAA/4AAAACAAAD/AAAA/4AAAACAAAD/gAAAAQAAAAABAAAAAAQAA4AACwAAAQEBAQEBAQEBAQEBAQACAAAAAIAAAACAAAD8AAAAAIAAAACAA4AAAP+AAAD/gAAA/YAAAAKAAAAAgAAAAAAAAQAAAAACAAQAAA8AAAEBAQEBAQEBAQEBAQEBAQEAAACAAAAAgAAAAIAAAACAAAD/gAAA/4AAAP+AAAD/gAQAAAD/gAAA/4AAAP+AAAD/AAAA/4AAAP+AAAD/gAAAAAAAAQIAAAAEAAQAAA8AAAEBAQEBAQEBAQEBAQEBAQEDgACAAAD/gAAA/4AAAP+AAAD/gAAAAIAAAACAAAAAgAQAAAD8AAAAAIAAAACAAAAAgAAAAQAAAACAAAAAgAAAAAAAAQCAAIAEAAQAABcAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQIAAIAAAACAAAAAgAAAAIAAAP+AAAD/AAAA/4AAAP8AAAD/gAAAAIAAAACAAAAAgAQAAAD/gAAA/4AAAP+AAAD/gAAA/oAAAAEAAAD/AAAAAYAAAACAAAAAgAAAAIAAAAAAACAAAAAABAAEAAADAAcACwAPABMAFwAbAB8AIwAnACsALwAzADcAOwA/AEMARwBLAE8AUwBXAFsAXwBjAGcAawBvAHMAdwB7AH8AAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAgAAA/4ABAACAAAD/gAEAAIAAAP+AAQAAgAAA/4D9gACAAAD/gAEAAIAAAP+AAQAAgAAA/4ABAACAAAD/gPyAAIAAAP+AAQAAgAAA/4ABAACAAAD/gAEAAIAAAP+A/YAAgAAA/4ABAACAAAD/gAEAAIAAAP+AAQAAgAAA/4D8gACAAAD/gAEAAIAAAP+AAQAAgAAA/4ABAACAAAD/gP2AAIAAAP+AAQAAgAAA/4ABAACAAAD/gAEAAIAAAP+A/IAAgAAA/4ABAACAAAD/gAEAAIAAAP+AAQAAgAAA/4D9gACAAAD/gAEAAIAAAP+AAQAAgAAA/4ABAACAAAD/gAQAAAD/gAAAAIAAAP+AAAAAgAAA/4AAAACAAAD/gAAAAAAAAP+AAAAAgAAA/4AAAACAAAD/gAAAAIAAAP+AAAAAAAAA/4AAAACAAAD/gAAAAIAAAP+AAAAAgAAA/4AAAAAAAAD/gAAAAIAAAP+AAAAAgAAA/4AAAACAAAD/gAAAAAAAAP+AAAAAgAAA/4AAAACAAAD/gAAAAIAAAP+AAAAAAAAA/4AAAACAAAD/gAAAAIAAAP+AAAAAgAAA/4AAAAAAAAD/gAAAAIAAAP+AAAAAgAAA/4AAAACAAAD/gAAAAAAAAP+AAAAAgAAA/4AAAACAAAD/gAAAAIAAAP+AAAAAAQAAAAAEAAQAAAsAAAEBAQEBAQEBAQEBAQAABAAAAP6AAAD/AAAA/4AAAP+AAAD/gAQAAAD8AAAAAIAAAACAAAAAgAAAAQAAAAAAAAEAAAAABAAEAAALAAABAQEBAQEBAQEBAQEAAAQAAAD/gAAA/4AAAP+AAAD/AAAA/oAEAAAA/oAAAP8AAAD/gAAA/4AAAP+AAAAAAAABAAABgAKABAAADwAAAQEBAQEBAQEBAQEBAQEBAQAAAQAAAACAAAAAgAAAAIAAAP8AAAD/gAAA/4AAAP+ABAAAAP+AAAD/gAAA/4AAAP8AAAAAgAAAAIAAAACAAAAAAAABAAAAAAKABAAADwAAAQEBAQEBAQEBAQEBAQEBAQAAAQAAAACAAAAAgAAAAIAAAP8AAAD/gAAA/4AAAP+ABAAAAP+AAAD/gAAA/4AAAP2AAAACAAAAAIAAAACAAAAAAAABAYAAAAQAAoAABQAAAQEBAQEBAYACgAAA/oAAAP8AAoAAAP8AAAD+gAAAAAEAAAAABAAEAAAJAAABAQEBAQEBAQEBAAACgAAAAIAAAACAAAAAgAAA/AAEAAAA/wAAAP8AAAD/AAAA/wAAAAACAAAAAAQABAAAGwAfAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQGAAQAAAACAAAAAgAAAAIAAAP+AAAD/gAAA/4AAAP8AAAD/gAAA/4AAAP+AAAAAgAAAAIAAAACAAAAAAAEAAAAEAAAA/4AAAP+AAAD/gAAA/wAAAP+AAAD/gAAA/4AAAACAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAP8A/wAAAAEAAAEBgAGABAAEAAAFAAABAQEBAQEBgAEAAAABgAAA/YAEAAAA/oAAAP8AAAAAAQAAAAACgAKAAA8AAAEBAQEBAQEBAQEBAQEBAQEBgAEAAAD/gAAA/4AAAP+AAAD/AAAAAIAAAACAAAAAgAKAAAD/AAAA/4AAAP+AAAD/gAAAAQAAAACAAAAAgAAAAAAAAQGAAAAEAAQAAA8AAAEBAQEBAQEBAQEBAQEBAQEDAAEAAAD/gAAA/4AAAP+AAAD/AAAAAIAAAACAAAAAgAQAAAD/AAAA/4AAAP+AAAD+AAAAAoAAAACAAAAAgAAAAAAAAQGAAAAEAAKAAA8AAAEBAQEBAQEBAQEBAQEBAQEBgAEAAAAAgAAAAIAAAACAAAD/AAAA/4AAAP+AAAD/gAKAAAD/gAAA/4AAAP+AAAD/AAAAAIAAAACAAAAAgAAAAAAAAQGAAYAEAAQAAA8AAAEBAQEBAQEBAQEBAQEBAQEDAAEAAAD/gAAA/4AAAP+AAAD/AAAAAIAAAACAAAAAgAQAAAD/AAAA/4AAAP+AAAD/gAAAAQAAAACAAAAAgAAAAAAAAQAAAAAEAAQAABsAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAEAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAD/AAAA/4AAAP+AAAD/gAAA/4AAAP+AAAD/gAQAAAD/gAAA/4AAAP+AAAD/gAAA/4AAAP+AAAD/AAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAAAAAQAAAAAEAAQAAB8AAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAABAAAAAIAAAAEAAAAAgAAAAQAAAP+AAAD/gAAA/4AAAP+AAAD/gAAA/4AAAP8AAAAAgAAAAIAAAP+AAAD/gAQAAAD/gAAA/4AAAACAAAAAgAAA/wAAAP+AAAD/gAAA/4AAAP+AAAD/gAAA/4AAAAEAAAAAgAAAAQAAAACAAAAAAAABAAABgAQABAAADwAAAQEBAQEBAQEBAQEBAQEBAQAAAQAAAACAAAAAgAAAAgAAAP2AAAD/gAAA/4AAAP+ABAAAAP+AAAD/gAAA/4AAAP8AAAAAgAAAAIAAAACAAAAAAAABAAABgAQAAoAAAwAAAQEBAQAABAAAAPwAAoAAAP8AAAAAAAABAYAAAAKABAAAAwAAAQEBAQGAAQAAAP8ABAAAAPwAAAAAAAABAYAAAAQABAAAFwAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAwABAAAA/4AAAP+AAAAAgAAAAIAAAP8AAAD/gAAA/4AAAP+AAAAAgAAAAIAAAACABAAAAP8AAAD/gAAA/wAAAP+AAAD/AAAAAIAAAACAAAAAgAAAAQAAAACAAAAAgAAAAAAAAQAAAAAEAAKAAA8AAAEBAQEBAQEBAQEBAQEBAQEAAAKAAAAAgAAAAIAAAACAAAD/AAAA/4AAAP+AAAD+AAKAAAD/gAAA/4AAAP+AAAD/AAAAAIAAAACAAAAAgAAAAAAAAQAAAYAEAAQAAA8AAAEBAQEBAQEBAQEBAQEBAQEDAAEAAAD/gAAA/4AAAP+AAAD9gAAAAgAAAACAAAAAgAQAAAD/AAAA/4AAAP+AAAD/gAAAAQAAAACAAAAAgAAAAAAAAQAAAgAEAAQAAA8AAAEBAQEBAQEBAQEBAQEBAQEAAAQAAAD/gAAA/4AAAP+AAAD/AAAA/4AAAP+AAAD/gAQAAAD/gAAA/4AAAP+AAAD/gAAAAIAAAACAAAAAgAAAAAAAAQAAAYACgAKAAAMAAAEBAQEAAAKAAAD9gAKAAAD/AAAAAAAAAQGAAAACgAKAAAMAAAEBAQEBgAEAAAD/AAKAAAD9gAAAAAAAAQAAAYAEAAQAABcAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAQAAAACAAAABAAAAAIAAAAEAAAD/gAAA/4AAAP+AAAD/AAAA/4AAAP+AAAD/gAQAAAD/gAAA/4AAAACAAAAAgAAA/wAAAP+AAAD/gAAA/4AAAACAAAAAgAAAAIAAAAAAAAEAAAAABAAEAAAJAAABAQEBAQEBAQEBAYACgAAA/AAAAACAAAAAgAAAAIAEAAAA/AAAAAEAAAABAAAAAQAAAAABAAAAAAQABAAAEwAAAQEBAQEBAQEBAQEBAQEBAQEBAQEDAAEAAAD/gAAA/4AAAP+AAAD/AAAA/oAAAAEAAAABAAAAAIAAAACABAAAAP6AAAD/AAAA/4AAAP+AAAD/gAAAAQAAAACAAAAAgAAAAQAAAAAAAAEAAAAABAAEAAATAAABAQEBAQEBAQEBAQEBAQEBAQEBAQAAAQAAAACAAAAAgAAAAQAAAAEAAAD+gAAA/wAAAP+AAAD/gAAA/4AEAAAA/wAAAP8AAAD/gAAA/4AAAP8AAAAAgAAAAIAAAACAAAABAAAAAAAAAQAAAAAEAAQAABsAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEDAAEAAAD/gAAA/4AAAP+AAAD/gAAA/4AAAP+AAAD/AAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAQAAAD/AAAA/4AAAP+AAAD/gAAA/4AAAP+AAAD/gAAAAQAAAACAAAAAgAAAAIAAAACAAAAAgAAAAAAAAQAAAAACgAQAABcAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAQAAAACAAAAAgAAAAIAAAP+AAAD/gAAA/4AAAP8AAAAAgAAAAIAAAP+AAAD/gAQAAAD/gAAA/4AAAP+AAAD/AAAA/4AAAP+AAAD/gAAAAQAAAACAAAABAAAAAIAAAAAAAAEAAAAABAAEAAAfAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAQAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAP8AAAD/gAAA/wAAAP+AAAD/AAAAAIAAAACAAAD/gAAA/4AEAAAA/4AAAP+AAAD/gAAA/4AAAP+AAAD/gAAA/wAAAACAAAAAgAAA/4AAAP+AAAABAAAAAIAAAAEAAAAAgAAAAAAAAQAAAAACgAQAAA8AAAEBAQEBAQEBAQEBAQEBAQEBgAEAAAD/gAAA/4AAAP+AAAD/AAAAAIAAAACAAAAAgAQAAAD9gAAA/4AAAP+AAAD/gAAAAQAAAACAAAAAgAAAAAAAAQGAAAAEAAQAAA8AAAEBAQEBAQEBAQEBAQEBAQEBgAEAAAAAgAAAAIAAAACAAAD/AAAA/4AAAP+AAAD/gAQAAAD+AAAA/4AAAP+AAAD/AAAAAIAAAACAAAAAgAAAAAAAAQAAAAAEAAKAAA8AAAEBAQEBAQEBAQEBAQEBAQEBgAKAAAD+AAAA/4AAAP+AAAD/AAAAAIAAAACAAAAAgAKAAAD/AAAA/4AAAP+AAAD/gAAAAQAAAACAAAAAgAAAAAAAAQGAAYACgAQAAAMAAAEBAQEBgAEAAAD/AAQAAAD9gAAAAAAAAQGAAYAEAAKAAAMAAAEBAQEBgAKAAAD9gAKAAAD/AAAAAAAAAQAAAAAEAAQAAB8AAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAwABAAAA/4AAAP+AAAAAgAAAAIAAAP8AAAD/gAAA/wAAAP+AAAD/AAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAQAAAD/AAAA/4AAAP8AAAD/gAAA/wAAAACAAAAAgAAA/4AAAP+AAAABAAAAAIAAAACAAAAAgAAAAIAAAACAAAAAAAABAAAAAAQABAAAIwAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAABAAAAAIAAAAEAAAAAgAAAAQAAAP+AAAD/gAAAAIAAAACAAAD/AAAA/4AAAP8AAAD/gAAA/wAAAACAAAAAgAAA/4AAAP+ABAAAAP+AAAD/gAAAAIAAAACAAAD/AAAA/4AAAP8AAAD/gAAA/wAAAACAAAAAgAAA/4AAAP+AAAABAAAAAIAAAAEAAAAAgAAAAAAAAQGAAYACgAKAAAMAAAEBAQEBgAEAAAD/AAKAAAD/AAAAAAAAAQAAAAAEAAKAABcAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQGAAQAAAACAAAAAgAAAAIAAAP8AAAD/gAAA/wAAAP+AAAD/AAAAAIAAAACAAAAAgAKAAAD/gAAA/4AAAP+AAAD/AAAAAIAAAACAAAD/gAAA/4AAAAEAAAAAgAAAAIAAAAAAAAEAAAGAAoAEAAAFAAABAQEBAQEBgAEAAAD9gAAAAYAEAAAA/YAAAAEAAAAAAQAAAAACgAKAAAUAAAEBAQEBAQAAAoAAAP8AAAD+gAKAAAD9gAAAAYAAAAABAAAAAAQABAAAHwAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAEAAAAAgAAAAQAAAACAAAABAAAA/4AAAP+AAAAAgAAAAIAAAP8AAAD/gAAA/4AAAP+AAAD/gAAA/4AAAP+ABAAAAP+AAAD/gAAAAIAAAACAAAD/AAAA/4AAAP8AAAD/gAAA/wAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAAAAAAEAAAAABAAEAAALAAABAQEBAQEBAQEBAQEBgAEAAAABgAAA/oAAAP8AAAD+gAAAAYAEAAAA/oAAAP8AAAD+gAAAAYAAAAEAAAAAAAABAAAAAAQAAoAABwAAAQEBAQEBAQEAAAQAAAD+gAAA/wAAAP6AAoAAAP8AAAD+gAAAAYAAAAAAAAEBgAAABAAEAAAHAAABAQEBAQEBAQGAAQAAAAGAAAD+gAAA/wAEAAAA/oAAAP8AAAD+gAAAAAAAAQAAAAACgAQAAAcAAAEBAQEBAQEBAYABAAAA/wAAAP6AAAABgAQAAAD8AAAAAYAAAAEAAAAAAAABAAABgAQABAAABwAAAQEBAQEBAQEBgAEAAAABgAAA/AAAAAGABAAAAP6AAAD/AAAAAQAAAAAAAAQBAAEAAwADAAADAAcACwAPAAABAQEBAQEBAQEBAQEBAQEBAYABAAAA/wD/gACAAAD/gAGAAIAAAP+A/wABAAAA/wADAAAA/4AAAAAAAAD/AAAAAQAAAP8AAAAAAAAA/4AAAAACAIAAgAOAA4AACwAPAAABAQEBAQEBAQEBAQEBAQEBAQACAAAAAIAAAP+AAAD+AAAA/4AAAACAAIAAAAEAAAADgAAA/4AAAP4AAAD/gAAAAIAAAAIAAAD/gP8AAAABAAACAAAAAAQABAAAEwAfAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAgAAAACAAAAAgAAA/4AAAP+AAAD+AAAA/4AAAP+AAAAAgAAAAIAAgAAA/4AAAACAAAABAAAAAIAAAP+AAAAEAAAA/4AAAP+AAAD+AAAA/4AAAP+AAAAAgAAAAIAAAAIAAAAAgAAA/4D/gAAA/wAAAP+AAAAAgAAAAQAAAACAABAAAAAABAAEAAADAAcACwAPABMAFwAbAB8AIwAnACsALwAzADcAOwA/AAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAYAAgAAA/4ACAACAAAD/gP2AAIAAAP+AAgAAgAAA/4D9gACAAAD/gAIAAIAAAP+A/YAAgAAA/4ACAACAAAD/gP+AAIAAAP+AAgAAgAAA/4D9gACAAAD/gAIAAIAAAP+A/YAAgAAA/4ACAACAAAD/gP2AAIAAAP+AAgAAgAAA/4AEAAAA/4AAAACAAAD/gAAAAAAAAP+AAAAAgAAA/4AAAAAAAAD/gAAAAIAAAP+AAAAAAAAA/4AAAACAAAD/gAAAAAAAAP+AAAAAgAAA/4AAAAAAAAD/gAAAAIAAAP+AAAAAAAAA/4AAAACAAAD/gAAAAAAAAP+AAAAAgAAA/4AAAAAQAAAAAAQABAAAAwAHAAsADwATABcAGwAfACMAJwArAC8AMwA3ADsAPwAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAIAAAP+AAgAAgAAA/4D+gACAAAD/gAIAAIAAAP+A/oAAgAAA/4ACAACAAAD/gP6AAIAAAP+AAgAAgAAA/4D8gACAAAD/gAIAAIAAAP+A/oAAgAAA/4ACAACAAAD/gP6AAIAAAP+AAgAAgAAA/4D+gACAAAD/gAIAAIAAAP+ABAAAAP+AAAAAgAAA/4AAAAAAAAD/gAAAAIAAAP+AAAAAAAAA/4AAAACAAAD/gAAAAAAAAP+AAAAAgAAA/4AAAAAAAAD/gAAAAIAAAP+AAAAAAAAA/4AAAACAAAD/gAAAAAAAAP+AAAAAgAAA/4AAAAAAAAD/gAAAAIAAAP+AAAAAAwCAAIADgAQAABcAGwAfAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQIAAIAAAAEAAAD/AAAAAIAAAP+AAAABAAAA/wAAAP+AAAD/AAAA/4AAAACAAAABAP+AAAAAgAAA/4AAAACAAAAEAAAA/4AAAP+AAAD/gAAA/4AAAP+AAAD/gAAA/4AAAACAAAAAgAAAAYAAAACAAAD/gP+AAAAAgP8A/4AAAACAAAAAAQCAAIADgAOAAA8AAAEBAQEBAQEBAQEBAQEBAQEBAAIAAAAAgAAA/4AAAP+AAAD/AAAA/4AAAP+AAAAAgAOAAAD/gAAA/wAAAP+AAAD/AAAAAQAAAACAAAABAAAAAAAAAgCAAIADgAOAAAMACQAAAQEBAQEBAQEBAQCAAwAAAP0AAYAAAP8AAAACAAAAA4AAAP0AAAACgP8AAAD/AAAAAgAAAAABAIAAgAOAA4AAAwAAAQEBAQCAAwAAAP0AA4AAAP0AAAAAAAACAIAAgAOAA4AAAwALAAABAQEBAQEBAQEBAQEAgAMAAAD9AACAAAACAAAA/4AAAP8AAAADgAAA/QAAAAKA/gAAAAIAAAD/AAAAAQAAAQAAAAAEAAQAABMAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQACAAAAAIAAAACAAAD/gAAA/4AAAP4AAAD/gAAA/4AAAACAAAAAgAQAAAD/gAAA/4AAAP4AAAD/gAAA/4AAAACAAAAAgAAAAgAAAACAAAAAAAABAQABAAMAAwAACwAAAQEBAQEBAQEBAQEBAYABAAAAAIAAAP+AAAD/AAAA/4AAAACAAwAAAP+AAAD/AAAA/4AAAACAAAABAAAAAAAAAQCAAQAEAAQAABsAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQECAACAAAAAgAAAAQAAAP+AAAD/gAAAAIAAAP8AAAD/gAAA/wAAAACAAAD/gAAA/4AAAAEAAAAAgAQAAAD/gAAA/4AAAP+AAAD/gAAA/4AAAP+AAAAAgAAA/4AAAACAAAAAgAAAAIAAAACAAAAAgAAAAAAABgCAAIAEAAQAAAMABwALAA8AEwAXAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAgAOAAAD8gAEAAAAAgAAAAIAAAACAAAD+AAAAAIAAAAGAAAAAgAAA/gAAAAGAAAAEAAAA/IAAAAMA/wAAAAEAAAD/AAAAAQD+gP+AAAAAgAAA/4AAAACA/4D/gAAAAIAABgCAAIAEAAQAAAMABwALAA8AEwAXAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAgAOAAAD8gAEAAAAAgAAAAIAAAACAAAD+gAAAAYAAAP4AAAAAgAAAAYAAAACAAAAEAAAA/IAAAAMA/wAAAAEAAAD/AAAAAQD+gP+AAAAAgP+A/4AAAACAAAD/gAAAAIAABgCAAIAEAAQAABMAFwAbAB8AIwAnAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAgAAgAAAAIAAAAEAAAD/AAAA/4AAAP+AAAD/gAAA/wAAAAEAAAAAgAAAAAAAgAAA/oAAgAAA/4ACAACAAAD/gP4AAIAAAP+AAgAAgAAA/4AEAAAA/wAAAP+AAAD/gAAA/4AAAP8AAAABAAAAAIAAAACAAAAAgAAA/4D/gAAAAIABAAAA/4AAAACAAAD/gAAA/oAAAP+AAAAAgAAA/4AAAAACAQAAgAOABAAAFwAbAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAYABgAAAAIAAAP+AAAD/gAAAAIAAAP+AAAD/gAAA/4AAAACAAAD/gAAAAQAAAP8A/4AAgAAA/4AEAAAA/4AAAP8AAAD/gAAA/4AAAP+AAAD/gAAAAIAAAACAAAAAgAAAAIAAAAEAAAAAAAAA/wAAAAACAIAAgAQABAAAFwAbAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAYACgAAA/4AAAP+AAAD/gAAAAIAAAP+AAAD+gAAAAQAAAP8AAAABAAAAAIAAAP8A/wAAgAAA/4AEAAAA/gAAAAEAAAD/gAAA/4AAAP8AAAD/gAAAAIAAAAEAAAAAgAAAAIAAAACAAAD+gAAA/wAAAAABAIAAgAQABAAAGwAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQIAAIAAAACAAAAAgAAAAIAAAP8AAAD/gAAAAIAAAP6AAAAAgAAA/4AAAP8AAAAAgAAAAIAAAACABAAAAP+AAAD/gAAA/4AAAP8AAAAAgAAA/wAAAP+AAAAAgAAAAQAAAP+AAAABAAAAAIAAAACAAAAAAAABAIAAgAQABAAAGwAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQGAAYAAAP+AAAAAgAAAAQAAAP8AAAD/gAAAAIAAAP6AAAAAgAAA/4AAAP8AAAABAAAAAIAAAP+ABAAAAP8AAAD/gAAAAIAAAP6AAAAAgAAA/wAAAP+AAAAAgAAAAQAAAP+AAAABgAAA/4AAAACAAAAAAAABAIAAgAQABAAAFwAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAAAAAIAAAAEAAAAAgAAA/4AAAP+AAAD/gAAA/4AAAP+AAAD/gAAA/4AAAACABAAAAP+AAAAAgAAA/4AAAP6AAAD/gAAA/4AAAP+AAAAAgAAAAIAAAACAAAABgAAAAAAAAQCAAIAEAAQAABsAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQECAACAAAAAgAAAAIAAAACAAAD/gAAA/4AAAP+AAAD/gAAA/4AAAP+AAAD/gAAAAIAAAACAAAAAgAQAAAD/gAAA/4AAAP+AAAD/gAAA/4AAAP+AAAD/gAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAAAAAQEAAIADgAQAAAsAAAEBAQEBAQEBAQEBAQIAAYAAAP8AAAD/gAAA/wAAAACAAAAAgAQAAAD/AAAA/gAAAP+AAAABAAAAAIAAAAAAAAEAgACABAAEAAATAAABAQEBAQEBAQEBAQEBAQEBAQEBAQGAAoAAAP+AAAD/AAAAAIAAAACAAAD+gAAA/4AAAP8AAAAAgAAAAIAEAAAA/QAAAP+AAAABAAAAAIAAAAEAAAD+AAAA/4AAAAEAAAAAgAAAAAAAAAAYASYAAQAAAAAAAAAIAAAAAQAAAAAAAQAIAAgAAQAAAAAAAgAHABAAAQAAAAAAAwAIABcAAQAAAAAABAAQAB8AAQAAAAAABQALAC8AAQAAAAAABgAIADoAAQAAAAAACQAJAEIAAQAAAAAACgA6AEsAAQAAAAAADQARAIUAAQAAAAAADgAyAJYAAQAAAAAAEwAMAMgAAwABBAkAAAAQANQAAwABBAkAAQAQAOQAAwABBAkAAgAOAPQAAwABBAkAAwAQAQIAAwABBAkABAAgARIAAwABBAkABQAWATIAAwABBAkABgAQAUgAAwABBAkACQASAVgAAwABBAkACgB0AWoAAwABBAkADQAiAd4AAwABBAkADgBkAgAAAwABBAkAEwAYAmQoYykgMjAyMlVyc2FGb250UmVndWxhclVyc2FGb250VXJzYUZvbnQgUmVndWxhclZlcnNpb24gMS4wVXJzYUZvbnRVcnNhRnJhbmtBbiBvcGVuIGxpY2VuY2UgZ2VuZXJhbCBwdXJwb3NlIHRleHRtb2RlIGZvbnQgYnkgVXJzYUZyYW5rQ0MwIDEuMCBVbml2ZXJzYWxodHRwczovL2NyZWF0aXZlY29tbW9ucy5vcmcvcHVibGljZG9tYWluL3plcm8vMS4wL0hlbGxvIFdvcmxkIQAoAGMAKQAgADIAMAAyADIAVQByAHMAYQBGAG8AbgB0AFIAZQBnAHUAbABhAHIAVQByAHMAYQBGAG8AbgB0AFUAcgBzAGEARgBvAG4AdAAgAFIAZQBnAHUAbABhAHIAVgBlAHIAcwBpAG8AbgAgADEALgAwAFUAcgBzAGEARgBvAG4AdABVAHIAcwBhAEYAcgBhAG4AawBBAG4AIABvAHAAZQBuACAAbABpAGMAZQBuAGMAZQAgAGcAZQBuAGUAcgBhAGwAIABwAHUAcgBwAG8AcwBlACAAdABlAHgAdABtAG8AZABlACAAZgBvAG4AdAAgAGIAeQAgAFUAcgBzAGEARgByAGEAbgBrAEMAQwAwACAAMQAuADAAIABVAG4AaQB2AGUAcgBzAGEAbABoAHQAdABwAHMAOgAvAC8AYwByAGUAYQB0AGkAdgBlAGMAbwBtAG0AbwBuAHMALgBvAHIAZwAvAHAAdQBiAGwAaQBjAGQAbwBtAGEAaQBuAC8AegBlAHIAbwAvADEALgAwAC8ASABlAGwAbABvACAAVwBvAHIAbABkACEAAAADAAAAAAAAAGYAMwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==\r
8
- `)).arrayBuffer();await this.qt(B),this.Vt=C.parse(B)[0],await this.Ae()}te(e){if(e===void 0)return this.$t;this.$t=e,this.Lt=this.Nt.Gt(this.Ht.map(s=>s._t),this.$t,this.Wt);const B=this.Zt.dt(this.Ht,this.Lt,this.$t,this.Wt);this.Rt=B.framebuffer,this.zt=B.columns,this.Jt=B.rows}async ee(e){try{const B=await fetch(e);if(!B.ok)throw new P(`Failed to load font file: ${B.status} ${B.statusText}`);const s=await B.arrayBuffer();await this.qt(s);const Q=C.parse(s);if(!Q||Q.length===0)throw Error("Failed to parse font file");this.Vt=Q[0],await this.Ae()}catch(B){throw new P("Failed to load font: "+(B instanceof Error?B.message:"Unknown error"),B)}}async qt(e){const B=Date.now();this.Wt=this.Wt==="UrsaFont"?"UrsaFont":"CustomFont_"+B,this.Kt=new FontFace(this.Wt,e),await this.Kt.load(),document.fonts.add(this.Kt)}async Ae(){const e=this.jt.ht(this.Vt),B=this.jt.ct(e);this.Ht=this.Xt.Ft(B,this.Vt),this.Lt=this.Nt.Gt(B,this.$t,this.Wt);const s=this.Zt.dt(this.Ht,this.Lt,this.$t,this.Wt);this.Rt=s.framebuffer,this.zt=s.columns,this.Jt=s.rows}Ot(e){return this.Xt.Ot(e,this.Ht)}kt(e){return this.Xt.kt(e,this.Ht)}Be(e){if(typeof e!="string"||e.length===0)return!1;const B=new Set(this.Ht.map(s=>s._t));for(const s of e)if(!B.has(s))return!1;return!0}get Qe(){return this.Rt}get se(){return this.Ht}get ie(){return this.zt}get Ee(){return this.Jt}get re(){return this.Lt}dispose(){this.Rt.dispose(),document.fonts.delete(this.Kt)}get fontSize(){return this.$t}get font(){return this.Vt}}class Z{constructor(e,B,s){g(this,"ge");g(this,"oe");g(this,"p");g(this,"v");g(this,"ne");g(this,"he");g(this,"ae",!1);g(this,"De");g(this,"le");g(this,"Ce");this.De=e,this.le=B,this.Ce=s,this.reset()}reset(){this.ae||(this.ge=Math.floor(this.De.width/this.le),this.oe=Math.floor(this.De.height/this.Ce)),this.ce()}ce(){this.p=this.ge*this.le,this.v=this.oe*this.Ce,this.ne=Math.floor((this.De.width-this.p)/2),this.he=Math.floor((this.De.height-this.v)/2)}ue(e,B){this.le=e,this.Ce=B,this.reset()}Pe(e,B){this.ae=!0,this.ge=e,this.oe=B,this.ce()}Ie(){this.ae=!1,this.reset()}resize(){this.ae?this.ce():this.reset()}we(e){if(e===void 0)return this.ae;this.ae=e}get fe(){return this.le}get de(){return this.Ce}get cols(){return this.ge}get rows(){return this.oe}get width(){return this.p}get height(){return this.v}get offsetX(){return this.ne}get offsetY(){return this.he}}class q{constructor(e,B=!1,s={}){g(this,"De");g(this,"me");g(this,"pe");g(this,"ve");g(this,"be");this.me=e,this.pe=B,this.De=this.xe(s.width,s.height),B&&this._e()}xe(e,B){var Q;const s=document.createElement("canvas");if(s.className="textmodeCanvas",s.style.imageRendering="pixelated",this.pe)s.width=e||800,s.height=B||600,document.body.appendChild(s);else{const i=this.me.getBoundingClientRect();let E=Math.round(i.width),r=Math.round(i.height);if(this.me instanceof HTMLVideoElement){const a=this.me;(E===0||r===0)&&a.videoWidth>0&&a.videoHeight>0&&(E=a.videoWidth,r=a.videoHeight)}s.width=E,s.height=r,s.style.position="absolute",s.style.pointerEvents="none";const n=window.getComputedStyle(this.me);let h=parseInt(n.zIndex||"0",10);isNaN(h)&&(h=0),s.style.zIndex=""+(h+1),this.ye(s),(Q=this.me.parentNode)==null||Q.insertBefore(s,this.me.nextSibling)}return s}ye(e){const B=this.me.getBoundingClientRect();let s=this.me.offsetParent;if(s&&s!==document.body){const Q=s.getBoundingClientRect();e.style.top=B.top-Q.top+"px",e.style.left=B.left-Q.left+"px"}else e.style.top=B.top+window.scrollY+"px",e.style.left=B.left+window.scrollX+"px"}resize(e,B){if(this.pe)this.De.width=e??this.De.width,this.De.height=B??this.De.height;else{const s=this.me.getBoundingClientRect();let Q=Math.round(s.width),i=Math.round(s.height);if(this.me instanceof HTMLVideoElement){const E=this.me;(Q===0||i===0)&&E.videoWidth>0&&E.videoHeight>0&&(Q=E.videoWidth,i=E.videoHeight)}this.De.width=Q,this.De.height=i,this.ye(this.De)}}Me(){const e={alpha:!1,premultipliedAlpha:!1,Ge:!0,antialias:!1,Fe:!1,Ye:!1,powerPreference:"high-performance"},B=this.De.getContext("webgl2",e)||this.De.getContext("webgl",e);if(!B)throw new P("WebGL context could not be created. Ensure your browser supports WebGL.");return B}_e(){this.ve=new ResizeObserver(e=>{for(const B of e){const s=B.contentRect;!this.be||Math.round(s.width)===this.De.width&&Math.round(s.height)===this.De.height||this.be()}}),this.ve.observe(this.De)}dispose(){if(this.ve&&this.ve.disconnect(),this.De){const e=this.De.getContext("webgl")||this.De.getContext("webgl2");if(e){const B=e.getExtension("WEBGL_lose_context");B&&B.Te()}this.De.parentNode&&this.De.parentNode.removeChild(this.De)}}get canvas(){return this.De}get width(){return this.De.width}get height(){return this.De.height}}class G{constructor(e,B,s,Q={}){g(this,"Se");g(this,"Oe");g(this,"grid");g(this,"Ue");g(this,"ke");g(this,"Ve");g(this,"He");g(this,"Re");g(this,"h");this.Se=e,this.Oe=B,this.grid=s,this.h=Q;const i=this.grid.cols,E=this.grid.rows;this.Ue=this.Se.createFramebuffer(i,E),this.ke=this.Se.createFramebuffer(i,E),this.Ve=this.Se.createFramebuffer(i,E),this.He=this.Se.createFramebuffer(i,E),this.Re=this.Se.createFramebuffer(i,E)}resize(){const e=this.grid.cols,B=this.grid.rows;this.Ue.resize(e,B),this.ke.resize(e,B),this.Ve.resize(e,B),this.He.resize(e,B),this.Re.resize(e,B)}enabled(e){this.h.enabled=e}enable(){this.enabled(!0)}disable(){this.enabled(!1)}dispose(){this.Ue.dispose(),this.ke.dispose(),this.Ve.dispose(),this.He.dispose(),this.Re.dispose()}get $e(){return this.Ue}get ze(){return this.ke}get Je(){return this.Ve}get Le(){return this.He}get Ke(){return this.Re}get options(){return this.h}}class hA{constructor(e,B){g(this,"I");g(this,"wt");g(this,"We");this.wt=e,this.We=B;const s=Math.max(this.We.length,1);this.I=this.wt.createFramebuffer(s,1),this.je()}je(){const e=this.We.length;this.I.width!==e&&this.I.resize(e,1);const B=new Uint8Array(1*e*4);for(let s=0;s<e;s++){const Q=this.We[s],i=4*s;B[i]=Q[0],B[i+1]=Q[1],B[i+2]=Q[2],B[i+3]=255}this.I.S(B,e,1)}Ze(e){this.We=e,this.je()}get Ne(){return this.We}get framebuffer(){return this.I}get texture(){return this.I.texture}}class j extends G{constructor(B,s,Q,i={}){super(B,s,Q,i);g(this,"palette");this.palette=new hA(this.Se,this.Oe.kt(" .:-=+*%@#"))}se(B){d.validate(this.Oe.Be(B),"One or more characters do not exist in the current font.",{method:"characters",Ut:B})&&(this.h.se=B,this.palette.Ze(this.Oe.kt(B)))}Xe(B,s,Q,i=255){const E=this.qe(B,"characterColor",s,Q,i);E&&(this.h.Xe=E)}AB(B){this.tB(B,"characterColorMode")}eB(B,s,Q,i=255){const E=this.qe(B,"cellColor",s,Q,i);E&&(this.h.eB=E)}BB(B){this.tB(B,"cellColorMode")}QB(B){this.sB(B,"invert","Invert")}rotation(B){if(!d.validate(typeof B=="number","Rotation angle must be a number.",{method:"rotation",Ut:B}))return;(B%=360)<0&&(B+=360);const s=255*B/360,Q=Math.floor(s)/255,i=Math.round(s-Q);this.h.rotation=[Q,i,0,1]}iB(B){this.sB(B,"flipHorizontally","Flip horizontally")}EB(B){this.sB(B,"flipVertically","Flip vertically")}qe(B,s,Q,i,E=255){let r,n,h,a;if(typeof B=="string"){const D=this.rB(B);if(!D)return d.validate(!1,"Invalid hex color format. Use '#FF0000', '#F00', 'FF0000', or 'F00'.",{method:s,Ut:B}),null;[r,n,h,a]=D}else if(r=B,n=Q!==void 0?Q:B,h=i!==void 0?i:B,a=E,!d.validate([r,n,h,a].every(D=>D>=0&&D<=255),s.charAt(0).toUpperCase()+s.slice(1)+" color values must be between 0 and 255",{method:s,gB:{r,g:n,b:h,a}}))return null;return[r/255,n/255,h/255,a/255]}tB(B,s){d.validate(["sampled","fixed"].includes(B),"Invalid color mode. Must be 'sampled' or 'fixed'.",{method:s,Ut:B})&&(this.h[s]=B)}sB(B,s,Q){d.validate(typeof B=="boolean"||typeof B=="number"&&Number.isInteger(B),Q+" must be a boolean value or an integer (0 for false, any other number for true).",{method:s,Ut:B})&&(this.h[s]=!!B)}rB(B){return B=B.replace(/^#/,""),/^[0-9A-Fa-f]{3}$|^[0-9A-Fa-f]{6}$/.test(B)?(B.length===3&&(B=B.split("").map(s=>s+s).join("")),[parseInt(B.slice(0,2),16),parseInt(B.slice(2,4),16),parseInt(B.slice(4,6),16),255]):null}}const aA={enabled:!0,se:" .:-=+*%@#",Xe:[1,1,1,1],AB:"sampled",eB:[0,0,0,1],BB:"fixed",QB:!1,rotation:[0,0,0,255],iB:!1,EB:!1,oB:[0,255]};class $ extends j{constructor(B,s,Q){super(B,s,Q,{...aA});g(this,"nB");g(this,"hB");g(this,"aB");g(this,"DB");g(this,"lB");g(this,"CB");this.nB=new v(B.context,x,"precision lowp float;uniform sampler2D u_sketchTexture;uniform vec2 u_gridCellDimensions;uniform vec2 u_brightnessRange;varying vec2 v_uv;void main(){vec2 cellCenter=(floor(v_uv*u_gridCellDimensions)+vec2(0.5))/u_gridCellDimensions;vec4 color=texture2D(u_sketchTexture,cellCenter);float brightness=dot(color.rgb,vec3(0.299,0.587,0.114));float brightnessValue=brightness*255.0;if(brightnessValue>=u_brightnessRange.x&&brightnessValue<=u_brightnessRange.y){gl_FragColor=color;}else{gl_FragColor=vec4(0.0);}}"),this.hB=new v(B.context,x,"precision lowp float;uniform sampler2D u_sampleTexture;uniform vec4 u_fillColor;uniform bool u_useFixedColor;varying vec2 v_uv;void main(){vec4 sampleColor=texture2D(u_sampleTexture,v_uv);if(sampleColor.a>0.0){if(u_useFixedColor){gl_FragColor=u_fillColor;}else{gl_FragColor=sampleColor;}}else{gl_FragColor=vec4(0.0);}}"),this.DB=new v(B.context,x,"precision lowp float;uniform sampler2D u_sampleTexture;uniform bool u_invert;uniform bool u_flipHorizontally;uniform bool u_flipVertically;varying vec2 v_uv;void main(){vec4 sampleColor=texture2D(u_sampleTexture,v_uv);if(sampleColor.a>0.0){float invertValue=u_invert ? 1.0 : 0.0;float flipHValue=u_flipHorizontally ? 1.0 : 0.0;float flipVValue=u_flipVertically ? 1.0 : 0.0;gl_FragColor=vec4(invertValue,flipHValue,flipVValue,1.0);}else{gl_FragColor=vec4(0.0);}}"),this.lB=new v(B.context,x,"precision lowp float;uniform sampler2D u_sampleTexture;uniform vec4 u_rotationColor;varying vec2 v_uv;void main(){vec4 sampleColor=texture2D(u_sampleTexture,v_uv);if(sampleColor.a>0.0){gl_FragColor=u_rotationColor;}else{gl_FragColor=vec4(0.0);}}"),this.aB=new v(B.context,x,"precision lowp float;uniform sampler2D u_colorSampleFramebuffer;uniform sampler2D u_charPaletteTexture;uniform vec2 u_charPaletteSize;uniform vec2 u_brightnessRange;varying vec2 v_uv;void main(){vec4 color=texture2D(u_colorSampleFramebuffer,v_uv);if(color.a==0.0){gl_FragColor=vec4(0.0);return;}float brightness=dot(color.rgb,vec3(0.299,0.587,0.114))*255.0;vec2 range=u_brightnessRange;if(brightness<range.x||brightness>range.y){gl_FragColor=vec4(0.0);return;}float t=(brightness-range.x)/(range.y-range.x);float idx=clamp(floor(t*u_charPaletteSize.x),0.0,u_charPaletteSize.x-1.0);vec3 charColor=texture2D(u_charPaletteTexture,vec2((idx+0.5)/u_charPaletteSize.x,0.0)).rgb;gl_FragColor=vec4(charColor,1.0);}"),this.CB=this.Se.createFramebuffer(this.grid.cols,this.grid.rows)}cB(B){const s=this.grid.cols,Q=this.grid.rows;this.CB.O(),this.Se.clear(),this.Se.bA(this.nB),this.Se.j("u_sketchTexture",B),this.Se.j("u_gridCellDimensions",[s,Q]),this.Se.j("u_brightnessRange",this.h.oB),this.Se.rect(0,0,s,Q),this.CB.end(),this.ke.O(),this.Se.clear(),this.Se.bA(this.hB),this.Se.j("u_sampleTexture",this.CB),this.Se.j("u_fillColor",this.h.Xe),this.Se.j("u_useFixedColor",this.h.AB==="fixed"),this.Se.rect(0,0,s,Q),this.ke.end(),this.Ve.O(),this.Se.clear(),this.Se.bA(this.hB),this.Se.j("u_sampleTexture",this.CB),this.Se.j("u_fillColor",this.h.eB),this.Se.j("u_useFixedColor",this.h.BB==="fixed"),this.Se.rect(0,0,s,Q),this.Ve.end(),this.Re.O(),this.Se.clear(),this.Se.bA(this.DB),this.Se.j("u_sampleTexture",this.CB),this.Se.j("u_invert",this.h.QB),this.Se.j("u_flipHorizontally",this.h.iB),this.Se.j("u_flipVertically",this.h.EB),this.Se.rect(0,0,s,Q),this.Re.end(),this.He.O(),this.Se.clear(),this.Se.bA(this.lB),this.Se.j("u_sampleTexture",this.CB),this.Se.j("u_rotationColor",this.h.rotation),this.Se.rect(0,0,s,Q),this.He.end(),this.Ue.O(),this.Se.clear(),this.Se.bA(this.aB),this.Se.j("u_colorSampleFramebuffer",this.CB),this.Se.j("u_charPaletteTexture",this.palette.texture),this.Se.j("u_charPaletteSize",[this.palette.Ne.length,1]),this.Se.j("u_brightnessRange",this.h.oB),this.Se.rect(0,0,s,Q),this.Ue.end()}resize(){super.resize(),this.CB.resize(this.grid.cols,this.grid.rows)}oB(B){d.validate(Array.isArray(B)&&B.length===2&&B.every(s=>typeof s=="number"&&s>=0&&s<=255),"Brightness range must be an array of two numbers between 0 and 255.",{method:"brightnessRange",Ut:B})&&(this.h.oB=B)}}const DA=Object.freeze(Object.defineProperty({__proto__:null,uB:$,PB:G,IB:j},Symbol.toStringTag,{value:"Module"}));class AA{constructor(e,B,s){g(this,"Se");g(this,"font");g(this,"grid");g(this,"wB");g(this,"fB");g(this,"dB");g(this,"mB");g(this,"pB");g(this,"Ue");g(this,"ke");g(this,"Ve");g(this,"He");g(this,"Re");this.Se=e,this.font=B,this.grid=s,this.pB=this.Se.createShader(x,"precision mediump float;uniform sampler2D u_characterTexture;uniform vec2 u_charsetDimensions;uniform sampler2D u_primaryColorTexture;uniform sampler2D u_secondaryColorTexture;uniform sampler2D u_transformTexture;uniform sampler2D u_asciiCharacterTexture;uniform sampler2D u_rotationTexture;uniform sampler2D u_captureTexture;uniform vec2 u_captureDimensions;uniform int u_backgroundMode;uniform vec2 u_gridCellDimensions;uniform vec2 u_gridPixelDimensions;mat2 rotate2D(float angle){float s=sin(angle);float c=cos(angle);return mat2(c,-s,s,c);}void main(){vec2 adjustedCoord=gl_FragCoord.xy/u_gridPixelDimensions;vec2 gridCoord=adjustedCoord*u_gridCellDimensions;vec2 cellCoord=floor(gridCoord);vec2 charIndexTexCoord=(cellCoord+0.5)/u_gridCellDimensions;vec4 primaryColor=texture2D(u_primaryColorTexture,charIndexTexCoord);vec4 secondaryColor=texture2D(u_secondaryColorTexture,charIndexTexCoord);vec4 transformColor=texture2D(u_transformTexture,charIndexTexCoord);bool isInverted=transformColor.r>0.5;bool flipHorizontal=transformColor.g>0.5;bool flipVertical=transformColor.b>0.5;vec4 encodedIndexVec=texture2D(u_asciiCharacterTexture,charIndexTexCoord);if(encodedIndexVec.a<0.01){gl_FragColor=(u_backgroundMode==0)? vec4(0.0):texture2D(u_captureTexture,gl_FragCoord.xy/u_captureDimensions);return;}int charIndex=int(encodedIndexVec.r*255.0+0.5)+int(encodedIndexVec.g*255.0+0.5)*256;int charCol=int(mod(float(charIndex),u_charsetDimensions.x));int charRow=charIndex/int(u_charsetDimensions.x);float flippedRow=(u_charsetDimensions.y-1.0)-float(charRow);vec2 charCoord=vec2(float(charCol),flippedRow)/u_charsetDimensions;vec4 rotationColor=texture2D(u_rotationTexture,charIndexTexCoord);float scaledAngle=rotationColor.r*255.0+rotationColor.g;float rotationAngle=(scaledAngle*360.0/255.0)*0.017453292;vec2 fractionalPart=fract(gridCoord)-0.5;if(flipHorizontal)fractionalPart.x=-fractionalPart.x;if(flipVertical)fractionalPart.y=-fractionalPart.y;fractionalPart=rotate2D(rotationAngle)*fractionalPart+0.5;vec2 cellSize=1.0/u_charsetDimensions;vec2 texCoord=charCoord+fractionalPart*cellSize;vec2 cellMax=charCoord+cellSize;if(any(lessThan(texCoord,charCoord))||any(greaterThan(texCoord,cellMax))){gl_FragColor=isInverted ? primaryColor : secondaryColor;return;}vec4 charTexel=texture2D(u_characterTexture,texCoord);if(isInverted)charTexel.rgb=1.0-charTexel.rgb;gl_FragColor=mix(secondaryColor,primaryColor,charTexel);}"),this.fB=new $(e,B,s),this.dB=new G(e,B,s),this.wB=[this.fB,this.dB],this.Ue=this.Se.createFramebuffer(s.cols,s.rows),this.ke=this.Se.createFramebuffer(s.cols,s.rows),this.Ve=this.Se.createFramebuffer(s.cols,s.rows),this.He=this.Se.createFramebuffer(s.cols,s.rows),this.Re=this.Se.createFramebuffer(s.cols,s.rows),this.mB=this.Se.createFramebuffer(this.grid.width,this.grid.height)}vB(e){for(const s of this.wB)s.options.enabled&&s instanceof j&&s.cB(e);const B=(s,Q)=>{s.O(),this.Se.clear();for(const i of this.wB)i.options.enabled&&this.Se.image(Q(i),0,0);s.end()};B(this.Ue,s=>s.$e),B(this.ke,s=>s.ze),B(this.Ve,s=>s.Je),B(this.He,s=>s.Le),B(this.Re,s=>s.Ke),this.mB.O(),this.Se.clear(),this.Se.bA(this.pB),this.Se.j("u_characterTexture",this.font.Qe),this.Se.j("u_charsetDimensions",[this.font.ie,this.font.Ee]),this.Se.j("u_asciiCharacterTexture",this.Ue.texture),this.Se.j("u_primaryColorTexture",this.ke.texture),this.Se.j("u_secondaryColorTexture",this.Ve.texture),this.Se.j("u_transformTexture",this.Re.texture),this.Se.j("u_rotationTexture",this.He.texture),this.Se.j("u_captureTexture",e.texture),this.Se.j("u_backgroundMode",!1),this.Se.j("u_captureDimensions",[e.width,e.height]),this.Se.j("u_gridCellDimensions",[this.grid.cols,this.grid.rows]),this.Se.j("u_gridPixelDimensions",[this.grid.width,this.grid.height]),this.Se.rect(0,0,this.mB.width,this.mB.height),this.mB.end()}add(e){if(!d.validate(e==="brightness"||e==="custom",'Converter type must be either "brightness" or "custom". Provided: '+e,{method:"add",Ut:e}))return;let B;return B=e==="brightness"?new $(this.Se,this.font,this.grid):new G(this.Se,this.font,this.grid),this.wB.push(B),B}remove(e){if(!d.validate(e instanceof G,"Parameter must be a TextmodeConverter instance.",{method:"remove",Ut:e}))return;const B=this.wB.indexOf(e);d.validate(B!==-1,"Converter instance not found in pipeline.",{method:"remove",Ut:e,bB:this.wB.length})&&this.wB.splice(B,1)}get texture(){return this.mB}resize(){this.mB.resize(this.grid.width,this.grid.height);const e=this.grid.cols,B=this.grid.rows;this.Ue.resize(e,B),this.ke.resize(e,B),this.Ve.resize(e,B),this.He.resize(e,B),this.Re.resize(e,B);for(const s of this.wB)s.resize()}xB(){return this.wB.some(e=>e.options.enabled)}disable(){for(const e of this.wB)e.disable()}enable(){for(const e of this.wB)e.enable()}dispose(){for(const e of this.wB)e.dispose();this.Ue.dispose(),this.ke.dispose(),this.Ve.dispose(),this.He.dispose(),this.Re.dispose(),this.mB.dispose(),this.pB.dispose()}get $e(){return this.Ue}get ze(){return this.ke}get Je(){return this.Ve}get Le(){return this.He}get Ke(){return this.Re}}const lA=o=>class extends o{fill(e,B,s,Q){this.wt.fill(e,B,s,Q)}stroke(e,B,s,Q){this.wt.stroke(e,B,s,Q)}xA(e){this.wt.xA(e)}_A(){this.wt._A()}yA(){this.wt.yA()}rotate(e){this.wt.rotate(e)}push(){this.wt.push()}pop(){this.wt.pop()}rect(e,B,s=1,Q=1){this.wt.rect(e,B,s,Q)}line(e,B,s,Q){this.wt.line(e,B,s,Q)}background(e,B=e,s=e,Q=255){this.wt.background(e,B,s,Q)}createShader(e,B){return this.wt.createShader(e,B)}FA(e){return this.wt.FA(e)}bA(e){this.wt.bA(e)}j(e,B){this.wt.j(e,B)}};class V{_B(e){const B=e.get("brightness"),s=B==null?void 0:B.$e,Q=B==null?void 0:B.ze,i=B==null?void 0:B.Je,E=B==null?void 0:B.Ke,r=B==null?void 0:B.Le;return s==null||s.U(),Q==null||Q.U(),i==null||i.U(),E==null||E.U(),r==null||r.U(),{yB:(s==null?void 0:s.k)||new Uint8Array(0),MB:(Q==null?void 0:Q.k)||new Uint8Array(0),GB:(i==null?void 0:i.k)||new Uint8Array(0),FB:(E==null?void 0:E.k)||new Uint8Array(0),YB:(r==null?void 0:r.k)||new Uint8Array(0)}}TB(e,B){return e[B]+(e[B+1]<<8)}SB(e,B){return{r:e[B],g:e[B+1],b:e[B+2],a:e[B+3]}}}class L{OB(e,B){return new Blob([e],{type:B})}UB(e,B,s){try{const Q=this.OB(e,s),i=URL.createObjectURL(Q),E=document.createElement("a");E.href=i,E.download=B,E.style.display="none",E.rel="noopener",document.body.appendChild(E),E.click(),document.body.removeChild(E),URL.revokeObjectURL(i)}catch(Q){throw console.error("Failed to download file:",Q),Error("File download failed: "+(Q instanceof Error?Q.message:"Unknown error"))}}kB(){return new Date().toISOString().slice(0,19).replace(/:/g,"-")}VB(){const e=new Date;return{HB:e.toISOString().split("T")[0],time:e.toTimeString().split(" ")[0].replace(/:/g,"-")}}RB(e){return e.replace(/[<>:"/\\|?*]/g,"_").replace(/\s+/g,"_").replace(/_{2,}/g,"_").replace(/^_+|_+$/g,"").substring(0,255)}$B(){return"'textmode-export'-"+this.kB()}}class CA extends V{zB(e,B,s){const Q=e[s]===255,i=e[s+1]===255,E=e[s+2]===255,r=B[s],n=B[s+1];return{JB:Q,LB:i,KB:E,rotation:Math.round(360*(r+n/255)/255*100)/100}}WB(e,B,s){return{x:e,y:B,jB:e*s.fe,ZB:B*s.de}}NB(e,B){const s=[];let Q=0;for(let i=0;i<B.rows;i++)for(let E=0;E<B.cols;E++){const r=4*Q,n=this.TB(e.yB,r);let h=this.SB(e.MB,r),a=this.SB(e.GB,r);const D=this.zB(e.FB,e.YB,r);if(D.JB){const u=h;h=a,a=u}const l=this.WB(E,i,B);s.push({charIndex:n,XB:h,qB:a,transform:D,position:l}),Q++}return s}}class cA{AQ(e,B){const s=e.cmap;for(const Q of s.LA)if(Q.format===4){for(let i=0;i<Q.At.length;i++)if(B>=Q.At[i]&&B<=Q.qA[i]){if(Q.et[i]===0)return B+Q.tt[i]&65535;{const E=Q.et[i]/2+(B-Q.At[i])-(Q.At.length-i);if(E>=0&&E<Q.Bt.length){const r=Q.Bt[E];if(r!==0)return r+Q.tt[i]&65535}}}}return 0}tQ(e,B,s,Q,i){const E=i/e.head.unitsPerEm;return{eQ:()=>({x1:s+B.xMin*E,y1:Q+-B.yMax*E,x2:s+B.xMax*E,y2:Q+-B.yMin*E}),BQ:()=>this.QQ(B,s,Q,E)}}QQ(e,B,s,Q){if(!e||!e.gt)return"";const{gt:i,ot:E,rt:r,flags:n}=e;if(!(i&&E&&r&&n))return"";let h="",a=0;for(let D=0;D<r.length;D++){const l=r[D];if(!(l<a)){if(l>=a){const u=B+i[a]*Q,w=s-E[a]*Q;h+=`M${u.toFixed(2)},${w.toFixed(2)}`;let c=a+1;for(;c<=l;)if(1&n[c]){const f=B+i[c]*Q,p=s-E[c]*Q;h+=`L${f.toFixed(2)},${p.toFixed(2)}`,c++}else{const f=B+i[c]*Q,p=s-E[c]*Q;let m=c+1>l?a:c+1;if(1&n[m]){const y=B+i[m]*Q,M=s-E[m]*Q;h+=`Q${f.toFixed(2)},${p.toFixed(2)} ${y.toFixed(2)},${M.toFixed(2)}`,c=m+1}else{const y=(f+(B+i[m]*Q))/2,M=(p+(s-E[m]*Q))/2;h+=`Q${f.toFixed(2)},${p.toFixed(2)} ${y.toFixed(2)},${M.toFixed(2)}`,c=m}}h+="Z"}a=l+1}}return h}sQ(e,B,s,Q,i){const E=e.codePointAt(0)||0,r=this.AQ(B,E);let n=null;return B.glyf&&B.glyf[r]!==null?n=B.glyf[r]:C&&C.T&&C.T.glyf&&C.T.glyf.it&&(n=C.T.glyf.it(B,r),B.glyf&&n&&(B.glyf[r]=n)),this.tQ(B,n,s,Q,i)}iQ(e,B,s,Q,i,E,r,n){const h=s+(i-n*(r/B.head.unitsPerEm))/2,a=Q+(E+.7*r)/2;return this.sQ(e,B,h,a,r).BQ()||null}}class PA{constructor(){g(this,"EQ");this.EQ=new cA}rQ(e){return`<?xml version="1.0" encoding="UTF-8" standalone="no"?>
6
+ `,B+="↓".repeat(24)+`
7
+ `,B}static i(e){if(e===null)return"null";if(e===void 0)return"undefined";if(typeof e=="string")return`"${e}"`;if(typeof e=="number"||typeof e=="boolean")return e+"";if(Array.isArray(e))return e.length===0?"[]":e.length<=5?`[${e.map(r=>u.i(r)).join(", ")}]`:`[${e.slice(0,3).map(r=>u.i(r)).join(", ")}, ... +${e.length-3} more]`;if(typeof e=="object"){const r=Object.keys(e);return r.length===0?"{}":r.length<=3?`{ ${r.map(B=>`${B}: ${u.i(e[B])}`).join(", ")} }`:`{ ${r.slice(0,2).map(B=>`${B}: ${u.i(e[B])}`).join(", ")}, ... +${r.length-2} more }`}return e+""}}var v=(o=>(o[o.SILENT=0]="SILENT",o[o.WARNING=1]="WARNING",o[o.ERROR=2]="ERROR",o[o.THROW=3]="THROW",o))(v||{});const b=class b{constructor(){g(this,"h",{globalLevel:3})}static D(){return b.o||(b.o=new b),b.o}l(e,r){const B="%c[textmode.js] Oops! (╯°□°)╯︵ Something went wrong in your code.",s="color: #f44336; font-weight: bold; background: #ffebee; padding: 2px 6px; border-radius: 3px;";switch(this.h.globalLevel){case 0:return!1;case 1:return console.group(B,s),console.warn(u.A(e,r)),console.groupEnd(),!1;case 2:return console.group(B,s),console.error(u.A(e,r)),console.groupEnd(),!1;default:throw new u(e,r)}}C(e,r,B){return!!e||(this.l(r,B),!1)}u(e){this.h.globalLevel=e}};g(b,"o",null);let L=b;const f=L.D(),N=new WeakMap;function S(o,e){N.set(o,e)}function V(o){return N.get(o)}class K{constructor(e,r,B=r,s={}){g(this,"P");g(this,"I");g(this,"m");g(this,"p");g(this,"_");g(this,"h");g(this,"v",null);g(this,"M",null);this.P=e,this.p=r,this._=B,this.h={filter:"nearest",wrap:"clamp",format:"rgba",type:"unsigned_byte",...s},this.m=this.G(),this.I=e.createFramebuffer(),this.F()}Y(e){const{P:r}=this,B=r.getParameter(r.FRAMEBUFFER_BINDING);r.bindFramebuffer(r.FRAMEBUFFER,this.I);try{return e()}finally{r.bindFramebuffer(r.FRAMEBUFFER,B)}}G(){const{P:e}=this,r=e.createTexture();e.bindTexture(e.TEXTURE_2D,r);const B=this.h.filter==="linear"?e.LINEAR:e.NEAREST,s=this.h.wrap==="repeat"?e.REPEAT:e.CLAMP_TO_EDGE;return e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,B),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,B),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,s),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,s),this.$(),r}$(){const{P:e}=this,r=this.h.type==="float"?e.FLOAT:e.UNSIGNED_BYTE;e.texImage2D(e.TEXTURE_2D,0,e.RGBA,this.p,this._,0,e.RGBA,r,null)}F(){const{P:e}=this;e.bindFramebuffer(e.FRAMEBUFFER,this.I),e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,this.m,0),e.bindFramebuffer(e.FRAMEBUFFER,null)}update(e){const{P:r}=this;r.bindTexture(r.TEXTURE_2D,this.m),r.pixelStorei(r.UNPACK_FLIP_Y_WEBGL,1),r.texImage2D(r.TEXTURE_2D,0,r.RGBA,r.RGBA,r.UNSIGNED_BYTE,e),r.bindTexture(r.TEXTURE_2D,null)}updatePixels(e,r,B){const{P:s}=this;s.bindTexture(s.TEXTURE_2D,this.m),s.texImage2D(s.TEXTURE_2D,0,s.RGBA,r,B,0,s.RGBA,s.UNSIGNED_BYTE,e),s.bindTexture(s.TEXTURE_2D,null)}resize(e,r){const{P:B}=this;this.p=e,this._=r,this.M=null,B.bindTexture(B.TEXTURE_2D,this.m),this.$(),B.bindTexture(B.TEXTURE_2D,null)}begin(){const{P:e}=this;this.v={framebuffer:e.getParameter(e.FRAMEBUFFER_BINDING),viewport:e.getParameter(e.VIEWPORT)},e.bindFramebuffer(e.FRAMEBUFFER,this.I),e.viewport(0,0,this.p,this._),S(e,[0,0,this.p,this._])}end(){if(!this.v)return;const{P:e}=this;e.bindFramebuffer(e.FRAMEBUFFER,this.v.framebuffer),e.viewport(...this.v.viewport),S(e,this.v.viewport),this.v=null}loadPixels(){const{P:e}=this;this.M||(this.M=new Uint8Array(this.p*this._*4)),this.Y(()=>{e.readPixels(0,0,this.p,this._,e.RGBA,e.UNSIGNED_BYTE,this.M)})}get(e,r,B,s){const{P:i}=this;if(e===void 0&&r===void 0){const E=new Uint8Array(this.p*this._*4);return this.Y(()=>(i.readPixels(0,0,this.p,this._,i.RGBA,i.UNSIGNED_BYTE,E),E))}if(B===void 0&&s===void 0){(e<0||r<0||e>=this.p||r>=this._)&&(console.warn("The x and y values passed to Framebuffer.get are outside of its range and will be clamped."),e=Math.max(0,Math.min(e,this.p-1)),r=Math.max(0,Math.min(r,this._-1)));const E=new Uint8Array(4);return this.Y(()=>(i.readPixels(e,r,1,1,i.RGBA,i.UNSIGNED_BYTE,E),[E[0],E[1],E[2],E[3]]))}{e=Math.max(0,Math.min(e,this.p-1)),r=Math.max(0,Math.min(r,this._-1)),B=Math.max(1,Math.min(B,this.p-e)),s=Math.max(1,Math.min(s,this._-r));const E=new Uint8Array(B*s*4);return this.Y(()=>(i.readPixels(e,r,B,s,i.RGBA,i.UNSIGNED_BYTE,E),E))}}S(){this.I&&this.P.deleteFramebuffer(this.I),this.m&&this.P.deleteTexture(this.m)}get framebuffer(){return this.I}get texture(){return this.m}get width(){return this.p}get height(){return this._}get pixels(){return this.M}}class x{constructor(e,r,B){g(this,"P");g(this,"O");g(this,"U",new Map);g(this,"k",new Map);g(this,"V",0);g(this,"R");this.P=e,this.O=this.H(r,B),this.R=e.getParameter(e.MAX_TEXTURE_IMAGE_UNITS),this.J()}J(){const e=this.P.getProgramParameter(this.O,this.P.ACTIVE_UNIFORMS);for(let r=0;r<e;r++){const B=this.P.getActiveUniform(this.O,r);if(B){const s=this.P.getUniformLocation(this.O,B.name);s&&(this.U.set(B.name,s),this.k.set(B.name,B.type))}}}H(e,r){const B=this.L(this.P.VERTEX_SHADER,e),s=this.L(this.P.FRAGMENT_SHADER,r),i=this.P.createProgram();if(this.P.attachShader(i,B),this.P.attachShader(i,s),this.P.linkProgram(i),!this.P.getProgramParameter(i,this.P.LINK_STATUS)){const E=this.P.getProgramInfoLog(i);throw Error("Shader program link error: "+E)}return this.P.deleteShader(B),this.P.deleteShader(s),i}L(e,r){const B=this.P.createShader(e);if(this.P.shaderSource(B,r),this.P.compileShader(B),!this.P.getShaderParameter(B,this.P.COMPILE_STATUS)){const s=this.P.getShaderInfoLog(B);throw this.P.deleteShader(B),Error("Shader compilation error: "+s)}return B}K(){this.P.useProgram(this.O),this.W()}setUniform(e,r){const B=this.U.get(e);if(B)if(typeof r=="number")this.j(e)?this.P.uniform1i(B,Math.floor(r)):this.P.uniform1f(B,r);else if(typeof r=="boolean")this.P.uniform1i(B,r?1:0);else if(Array.isArray(r))switch(r.length){case 2:this.P.uniform2f(B,r[0],r[1]);break;case 3:this.P.uniform3f(B,r[0],r[1],r[2]);break;case 4:this.P.uniform4f(B,r[0],r[1],r[2],r[3]);break;default:console.warn(`Unsupported array length ${r.length} for uniform '${e}'`)}else if(r instanceof WebGLTexture){const s=this.Z();this.P.uniform1i(B,s),this.P.activeTexture(this.P.TEXTURE0+s),this.P.bindTexture(this.P.TEXTURE_2D,r)}else if(r instanceof K){const s=this.Z();this.P.uniform1i(B,s),this.P.activeTexture(this.P.TEXTURE0+s),this.P.bindTexture(this.P.TEXTURE_2D,r.texture)}else console.warn(`Unsupported uniform type for '${e}':`,typeof r)}Z(){return this.V>=this.R&&console.warn(`Exceeded maximum texture units (${this.R}). Texture may not render correctly.`),this.V++}j(e){const r=this.k.get(e);return!!r&&(r===this.P.INT||r===this.P.INT_VEC2||r===this.P.INT_VEC3||r===this.P.INT_VEC4||r===this.P.SAMPLER_2D||r===this.P.SAMPLER_CUBE)}get glProgram(){return this.O}S(){this.P.deleteProgram(this.O)}W(){this.V=0}}class X{constructor(e){g(this,"P");g(this,"N",null);g(this,"X",16);g(this,"q",new Map);this.P=e}AA(){if(this.N)return;const e=this.P;this.N=e.createBuffer(),e.bindBuffer(e.ARRAY_BUFFER,this.N)}tA(){const e=this.P,r=e.getParameter(e.CURRENT_PROGRAM);let B=this.q.get(r);return B||(B={a_position:e.getAttribLocation(r,"a_position"),a_texCoord:e.getAttribLocation(r,"a_texCoord")},this.q.set(r,B)),e.enableVertexAttribArray(B.a_position),e.vertexAttribPointer(B.a_position,2,e.FLOAT,!1,this.X,0),e.enableVertexAttribArray(B.a_texCoord),e.vertexAttribPointer(B.a_texCoord,2,e.FLOAT,!1,this.X,8),{positionLoc:B.a_position,texLoc:B.a_texCoord}}eA(e,r){const B=this.P;B.disableVertexAttribArray(e),B.disableVertexAttribArray(r)}BA(e,r){const B=this.P,s=V(B)||[0,0,B.canvas.width,B.canvas.height];return{nx:e/s[2]*2-1,ny:1-r/s[3]*2}}QA(e,r,B,s){const i=this.P;this.AA(),i.bindBuffer(i.ARRAY_BUFFER,this.N);const E=new Float32Array([e,s,0,0,B,s,1,0,e,r,0,1,e,r,0,1,B,s,1,0,B,r,1,1]);i.bufferData(i.ARRAY_BUFFER,E,i.DYNAMIC_DRAW)}S(){this.N&&this.P.deleteBuffer(this.N)}}class sA extends X{constructor(e){super(e)}sA(e,r,B,s){const i=this.BA(e,r),E=this.BA(e+B,r+s);this.QA(i.nx,i.ny,E.nx,E.ny);const Q=this.tA();this.P.drawArrays(this.P.TRIANGLES,0,6),this.eA(Q.positionLoc,Q.texLoc)}rA(e,r,B,s,i){this.sA(e,r,B,i),this.sA(e+B-i,r,i,s),this.sA(e,r+s-i,B,i),this.sA(e,r,i,s)}}class iA extends X{constructor(e){super(e)}iA(e,r,B,s,i){const E=B-e,Q=s-r,n=Math.hypot(E,Q);if(n===0){const h=i/2,l=this.BA(e-h,r-h),c=this.BA(e+h,r+h);this.QA(l.nx,l.ny,c.nx,c.ny)}else{const h=-Q/n,l=E/n,c=i/2,P=e+h*c,I=r+l*c,D=e-h*c,w=r-l*c,p=B+h*c,m=s+l*c,y=B-h*c,_=s-l*c,O=this.BA(P,I),T=this.BA(D,w),G=this.BA(p,m),BA=this.BA(y,_),U=this.P;this.AA(),U.bindBuffer(U.ARRAY_BUFFER,this.N);const UA=new Float32Array([O.nx,O.ny,0,0,T.nx,T.ny,0,1,G.nx,G.ny,1,0,T.nx,T.ny,0,1,BA.nx,BA.ny,1,1,G.nx,G.ny,1,0]);U.bufferData(U.ARRAY_BUFFER,UA,U.DYNAMIC_DRAW)}const a=this.tA();this.P.drawArrays(this.P.TRIANGLES,0,6),this.eA(a.positionLoc,a.texLoc)}}var W="attribute vec2 a_position;attribute vec2 a_texCoord;varying vec2 v_uv;uniform float u_rotation;uniform vec2 u_center;uniform float u_aspectRatio;mat2 rotate2D(float angle){float s=sin(angle);float c=cos(angle);return mat2(c,-s,s,c);}void main(){v_uv=a_texCoord;vec2 pos=a_position;pos-=u_center;pos.x*=u_aspectRatio;pos=rotate2D(-u_rotation)*pos;pos.x/=u_aspectRatio;pos+=u_center;gl_Position=vec4(pos,0.0,1.0);}";class EA{constructor(e){g(this,"P");g(this,"EA");g(this,"gA");g(this,"oA",null);g(this,"nA");g(this,"aA");g(this,"hA",[1,1,1,1]);g(this,"DA",!0);g(this,"lA",[0,0,0,1]);g(this,"CA",1);g(this,"cA",!0);g(this,"uA",0);g(this,"PA",[]);this.P=e,this.EA=new x(this.P,W,"precision lowp float;uniform sampler2D u_texture;varying vec2 v_uv;void main(){gl_FragColor=texture2D(u_texture,v_uv);}"),this.gA=new x(this.P,W,"precision lowp float;uniform vec4 u_color;void main(){gl_FragColor=u_color;}"),this.nA=new sA(this.P),this.aA=new iA(this.P),this.P.enable(this.P.BLEND),this.P.blendEquation(this.P.FUNC_ADD),this.P.blendFunc(this.P.ONE,this.P.ONE_MINUS_SRC_ALPHA),S(this.P,[0,0,this.P.canvas.width,this.P.canvas.height])}IA(e){this.oA!==e&&(this.oA=e,e.K())}wA(e,r,B,s){if(this.DA=!0,r===void 0&&B===void 0&&s===void 0){const i=e/255;this.hA=[i,i,i,1]}else if(B!==void 0&&s===void 0)this.hA=[e/255,r/255,B/255,1];else{if(B===void 0||s===void 0)throw Error("Invalid fill parameters. Use fill(gray), fill(r,g,b), or fill(r,g,b,a)");this.hA=[e/255,r/255,B/255,s/255]}}fA(e,r,B,s){if(this.cA=!0,r===void 0&&B===void 0&&s===void 0){const i=e/255;this.lA=[i,i,i,1]}else if(B!==void 0&&s===void 0)this.lA=[e/255,r/255,B/255,1];else{if(B===void 0||s===void 0)throw Error("Invalid stroke parameters. Use stroke(gray), stroke(r,g,b), or stroke(r,g,b,a)");this.lA=[e/255,r/255,B/255,s/255]}}dA(e){if(e<0)throw Error("Stroke weight must be non-negative");this.CA=e}mA(){this.cA=!1}pA(){this.DA=!1}_A(e){this.uA=e}vA(){this.PA.push({fillColor:[...this.hA],fillMode:this.DA,strokeColor:[...this.lA],strokeWeight:this.CA,strokeMode:this.cA,rotation:this.uA})}bA(){const e=this.PA.pop();e?(this.hA=e.fillColor,this.DA=e.fillMode,this.lA=e.strokeColor,this.CA=e.strokeWeight,this.cA=e.strokeMode,this.uA=e.rotation):console.warn("pop() called without matching push()")}xA(){this.oA=null,this.PA=[],this.uA=0}yA(e,r){return new x(this.P,e,r)}MA(e){return new x(this.P,W,e)}GA(e,r){this.oA.setUniform(e,r)}FA(e,r,B,s){if(this.oA!==null){const{centerX:l,centerY:c,radians:P,aspectRatio:I}=this.YA(e,r,B,s);return this.GA("u_rotation",P),this.GA("u_center",[l,c]),this.GA("u_aspectRatio",I),this.nA.sA(e,r,B,s),void(this.oA=null)}const i=this.gA;let E=0,Q=0,n=0,a=1;const h=this.YA(e,r,B,s);E=h.centerX,Q=h.centerY,n=h.radians,a=h.aspectRatio,this.DA&&(this.IA(i),this.GA("u_color",this.hA),this.GA("u_rotation",n),this.GA("u_center",[E,Q]),this.GA("u_aspectRatio",a),this.nA.sA(e,r,B,s)),this.cA&&this.CA>0&&(this.IA(i),this.GA("u_color",this.lA),this.GA("u_rotation",n),this.GA("u_center",[E,Q]),this.GA("u_aspectRatio",a),this.nA.rA(e,r,B,s,this.CA)),this.oA=null}$A(e,r,B,s){if(this.oA!==null){const D=(e+B)/2,w=(r+s)/2,p=Math.abs(B-e)||1,m=Math.abs(s-r)||1,{centerX:y,centerY:_,radians:O,aspectRatio:T}=this.YA(D-p/2,w-m/2,p,m);this.GA("u_rotation",O),this.GA("u_center",[y,_]),this.GA("u_aspectRatio",T);const G=this.CA>0?this.CA:1;return this.aA.iA(e,r,B,s,G),void(this.oA=null)}if(!this.cA||this.CA<=0)return;const i=this.gA,E=(e+B)/2,Q=(r+s)/2,n=Math.abs(B-e)||1,a=Math.abs(s-r)||1,h=this.uA!==0;let l=0,c=0,P=0,I=1;if(h){const D=this.YA(E-n/2,Q-a/2,n,a);l=D.centerX,c=D.centerY,P=D.radians,I=D.aspectRatio}this.IA(i),this.GA("u_color",this.lA),h&&(this.GA("u_rotation",P),this.GA("u_center",[l,c]),this.GA("u_aspectRatio",I)),this.aA.iA(e,r,B,s,this.CA)}YA(e,r,B,s){const i=V(this.P)||[0,0,this.P.canvas.width,this.P.canvas.height],E=i[2],Q=i[3],n=E/Q;return{centerX:(e+B/2)/E*2-1,centerY:1-(r+s/2)/Q*2,radians:this.uA*Math.PI/180,aspectRatio:n}}TA(e,r,B={}){return new K(this.P,e,r,B)}SA(e,r=e,B=e,s=255){this.OA(e/255,r/255,B/255,s/255)}OA(e=0,r=0,B=0,s=0){this.P.clearColor(e,r,B,s),this.P.clear(this.P.COLOR_BUFFER_BIT)}UA(){this.P.viewport(0,0,this.P.canvas.width,this.P.canvas.height),S(this.P,[0,0,this.P.canvas.width,this.P.canvas.height])}get context(){return this.P}S(){this.EA.S(),this.gA.S(),this.nA.S(),this.aA.S()}kA(e,r,B,s,i){const E=this.P,Q=s??e.width,n=i??e.height;this.IA(this.EA),this.GA("u_texture",e.texture);const a=this.YA(r,B,Q,n);this.GA("u_rotation",a.radians),this.GA("u_center",[a.centerX,a.centerY]),this.GA("u_aspectRatio",a.aspectRatio),this.nA.sA(r,B,Q,n),E.bindTexture(E.TEXTURE_2D,null),this.oA=null}}var M,C={parse:function(o){var e=function(r,B,s,i){var E=C.T,Q={cmap:E.cmap,head:E.head,hhea:E.hhea,maxp:E.maxp,hmtx:E.hmtx,loca:E.loca,glyf:E.glyf},n={_data:r,_index:B,_offset:s};for(var a in Q){var h=C.findTable(r,a,s);if(h){var l=h[0],c=i[l];c==null&&(c=Q[a].parseTab(r,l,h[1],n)),n[a]=i[l]=c}}return n}(new Uint8Array(o),0,0,{});return[e]},findTable:function(o,e,r){for(var B=C.B,s=B.readUshort(o,r+4),i=r+12,E=0;E<s;E++){var Q=B.readASCII(o,i,4);B.readUint(o,i+4);var n=B.readUint(o,i+8),a=B.readUint(o,i+12);if(Q==e)return[n,a];i+=16}return null},T:{}};C.B={readShort:function(o,e){return C.B.t.uint16[0]=o[e]<<8|o[e+1],C.B.t.int16[0]},readUshort:function(o,e){return o[e]<<8|o[e+1]},readUshorts:function(o,e,r){for(var B=[],s=0;s<r;s++)B.push(C.B.readUshort(o,e+2*s));return B},readUint:function(o,e){var r=C.B.t.uint8;return r[3]=o[e],r[2]=o[e+1],r[1]=o[e+2],r[0]=o[e+3],C.B.t.uint32[0]},readASCII:function(o,e,r){for(var B="",s=0;s<r;s++)B+=String.fromCharCode(o[e+s]);return B},t:(M=new ArrayBuffer(8),{uint8:new Uint8Array(M),int16:new Int16Array(M),uint16:new Uint16Array(M),uint32:new Uint32Array(M)})},C.T.cmap={parseTab:function(o,e,r){var B={tables:[],ids:{},off:e};o=new Uint8Array(o.buffer,e,r),e=0;var s=C.B,i=s.readUshort,E=C.T.cmap;i(o,e);var Q=i(o,e+=2);e+=2;for(var n=[],a=0;a<Q;a++){var h=i(o,e),l=i(o,e+=2);e+=2;var c=s.readUint(o,e);e+=4;var P="p"+h+"e"+l,I=n.indexOf(c);if(I==-1){I=B.tables.length;var D={};n.push(c);var w=D.format=i(o,c);w==4?D=E.parse4(o,c,D):w==12&&(D=E.parse12(o,c,D)),B.tables.push(D)}B.ids[P]!=null&&console.log("multiple tables for one platform+encoding: "+P),B.ids[P]=I}return B},parse4:function(o,e,r){var B=C.B,s=B.readUshort,i=B.readUshorts,E=e,Q=s(o,e+=2);s(o,e+=2);var n=s(o,e+=2);e+=2;var a=n>>>1;r.searchRange=s(o,e),e+=2,r.entrySelector=s(o,e),e+=2,r.rangeShift=s(o,e),e+=2,r.endCount=i(o,e,a),e+=2*a,e+=2,r.startCount=i(o,e,a),e+=2*a,r.idDelta=[];for(var h=0;h<a;h++)r.idDelta.push(B.readShort(o,e)),e+=2;return r.idRangeOffset=i(o,e,a),e+=2*a,r.glyphIdArray=i(o,e,E+Q-e>>1),r},parse12:function(o,e,r){var B=C.B.readUint;B(o,e+=4),B(o,e+=4);var s=3*B(o,e+=4);e+=4;for(var i=r.groups=new Uint32Array(s),E=0;E<s;E+=3)i[E]=B(o,e+(E<<2)),i[E+1]=B(o,e+(E<<2)+4),i[E+2]=B(o,e+(E<<2)+8);return r}},C.T.head={parseTab:function(o,e,r){var B=C.B,s={};return e+=18,s.unitsPerEm=B.readUshort(o,e),e+=2,e+=16,s.xMin=B.readShort(o,e),e+=2,s.yMin=B.readShort(o,e),e+=2,s.xMax=B.readShort(o,e),e+=2,s.yMax=B.readShort(o,e),e+=2,e+=6,s.indexToLocFormat=B.readShort(o,e),s}},C.T.hhea={parseTab:function(o,e,r){var B=C.B,s={};e+=4;for(var i=["ascender","descender","lineGap","advanceWidthMax","minLeftSideBearing","minRightSideBearing","xMaxExtent","caretSlopeRise","caretSlopeRun","caretOffset","res0","res1","res2","res3","metricDataFormat","numberOfHMetrics"],E=0;E<i.length;E++){var Q=i[E],n=Q=="advanceWidthMax"||Q=="numberOfHMetrics"?B.readUshort:B.readShort;s[Q]=n(o,e+2*E)}return s}},C.T.hmtx={parseTab:function(o,e,r,B){for(var s=C.B,i=[],E=[],Q=B.maxp.numGlyphs,n=B.hhea.numberOfHMetrics,a=0,h=0,l=0;l<n;)a=s.readUshort(o,e+(l<<2)),h=s.readShort(o,e+(l<<2)+2),i.push(a),E.push(h),l++;for(;l<Q;)i.push(a),E.push(h),l++;return{aWidth:i,lsBearing:E}}},C.T.maxp={parseTab:function(o,e,r){var B=C.B,s=B.readUshort,i={};return B.readUint(o,e),e+=4,i.numGlyphs=s(o,e),e+=2,i}},C.T.loca={parseTab:function(o,e,r,B){var s=C.B,i=[],E=B.head.indexToLocFormat,Q=B.maxp.numGlyphs+1;if(E==0)for(var n=0;n<Q;n++)i.push(s.readUshort(o,e+(n<<1))<<1);if(E==1)for(n=0;n<Q;n++)i.push(s.readUint(o,e+(n<<2)));return i}},C.T.glyf={parseTab:function(o,e,r,B){for(var s=[],i=B.maxp.numGlyphs,E=0;E<i;E++)s.push(null);return s},VA:function(o,e){var r=C.B,B=o._data,s=o.loca;if(s[e]==s[e+1])return null;var i=C.findTable(B,"glyf",o._offset)[0]+s[e],E={};if(E.noc=r.readShort(B,i),i+=2,E.xMin=r.readShort(B,i),i+=2,E.yMin=r.readShort(B,i),i+=2,E.xMax=r.readShort(B,i),i+=2,E.yMax=r.readShort(B,i),i+=2,E.xMin>=E.xMax||E.yMin>=E.yMax)return null;if(E.noc>0){E.endPts=[];for(var Q=0;Q<E.noc;Q++)E.endPts.push(r.readUshort(B,i)),i+=2;var n=r.readUshort(B,i);if(i+=2,B.length-i<n)return null;i+=n;var a=E.endPts[E.noc-1]+1;for(E.flags=[],Q=0;Q<a;Q++){var h=B[i];if(i++,E.flags.push(h),8&h){var l=B[i];i++;for(var c=0;c<l;c++)E.flags.push(h),Q++}}for(E.xs=[],Q=0;Q<a;Q++){var P=!!(2&E.flags[Q]),I=!!(16&E.flags[Q]);P?(E.xs.push(I?B[i]:-B[i]),i++):I?E.xs.push(0):(E.xs.push(r.readShort(B,i)),i+=2)}for(E.ys=[],Q=0;Q<a;Q++)P=!!(4&E.flags[Q]),I=!!(32&E.flags[Q]),P?(E.ys.push(I?B[i]:-B[i]),i++):I?E.ys.push(0):(E.ys.push(r.readShort(B,i)),i+=2);var D=0,w=0;for(Q=0;Q<a;Q++)D+=E.xs[Q],w+=E.ys[Q],E.xs[Q]=D,E.ys[Q]=w}else E.parts=[];return E}},typeof module<"u"&&module.exports?module.exports=C:typeof window<"u"&&(window.Typr=C);class QA{extractCharacters(e){var B;const r=[];return(B=e==null?void 0:e.cmap)!=null&&B.tables?(e.cmap.tables.forEach(s=>{if(s.format===4){const i=this.RA(s);r.push(...i)}else if(s.format===12){const i=this.HA(s);r.push(...i)}}),[...new Set(r)]):[]}RA(e){const r=[];if(!(e.startCount&&e.endCount&&e.idRangeOffset&&e.idDelta))return r;for(let B=0;B<e.startCount.length;B++){const s=e.startCount[B],i=e.endCount[B];if(s!==65535||i!==65535){for(let E=s;E<=i;E++)if(this.zA(e,E,B)>0){const Q=String.fromCodePoint(E);r.push(Q)}}}return r}HA(e){const r=[];if(!e.groups)return r;for(let B=0;B<e.groups.length;B+=3){const s=e.groups[B],i=e.groups[B+1],E=e.groups[B+2];for(let Q=s;Q<=i;Q++)if(E+(Q-s)>0){const n=String.fromCodePoint(Q);r.push(n)}}return r}zA(e,r,B){if(e.idRangeOffset[B]===0)return r+e.idDelta[B]&65535;{const s=e.idRangeOffset[B]/2+(r-e.startCount[B])-(e.startCount.length-B);if(s>=0&&e.glyphIdArray&&s<e.glyphIdArray.length){const i=e.glyphIdArray[s];if(i!==0)return i+e.idDelta[B]&65535}}return 0}filterProblematicCharacters(e){return e.filter(r=>this.JA(r))}JA(e){const r=e.codePointAt(0)||0;return!(r>=0&&r<=31&&r!==9&&r!==10&&r!==13||r>=127&&r<=159)}}class oA{constructor(e){g(this,"LA");g(this,"KA");g(this,"WA");this.WA=e,this.LA=document.createElement("canvas"),this.KA=this.LA.getContext("2d",{willReadFrequently:!0,alpha:!1})}createTextureAtlas(e,r,B,s){const i=e.length,E=Math.ceil(Math.sqrt(i)),Q=Math.ceil(i/E),n=r.width*E,a=r.height*Q;this.jA(n,a,B,s),this.ZA(e,r,E,B),this.NA();const h=this.WA.TA(n,a,{filter:"nearest"});return h.update(this.LA),{framebuffer:h,columns:E,rows:Q}}jA(e,r,B,s){this.LA.width=e,this.LA.height=r,this.LA.style.width=e+"px",this.LA.style.height=e+"px",this.KA.imageSmoothingEnabled=!1,this.LA.style.imageRendering="pixelated",this.KA.fillStyle="black",this.KA.fillRect(0,0,e,r),this.KA.font=`${B}px ${s}`,this.KA.textBaseline="top",this.KA.textAlign="left",this.KA.fillStyle="white"}ZA(e,r,B,s){for(let i=0;i<e.length;i++){const E=i%B,Q=Math.floor(i/B),n=E*r.width+.5*r.width,a=Q*r.height+.5*r.height,h=Math.round(n-.5*r.width),l=Math.round(a-.5*s);this.KA.fillText(e[i].character,h,l)}}NA(e=128){const r=this.KA.getImageData(0,0,this.LA.width,this.LA.height),B=r.data;for(let s=0;s<B.length;s+=4){const i=.299*B[s]+.587*B[s+1]+.114*B[s+2]>e+32?255:0;B[s]=i,B[s+1]=i,B[s+2]=i}this.KA.putImageData(r,0,0)}}class gA{constructor(){g(this,"XA");g(this,"qA");this.XA=document.createElement("canvas"),this.qA=this.XA.getContext("2d")}calculateMaxGlyphDimensions(e,r,B){this.qA.font=`${r}px ${B}`;let s=0,i=0;for(const E of e){const Q=this.qA.measureText(E);s=Math.max(s,Q.width),i=Math.max(i,Q.actualBoundingBoxAscent+Q.actualBoundingBoxDescent)}return{width:s,height:i}}}class nA{createCharacterObjects(e,r){return e.map((B,s)=>{const i=B.codePointAt(0)||0,E=this.At(s);let Q=0;if(r.hmtx&&r.hmtx.aWidth){const n=this.tt(r,i);n>0&&r.hmtx.aWidth[n]!==void 0&&(Q=r.hmtx.aWidth[n])}return{character:B,unicode:i,color:E,advanceWidth:Q}})}tt(e,r){const B=e.cmap;if(!B||!B.tables)return 0;for(const s of B.tables)if(s.format===4){for(let i=0;i<s.startCount.length;i++)if(r>=s.startCount[i]&&r<=s.endCount[i]){if(s.idRangeOffset[i]===0)return r+s.idDelta[i]&65535;{const E=s.idRangeOffset[i]/2+(r-s.startCount[i])-(s.startCount.length-i);if(E>=0&&E<s.glyphIdArray.length){const Q=s.glyphIdArray[E];if(Q!==0)return Q+s.idDelta[i]&65535}}}}return 0}At(e){return[e%256,Math.floor(e/256)%256,Math.floor(e/65536)%256]}getCharacterColor(e,r){if(!f.C(typeof e=="string","Character must be a string.",{method:"getCharacterColor",providedValue:e}))return[0,0,0];const B=r.find(s=>s.character===e);return B?B.color:[0,0,0]}getCharacterColors(e,r){return f.C(typeof e=="string"&&e.length>0,"Characters must be a string with at least one character.",{method:"getCharacterColors",providedValue:e})?e.split("").map(B=>this.getCharacterColor(B,r)||[0,0,0]):[[0,0,0]]}}class j{constructor(e,r=16){g(this,"et");g(this,"Bt",[]);g(this,"Qt");g(this,"st",16);g(this,"rt",0);g(this,"it",0);g(this,"Et",{width:0,height:0});g(this,"gt");g(this,"ot","UrsaFont");g(this,"nt");g(this,"ht");g(this,"Dt");g(this,"lt");this.st=r,this.nt=new QA,this.ht=new oA(e),this.Dt=new gA,this.lt=new nA}async Ct(e){let r;if(e){const B=await fetch(e);if(!B.ok)throw new u(`Failed to load font file: ${B.status} ${B.statusText}`);r=await B.arrayBuffer()}else r=await(await fetch(`data:font/truetype;charset=utf-8;base64,AAEAAAAKAIAAAwAgT1MvMs+QEyQAAAEoAAAAYGNtYXAg7yVJAAAFjAAACSBnbHlmuHLTdAAAErQAAGi0aGVhZFvXdUwAAACsAAAANmhoZWELAQUCAAAA5AAAACRobXR4BACDgAAAAYgAAAQEbG9jYQAy54AAAA6sAAAECG1heHABIgCCAAABCAAAACBuYW1lVs/OSgAAe2gAAAOicG9zdABpADQAAH8MAAAAIAABAAAAAQAAzOWHqV8PPPUAAAQAAAAAAHxiGCcAAAAAfGIYJwAAAAAEAAQAAAAACAACAAEAAAAAAAEAAAQAAAAAAAQAAAAAAAcAAAEAAAAAAAAAAAAAAAAAAAEBAAEAAAEBAIAAIAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAgQAAZAABQAEAgACAAAAAAACAAIAAAACAAAzAMwAAAAABAAAAAAAAACAAACLAABw4wAAAAAAAAAAWUFMLgBAACAmawQAAAAAAAQAAAAAAAFRAAAAAAMABAAAAAAgAAAEAAAABAAAAAQAAAAEAAGABAABAAQAAIAEAACABAAAgAQAAIAEAAGABAABAAQAAQAEAACABAABAAQAAIAEAACABAABAAQAAIAEAACABAAAgAQAAIAEAACABAAAgAQAAIAEAACABAAAgAQAAIAEAACABAABAAQAAIAEAAEABAAAgAQAAIAEAACABAAAgAQAAIAEAACABAAAgAQAAIAEAACABAAAgAQAAIAEAACABAAAgAQAAIAEAACABAAAgAQAAIAEAACABAAAgAQAAIAEAACABAAAgAQAAIAEAACABAAAgAQAAIAEAACABAAAgAQAAIAEAACABAABAAQAAIAEAAEABAAAgAQAAIAEAAEABAAAgAQAAIAEAACABAAAgAQAAIAEAAEABAAAgAQAAIAEAAGABAAAgAQAAIAEAAGABAAAgAQAAIAEAACABAAAgAQAAIAEAAEABAAAgAQAAIAEAACABAAAgAQAAIAEAACABAAAgAQAAIAEAACABAABgAQAAQAEAACABAAAAAQAAgAEAACABAAAgAQAAIAEAACABAACAAQAAAAEAAIABAABgAQAAgAEAACABAAAgAQAAAAEAACABAAAAAQAAAAEAAAABAAAAAQAAAAEAAIABAADAAQAAAAEAAAABAAAgAQAAYAEAAAABAAAAAQAAIAEAAAA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AIAAAACA/YAAgAAAAIAAAP8AAoABAAAA/4AAAP+A/4AAgAAAAIAAAP8AA4AAAP8AAAAAgAAAAIAAAP+AAAD/gAAA/4AAAP+AAAD/gAAA/4AAAACAAAAAgAAAAIAAAACAAAAAgAAAAAAAAP+AAAD/gAAAAAAAAP8AAAAAgAAAAAAAAP+AAAD/gAAAAAAAAwCAAIAEAAQAABcAHQAjAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAIAAAAAgAAA/4AAAACAAAAAgAAA/4AAAACAAAD9AAAA/4AAAACAAAD/gAAAAIAAgAAAAIAAAACAAAD/AAAAAQAAAP+AAAAEAAAA/4AAAP8AAAD/gAAAAIAAAP8AAAD/gAAA/4AAAACAAAABAAAAAIAAAAEAAAAAAP+AAAD/gAAAAQD+gP8AAAAAgAAAAIAAAAABAYACgAKABAAAAwAAAQEBAQGAAQAAAP8ABAAAAP6AAAAAAAABAQAAgAMABAAAEwAAAQEBAQEBAQEBAQEBAQEBAQEBAQECAAEAAAD/gAAA/4AAAACAAAAAgAAA/wAAAP+AAAD/gAAAAIAAAACABAAAAP+AAAD/gAAA/oAAAP+AAAD/gAAAAIAAAACAAAABgAAAAIAAAAAAAAEBAACAAwAEAAATAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQAAAACAAAAAgAAA/4AAAP+AAAD/AAAAAIAAAACAAAD/gAAA/4AEAAAA/4AAAP+AAAD+gAAA/4AAAP+AAAAAgAAAAIAAAAGAAAAAgAAAAAAABQCAAYADgAQAAAMABwATABcAGwAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAIAAAP+AAYAAgAAA/4D/AAEAAAABAAAA/wAAAP8AAAD/AAAAAQD/gACAAAD/gAGAAIAAAP+ABAAAAP+AAAAAgAAA/4AAAAAAAAD/gAAA/4AAAP+AAAAAgAAAAIAAAP8AAAD/gAAAAIAAAP+AAAAAAAABAQAAgAOAAwAACwAAAQEBAQEBAQEBAQEBAgAAgAAAAQAAAP8AAAD/gAAA/wAAAAEAAwAAAP8AAAD/gAAA/wAAAAEAAAAAgAAAAAAAAQCAAAACAAGAAAcAAAEBAQEBAQEBAQABAAAA/4AAAP8AAAAAgAGAAAD/AAAA/4AAAACAAAAAAAABAIABgAOAAgAAAwAAAQEBAQCAAwAAAP0AAgAAAP+AAAAAAAABAQAAgAIAAYAAAwAAAQEBAQEAAQAAAP8AAYAAAP8AAAAAAAABAIAAgAQAA4AAFwAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAwABAAAA/4AAAP+AAAD/gAAA/4AAAP+AAAD/AAAAAIAAAACAAAAAgAAAAIAAAACAA4AAAP+AAAD/gAAA/4AAAP+AAAD/gAAA/4AAAACAAAAAgAAAAIAAAACAAAAAgAAAAAAAAwCAAIADgAQAAAsAEQAXAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAIAAAAAgAAA/4AAAP4AAAD/gAAAAIAAgAAAAIAAAACAAAD/gAAA/4AAAAEAAAAEAAAA/4AAAP2AAAD/gAAAAIAAAAKAAAAAAP8AAAAAgAAAAID/AP+AAAD/AAAAAYAAAAABAIAAgAOABAAADQAAAQEBAQEBAQEBAQEBAQEBgAEAAAABAAAA/QAAAAEAAAD/AAAAAIAAAACABAAAAP0AAAD/gAAAAIAAAAGAAAAAgAAAAIAAAAABAIAAgAOABAAAGwAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAgAAAACAAAD/gAAA/4AAAP+AAAABgAAA/QAAAACAAAAAgAAAAIAAAACAAAD/AAAA/wAAAACABAAAAP+AAAD/AAAA/4AAAP+AAAD/gAAA/4AAAACAAAAAgAAAAIAAAACAAAABAAAA/wAAAAEAAAAAAAABAIAAgAOABAAAGwAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAgAAAACAAAD/gAAAAIAAAP+AAAD+AAAA/4AAAAEAAAABAAAA/wAAAAEAAAD/AAAA/wAAAACABAAAAP+AAAD/AAAA/4AAAP8AAAD/gAAAAIAAAACAAAD/gAAAAQAAAACAAAABAAAA/4AAAACAAAAAAAABAIAAgAOABAAAEQAAAQEBAQEBAQEBAQEBAQEBAQEBAYABAAAA/4AAAP+AAAABAAAAAQAAAP8AAAD+AAAAAIAAAACABAAAAP+AAAD/gAAA/wAAAAEAAAD9gAAAAQAAAAGAAAAAgAAAAAEAgACAA4AEAAATAAABAQEBAQEBAQEBAQEBAQEBAQEBAQCAAwAAAP4AAAABgAAAAIAAAP+AAAD+AAAA/4AAAAEAAAABAAAA/gAEAAAA/4AAAP8AAAD/gAAA/wAAAP+AAAAAgAAAAIAAAP+AAAABAAAAAAAAAgCAAIADgAQAABMAFwAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQACAAAAAIAAAP8AAAD/AAAAAYAAAACAAAD/gAAA/gAAAP+AAAAAgACAAAABAAAABAAAAP+AAAD/gAAAAIAAAP8AAAD/gAAA/wAAAP+AAAAAgAAAAoAAAP6A/wAAAAEAAAEAgACAA4AEAAAPAAABAQEBAQEBAQEBAQEBAQEBAIADAAAA/4AAAP+AAAD/AAAAAIAAAACAAAD+gAAA/4AEAAAA/oAAAP+AAAD+gAAAAYAAAACAAAABAAAA/4AAAAAAAAMAgACAA4AEAAATABcAGwAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAgAAAACAAAD/gAAAAIAAAP+AAAD+AAAA/4AAAACAAAD/gAAAAIAAgAAAAQAAAP8AAAABAAAABAAAAP+AAAD/AAAA/4AAAP8AAAD/gAAAAIAAAAEAAAAAgAAAAQAAAAAA/wAAAAEA/oD/AAAAAQAAAAACAIAAgAOABAAACwAPAAABAQEBAQEBAQEBAQEBAQEBAQACAAAAAIAAAP8AAAD+gAAA/4AAAACAAIAAAAEAAAAEAAAA/4AAAP0AAAABAAAAAIAAAAGAAAAAAP6AAAABgAACAQABAAIAA4AAAwAHAAABAQEBAQEBAQEAAQAAAP8AAAABAAAA/wADgAAA/wAAAP+AAAD/AAAAAAIAgACAAgADgAADAAsAAAEBAQEBAQEBAQEBAQEAAQAAAP8AAAABAAAA/4AAAP8AAAAAgAOAAAD/AAAA/4AAAP8AAAD/gAAAAIAAAAABAQAAgAOABAAAGwAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQKAAQAAAP+AAAD/gAAA/4AAAACAAAAAgAAAAIAAAP8AAAD/gAAA/4AAAP+AAAAAgAAAAIAAAACABAAAAP+AAAD/gAAA/4AAAP+AAAD/gAAA/4AAAP+AAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAAAACAIABgAOAAwAAAwAHAAABAQEBAQEBAQCAAwAAAP0AAAADAAAA/QADAAAA/4AAAP+AAAD/gAAAAAEAgACAAwAEAAAbAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAIABAAAAAIAAAACAAAAAgAAA/4AAAP+AAAD/gAAA/wAAAACAAAAAgAAAAIAAAP+AAAD/gAAA/4AEAAAA/4AAAP+AAAD/gAAA/4AAAP+AAAD/gAAA/4AAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAAAAAAIAgACAA4AEAAATABcAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAgAAAACAAAD/gAAA/4AAAP8AAAAAgAAAAIAAAP8AAAD/AAAAAIAAgAEAAAD/AAQAAAD/gAAA/4AAAP+AAAD/gAAAAIAAAACAAAAAgAAA/4AAAACAAAD+AAAA/wAAAAACAIAAgAOABAAAEQAVAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQACAAAAAIAAAP6AAAAAgAAA/wAAAAGAAAD+AAAA/4AAAACAAgAAgAAA/4AEAAAA/4AAAP6AAAABAAAAAIAAAP2AAAD/gAAAAIAAAAKAAAD+AAAA/4AAAAAAAAIAgACAA4AEAAAPABMAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAYABAAAAAIAAAACAAAD/AAAA/wAAAP8AAAAAgAAAAIAAAAAAAQAAAAQAAAD/gAAA/4AAAP2AAAABAAAA/wAAAAKAAAAAgAAA/4D/AAAAAQAAAwCAAIADgAQAAAsADwATAAABAQEBAQEBAQEBAQEBAQEBAQEBAQCAAoAAAACAAAD/gAAAAIAAAP+AAAD9gAEAAAABAAAA/wAAAAEAAAAEAAAA/4AAAP8AAAD/gAAA/wAAAP+AAAADAP8AAAABAP6A/wAAAAEAAAAAAQCAAIADgAQAABMAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQACAAAAAIAAAP8AAAD/AAAAAQAAAAEAAAD/gAAA/gAAAP+AAAAAgAQAAAD/gAAA/4AAAACAAAD9gAAAAIAAAP+AAAD/gAAAAIAAAAKAAAAAAAACAIAAgAOABAAACwATAAABAQEBAQEBAQEBAQEBAQEBAQEBAQCAAgAAAACAAAAAgAAA/4AAAP+AAAD+AAEAAAAAgAAAAIAAAP+AAAAEAAAA/4AAAP+AAAD+gAAA/4AAAP+AAAADAP2AAAAAgAAAAYAAAACAAAEAgACAA4AEAAAXAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAIAAAAAgAAA/wAAAP8AAAABAAAA/wAAAAEAAAABAAAA/4AAAP4AAAD/gAAAAIAEAAAA/4AAAP+AAAAAgAAA/wAAAP+AAAD/AAAAAIAAAP+AAAD/gAAAAIAAAAKAAAAAAAABAIAAgAOABAAACQAAAQEBAQEBAQEBAQCAAwAAAP4AAAABAAAA/wAAAP8ABAAAAP+AAAD/AAAA/4AAAP6AAAAAAQCAAIADgAQAABUAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAIAAAAAgAAA/wAAAP8AAAABAAAA/4AAAAGAAAD/gAAA/gAAAP+AAAAAgAQAAAD/gAAA/4AAAACAAAD9gAAAAQAAAACAAAD+gAAA/4AAAACAAAACgAAAAAEAgACAA4AEAAALAAABAQEBAQEBAQEBAQEAgAEAAAABAAAAAQAAAP8AAAD/AAAA/wAEAAAA/gAAAAIAAAD8gAAAAQAAAP8AAAAAAAABAIAAgAOABAAACwAAAQEBAQEBAQEBAQEBAIADAAAA/wAAAAEAAAD9AAAAAQAAAP8ABAAAAP+AAAD9gAAA/4AAAACAAAACgAAAAAAAAQCAAIAEAAQAAA8AAAEBAQEBAQEBAQEBAQEBAQEBAAMAAAD/gAAA/4AAAP4AAAD/gAAAAQAAAAEAAAD+gAQAAAD/gAAA/YAAAP+AAAAAgAAAAQAAAP8AAAACgAAAAAAAAQCAAIADgAQAABsAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAgAEAAAAAgAAAAIAAAAEAAAD/gAAA/4AAAP+AAAAAgAAAAIAAAACAAAD/AAAA/4AAAP+AAAD/AAQAAAD/AAAAAIAAAACAAAD/gAAA/4AAAP+AAAD/gAAA/4AAAP+AAAD/gAAAAIAAAACAAAD/AAAAAAAAAQCAAIADgAQAAAUAAAEBAQEBAQCAAQAAAAIAAAD9AAQAAAD9AAAA/4AAAAABAIAAgAQABAAAEwAAAQEBAQEBAQEBAQEBAQEBAQEBAQEAgAEAAAAAgAAAAIAAAACAAAABAAAA/wAAAP+AAAD/gAAA/4AAAP8ABAAAAP+AAAD/gAAAAIAAAACAAAD8gAAAAgAAAP+AAAAAgAAA/gAAAAAAAAEAgACABAAEAAATAAABAQEBAQEBAQEBAQEBAQEBAQEBAQCAAQAAAACAAAAAgAAAAIAAAAEAAAD/AAAA/4AAAP+AAAD/gAAA/wAEAAAA/4AAAP+AAAD/gAAAAYAAAPyAAAABAAAAAIAAAACAAAD+AAAAAAAAAgCAAIADgAQAAAsADwAAAQEBAQEBAQEBAQEBAQEBAQEAAgAAAACAAAD/gAAA/gAAAP+AAAAAgACAAAABAAAABAAAAP+AAAD9gAAA/4AAAACAAAACgAAAAAD9gAAAAoAAAgCAAIADgAQAAAkADQAAAQEBAQEBAQEBAQEBAQEAgAKAAAAAgAAA/4AAAP6AAAD/AAEAAAABAAAABAAAAP+AAAD+gAAA/4AAAP8AAAADAP6AAAABgAAAAAIAgACABAAEAAAPABcAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAgAAAACAAAAAgAAA/4AAAP+AAAD+AAAA/4AAAACAAIAAAAEAAAD/gAAAAIAAAAQAAAD/gAAA/gAAAP8AAAAAgAAA/4AAAACAAAACgAAAAAD9gAAAAIAAAACAAAABgAACAIAAgAOABAAAEwAXAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAgAKAAAAAgAAA/4AAAP+AAAAAgAAAAIAAAP8AAAD/gAAA/4AAAP8AAQAAAAEAAAAEAAAA/4AAAP8AAAD/gAAA/4AAAP+AAAD/gAAAAIAAAACAAAD/AAAAAwD/AAAAAQAAAQCAAIADgAQAABsAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAIAAAAAgAAA/wAAAP8AAAABgAAAAIAAAP+AAAD+AAAA/4AAAAEAAAABAAAA/oAAAP+AAAAAgAQAAAD/gAAA/4AAAACAAAD/AAAA/4AAAP8AAAD/gAAAAIAAAACAAAD/gAAAAQAAAACAAAABAAAAAAAAAQCAAIADgAQAAAcAAAEBAQEBAQEBAIADAAAA/wAAAP8AAAD/AAQAAAD/gAAA/QAAAAMAAAAAAAABAIAAgAOABAAACwAAAQEBAQEBAQEBAQEBAIABAAAAAQAAAAEAAAD/gAAA/gAAAP+ABAAAAP0AAAADAAAA/QAAAP+AAAAAgAAAAAAAAQCAAIADgAQAAA8AAAEBAQEBAQEBAQEBAQEBAQEAgAEAAAABAAAAAQAAAP+AAAD/gAAA/wAAAP+AAAD/gAQAAAD+AAAAAgAAAP4AAAD/AAAA/4AAAACAAAABAAAAAAAAAQCAAIAEAAQAABMAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAIABAAAAAIAAAACAAAAAgAAAAQAAAP8AAAD/gAAA/4AAAP+AAAD/AAQAAAD+AAAAAIAAAP+AAAACAAAA/IAAAACAAAAAgAAA/4AAAP+AAAAAAAABAIAAgAOABAAAGwAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQCAAQAAAAEAAAABAAAA/4AAAP+AAAAAgAAAAIAAAP8AAAD/AAAA/wAAAACAAAAAgAAA/4AAAP+ABAAAAP8AAAABAAAA/wAAAP+AAAD/gAAA/4AAAP8AAAABAAAA/wAAAAEAAAAAgAAAAIAAAACAAAAAAAABAIAAgAOABAAADwAAAQEBAQEBAQEBAQEBAQEBAQCAAQAAAAEAAAABAAAA/4AAAP+AAAD/AAAA/4AAAP+ABAAAAP6AAAABgAAA/oAAAP+AAAD+gAAAAYAAAACAAAAAAAABAIAAgAOABAAAFwAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAIADAAAA/4AAAP+AAAD/gAAA/4AAAAIAAAD9AAAAAIAAAACAAAAAgAAAAIAAAP4ABAAAAP8AAAD/gAAA/4AAAP+AAAD/gAAA/4AAAAEAAAAAgAAAAIAAAACAAAAAgAAAAAAAAQEAAIADAAQAAAcAAAEBAQEBAQEBAQACAAAA/wAAAAEAAAD+AAQAAAD/gAAA/YAAAP+AAAAAAAABAIAAgAQAA4AAFwAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAIABAAAAAIAAAACAAAAAgAAAAIAAAACAAAD/AAAA/4AAAP+AAAD/gAAA/4AAAP+AA4AAAP+AAAD/gAAA/4AAAP+AAAD/gAAA/4AAAACAAAAAgAAAAIAAAACAAAAAgAAAAAAAAQEAAIADAAQAAAcAAAEBAQEBAQEBAQACAAAA/gAAAAEAAAD/AAQAAAD8gAAAAIAAAAKAAAAAAAABAIACAAQABAAAFwAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAgAAgAAAAIAAAACAAAAAgAAA/wAAAP+AAAD/gAAA/4AAAP8AAAAAgAAAAIAAAACABAAAAP+AAAD/gAAA/4AAAP+AAAAAgAAAAIAAAP+AAAD/gAAAAIAAAACAAAAAgAAAAAAAAQCAAIADgAEAAAMAAAEBAQEAgAMAAAD9AAEAAAD/gAAAAAAAAQEAAoACgAQAAAkAAAEBAQEBAQEBAQEBAAEAAAAAgAAA/4AAAP+AAAD/gAQAAAD/gAAA/wAAAACAAAAAgAAAAAEAgACAA4ADAAAPAAABAQEBAQEBAQEBAQEBAQEBAQACgAAA/4AAAP+AAAD/AAAAAQAAAP6AAAD/gAAAAIADAAAA/YAAAACAAAABgAAA/oAAAP+AAAAAgAAAAYAAAAAAAAIAgACAA4AEAAAJAA0AAAEBAQEBAQEBAQEBAQEBAIABAAAAAYAAAACAAAD/gAAA/YABAAAAAQAAAAQAAAD/AAAA/4AAAP6AAAD/gAAAAgD+gAAAAYAAAAABAIAAgAOAAwAAEwAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAIAAAAAgAAA/wAAAP8AAAABAAAAAQAAAP+AAAD+AAAA/4AAAACAAwAAAP+AAAD/gAAAAIAAAP6AAAAAgAAA/4AAAP+AAAAAgAAAAYAAAAAAAAIAgACAA4AEAAAJAA0AAAEBAQEBAQEBAQEBAQEBAoABAAAA/YAAAP+AAAAAgAAAAYD/AAAAAQAAAAQAAAD8gAAAAIAAAAGAAAAAgAAA/4D+gAAAAYAAAAACAIAAgAOAAwAADQARAAABAQEBAQEBAQEBAQEBAQEBAQEBAAIAAAAAgAAA/gAAAAGAAAD+AAAA/4AAAACAAIAAAAEAAAADAAAA/4AAAP8AAAD/gAAA/4AAAACAAAABgAAAAAD/gAAAAIAAAAABAQAAgAOAA4AACwAAAQEBAQEBAQEBAQEBAYACAAAA/oAAAAEAAAD/AAAA/wAAAACAA4AAAP+AAAD/AAAA/4AAAP8AAAACgAAAAAAAAgCAAIADgAOAAA8AEwAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAIAAAAAgAAA/4AAAP4AAAABgAAA/oAAAP+AAAAAgACAAAABAAAAA4AAAP+AAAD+AAAA/4AAAACAAAAAgAAAAIAAAAEAAAAAAP8AAAABAAABAIAAgAOABAAACwAAAQEBAQEBAQEBAQEBAIABAAAAAYAAAACAAAD/AAAA/wAAAP8ABAAAAP8AAAD/gAAA/gAAAAIAAAD+AAAAAAAAAgGAAIACgAQAAAMABwAAAQEBAQEBAQEBgAEAAAD/AAAAAQAAAP8ABAAAAP+AAAD/gAAA/YAAAAACAIAAgAOABAAAAwAPAAABAQEBAQEBAQEBAQEBAQEBAoABAAAA/wAAAAEAAAD/gAAA/gAAAP+AAAABAAAAAQAEAAAA/4AAAP+AAAD+AAAA/4AAAACAAAABAAAA/wAAAAABAIAAgAOAA4AAEwAAAQEBAQEBAQEBAQEBAQEBAQEBAQEAgAEAAAAAgAAAAQAAAP+AAAAAgAAAAIAAAP8AAAD/gAAA/4AAAP8AA4AAAP8AAAAAgAAA/4AAAP8AAAD/gAAA/4AAAACAAAAAgAAA/wAAAAAAAAEBgACAAwAEAAAHAAABAQEBAQEBAQGAAQAAAACAAAD/AAAA/4AEAAAA/QAAAP+AAAAAgAAAAAAAAQCAAIAEAAMAABMAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAAAAAIAAAAEAAAAAgAAA/wAAAP+AAAD/gAAA/4AAAP8AAAAAgAMAAAD/gAAAAIAAAP+AAAD+AAAAAYAAAP+AAAAAgAAA/oAAAAIAAAAAAAABAIAAgAOAAwAADwAAAQEBAQEBAQEBAQEBAQEBAQCAAQAAAACAAAABAAAAAIAAAP8AAAD/gAAA/4AAAP8AAwAAAP+AAAAAgAAA/4AAAP4AAAABgAAA/4AAAP8AAAAAAAACAIAAgAOAAwAACwAPAAABAQEBAQEBAQEBAQEBAQEBAQACAAAAAIAAAP+AAAD+AAAA/4AAAACAAIAAAAEAAAADAAAA/4AAAP6AAAD/gAAAAIAAAAGAAAAAAP6AAAABgAACAIAAgAOAAwAACQANAAABAQEBAQEBAQEBAQEBAQCAAoAAAACAAAD/gAAA/oAAAP8AAQAAAAEAAAADAAAA/4AAAP+AAAD/gAAA/wAAAAIA/4AAAACAAAAAAgCAAIAEAAMAAA0AEQAAAQEBAQEBAQEBAQEBAQEBAQEBAQACgAAAAIAAAP+AAAD/AAAA/oAAAP+AAAAAgACAAAABAAAAAwAAAP6AAAD/gAAA/4AAAAEAAAAAgAAAAIAAAAAA/4AAAACAAAAAAQEAAIADgAMAAAkAAAEBAQEBAQEBAQEBAAIAAAAAgAAA/wAAAP+AAAD/AAMAAAD/gAAA/wAAAAEAAAD+AAAAAAEAgACABAADAAATAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEAAoAAAP6AAAABgAAAAIAAAP+AAAD9AAAAAgAAAP6AAAD/gAAAAIADAAAA/4AAAP+AAAD/gAAA/4AAAP+AAAAAgAAAAIAAAACAAAAAgAAAAAAAAQCAAIADgAOAABMAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAAAAAQAAAP8AAAAAgAAAAQAAAP+AAAD+gAAA/4AAAP+AAAAAgAOAAAD/gAAA/4AAAP6AAAAAgAAA/4AAAP+AAAAAgAAAAYAAAACAAAAAAAABAIAAgAOAAwAADwAAAQEBAQEBAQEBAQEBAQEBAQCAAQAAAACAAAAAgAAAAQAAAP+AAAD/gAAA/oAAAP+AAwAAAP4AAAAAgAAAAYAAAP2AAAAAgAAA/4AAAACAAAAAAAABAIAAgAOAAwAADwAAAQEBAQEBAQEBAQEBAQEBAQCAAQAAAAEAAAABAAAA/4AAAP+AAAD/AAAA/4AAAP+AAwAAAP6AAAABgAAA/oAAAP+AAAD/gAAAAIAAAACAAAAAAAABAIAAgAQAAwAAEwAAAQEBAQEBAQEBAQEBAQEBAQEBAQEAgAEAAAAAgAAAAIAAAACAAAABAAAA/4AAAP8AAAD/gAAA/wAAAP+AAwAAAP6AAAAAgAAA/4AAAAGAAAD+AAAA/4AAAACAAAD/gAAAAIAAAAAAAAEAgACAA4ADAAAbAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAIABAAAAAQAAAAEAAAD/gAAA/4AAAACAAAAAgAAA/wAAAP8AAAD/AAAAAIAAAACAAAD/gAAA/4ADAAAA/4AAAACAAAD/gAAA/4AAAP+AAAD/gAAA/4AAAACAAAD/gAAAAIAAAACAAAAAgAAAAIAAAAAAAAEAgACAA4ADAAAPAAABAQEBAQEBAQEBAQEBAQEBAIABAAAAAQAAAAEAAAD/gAAA/gAAAAGAAAD+gAAA/4ADAAAA/wAAAAEAAAD+AAAA/4AAAACAAAAAgAAAAIAAAAAAAAEAgACAA4ADAAATAAABAQEBAQEBAQEBAQEBAQEBAQEBAQCAAwAAAP+AAAD/gAAA/4AAAAGAAAD9AAAAAIAAAACAAAAAgAAA/oADAAAA/4AAAP+AAAD/gAAA/4AAAP+AAAAAgAAAAIAAAACAAAAAgAAAAAAAAQCAAIADAAQAABMAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAYABgAAA/wAAAP+AAAAAgAAAAQAAAP6AAAD/gAAA/4AAAACAAAAAgAQAAAD/gAAA/wAAAP+AAAD/AAAA/4AAAACAAAABAAAAAIAAAAEAAAAAAAABAYAAgAKABAAAAwAAAQEBAQGAAQAAAP8ABAAAAPyAAAAAAAABAQAAgAOABAAAEwAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAGAAAAAgAAAAIAAAP+AAAD/gAAA/oAAAAEAAAAAgAAA/4AAAP8ABAAAAP+AAAD/AAAA/4AAAP8AAAD/gAAAAIAAAAEAAAAAgAAAAQAAAAAAAAEAgAGAA4ADAAAPAAABAQEBAQEBAQEBAQEBAQEBAQABAAAAAQAAAACAAAD/gAAA/wAAAP8AAAD/gAAAAIADAAAA/4AAAACAAAD/AAAA/4AAAACAAAD/gAAAAQAAAAAAAAEAAAAABAAEAAATAAABAQEBAQEBAQEBAQEBAQEBAQEBAQAAAYAAAAEAAAAAgAAAAIAAAACAAAD/AAAA/4AAAP+AAAD/AAAA/wAEAAAA/4AAAP+AAAD/gAAA/wAAAP6AAAABAAAAAQAAAACAAAAAgAAAAAAAAQIAAAAEAAQAAAMAAAEBAQECAAIAAAD+AAQAAAD8AAAAAAAAAgCAAIADgAQAABcAGwAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQGAAYAAAP8AAAABAAAA/4AAAP+AAAABgAAA/QAAAACAAAAAgAAA/wAAAACAAAAAgAGAAIAAAP+ABAAAAP+AAAD/AAAA/4AAAP+AAAD/gAAA/4AAAACAAAAAgAAAAIAAAACAAAABAAAAAAAAAP+AAAAAAQCAAIADgAQAABsAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAgAEAAAABAAAAAQAAAP+AAAAAgAAA/wAAAAEAAAD/AAAA/wAAAP8AAAABAAAA/wAAAACAAAD/gAQAAAD+gAAAAYAAAP8AAAD/gAAA/4AAAP+AAAD/gAAA/4AAAACAAAAAgAAAAIAAAACAAAAAgAAAAAAABACAAIAEAAQAABcAGwAfACMAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAoAAAP4AAAABgAAAAIAAAACAAAD/gAAA/YAAAAIAAAD+gAAA/4AAAP+AAAAAgAEAAAAAgAAAAQAAgAAA/4D9AACAAAD/gAQAAAD/gAAA/4AAAP+AAAD/gAAA/wAAAP+AAAAAgAAAAIAAAACAAAAAgAAAAQAAAP8A/4AAAACAAQAAAP+AAAD+gAAA/4AAAAAEAIAAgAQAA4AAAwAHAAsADwAAAQEBAQEBAQEBAQEBAQEBAQCAAIAAAP+AAQAAgAAA/4ABAACAAAD/gAEAAIAAAP+AA4AAAP0AAAADAAAA/QAAAAMAAAD9AAAAAwAAAP0AAAAAAQIAAAAEAAQAAAkAAAEBAQEBAQEBAQEDgACAAAD+AAAAAIAAAACAAAAAgAQAAAD8AAAAAQAAAAEAAAABAAAAAAgAAAAABAAEAAADAAcACwAPABMAFwAbAB8AAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAABAAAA/wACAAEAAAD/AP8AAQAAAP8AAgABAAAA/wD9AAEAAAD/AAIAAQAAAP8A/wABAAAA/wACAAEAAAD/AAQAAAD/AAAAAQAAAP8AAAAAAAAA/wAAAAEAAAD/AAAAAAAAAP8AAAABAAAA/wAAAAAAAAD/AAAAAQAAAP8AAAAAAQIAAAADAAQAAAMAAAEBAQECAAEAAAD/AAQAAAD8AAAAAAAAAgGAAIACgAQAAAMABwAAAQEBAQEBAQEBgAEAAAD/AAAAAQAAAP8ABAAAAP6AAAD/gAAA/oAAAAABAgAAAAQAAgAAAwAAAQEBAQIAAgAAAP4AAgAAAP4AAAAAAAAEAIAAAAQABAAAAwAHAAsADwAAAQEBAQEBAQEBAQEBAQEBAQCAAIAAAP+AAQAAgAAA/4ABAACAAAD/gAEAAIAAAP+ABAAAAPwAAAAEAAAA/AAAAAQAAAD8AAAABAAAAPwAAAAAAQCAAIADgAOAABMAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAoABAAAA/oAAAP+AAAD/gAAA/4AAAACAAAAAgAAAAIAAAAEAAAD/gAOAAAD+AAAA/wAAAACAAAAAgAAAAIAAAACAAAAAgAAA/wAAAAEAAAAAAAABAAAAAAQABAAACwAAAQEBAQEBAQEBAQEBAAAEAAAA/gAAAP+AAAD/gAAA/4AAAP+ABAAAAPwAAAAAgAAAAIAAAACAAAAAgAAAAAAAAQCAAIAEAAOAABsAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAgACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAD/gAAA/4AAAP+AAAD/gAAA/4AAAP+AAAD/gAOAAAD/gAAAAIAAAP8AAAABAAAA/oAAAAGAAAD9AAAAAIAAAP+AAAABAAAA/wAAAAGAAAD+gAAAAAAAAQAAAAACAAQAAAkAAAEBAQEBAQEBAQEAAACAAAAAgAAAAIAAAACAAAD+AAQAAAD/AAAA/wAAAP8AAAD/AAAAAAEAAAAABAAEAAATAAABAQEBAQEBAQEBAQEBAQEBAQEBAQKAAYAAAP8AAAD/AAAA/4AAAP+AAAD/AAAAAIAAAACAAAAAgAAAAQAEAAAA/wAAAP+AAAD/gAAA/wAAAP8AAAABgAAAAQAAAACAAAAAgAAAAAAAAQAAAAAEAAIAAA8AAAEBAQEBAQEBAQEBAQEBAQEBgAEAAAAAgAAAAIAAAACAAAD8AAAAAIAAAACAAAAAgAIAAAD/gAAA/4AAAP+AAAD/gAAAAIAAAACAAAAAgAAAAAAAAgAAAAAEAAQAAAMABwAAAQEBAQEBAQEAAAIAAAD+AAIAAgAAAP4ABAAAAP4AAAAAAAAA/gAAAAAEAAACAAQABAAAAwAHAAsADwAAAQEBAQEBAQEBAQEBAQEBAQAAAQAAAP8AAgABAAAA/wD/AAEAAAD/AAIAAQAAAP8ABAAAAP8AAAABAAAA/wAAAAAAAAD/AAAAAQAAAP8AAAAABAIAAAAEAAQAAAMABwALAA8AAAEBAQEBAQEBAQEBAQEBAQECAAEAAAD/AAEAAQAAAP8A/wABAAAA/wABAAEAAAD/AAQAAAD/AAAAAAAAAP8AAAAAAAAA/wAAAAAAAAD/AAAAAAEDAAAABAAEAAADAAABAQEBAwABAAAA/wAEAAAA/AAAAAAAAAEAAAAABAAEAAAFAAABAQEBAQEAAAQAAAD9AAAA/wAEAAAA/wAAAP0AAAAAAQAAAAABAAQAAAMAAAEBAQEAAAEAAAD/AAQAAAD8AAAAAAAAAwCAAIADAAOAAAMABwALAAABAQEBAQEBAQEBAQEAgACAAAD/gAEAAIAAAP+AAQAAgAAA/4ADgAAA/QAAAAMAAAD9AAAAAwAAAP0AAAAAAAABAYABgAQABAAACwAAAQEBAQEBAQEBAQEBAYABAAAAAIAAAAEAAAD+gAAA/4AAAP+ABAAAAP8AAAD/gAAA/wAAAACAAAAAgAAAAAAAAQAAAYACgAQAAAsAAAEBAQEBAQEBAQEBAQGAAQAAAP+AAAD/gAAA/oAAAAEAAAAAgAQAAAD+gAAA/4AAAP+AAAABAAAAAIAAAAAAAAEAAAAABAAEAAAJAAABAQEBAQEBAQEBAwABAAAA/AAAAAEAAAABAAAAAQAEAAAA/AAAAAKAAAAAgAAAAIAAAAABAIAAgAMABAAACwAAAQEBAQEBAQEBAQEBAgABAAAA/4AAAP6AAAD/gAAAAIAAAAEABAAAAP0AAAD/gAAAAIAAAAEAAAAAgAAAAAAAAQAAAAAEAAQAAAUAAAEBAQEBAQAAAQAAAAMAAAD8AAQAAAD9AAAA/wAAAAACAIAAgAMAAoAACwAPAAABAQEBAQEBAQEBAQEBAQEBAQABgAAAAIAAAP+AAAD+gAAAAQAAAP8A/4AAgAAA/4ACgAAA/4AAAP8AAAD/gAAAAIAAAAEAAAAAAAAA/wAAAAACAIAAgAMABAAACwAPAAABAQEBAQEBAQEBAQEBAQEBAgABAAAA/4AAAP6AAAABAAAA/wAAAAEA/oAAgAAA/4AEAAAA/QAAAP+AAAAAgAAAAQAAAACAAAD/gAAA/wAAAAABAIAAgAQABAAADQAAAQEBAQEBAQEBAQEBAQECAAIAAAD/AAAA/4AAAP6AAAD/gAAAAIAAAAEABAAAAP+AAAD9gAAA/4AAAACAAAABAAAAAIAAAAACAAAAAAQABAAAAwAHAAABAQEBAQEBAQAABAAAAPwAAQAAAAIAAAAEAAAA/AAAAAMA/gAAAAIAAAEAgACABAAEAAARAAABAQEBAQEBAQEBAQEBAQEBAQECAAIAAAD/AAAAAQAAAP8AAAD/gAAA/oAAAP+AAAAAgAAAAQAEAAAA/4AAAP+AAAD/gAAA/oAAAP+AAAAAgAAAAQAAAACAAAAAAQAAAAACgAKAAAsAAAEBAQEBAQEBAQEBAQAAAYAAAACAAAAAgAAA/wAAAP+AAAD/AAKAAAD/gAAA/4AAAP6AAAABAAAAAIAAAAAAAAEAAAAABAAEAAAFAAABAQEBAQEAAAQAAAD/AAAA/QAEAAAA/AAAAAMAAAAAAQCAAIAEAAQAABUAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQECAAIAAAD/AAAAAQAAAP8AAAABAAAA/wAAAP+AAAD+gAAA/4AAAACAAAABAAQAAAD/gAAA/4AAAP+AAAD/gAAA/4AAAP+AAAD/gAAAAIAAAAEAAAAAgAAAAAEBgAAABAACgAALAAABAQEBAQEBAQEBAQECgAGAAAD/AAAA/4AAAP8AAAAAgAAAAIACgAAA/wAAAP+AAAD/AAAAAYAAAACAAAAAAAABAAAAAAQABAAAEQAAAQEBAQEBAQEBAQEBAQEBAQEBAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAPwABAAAAP+AAAD/gAAA/4AAAP+AAAD/gAAA/4AAAP+AAAD/gAAAAAEAAAAABAABAAADAAABAQEBAAAEAAAA/AABAAAA/wAAAAAAAAEAAAAABAAEAAARAAABAQEBAQEBAQEBAQEBAQEBAQEDgACAAAD8AAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAEAAAA/AAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAAQAAAgAEAAQAAAMAAAEBAQEAAAQAAAD8AAQAAAD+AAAAAAAAAgCAAIACAAOAAAMABwAAAQEBAQEBAQEAgACAAAD/gAEAAIAAAP+AA4AAAP0AAAADAAAA/QAAAAAEAIAAgAQABAAAAwAHAAsADwAAAQEBAQEBAQEBAQEBAQEBAQCAA4AAAPyAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAABAAAAPyAAAADAP+AAAAAgP8A/4AAAACA/wD/gAAAAIAAAQAAAAAEAAQAAAUAAAEBAQEBAQMAAQAAAPwAAAADAAQAAAD8AAAAAQAAAAACAIAAgAQABAAAAwAHAAABAQEBAQEBAQCAA4AAAPyAAYAAAACAAAAEAAAA/IAAAAIA/4AAAACAAAMAgACABAAEAAADAAcACwAAAQEBAQEBAQEBAQEBAIADgAAA/IAAgAAAAIAAAAGAAAAAgAAABAAAAPyAAAADAP+AAAAAgP4A/4AAAACAAAAABAAAAIAEAAQAAAMABwALAA8AAAEBAQEBAQEBAQEBAQEBAQEAAAQAAAD8AAAABAAAAPwAAAAEAAAA/AAAAAQAAAD8AAQAAAD/gAAA/4AAAP+AAAD/gAAA/4AAAP+AAAD/gAAAAAYAgACABAAEAAADAAcACwAPABMAFwAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAIADgAAA/IAAgAAAAIAAAAGAAAAAgAAA/oAAAACAAAD+gAAAAIAAAAGAAAAAgAAABAAAAPyAAAADAP+AAAAAgAAA/4AAAACA/wD/gAAAAID/AP+AAAAAgAAA/4AAAACAAAEAgACAAQADgAADAAABAQEBAIAAgAAA/4ADgAAA/QAAAAAAAAUAgACABAAEAAADAAcACwAPABMAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAIADgAAA/IAAgAAAAIAAAAGAAAAAgAAA/YAAAACAAAABgAAAAIAAAAQAAAD8gAAAAwD/gAAAAIAAAP+AAAAAgP4A/4AAAACAAAD/gAAAAIAAAAABAAADAAQABAAAAwAAAQEBAQAABAAAAPwABAAAAP8AAAAAAAAHAIAAgAQABAAAAwAHAAsADwATABcAGwAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQCAA4AAAPyAAIAAAACAAAABgAAAAIAAAP2AAAAAgAAAAYAAAACAAAD9gAAAAIAAAAGAAAAAgAAABAAAAPyAAAADAP+AAAAAgAAA/4AAAACA/wD/gAAAAIAAAP+AAAAAgP8A/4AAAACAAAD/gAAAAIAAAAAEAAAAAAQAAgAAAwAHAAsADwAAAQEBAQEBAQEBAQEBAQEBAQAAAQAAAP8AAgABAAAA/wD/AAEAAAD/AAIAAQAAAP8AAgAAAP8AAAABAAAA/wAAAAAAAAD/AAAAAQAAAP8AAAAAAQAAAAAEAAQAAAkAAAEBAQEBAQEBAQEAAAEAAAABAAAAAQAAAAEAAAD8AAQAAAD/gAAA/4AAAP+AAAD9gAAAAAEBAAAAAgAEAAADAAABAQEBAQABAAAA/wAEAAAA/AAAAAAAAAEAAAAABAAEAAALAAABAQEBAQEBAQEBAQECgAGAAAD8AAAAAIAAAACAAAAAgAAAAQAEAAAA/AAAAAGAAAABAAAAAIAAAACAAAAAAAABAAABAAQAAgAAAwAAAQEBAQAABAAAAPwAAgAAAP8AAAAAAAABAAAAAAQABAAACwAAAQEBAQEBAQEBAQEBAgACAAAA/AAAAACAAAAAgAAAAIAAAACABAAAAPwAAAACAAAAAIAAAACAAAAAgAAAAAAAAQAAAAAEAAIAAAkAAAEBAQEBAQEBAQEDAAEAAAD8AAAAAQAAAAEAAAABAAIAAAD+AAAAAIAAAACAAAAAgAAAAAEAAAAABAAEAAALAAABAQEBAQEBAQEBAQEAAAIAAAAAgAAAAIAAAACAAAAAgAAA/AAEAAAA/4AAAP+AAAD/gAAA/4AAAP4AAAAAAAADAAAAAAQABAAAGwAnADMAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAEAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAD/AAAA/4AAAP+AAAD/gAAA/4AAAP+AAAD/gAIAAYAAAACAAAD/gAAA/4AAAP+AAAD/gP4AAIAAAACAAAAAgAAAAIAAAP6AAAD/gAQAAAD/gAAA/4AAAP+AAAD/gAAA/4AAAP+AAAD/AAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAQAAAP+AAAD+gAAAAIAAAACAAAAAgAAA/oAAAP+AAAD/gAAA/4AAAP+AAAAAgAAAAAAAAQAAAAAEAAIAAAkAAAEBAQEBAQEBAQEAAAEAAAABAAAAAQAAAAEAAAD8AAIAAAD/gAAA/4AAAP+AAAD/gAAAAAEAAAAABAAEAAALAAABAQEBAQEBAQEBAQEAAAGAAAABAAAAAIAAAACAAAAAgAAA/AAEAAAA/4AAAP+AAAD/gAAA/wAAAP6AAAAAAAAEAAAAgAQABAAAAwAHAAsADwAAAQEBAQEBAQEBAQEBAQEBAQCAAYAAAP6AAgABgAAA/oD9gAGAAAD+gAIAAYAAAP6ABAAAAP6AAAABgAAA/oAAAP+AAAD+gAAAAYAAAP6AAAAAAQIAAgAEAAQAAAMAAAEBAQECAAIAAAD+AAQAAAD+AAAAAAAABACAAIAEAAQAAAMABwAjACcAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAAD/AAGAAQAAAP8A/gAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAA/4AAAP+AAAD/gAAA/4AAAP+AAAD/gAAA/4ABgACAAAD/gAQAAAD/gAAAAIAAAP+AAAAAAAAA/wAAAP+AAAD/gAAAAIAAAACAAAABAAAA/oAAAP+AAAD/gAAA/4AAAACAAAAAgAAAAIAAAAGAAAD/gAAAAAQAAAAABAAEAAADAAcACwAPAAABAQEBAQEBAQEBAQEBAQEBAAAAgAAA/4ADgACAAAD/gPyAAIAAAP+AA4AAgAAA/4AEAAAA/4AAAACAAAD/gAAA/QAAAP+AAAAAgAAA/4AAAAABAAAAAAIAAgAAAwAAAQEBAQAAAgAAAP4AAgAAAP4AAAAAAAAEAAAAAAIABAAAAwAHAAsADwAAAQEBAQEBAQEBAQEBAQEBAQAAAQAAAP8AAQABAAAA/wD/AAEAAAD/AAEAAQAAAP8ABAAAAP8AAAAAAAAA/wAAAAAAAAD/AAAAAAAAAP8AAAAAAQCAAQADgAOAABMAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAYABAAAA/4AAAAGAAAD+gAAAAIAAAP8AAAD/gAAA/4AAAACAAAAAgAOAAAD/gAAA/4AAAP+AAAD/gAAA/4AAAACAAAAAgAAAAIAAAACAAAAAAAABAQABAAOABAAAEwAAAQEBAQEBAQEBAQEBAQEBAQEBAQECAACAAAAAgAAAAIAAAP+AAAD/gAAA/4AAAP+AAAD/gAAAAIAAAACABAAAAP+AAAD/gAAA/wAAAACAAAD+gAAAAYAAAP+AAAABAAAAAIAAAAAAAAEBAAEABAADgAATAAABAQEBAQEBAQEBAQEBAQEBAQEBAQIAAQAAAACAAAAAgAAA/4AAAP+AAAD/AAAAAIAAAP6AAAABgAAA/4ADgAAA/4AAAP+AAAD/gAAA/4AAAP+AAAAAgAAAAIAAAACAAAAAgAAAAAAAAQEAAIADgAOAABMAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAgAAgAAAAIAAAACAAAD/gAAA/4AAAP+AAAD/gAAA/4AAAACAAAAAgAOAAAD+gAAAAIAAAP8AAAD/gAAA/4AAAACAAAAAgAAAAQAAAP+AAAAAAAABAQAAgAOABAAADwAAAQEBAQEBAQEBAQEBAQEBAQIAAIAAAACAAAAAgAAA/4AAAP6AAAD/gAAAAIAAAACABAAAAP8AAAD/AAAA/wAAAP+AAAAAgAAAAQAAAAEAAAAAAAACAIAAgAOAA4AAAwAJAAABAQEBAQEBAQEBAIADAAAA/QAAgAAAAgAAAP8AAAADgAAA/QAAAAKA/gAAAAEAAAABAAAAAAIAgACABAAEAAAbACcAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQECAACAAAAAgAAAAIAAAACAAAD/gAAA/4AAAP+AAAD/gAAA/4AAAP+AAAD/gAAAAIAAAACAAAAAgAAAAAD/gAAAAIAAAACAAAAAgAAA/4AAAAQAAAD/gAAA/4AAAP+AAAD/gAAA/4AAAP+AAAD/gAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAA/4D/gAAA/4AAAP+AAAAAgAAAAIAAAACAAAEAAAIABAADAAADAAABAQEBAAAEAAAA/AADAAAA/wAAAAAAAAEAAAAABAAEAAALAAABAQEBAQEBAQEBAQEAAAQAAAD/gAAA/4AAAP+AAAD/gAAA/gAEAAAA/gAAAP+AAAD/gAAA/4AAAP+AAAAAAAABAAACAAIABAAAAwAAAQEBAQAAAgAAAP4ABAAAAP4AAAAAAAACAQAAgAOAA4AAFwAbAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAYABgAAAAIAAAP8AAAAAgAAAAIAAAP8AAAD/gAAA/wAAAACAAAAAgAAA/wAAAACAAIAAAACAAAADgAAA/wAAAP+AAAD/gAAA/4AAAP+AAAAAgAAA/4AAAACAAAAAgAAAAIAAAACAAAAAgP+AAAAAgAADAAAAAAQABAAACwAnADMAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAgAGAAAD/gAAA/4AAAP+AAAD/gAAAAIACgAEAAAD/gAAA/4AAAP+AAAD/gAAA/4AAAP+AAAD/AAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgACAAIAAAP+AAAD+gAAAAIAAAACAAAAAgAQAAAD/gAAA/4AAAP+AAAD/gAAAAYAAAACAAAD/AAAA/4AAAP+AAAD/gAAA/4AAAP+AAAD/gAAAAQAAAACAAAAAgAAAAIAAAACAAAAAgAAA/oAAAP6AAAD/gAAAAIAAAACAAAAAgAAAAAAAAgCAAIADgAQAAA8AHwAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAAABAAAAAIAAAP+AAAD/AAAA/wAAAP+AAAAAgAAAAQAAAAEAAAAAgAAA/4AAAP8AAAD/AAAA/4AAAACABAAAAP+AAAAAgAAA/wAAAP+AAAAAgAAA/4AAAAEAAAD+gAAA/4AAAACAAAD/AAAA/4AAAACAAAD/gAAAAQAAAAABAAAAAAQAA4AACwAAAQEBAQEBAQEBAQEBAQACAAAAAIAAAACAAAD8AAAAAIAAAACAA4AAAP+AAAD/gAAA/YAAAAKAAAAAgAAAAAAAAQAAAAACAAQAAA8AAAEBAQEBAQEBAQEBAQEBAQEAAACAAAAAgAAAAIAAAACAAAD/gAAA/4AAAP+AAAD/gAQAAAD/gAAA/4AAAP+AAAD/AAAA/4AAAP+AAAD/gAAAAAAAAQIAAAAEAAQAAA8AAAEBAQEBAQEBAQEBAQEBAQEDgACAAAD/gAAA/4AAAP+AAAD/gAAAAIAAAACAAAAAgAQAAAD8AAAAAIAAAACAAAAAgAAAAQAAAACAAAAAgAAAAAAAAQCAAIAEAAQAABcAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQIAAIAAAACAAAAAgAAAAIAAAP+AAAD/AAAA/4AAAP8AAAD/gAAAAIAAAACAAAAAgAQAAAD/gAAA/4AAAP+AAAD/gAAA/oAAAAEAAAD/AAAAAYAAAACAAAAAgAAAAIAAAAAAACAAAAAABAAEAAADAAcACwAPABMAFwAbAB8AIwAnACsALwAzADcAOwA/AEMARwBLAE8AUwBXAFsAXwBjAGcAawBvAHMAdwB7AH8AAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAgAAA/4ABAACAAAD/gAEAAIAAAP+AAQAAgAAA/4D9gACAAAD/gAEAAIAAAP+AAQAAgAAA/4ABAACAAAD/gPyAAIAAAP+AAQAAgAAA/4ABAACAAAD/gAEAAIAAAP+A/YAAgAAA/4ABAACAAAD/gAEAAIAAAP+AAQAAgAAA/4D8gACAAAD/gAEAAIAAAP+AAQAAgAAA/4ABAACAAAD/gP2AAIAAAP+AAQAAgAAA/4ABAACAAAD/gAEAAIAAAP+A/IAAgAAA/4ABAACAAAD/gAEAAIAAAP+AAQAAgAAA/4D9gACAAAD/gAEAAIAAAP+AAQAAgAAA/4ABAACAAAD/gAQAAAD/gAAAAIAAAP+AAAAAgAAA/4AAAACAAAD/gAAAAAAAAP+AAAAAgAAA/4AAAACAAAD/gAAAAIAAAP+AAAAAAAAA/4AAAACAAAD/gAAAAIAAAP+AAAAAgAAA/4AAAAAAAAD/gAAAAIAAAP+AAAAAgAAA/4AAAACAAAD/gAAAAAAAAP+AAAAAgAAA/4AAAACAAAD/gAAAAIAAAP+AAAAAAAAA/4AAAACAAAD/gAAAAIAAAP+AAAAAgAAA/4AAAAAAAAD/gAAAAIAAAP+AAAAAgAAA/4AAAACAAAD/gAAAAAAAAP+AAAAAgAAA/4AAAACAAAD/gAAAAIAAAP+AAAAAAQAAAAAEAAQAAAsAAAEBAQEBAQEBAQEBAQAABAAAAP6AAAD/AAAA/4AAAP+AAAD/gAQAAAD8AAAAAIAAAACAAAAAgAAAAQAAAAAAAAEAAAAABAAEAAALAAABAQEBAQEBAQEBAQEAAAQAAAD/gAAA/4AAAP+AAAD/AAAA/oAEAAAA/oAAAP8AAAD/gAAA/4AAAP+AAAAAAAABAAABgAKABAAADwAAAQEBAQEBAQEBAQEBAQEBAQAAAQAAAACAAAAAgAAAAIAAAP8AAAD/gAAA/4AAAP+ABAAAAP+AAAD/gAAA/4AAAP8AAAAAgAAAAIAAAACAAAAAAAABAAAAAAKABAAADwAAAQEBAQEBAQEBAQEBAQEBAQAAAQAAAACAAAAAgAAAAIAAAP8AAAD/gAAA/4AAAP+ABAAAAP+AAAD/gAAA/4AAAP2AAAACAAAAAIAAAACAAAAAAAABAYAAAAQAAoAABQAAAQEBAQEBAYACgAAA/oAAAP8AAoAAAP8AAAD+gAAAAAEAAAAABAAEAAAJAAABAQEBAQEBAQEBAAACgAAAAIAAAACAAAAAgAAA/AAEAAAA/wAAAP8AAAD/AAAA/wAAAAACAAAAAAQABAAAGwAfAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQGAAQAAAACAAAAAgAAAAIAAAP+AAAD/gAAA/4AAAP8AAAD/gAAA/4AAAP+AAAAAgAAAAIAAAACAAAAAAAEAAAAEAAAA/4AAAP+AAAD/gAAA/wAAAP+AAAD/gAAA/4AAAACAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAP8A/wAAAAEAAAEBgAGABAAEAAAFAAABAQEBAQEBgAEAAAABgAAA/YAEAAAA/oAAAP8AAAAAAQAAAAACgAKAAA8AAAEBAQEBAQEBAQEBAQEBAQEBgAEAAAD/gAAA/4AAAP+AAAD/AAAAAIAAAACAAAAAgAKAAAD/AAAA/4AAAP+AAAD/gAAAAQAAAACAAAAAgAAAAAAAAQGAAAAEAAQAAA8AAAEBAQEBAQEBAQEBAQEBAQEDAAEAAAD/gAAA/4AAAP+AAAD/AAAAAIAAAACAAAAAgAQAAAD/AAAA/4AAAP+AAAD+AAAAAoAAAACAAAAAgAAAAAAAAQGAAAAEAAKAAA8AAAEBAQEBAQEBAQEBAQEBAQEBgAEAAAAAgAAAAIAAAACAAAD/AAAA/4AAAP+AAAD/gAKAAAD/gAAA/4AAAP+AAAD/AAAAAIAAAACAAAAAgAAAAAAAAQGAAYAEAAQAAA8AAAEBAQEBAQEBAQEBAQEBAQEDAAEAAAD/gAAA/4AAAP+AAAD/AAAAAIAAAACAAAAAgAQAAAD/AAAA/4AAAP+AAAD/gAAAAQAAAACAAAAAgAAAAAAAAQAAAAAEAAQAABsAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAEAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAD/AAAA/4AAAP+AAAD/gAAA/4AAAP+AAAD/gAQAAAD/gAAA/4AAAP+AAAD/gAAA/4AAAP+AAAD/AAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAAAAAQAAAAAEAAQAAB8AAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAABAAAAAIAAAAEAAAAAgAAAAQAAAP+AAAD/gAAA/4AAAP+AAAD/gAAA/4AAAP8AAAAAgAAAAIAAAP+AAAD/gAQAAAD/gAAA/4AAAACAAAAAgAAA/wAAAP+AAAD/gAAA/4AAAP+AAAD/gAAA/4AAAAEAAAAAgAAAAQAAAACAAAAAAAABAAABgAQABAAADwAAAQEBAQEBAQEBAQEBAQEBAQAAAQAAAACAAAAAgAAAAgAAAP2AAAD/gAAA/4AAAP+ABAAAAP+AAAD/gAAA/4AAAP8AAAAAgAAAAIAAAACAAAAAAAABAAABgAQAAoAAAwAAAQEBAQAABAAAAPwAAoAAAP8AAAAAAAABAYAAAAKABAAAAwAAAQEBAQGAAQAAAP8ABAAAAPwAAAAAAAABAYAAAAQABAAAFwAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAwABAAAA/4AAAP+AAAAAgAAAAIAAAP8AAAD/gAAA/4AAAP+AAAAAgAAAAIAAAACABAAAAP8AAAD/gAAA/wAAAP+AAAD/AAAAAIAAAACAAAAAgAAAAQAAAACAAAAAgAAAAAAAAQAAAAAEAAKAAA8AAAEBAQEBAQEBAQEBAQEBAQEAAAKAAAAAgAAAAIAAAACAAAD/AAAA/4AAAP+AAAD+AAKAAAD/gAAA/4AAAP+AAAD/AAAAAIAAAACAAAAAgAAAAAAAAQAAAYAEAAQAAA8AAAEBAQEBAQEBAQEBAQEBAQEDAAEAAAD/gAAA/4AAAP+AAAD9gAAAAgAAAACAAAAAgAQAAAD/AAAA/4AAAP+AAAD/gAAAAQAAAACAAAAAgAAAAAAAAQAAAgAEAAQAAA8AAAEBAQEBAQEBAQEBAQEBAQEAAAQAAAD/gAAA/4AAAP+AAAD/AAAA/4AAAP+AAAD/gAQAAAD/gAAA/4AAAP+AAAD/gAAAAIAAAACAAAAAgAAAAAAAAQAAAYACgAKAAAMAAAEBAQEAAAKAAAD9gAKAAAD/AAAAAAAAAQGAAAACgAKAAAMAAAEBAQEBgAEAAAD/AAKAAAD9gAAAAAAAAQAAAYAEAAQAABcAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAQAAAACAAAABAAAAAIAAAAEAAAD/gAAA/4AAAP+AAAD/AAAA/4AAAP+AAAD/gAQAAAD/gAAA/4AAAACAAAAAgAAA/wAAAP+AAAD/gAAA/4AAAACAAAAAgAAAAIAAAAAAAAEAAAAABAAEAAAJAAABAQEBAQEBAQEBAYACgAAA/AAAAACAAAAAgAAAAIAEAAAA/AAAAAEAAAABAAAAAQAAAAABAAAAAAQABAAAEwAAAQEBAQEBAQEBAQEBAQEBAQEBAQEDAAEAAAD/gAAA/4AAAP+AAAD/AAAA/oAAAAEAAAABAAAAAIAAAACABAAAAP6AAAD/AAAA/4AAAP+AAAD/gAAAAQAAAACAAAAAgAAAAQAAAAAAAAEAAAAABAAEAAATAAABAQEBAQEBAQEBAQEBAQEBAQEBAQAAAQAAAACAAAAAgAAAAQAAAAEAAAD+gAAA/wAAAP+AAAD/gAAA/4AEAAAA/wAAAP8AAAD/gAAA/4AAAP8AAAAAgAAAAIAAAACAAAABAAAAAAAAAQAAAAAEAAQAABsAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEDAAEAAAD/gAAA/4AAAP+AAAD/gAAA/4AAAP+AAAD/AAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAQAAAD/AAAA/4AAAP+AAAD/gAAA/4AAAP+AAAD/gAAAAQAAAACAAAAAgAAAAIAAAACAAAAAgAAAAAAAAQAAAAACgAQAABcAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAQAAAACAAAAAgAAAAIAAAP+AAAD/gAAA/4AAAP8AAAAAgAAAAIAAAP+AAAD/gAQAAAD/gAAA/4AAAP+AAAD/AAAA/4AAAP+AAAD/gAAAAQAAAACAAAABAAAAAIAAAAAAAAEAAAAABAAEAAAfAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAQAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAP8AAAD/gAAA/wAAAP+AAAD/AAAAAIAAAACAAAD/gAAA/4AEAAAA/4AAAP+AAAD/gAAA/4AAAP+AAAD/gAAA/wAAAACAAAAAgAAA/4AAAP+AAAABAAAAAIAAAAEAAAAAgAAAAAAAAQAAAAACgAQAAA8AAAEBAQEBAQEBAQEBAQEBAQEBgAEAAAD/gAAA/4AAAP+AAAD/AAAAAIAAAACAAAAAgAQAAAD9gAAA/4AAAP+AAAD/gAAAAQAAAACAAAAAgAAAAAAAAQGAAAAEAAQAAA8AAAEBAQEBAQEBAQEBAQEBAQEBgAEAAAAAgAAAAIAAAACAAAD/AAAA/4AAAP+AAAD/gAQAAAD+AAAA/4AAAP+AAAD/AAAAAIAAAACAAAAAgAAAAAAAAQAAAAAEAAKAAA8AAAEBAQEBAQEBAQEBAQEBAQEBgAKAAAD+AAAA/4AAAP+AAAD/AAAAAIAAAACAAAAAgAKAAAD/AAAA/4AAAP+AAAD/gAAAAQAAAACAAAAAgAAAAAAAAQGAAYACgAQAAAMAAAEBAQEBgAEAAAD/AAQAAAD9gAAAAAAAAQGAAYAEAAKAAAMAAAEBAQEBgAKAAAD9gAKAAAD/AAAAAAAAAQAAAAAEAAQAAB8AAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAwABAAAA/4AAAP+AAAAAgAAAAIAAAP8AAAD/gAAA/wAAAP+AAAD/AAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAQAAAD/AAAA/4AAAP8AAAD/gAAA/wAAAACAAAAAgAAA/4AAAP+AAAABAAAAAIAAAACAAAAAgAAAAIAAAACAAAAAAAABAAAAAAQABAAAIwAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAABAAAAAIAAAAEAAAAAgAAAAQAAAP+AAAD/gAAAAIAAAACAAAD/AAAA/4AAAP8AAAD/gAAA/wAAAACAAAAAgAAA/4AAAP+ABAAAAP+AAAD/gAAAAIAAAACAAAD/AAAA/4AAAP8AAAD/gAAA/wAAAACAAAAAgAAA/4AAAP+AAAABAAAAAIAAAAEAAAAAgAAAAAAAAQGAAYACgAKAAAMAAAEBAQEBgAEAAAD/AAKAAAD/AAAAAAAAAQAAAAAEAAKAABcAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQGAAQAAAACAAAAAgAAAAIAAAP8AAAD/gAAA/wAAAP+AAAD/AAAAAIAAAACAAAAAgAKAAAD/gAAA/4AAAP+AAAD/AAAAAIAAAACAAAD/gAAA/4AAAAEAAAAAgAAAAIAAAAAAAAEAAAGAAoAEAAAFAAABAQEBAQEBgAEAAAD9gAAAAYAEAAAA/YAAAAEAAAAAAQAAAAACgAKAAAUAAAEBAQEBAQAAAoAAAP8AAAD+gAKAAAD9gAAAAYAAAAABAAAAAAQABAAAHwAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAEAAAAAgAAAAQAAAACAAAABAAAA/4AAAP+AAAAAgAAAAIAAAP8AAAD/gAAA/4AAAP+AAAD/gAAA/4AAAP+ABAAAAP+AAAD/gAAAAIAAAACAAAD/AAAA/4AAAP8AAAD/gAAA/wAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAAAAAAEAAAAABAAEAAALAAABAQEBAQEBAQEBAQEBgAEAAAABgAAA/oAAAP8AAAD+gAAAAYAEAAAA/oAAAP8AAAD+gAAAAYAAAAEAAAAAAAABAAAAAAQAAoAABwAAAQEBAQEBAQEAAAQAAAD+gAAA/wAAAP6AAoAAAP8AAAD+gAAAAYAAAAAAAAEBgAAABAAEAAAHAAABAQEBAQEBAQGAAQAAAAGAAAD+gAAA/wAEAAAA/oAAAP8AAAD+gAAAAAAAAQAAAAACgAQAAAcAAAEBAQEBAQEBAYABAAAA/wAAAP6AAAABgAQAAAD8AAAAAYAAAAEAAAAAAAABAAABgAQABAAABwAAAQEBAQEBAQEBgAEAAAABgAAA/AAAAAGABAAAAP6AAAD/AAAAAQAAAAAAAAQBAAEAAwADAAADAAcACwAPAAABAQEBAQEBAQEBAQEBAQEBAYABAAAA/wD/gACAAAD/gAGAAIAAAP+A/wABAAAA/wADAAAA/4AAAAAAAAD/AAAAAQAAAP8AAAAAAAAA/4AAAAACAIAAgAOAA4AACwAPAAABAQEBAQEBAQEBAQEBAQEBAQACAAAAAIAAAP+AAAD+AAAA/4AAAACAAIAAAAEAAAADgAAA/4AAAP4AAAD/gAAAAIAAAAIAAAD/gP8AAAABAAACAAAAAAQABAAAEwAfAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAgAAAACAAAAAgAAA/4AAAP+AAAD+AAAA/4AAAP+AAAAAgAAAAIAAgAAA/4AAAACAAAABAAAAAIAAAP+AAAAEAAAA/4AAAP+AAAD+AAAA/4AAAP+AAAAAgAAAAIAAAAIAAAAAgAAA/4D/gAAA/wAAAP+AAAAAgAAAAQAAAACAABAAAAAABAAEAAADAAcACwAPABMAFwAbAB8AIwAnACsALwAzADcAOwA/AAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAYAAgAAA/4ACAACAAAD/gP2AAIAAAP+AAgAAgAAA/4D9gACAAAD/gAIAAIAAAP+A/YAAgAAA/4ACAACAAAD/gP+AAIAAAP+AAgAAgAAA/4D9gACAAAD/gAIAAIAAAP+A/YAAgAAA/4ACAACAAAD/gP2AAIAAAP+AAgAAgAAA/4AEAAAA/4AAAACAAAD/gAAAAAAAAP+AAAAAgAAA/4AAAAAAAAD/gAAAAIAAAP+AAAAAAAAA/4AAAACAAAD/gAAAAAAAAP+AAAAAgAAA/4AAAAAAAAD/gAAAAIAAAP+AAAAAAAAA/4AAAACAAAD/gAAAAAAAAP+AAAAAgAAA/4AAAAAQAAAAAAQABAAAAwAHAAsADwATABcAGwAfACMAJwArAC8AMwA3ADsAPwAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAIAAAP+AAgAAgAAA/4D+gACAAAD/gAIAAIAAAP+A/oAAgAAA/4ACAACAAAD/gP6AAIAAAP+AAgAAgAAA/4D8gACAAAD/gAIAAIAAAP+A/oAAgAAA/4ACAACAAAD/gP6AAIAAAP+AAgAAgAAA/4D+gACAAAD/gAIAAIAAAP+ABAAAAP+AAAAAgAAA/4AAAAAAAAD/gAAAAIAAAP+AAAAAAAAA/4AAAACAAAD/gAAAAAAAAP+AAAAAgAAA/4AAAAAAAAD/gAAAAIAAAP+AAAAAAAAA/4AAAACAAAD/gAAAAAAAAP+AAAAAgAAA/4AAAAAAAAD/gAAAAIAAAP+AAAAAAwCAAIADgAQAABcAGwAfAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQIAAIAAAAEAAAD/AAAAAIAAAP+AAAABAAAA/wAAAP+AAAD/AAAA/4AAAACAAAABAP+AAAAAgAAA/4AAAACAAAAEAAAA/4AAAP+AAAD/gAAA/4AAAP+AAAD/gAAA/4AAAACAAAAAgAAAAYAAAACAAAD/gP+AAAAAgP8A/4AAAACAAAAAAQCAAIADgAOAAA8AAAEBAQEBAQEBAQEBAQEBAQEBAAIAAAAAgAAA/4AAAP+AAAD/AAAA/4AAAP+AAAAAgAOAAAD/gAAA/wAAAP+AAAD/AAAAAQAAAACAAAABAAAAAAAAAgCAAIADgAOAAAMACQAAAQEBAQEBAQEBAQCAAwAAAP0AAYAAAP8AAAACAAAAA4AAAP0AAAACgP8AAAD/AAAAAgAAAAABAIAAgAOAA4AAAwAAAQEBAQCAAwAAAP0AA4AAAP0AAAAAAAACAIAAgAOAA4AAAwALAAABAQEBAQEBAQEBAQEAgAMAAAD9AACAAAACAAAA/4AAAP8AAAADgAAA/QAAAAKA/gAAAAIAAAD/AAAAAQAAAQAAAAAEAAQAABMAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQACAAAAAIAAAACAAAD/gAAA/4AAAP4AAAD/gAAA/4AAAACAAAAAgAQAAAD/gAAA/4AAAP4AAAD/gAAA/4AAAACAAAAAgAAAAgAAAACAAAAAAAABAQABAAMAAwAACwAAAQEBAQEBAQEBAQEBAYABAAAAAIAAAP+AAAD/AAAA/4AAAACAAwAAAP+AAAD/AAAA/4AAAACAAAABAAAAAAAAAQCAAQAEAAQAABsAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQECAACAAAAAgAAAAQAAAP+AAAD/gAAAAIAAAP8AAAD/gAAA/wAAAACAAAD/gAAA/4AAAAEAAAAAgAQAAAD/gAAA/4AAAP+AAAD/gAAA/4AAAP+AAAAAgAAA/4AAAACAAAAAgAAAAIAAAACAAAAAgAAAAAAABgCAAIAEAAQAAAMABwALAA8AEwAXAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAgAOAAAD8gAEAAAAAgAAAAIAAAACAAAD+AAAAAIAAAAGAAAAAgAAA/gAAAAGAAAAEAAAA/IAAAAMA/wAAAAEAAAD/AAAAAQD+gP+AAAAAgAAA/4AAAACA/4D/gAAAAIAABgCAAIAEAAQAAAMABwALAA8AEwAXAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAgAOAAAD8gAEAAAAAgAAAAIAAAACAAAD+gAAAAYAAAP4AAAAAgAAAAYAAAACAAAAEAAAA/IAAAAMA/wAAAAEAAAD/AAAAAQD+gP+AAAAAgP+A/4AAAACAAAD/gAAAAIAABgCAAIAEAAQAABMAFwAbAB8AIwAnAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAgAAgAAAAIAAAAEAAAD/AAAA/4AAAP+AAAD/gAAA/wAAAAEAAAAAgAAAAAAAgAAA/oAAgAAA/4ACAACAAAD/gP4AAIAAAP+AAgAAgAAA/4AEAAAA/wAAAP+AAAD/gAAA/4AAAP8AAAABAAAAAIAAAACAAAAAgAAA/4D/gAAAAIABAAAA/4AAAACAAAD/gAAA/oAAAP+AAAAAgAAA/4AAAAACAQAAgAOABAAAFwAbAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAYABgAAAAIAAAP+AAAD/gAAAAIAAAP+AAAD/gAAA/4AAAACAAAD/gAAAAQAAAP8A/4AAgAAA/4AEAAAA/4AAAP8AAAD/gAAA/4AAAP+AAAD/gAAAAIAAAACAAAAAgAAAAIAAAAEAAAAAAAAA/wAAAAACAIAAgAQABAAAFwAbAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAYACgAAA/4AAAP+AAAD/gAAAAIAAAP+AAAD+gAAAAQAAAP8AAAABAAAAAIAAAP8A/wAAgAAA/4AEAAAA/gAAAAEAAAD/gAAA/4AAAP8AAAD/gAAAAIAAAAEAAAAAgAAAAIAAAACAAAD+gAAA/wAAAAABAIAAgAQABAAAGwAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQIAAIAAAACAAAAAgAAAAIAAAP8AAAD/gAAAAIAAAP6AAAAAgAAA/4AAAP8AAAAAgAAAAIAAAACABAAAAP+AAAD/gAAA/4AAAP8AAAAAgAAA/wAAAP+AAAAAgAAAAQAAAP+AAAABAAAAAIAAAACAAAAAAAABAIAAgAQABAAAGwAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQGAAYAAAP+AAAAAgAAAAQAAAP8AAAD/gAAAAIAAAP6AAAAAgAAA/4AAAP8AAAABAAAAAIAAAP+ABAAAAP8AAAD/gAAAAIAAAP6AAAAAgAAA/wAAAP+AAAAAgAAAAQAAAP+AAAABgAAA/4AAAACAAAAAAAABAIAAgAQABAAAFwAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAAAAAIAAAAEAAAAAgAAA/4AAAP+AAAD/gAAA/4AAAP+AAAD/gAAA/4AAAACABAAAAP+AAAAAgAAA/4AAAP6AAAD/gAAA/4AAAP+AAAAAgAAAAIAAAACAAAABgAAAAAAAAQCAAIAEAAQAABsAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQECAACAAAAAgAAAAIAAAACAAAD/gAAA/4AAAP+AAAD/gAAA/4AAAP+AAAD/gAAAAIAAAACAAAAAgAQAAAD/gAAA/4AAAP+AAAD/gAAA/4AAAP+AAAD/gAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAAAAAQEAAIADgAQAAAsAAAEBAQEBAQEBAQEBAQIAAYAAAP8AAAD/gAAA/wAAAACAAAAAgAQAAAD/AAAA/gAAAP+AAAABAAAAAIAAAAAAAAEAgACABAAEAAATAAABAQEBAQEBAQEBAQEBAQEBAQEBAQGAAoAAAP+AAAD/AAAAAIAAAACAAAD+gAAA/4AAAP8AAAAAgAAAAIAEAAAA/QAAAP+AAAABAAAAAIAAAAEAAAD+AAAA/4AAAAEAAAAAgAAAAAAAAAAYASYAAQAAAAAAAAAIAAAAAQAAAAAAAQAIAAgAAQAAAAAAAgAHABAAAQAAAAAAAwAIABcAAQAAAAAABAAQAB8AAQAAAAAABQALAC8AAQAAAAAABgAIADoAAQAAAAAACQAJAEIAAQAAAAAACgA6AEsAAQAAAAAADQARAIUAAQAAAAAADgAyAJYAAQAAAAAAEwAMAMgAAwABBAkAAAAQANQAAwABBAkAAQAQAOQAAwABBAkAAgAOAPQAAwABBAkAAwAQAQIAAwABBAkABAAgARIAAwABBAkABQAWATIAAwABBAkABgAQAUgAAwABBAkACQASAVgAAwABBAkACgB0AWoAAwABBAkADQAiAd4AAwABBAkADgBkAgAAAwABBAkAEwAYAmQoYykgMjAyMlVyc2FGb250UmVndWxhclVyc2FGb250VXJzYUZvbnQgUmVndWxhclZlcnNpb24gMS4wVXJzYUZvbnRVcnNhRnJhbmtBbiBvcGVuIGxpY2VuY2UgZ2VuZXJhbCBwdXJwb3NlIHRleHRtb2RlIGZvbnQgYnkgVXJzYUZyYW5rQ0MwIDEuMCBVbml2ZXJzYWxodHRwczovL2NyZWF0aXZlY29tbW9ucy5vcmcvcHVibGljZG9tYWluL3plcm8vMS4wL0hlbGxvIFdvcmxkIQAoAGMAKQAgADIAMAAyADIAVQByAHMAYQBGAG8AbgB0AFIAZQBnAHUAbABhAHIAVQByAHMAYQBGAG8AbgB0AFUAcgBzAGEARgBvAG4AdAAgAFIAZQBnAHUAbABhAHIAVgBlAHIAcwBpAG8AbgAgADEALgAwAFUAcgBzAGEARgBvAG4AdABVAHIAcwBhAEYAcgBhAG4AawBBAG4AIABvAHAAZQBuACAAbABpAGMAZQBuAGMAZQAgAGcAZQBuAGUAcgBhAGwAIABwAHUAcgBwAG8AcwBlACAAdABlAHgAdABtAG8AZABlACAAZgBvAG4AdAAgAGIAeQAgAFUAcgBzAGEARgByAGEAbgBrAEMAQwAwACAAMQAuADAAIABVAG4AaQB2AGUAcgBzAGEAbABoAHQAdABwAHMAOgAvAC8AYwByAGUAYQB0AGkAdgBlAGMAbwBtAG0AbwBuAHMALgBvAHIAZwAvAHAAdQBiAGwAaQBjAGQAbwBtAGEAaQBuAC8AegBlAHIAbwAvADEALgAwAC8ASABlAGwAbABvACAAVwBvAHIAbABkACEAAAADAAAAAAAAAGYAMwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==\r
8
+ `)).arrayBuffer();await this.ct(r),this.et=C.parse(r)[0],await this.ut()}Pt(e){if(e===void 0)return this.st;this.st=e,this.Et=this.Dt.calculateMaxGlyphDimensions(this.Bt.map(B=>B.character),this.st,this.ot);const r=this.ht.createTextureAtlas(this.Bt,this.Et,this.st,this.ot);this.Qt=r.framebuffer,this.rt=r.columns,this.it=r.rows}async It(e){try{const r=await fetch(e);if(!r.ok)throw new u(`Failed to load font file: ${r.status} ${r.statusText}`);const B=await r.arrayBuffer();await this.ct(B);const s=C.parse(B);if(!s||s.length===0)throw Error("Failed to parse font file");this.et=s[0],await this.ut()}catch(r){throw new u("Failed to load font: "+(r instanceof Error?r.message:"Unknown error"),r)}}async ct(e){const r=Date.now();this.ot=this.ot==="UrsaFont"?"UrsaFont":"CustomFont_"+r,this.gt=new FontFace(this.ot,e),await this.gt.load(),document.fonts.add(this.gt)}async ut(){const e=this.nt.extractCharacters(this.et),r=this.nt.filterProblematicCharacters(e);this.Bt=this.lt.createCharacterObjects(r,this.et),this.Et=this.Dt.calculateMaxGlyphDimensions(r,this.st,this.ot);const B=this.ht.createTextureAtlas(this.Bt,this.Et,this.st,this.ot);this.Qt=B.framebuffer,this.rt=B.columns,this.it=B.rows}getCharacterColor(e){return this.lt.getCharacterColor(e,this.Bt)}getCharacterColors(e){return this.lt.getCharacterColors(e,this.Bt)}hasAllCharacters(e){if(typeof e!="string"||e.length===0)return!1;const r=new Set(this.Bt.map(B=>B.character));for(const B of e)if(!r.has(B))return!1;return!0}S(){this.Qt.S(),document.fonts.delete(this.gt)}get fontFramebuffer(){return this.Qt}get characters(){return this.Bt}get textureColumns(){return this.rt}get textureRows(){return this.it}get maxGlyphDimensions(){return this.Et}get fontSize(){return this.st}get font(){return this.et}}class Z{constructor(e,r,B){g(this,"wt");g(this,"ft");g(this,"p");g(this,"_");g(this,"dt");g(this,"_t");g(this,"vt",!1);g(this,"bt");g(this,"xt");g(this,"yt");this.bt=e,this.xt=r,this.yt=B,this.xA()}xA(){this.vt||(this.wt=Math.floor(this.bt.width/this.xt),this.ft=Math.floor(this.bt.height/this.yt)),this.Mt()}Mt(){this.p=this.wt*this.xt,this._=this.ft*this.yt,this.dt=Math.floor((this.bt.width-this.p)/2),this._t=Math.floor((this.bt.height-this._)/2)}Gt(e,r){this.xt=e,this.yt=r,this.xA()}Ft(e,r){this.vt=!0,this.wt=e,this.ft=r,this.Mt()}Yt(){this.vt=!1,this.xA()}$t(){this.vt?this.Mt():this.xA()}Tt(e){if(e===void 0)return this.vt;this.vt=e}get cellWidth(){return this.xt}get cellHeight(){return this.yt}get cols(){return this.wt}get rows(){return this.ft}get width(){return this.p}get height(){return this._}get offsetX(){return this.dt}get offsetY(){return this._t}}class q{constructor(e,r=!1,B={}){g(this,"bt");g(this,"St");g(this,"Ot");g(this,"Ut");g(this,"onTransformChange");this.St=e,this.Ot=r,this.bt=this.kt(B.width,B.height),r&&this.setupTransformObserver()}kt(e,r){var s;const B=document.createElement("canvas");if(B.className="textmodeCanvas",B.style.imageRendering="pixelated",this.Ot)B.width=e||800,B.height=r||600,document.body.appendChild(B);else{const i=this.St.getBoundingClientRect();let E=Math.round(i.width),Q=Math.round(i.height);if(this.St instanceof HTMLVideoElement){const h=this.St;(E===0||Q===0)&&h.videoWidth>0&&h.videoHeight>0&&(E=h.videoWidth,Q=h.videoHeight)}B.width=E,B.height=Q,B.style.position="absolute",B.style.pointerEvents="none";const n=window.getComputedStyle(this.St);let a=parseInt(n.zIndex||"0",10);isNaN(a)&&(a=0),B.style.zIndex=""+(a+1),this.Vt(B),(s=this.St.parentNode)==null||s.insertBefore(B,this.St.nextSibling)}return B}Vt(e){const r=this.St.getBoundingClientRect();let B=this.St.offsetParent;if(B&&B!==document.body){const s=B.getBoundingClientRect();e.style.top=r.top-s.top+"px",e.style.left=r.left-s.left+"px"}else e.style.top=r.top+window.scrollY+"px",e.style.left=r.left+window.scrollX+"px"}$t(e,r){if(this.Ot)this.bt.width=e??this.bt.width,this.bt.height=r??this.bt.height;else{const B=this.St.getBoundingClientRect();let s=Math.round(B.width),i=Math.round(B.height);if(this.St instanceof HTMLVideoElement){const E=this.St;(s===0||i===0)&&E.videoWidth>0&&E.videoHeight>0&&(s=E.videoWidth,i=E.videoHeight)}this.bt.width=s,this.bt.height=i,this.Vt(this.bt)}}Rt(){const e={alpha:!1,premultipliedAlpha:!1,preserveDrawingBuffer:!0,antialias:!1,depth:!1,stencil:!1,powerPreference:"high-performance"},r=this.bt.getContext("webgl2",e)||this.bt.getContext("webgl",e);if(!r)throw new u("WebGL context could not be created. Ensure your browser supports WebGL.");return r}setupTransformObserver(){this.Ut=new ResizeObserver(e=>{for(const r of e){const B=r.contentRect;!this.onTransformChange||Math.round(B.width)===this.bt.width&&Math.round(B.height)===this.bt.height||this.onTransformChange()}}),this.Ut.observe(this.bt)}S(){this.Ut&&this.Ut.disconnect();const e=this.bt.getContext("webgl")||this.bt.getContext("webgl2");if(e){const r=e.getExtension("WEBGL_lose_context");r&&r.loseContext()}this.bt.parentNode&&this.bt.parentNode.removeChild(this.bt)}get canvas(){return this.bt}get width(){return this.bt.width}get height(){return this.bt.height}}class R{constructor(e,r,B,s={}){g(this,"WA");g(this,"Ht");g(this,"zt");g(this,"Jt");g(this,"Lt");g(this,"Kt");g(this,"Wt");g(this,"jt");g(this,"h");this.WA=e,this.Ht=r,this.zt=B,this.h=s;const i=this.zt.cols,E=this.zt.rows;this.Jt=this.WA.TA(i,E),this.Lt=this.WA.TA(i,E),this.Kt=this.WA.TA(i,E),this.Wt=this.WA.TA(i,E),this.jt=this.WA.TA(i,E)}$t(){const e=this.zt.cols,r=this.zt.rows;this.Jt.resize(e,r),this.Lt.resize(e,r),this.Kt.resize(e,r),this.Wt.resize(e,r),this.jt.resize(e,r)}enabled(e){this.h.enabled=e}enable(){this.enabled(!0)}disable(){this.enabled(!1)}S(){this.Jt.S(),this.Lt.S(),this.Kt.S(),this.Wt.S(),this.jt.S()}get characterFramebuffer(){return this.Jt}get primaryColorFramebuffer(){return this.Lt}get secondaryColorFramebuffer(){return this.Kt}get rotationFramebuffer(){return this.Wt}get transformFramebuffer(){return this.jt}get options(){return this.h}}class aA{constructor(e,r){g(this,"I");g(this,"WA");g(this,"Zt");this.WA=e,this.Zt=r;const B=Math.max(this.Zt.length,1);this.I=this.WA.TA(B,1),this.Nt()}Nt(){const e=this.Zt.length;this.I.width!==e&&this.I.resize(e,1);const r=new Uint8Array(1*e*4);for(let B=0;B<e;B++){const s=this.Zt[B],i=4*B;r[i]=s[0],r[i+1]=s[1],r[i+2]=s[2],r[i+3]=255}this.I.updatePixels(r,e,1)}setColors(e){this.Zt=e,this.Nt()}get colors(){return this.Zt}get framebuffer(){return this.I}get texture(){return this.I.texture}}class z extends R{constructor(r,B,s,i={}){super(r,B,s,i);g(this,"Xt");this.Xt=new aA(this.WA,this.Ht.getCharacterColors(" .:-=+*%@#"))}characters(r){f.C(this.Ht.hasAllCharacters(r),"One or more characters do not exist in the current font.",{method:"characters",providedValue:r})&&(this.h.characters=r,this.Xt.setColors(this.Ht.getCharacterColors(r)))}characterColor(r,B,s,i=255){const E=this.qt(r,"characterColor",B,s,i);E&&(this.h.characterColor=E)}characterColorMode(r){this.Ae(r,"characterColorMode")}cellColor(r,B,s,i=255){const E=this.qt(r,"cellColor",B,s,i);E&&(this.h.cellColor=E)}cellColorMode(r){this.Ae(r,"cellColorMode")}invert(r){this.te(r,"invert","Invert")}rotation(r){if(!f.C(typeof r=="number","Rotation angle must be a number.",{method:"rotation",providedValue:r}))return;(r%=360)<0&&(r+=360);const B=255*r/360,s=Math.floor(B)/255,i=Math.round(B-s);this.h.rotation=[s,i,0,1]}flipHorizontally(r){this.te(r,"flipHorizontally","Flip horizontally")}flipVertically(r){this.te(r,"flipVertically","Flip vertically")}qt(r,B,s,i,E=255){let Q,n,a,h;if(typeof r=="string"){const l=this.ee(r);if(!l)return f.C(!1,"Invalid hex color format. Use '#FF0000', '#F00', 'FF0000', or 'F00'.",{method:B,providedValue:r}),null;[Q,n,a,h]=l}else if(Q=r,n=s!==void 0?s:r,a=i!==void 0?i:r,h=E,!f.C([Q,n,a,h].every(l=>l>=0&&l<=255),B.charAt(0).toUpperCase()+B.slice(1)+" color values must be between 0 and 255",{method:B,providedValues:{r:Q,g:n,b:a,a:h}}))return null;return[Q/255,n/255,a/255,h/255]}Ae(r,B){f.C(["sampled","fixed"].includes(r),"Invalid color mode. Must be 'sampled' or 'fixed'.",{method:B,providedValue:r})&&(this.h[B]=r)}te(r,B,s){f.C(typeof r=="boolean"||typeof r=="number"&&Number.isInteger(r),s+" must be a boolean value or an integer (0 for false, any other number for true).",{method:B,providedValue:r})&&(this.h[B]=!!r)}ee(r){return r=r.replace(/^#/,""),/^[0-9A-Fa-f]{3}$|^[0-9A-Fa-f]{6}$/.test(r)?(r.length===3&&(r=r.split("").map(B=>B+B).join("")),[parseInt(r.slice(0,2),16),parseInt(r.slice(2,4),16),parseInt(r.slice(4,6),16),255]):null}}const F=`attribute vec2 a_position;\r
9
+ attribute vec2 a_texCoord;\r
10
+ varying vec2 v_uv;\r
11
+ \r
12
+ uniform float u_rotation; // rotation angle in radians\r
13
+ uniform vec2 u_center; // rotation center in normalized coordinates\r
14
+ uniform float u_aspectRatio; // canvas width / canvas height\r
15
+ \r
16
+ mat2 rotate2D(float angle) {\r
17
+ float s = sin(angle);\r
18
+ float c = cos(angle);\r
19
+ return mat2(c, -s, s, c);\r
20
+ }\r
21
+ \r
22
+ void main() {\r
23
+ v_uv = a_texCoord;\r
24
+ \r
25
+ // Use the position directly (it's already in normalized device coordinates)\r
26
+ vec2 pos = a_position;\r
27
+ \r
28
+ // Translate to origin for rotation\r
29
+ pos -= u_center;\r
30
+ \r
31
+ // Correct for aspect ratio: scale X coordinate to make space square\r
32
+ pos.x *= u_aspectRatio;\r
33
+ \r
34
+ // Rotate in corrected space\r
35
+ // Negate rotation to make positive values rotate clockwise (like p5.js)\r
36
+ pos = rotate2D(-u_rotation) * pos;\r
37
+ \r
38
+ // Restore aspect ratio: scale X coordinate back\r
39
+ pos.x /= u_aspectRatio;\r
40
+ \r
41
+ // Translate back from origin\r
42
+ pos += u_center;\r
43
+ \r
44
+ gl_Position = vec4(pos, 0.0, 1.0);\r
45
+ }\r
46
+ `,hA={enabled:!0,characters:" .:-=+*%@#",characterColor:[1,1,1,1],characterColorMode:"sampled",cellColor:[0,0,0,1],cellColorMode:"fixed",invert:!1,rotation:[0,0,0,255],flipHorizontally:!1,flipVertically:!1,brightnessRange:[0,255]};class k extends z{constructor(r,B,s){super(r,B,s,{...hA});g(this,"Be");g(this,"Qe");g(this,"se");g(this,"re");g(this,"ie");g(this,"Ee");this.Be=new x(r.context,F,"precision lowp float;uniform sampler2D u_sketchTexture;uniform vec2 u_gridCellDimensions;uniform vec2 u_brightnessRange;varying vec2 v_uv;void main(){vec2 cellCenter=(floor(v_uv*u_gridCellDimensions)+vec2(0.5))/u_gridCellDimensions;vec4 color=texture2D(u_sketchTexture,cellCenter);float brightness=dot(color.rgb,vec3(0.299,0.587,0.114));float brightnessValue=brightness*255.0;if(brightnessValue>=u_brightnessRange.x&&brightnessValue<=u_brightnessRange.y){gl_FragColor=color;}else{gl_FragColor=vec4(0.0);}}"),this.Qe=new x(r.context,F,"precision lowp float;uniform sampler2D u_sampleTexture;uniform vec4 u_fillColor;uniform bool u_useFixedColor;varying vec2 v_uv;void main(){vec4 sampleColor=texture2D(u_sampleTexture,v_uv);if(sampleColor.a>0.0){if(u_useFixedColor){gl_FragColor=u_fillColor;}else{gl_FragColor=sampleColor;}}else{gl_FragColor=vec4(0.0);}}"),this.re=new x(r.context,F,"precision lowp float;uniform sampler2D u_sampleTexture;uniform bool u_invert;uniform bool u_flipHorizontally;uniform bool u_flipVertically;varying vec2 v_uv;void main(){vec4 sampleColor=texture2D(u_sampleTexture,v_uv);if(sampleColor.a>0.0){float invertValue=u_invert ? 1.0 : 0.0;float flipHValue=u_flipHorizontally ? 1.0 : 0.0;float flipVValue=u_flipVertically ? 1.0 : 0.0;gl_FragColor=vec4(invertValue,flipHValue,flipVValue,1.0);}else{gl_FragColor=vec4(0.0);}}"),this.ie=new x(r.context,F,"precision lowp float;uniform sampler2D u_sampleTexture;uniform vec4 u_rotationColor;varying vec2 v_uv;void main(){vec4 sampleColor=texture2D(u_sampleTexture,v_uv);if(sampleColor.a>0.0){gl_FragColor=u_rotationColor;}else{gl_FragColor=vec4(0.0);}}"),this.se=new x(r.context,F,"precision lowp float;uniform sampler2D u_colorSampleFramebuffer;uniform sampler2D u_charPaletteTexture;uniform vec2 u_charPaletteSize;uniform vec2 u_brightnessRange;varying vec2 v_uv;void main(){vec4 color=texture2D(u_colorSampleFramebuffer,v_uv);if(color.a==0.0){gl_FragColor=vec4(0.0);return;}float brightness=dot(color.rgb,vec3(0.299,0.587,0.114))*255.0;vec2 range=u_brightnessRange;if(brightness<range.x||brightness>range.y){gl_FragColor=vec4(0.0);return;}float t=(brightness-range.x)/(range.y-range.x);float idx=clamp(floor(t*u_charPaletteSize.x),0.0,u_charPaletteSize.x-1.0);vec3 charColor=texture2D(u_charPaletteTexture,vec2((idx+0.5)/u_charPaletteSize.x,0.0)).rgb;gl_FragColor=vec4(charColor,1.0);}"),this.Ee=this.WA.TA(this.zt.cols,this.zt.rows)}ge(r){const B=this.zt.cols,s=this.zt.rows;this.Ee.begin(),this.WA.OA(),this.WA.IA(this.Be),this.WA.GA("u_sketchTexture",r),this.WA.GA("u_gridCellDimensions",[B,s]),this.WA.GA("u_brightnessRange",this.h.brightnessRange),this.WA.FA(0,0,B,s),this.Ee.end(),this.Lt.begin(),this.WA.OA(),this.WA.IA(this.Qe),this.WA.GA("u_sampleTexture",this.Ee),this.WA.GA("u_fillColor",this.h.characterColor),this.WA.GA("u_useFixedColor",this.h.characterColorMode==="fixed"),this.WA.FA(0,0,B,s),this.Lt.end(),this.Kt.begin(),this.WA.OA(),this.WA.IA(this.Qe),this.WA.GA("u_sampleTexture",this.Ee),this.WA.GA("u_fillColor",this.h.cellColor),this.WA.GA("u_useFixedColor",this.h.cellColorMode==="fixed"),this.WA.FA(0,0,B,s),this.Kt.end(),this.jt.begin(),this.WA.OA(),this.WA.IA(this.re),this.WA.GA("u_sampleTexture",this.Ee),this.WA.GA("u_invert",this.h.invert),this.WA.GA("u_flipHorizontally",this.h.flipHorizontally),this.WA.GA("u_flipVertically",this.h.flipVertically),this.WA.FA(0,0,B,s),this.jt.end(),this.Wt.begin(),this.WA.OA(),this.WA.IA(this.ie),this.WA.GA("u_sampleTexture",this.Ee),this.WA.GA("u_rotationColor",this.h.rotation),this.WA.FA(0,0,B,s),this.Wt.end(),this.Jt.begin(),this.WA.OA(),this.WA.IA(this.se),this.WA.GA("u_colorSampleFramebuffer",this.Ee),this.WA.GA("u_charPaletteTexture",this.Xt.texture),this.WA.GA("u_charPaletteSize",[this.Xt.colors.length,1]),this.WA.GA("u_brightnessRange",this.h.brightnessRange),this.WA.FA(0,0,B,s),this.Jt.end()}$t(){super.$t(),this.Ee.resize(this.zt.cols,this.zt.rows)}brightnessRange(r){f.C(Array.isArray(r)&&r.length===2&&r.every(B=>typeof B=="number"&&B>=0&&B<=255),"Brightness range must be an array of two numbers between 0 and 255.",{method:"brightnessRange",providedValue:r})&&(this.h.brightnessRange=r)}}const lA=Object.freeze(Object.defineProperty({__proto__:null,TextmodeBrightnessConverter:k,TextmodeConverter:R,TextmodeFeatureConverter:z},Symbol.toStringTag,{value:"Module"}));class AA{constructor(e,r,B){g(this,"WA");g(this,"et");g(this,"zt");g(this,"oe");g(this,"ne");g(this,"ae");g(this,"he");g(this,"De");g(this,"Jt");g(this,"Lt");g(this,"Kt");g(this,"Wt");g(this,"jt");this.WA=e,this.et=r,this.zt=B,this.De=this.WA.yA(W,"precision mediump float;uniform sampler2D u_characterTexture;uniform vec2 u_charsetDimensions;uniform sampler2D u_primaryColorTexture;uniform sampler2D u_secondaryColorTexture;uniform sampler2D u_transformTexture;uniform sampler2D u_asciiCharacterTexture;uniform sampler2D u_rotationTexture;uniform sampler2D u_captureTexture;uniform vec2 u_captureDimensions;uniform int u_backgroundMode;uniform vec2 u_gridCellDimensions;uniform vec2 u_gridPixelDimensions;mat2 rotate2D(float angle){float s=sin(angle);float c=cos(angle);return mat2(c,-s,s,c);}void main(){vec2 adjustedCoord=gl_FragCoord.xy/u_gridPixelDimensions;vec2 gridCoord=adjustedCoord*u_gridCellDimensions;vec2 cellCoord=floor(gridCoord);vec2 charIndexTexCoord=(cellCoord+0.5)/u_gridCellDimensions;vec4 primaryColor=texture2D(u_primaryColorTexture,charIndexTexCoord);vec4 secondaryColor=texture2D(u_secondaryColorTexture,charIndexTexCoord);vec4 transformColor=texture2D(u_transformTexture,charIndexTexCoord);bool isInverted=transformColor.r>0.5;bool flipHorizontal=transformColor.g>0.5;bool flipVertical=transformColor.b>0.5;vec4 encodedIndexVec=texture2D(u_asciiCharacterTexture,charIndexTexCoord);if(encodedIndexVec.a<0.01){gl_FragColor=(u_backgroundMode==0)? vec4(0.0):texture2D(u_captureTexture,gl_FragCoord.xy/u_captureDimensions);return;}int charIndex=int(encodedIndexVec.r*255.0+0.5)+int(encodedIndexVec.g*255.0+0.5)*256;int charCol=int(mod(float(charIndex),u_charsetDimensions.x));int charRow=charIndex/int(u_charsetDimensions.x);float flippedRow=(u_charsetDimensions.y-1.0)-float(charRow);vec2 charCoord=vec2(float(charCol),flippedRow)/u_charsetDimensions;vec4 rotationColor=texture2D(u_rotationTexture,charIndexTexCoord);float scaledAngle=rotationColor.r*255.0+rotationColor.g;float rotationAngle=(scaledAngle*360.0/255.0)*0.017453292;vec2 fractionalPart=fract(gridCoord)-0.5;if(flipHorizontal)fractionalPart.x=-fractionalPart.x;if(flipVertical)fractionalPart.y=-fractionalPart.y;fractionalPart=rotate2D(rotationAngle)*fractionalPart+0.5;vec2 cellSize=1.0/u_charsetDimensions;vec2 texCoord=charCoord+fractionalPart*cellSize;vec2 cellMax=charCoord+cellSize;if(any(lessThan(texCoord,charCoord))||any(greaterThan(texCoord,cellMax))){gl_FragColor=isInverted ? primaryColor : secondaryColor;return;}vec4 charTexel=texture2D(u_characterTexture,texCoord);if(isInverted)charTexel.rgb=1.0-charTexel.rgb;gl_FragColor=mix(secondaryColor,primaryColor,charTexel);}"),this.ne=new k(e,r,B),this.ae=new R(e,r,B),this.oe=[this.ne,this.ae],this.Jt=this.WA.TA(B.cols,B.rows),this.Lt=this.WA.TA(B.cols,B.rows),this.Kt=this.WA.TA(B.cols,B.rows),this.Wt=this.WA.TA(B.cols,B.rows),this.jt=this.WA.TA(B.cols,B.rows),this.he=this.WA.TA(this.zt.width,this.zt.height)}le(e){for(const B of this.oe)B.options.enabled&&B instanceof z&&B.ge(e);const r=(B,s)=>{B.begin(),this.WA.OA();for(const i of this.oe)i.options.enabled&&this.WA.kA(s(i),0,0);B.end()};r(this.Jt,B=>B.characterFramebuffer),r(this.Lt,B=>B.primaryColorFramebuffer),r(this.Kt,B=>B.secondaryColorFramebuffer),r(this.Wt,B=>B.rotationFramebuffer),r(this.jt,B=>B.transformFramebuffer),this.he.begin(),this.WA.OA(),this.WA.IA(this.De),this.WA.GA("u_characterTexture",this.et.fontFramebuffer),this.WA.GA("u_charsetDimensions",[this.et.textureColumns,this.et.textureRows]),this.WA.GA("u_asciiCharacterTexture",this.Jt.texture),this.WA.GA("u_primaryColorTexture",this.Lt.texture),this.WA.GA("u_secondaryColorTexture",this.Kt.texture),this.WA.GA("u_transformTexture",this.jt.texture),this.WA.GA("u_rotationTexture",this.Wt.texture),this.WA.GA("u_captureTexture",e.texture),this.WA.GA("u_backgroundMode",!1),this.WA.GA("u_captureDimensions",[e.width,e.height]),this.WA.GA("u_gridCellDimensions",[this.zt.cols,this.zt.rows]),this.WA.GA("u_gridPixelDimensions",[this.zt.width,this.zt.height]),this.WA.FA(0,0,this.he.width,this.he.height),this.he.end()}add(e){if(!f.C(e==="brightness"||e==="custom",'Converter type must be either "brightness" or "custom".',{method:"add",providedValue:e}))return;let r;return r=e==="brightness"?new k(this.WA,this.et,this.zt):new R(this.WA,this.et,this.zt),this.oe.push(r),r}remove(e){if(!f.C(e instanceof R,"Parameter must be a TextmodeConverter instance.",{method:"remove",providedValue:e}))return;const r=this.oe.indexOf(e);f.C(r!==-1,"Converter instance not found in pipeline.",{method:"remove",providedValue:e,convertersCount:this.oe.length})&&this.oe.splice(r,1)}$t(){this.he.resize(this.zt.width,this.zt.height);const e=this.zt.cols,r=this.zt.rows;this.Jt.resize(e,r),this.Lt.resize(e,r),this.Kt.resize(e,r),this.Wt.resize(e,r),this.jt.resize(e,r);for(const B of this.oe)B.$t()}hasEnabledConverters(){return this.oe.some(e=>e.options.enabled)}disable(){for(const e of this.oe)e.disable()}enable(){for(const e of this.oe)e.enable()}S(){for(const e of this.oe)e.S();this.Jt.S(),this.Lt.S(),this.Kt.S(),this.Wt.S(),this.jt.S(),this.he.S(),this.De.S()}get texture(){return this.he}get characterFramebuffer(){return this.Jt}get primaryColorFramebuffer(){return this.Lt}get secondaryColorFramebuffer(){return this.Kt}get rotationFramebuffer(){return this.Wt}get transformFramebuffer(){return this.jt}get brightness(){return this.ne}get custom(){return this.ae}}const cA=o=>class extends o{fill(e,r,B,s){this.WA.wA(e,r,B,s)}stroke(e,r,B,s){this.WA.fA(e,r,B,s)}strokeWeight(e){this.WA.dA(e)}noStroke(){this.WA.mA()}noFill(){this.WA.pA()}rotate(e){this.WA._A(e)}push(){this.WA.vA()}pop(){this.WA.bA()}rect(e,r,B=1,s=1){this.WA.FA(e,r,B,s)}line(e,r,B,s){this.WA.$A(e,r,B,s)}background(e,r=e,B=e,s=255){this.WA.SA(e,r,B,s)}createShader(e,r){return this.WA.yA(e,r)}createFilterShader(e){return this.WA.MA(e)}shader(e){this.WA.IA(e)}setUniform(e,r){this.WA.GA(e,r)}};class H{Ce(e){const r=e.get("brightness"),B=r==null?void 0:r.characterFramebuffer,s=r==null?void 0:r.primaryColorFramebuffer,i=r==null?void 0:r.secondaryColorFramebuffer,E=r==null?void 0:r.transformFramebuffer,Q=r==null?void 0:r.rotationFramebuffer;return B==null||B.loadPixels(),s==null||s.loadPixels(),i==null||i.loadPixels(),E==null||E.loadPixels(),Q==null||Q.loadPixels(),{characterPixels:(B==null?void 0:B.pixels)||new Uint8Array(0),primaryColorPixels:(s==null?void 0:s.pixels)||new Uint8Array(0),secondaryColorPixels:(i==null?void 0:i.pixels)||new Uint8Array(0),transformPixels:(E==null?void 0:E.pixels)||new Uint8Array(0),rotationPixels:(Q==null?void 0:Q.pixels)||new Uint8Array(0)}}ce(e,r){return e[r]+(e[r+1]<<8)}ue(e,r){return{r:e[r],g:e[r+1],b:e[r+2],a:e[r+3]}}}class ${Pe(e,r){return new Blob([e],{type:r})}Ie(e,r,B){try{const s=this.Pe(e,B),i=URL.createObjectURL(s),E=document.createElement("a");E.href=i,E.download=r,E.style.display="none",E.rel="noopener",document.body.appendChild(E),E.click(),document.body.removeChild(E),URL.revokeObjectURL(i)}catch(s){throw console.error("Failed to download file:",s),Error("File download failed: "+(s instanceof Error?s.message:"Unknown error"))}}we(){return new Date().toISOString().slice(0,19).replace(/:/g,"-")}fe(){const e=new Date;return{date:e.toISOString().split("T")[0],time:e.toTimeString().split(" ")[0].replace(/:/g,"-")}}de(e){return e.replace(/[<>:"/\\|?*]/g,"_").replace(/\s+/g,"_").replace(/_{2,}/g,"_").replace(/^_+|_+$/g,"").substring(0,255)}me(){return"'textmode-export'-"+this.we()}}class CA extends H{pe(e,r,B){const s=e[B]===255,i=e[B+1]===255,E=e[B+2]===255,Q=r[B],n=r[B+1];return{isInverted:s,flipHorizontal:i,flipVertical:E,rotation:Math.round(360*(Q+n/255)/255*100)/100}}_e(e,r,B){return{x:e,y:r,cellX:e*B.cellWidth,cellY:r*B.cellHeight}}ve(e,r){const B=[];let s=0;for(let i=0;i<r.rows;i++)for(let E=0;E<r.cols;E++){const Q=4*s,n=this.ce(e.characterPixels,Q);let a=this.ue(e.primaryColorPixels,Q),h=this.ue(e.secondaryColorPixels,Q);const l=this.pe(e.transformPixels,e.rotationPixels,Q);if(l.isInverted){const P=a;a=h,h=P}const c=this._e(E,i,r);B.push({charIndex:n,primaryColor:a,secondaryColor:h,transform:l,position:c}),s++}return B}}class DA{tt(e,r){const B=e.cmap;for(const s of B.tables)if(s.format===4){for(let i=0;i<s.startCount.length;i++)if(r>=s.startCount[i]&&r<=s.endCount[i]){if(s.idRangeOffset[i]===0)return r+s.idDelta[i]&65535;{const E=s.idRangeOffset[i]/2+(r-s.startCount[i])-(s.startCount.length-i);if(E>=0&&E<s.glyphIdArray.length){const Q=s.glyphIdArray[E];if(Q!==0)return Q+s.idDelta[i]&65535}}}}return 0}be(e,r,B,s,i){const E=i/e.head.unitsPerEm;return{getBoundingBox:()=>({x1:B+r.xMin*E,y1:s+-r.yMax*E,x2:B+r.xMax*E,y2:s+-r.yMin*E}),toSVG:()=>this.xe(r,B,s,E)}}xe(e,r,B,s){if(!e||!e.xs)return"";const{xs:i,ys:E,endPts:Q,flags:n}=e;if(!(i&&E&&Q&&n))return"";let a="",h=0;for(let l=0;l<Q.length;l++){const c=Q[l];if(!(c<h)){if(c>=h){const P=r+i[h]*s,I=B-E[h]*s;a+=`M${P.toFixed(2)},${I.toFixed(2)}`;let D=h+1;for(;D<=c;)if(1&n[D]){const w=r+i[D]*s,p=B-E[D]*s;a+=`L${w.toFixed(2)},${p.toFixed(2)}`,D++}else{const w=r+i[D]*s,p=B-E[D]*s;let m=D+1>c?h:D+1;if(1&n[m]){const y=r+i[m]*s,_=B-E[m]*s;a+=`Q${w.toFixed(2)},${p.toFixed(2)} ${y.toFixed(2)},${_.toFixed(2)}`,D=m+1}else{const y=(w+(r+i[m]*s))/2,_=(p+(B-E[m]*s))/2;a+=`Q${w.toFixed(2)},${p.toFixed(2)} ${y.toFixed(2)},${_.toFixed(2)}`,D=m}}a+="Z"}h=c+1}}return a}ye(e,r,B,s,i){const E=e.codePointAt(0)||0,Q=this.tt(r,E);let n=null;return r.glyf&&r.glyf[Q]!==null?n=r.glyf[Q]:C&&C.T&&C.T.glyf&&C.T.glyf.VA&&(n=C.T.glyf.VA(r,Q),r.glyf&&n&&(r.glyf[Q]=n)),this.be(r,n,B,s,i)}Me(e,r,B,s,i,E,Q,n){const a=B+(i-n*(Q/r.head.unitsPerEm))/2,h=s+(E+.7*Q)/2;return this.ye(e,r,a,h,Q).toSVG()||null}}class uA{constructor(){g(this,"Ge");this.Ge=new DA}Fe(e){return`<?xml version="1.0" encoding="UTF-8" standalone="no"?>
9
47
  <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
10
48
  <svg width="${e.width}" height="${e.height}" viewBox="0 0 ${e.width} ${e.height}"
11
49
  xmlns="http://www.w3.org/2000/svg" version="1.1">
12
50
  <title>textmode art generated via textmode.js</title>
13
- <desc>textmode art visualization generated by textmode.js library</desc>`}gQ(){return`
51
+ <desc>textmode art visualization generated by textmode.js library</desc>`}Ye(){return`
14
52
  </g>
15
- </svg>`}oQ(e,B){if(!B.nQ)return"";const s=B.backgroundColor,Q=`rgba(${s[0]},${s[1]},${s[2]},${s[3]/255})`;return`
16
- <rect width="${e.width}" height="${e.height}" fill="${Q}" />`}hQ(e){return`rgba(${e.r},${e.g},${e.b},${e.a/255})`}aQ(e,B){const{transform:s,position:Q}=e,i=Q.jB+B.fe/2,E=Q.ZB+B.de/2,r=[];if(s.LB||s.KB){const n=s.LB?-1:1,h=s.KB?-1:1;r.push(`translate(${i} ${E})`),r.push(`scale(${n} ${h})`),r.push(`translate(${-i} ${-E})`)}return s.rotation&&r.push(`rotate(${s.rotation} ${i} ${E})`),r.length?` transform="${r.join(" ")}"`:""}DQ(e,B,s){if(!s.nQ||e.qB.a===0)return"";const{position:Q}=e,i=this.hQ(e.qB);return s.lQ==="stroke"?`
17
- <rect x="${Q.jB}" y="${Q.ZB}" width="${B.fe}" height="${B.de}" stroke="${i}" fill="none" stroke-width="${s.strokeWidth}" />`:`
18
- <rect x="${Q.jB}" y="${Q.ZB}" width="${B.fe}" height="${B.de}" fill="${i}" />`}sQ(e,B,s,Q){const i=s.se[e.charIndex];if(!i)return"";const E=this.EQ.iQ(i._t,s.font,e.position.jB,e.position.ZB,B.fe,B.de,s.fontSize,i.St);if(!E)return"";const r=this.hQ(e.XB);return Q.lQ==="stroke"?`
19
- <path id="${`path-${e.charIndex}-${e.position.jB}-${e.position.ZB}`.replace(/\./g,"-")}" d="${E}" stroke="${r}" stroke-width="${Q.strokeWidth}" fill="none" />`:`
20
- <path d="${E}" fill="${r}" />`}CQ(e,B,s,Q){let i="";i+=this.DQ(e,B,Q);const E=this.aQ(e,B),r=this.sQ(e,B,s,Q);return r&&(E?(i+=`
21
- <g${E}>`,i+=r,i+=`
22
- </g>`):i+=r),i}cQ(e,B,s,Q){let i=this.rQ(B);i+=this.oQ(B,Q),i+=`
23
- <g id="ascii-cells">`;for(const E of e)i+=this.CQ(E,B,s,Q);return i+=this.gQ(),i}uQ(e){return e.replace(/<path[^>]*d=""[^>]*\/>/g,"").replace(/\n\s*\n/g,`
24
- `).replace(/[ \t]+$/gm,"")}}class uA extends L{PQ(e){return this.OB(e,"image/svg+xml;charset=utf-8")}IQ(e,B){this.UB(e,this.RB(B)+".svg","image/svg+xml;charset=utf-8")}wQ(e,B){this.IQ(e,B||this.$B())}}class tA{constructor(){g(this,"fQ");g(this,"dQ");g(this,"mQ");this.fQ=new CA,this.dQ=new PA,this.mQ=new uA}pQ(e){return{nQ:e.nQ??!0,lQ:e.lQ??"fill",strokeWidth:e.strokeWidth??1,backgroundColor:e.backgroundColor??[0,0,0,0]}}vQ(e,B={}){const s=this.pQ(B),Q=this.fQ._B(e.bQ),i=this.fQ.NB(Q,e.grid),E=this.dQ.cQ(i,e.grid,e.font,s);return this.dQ.uQ(E)}wQ(e,B={}){const s=this.vQ(e,B),Q=B.filename||this.mQ.$B();this.mQ.wQ(s,Q)}}class IA extends V{xQ(e,B,s,Q=" "){var r;const i=[];let E=0;for(let n=0;n<B.rows;n++){const h=[];for(let a=0;a<B.cols;a++){const D=4*E,l=this.TB(e.yB,D),u=((r=s.se[l])==null?void 0:r._t)||Q;h.push(u),E++}i.push(h)}return i}}class wA{_Q(e,B){const s=[];for(const i of e){let E=i.join("");B.yQ||(E=E.replace(/\s+$/,"")),s.push(E)}const Q=B.MQ==="crlf"?`\r
53
+ </svg>`}$e(e,r){if(!r.includeBackgroundRectangles)return"";const B=r.backgroundColor,s=`rgba(${B[0]},${B[1]},${B[2]},${B[3]/255})`;return`
54
+ <rect width="${e.width}" height="${e.height}" fill="${s}" />`}Te(e){return`rgba(${e.r},${e.g},${e.b},${e.a/255})`}Se(e,r){const{transform:B,position:s}=e,i=s.cellX+r.cellWidth/2,E=s.cellY+r.cellHeight/2,Q=[];if(B.flipHorizontal||B.flipVertical){const n=B.flipHorizontal?-1:1,a=B.flipVertical?-1:1;Q.push(`translate(${i} ${E})`),Q.push(`scale(${n} ${a})`),Q.push(`translate(${-i} ${-E})`)}return B.rotation&&Q.push(`rotate(${B.rotation} ${i} ${E})`),Q.length?` transform="${Q.join(" ")}"`:""}Oe(e,r,B){if(!B.includeBackgroundRectangles||e.secondaryColor.a===0)return"";const{position:s}=e,i=this.Te(e.secondaryColor);return B.drawMode==="stroke"?`
55
+ <rect x="${s.cellX}" y="${s.cellY}" width="${r.cellWidth}" height="${r.cellHeight}" stroke="${i}" fill="none" stroke-width="${B.strokeWidth}" />`:`
56
+ <rect x="${s.cellX}" y="${s.cellY}" width="${r.cellWidth}" height="${r.cellHeight}" fill="${i}" />`}ye(e,r,B,s){const i=B.characters[e.charIndex];if(!i)return"";const E=this.Ge.Me(i.character,B.font,e.position.cellX,e.position.cellY,r.cellWidth,r.cellHeight,B.fontSize,i.advanceWidth);if(!E)return"";const Q=this.Te(e.primaryColor);return s.drawMode==="stroke"?`
57
+ <path id="${`path-${e.charIndex}-${e.position.cellX}-${e.position.cellY}`.replace(/\./g,"-")}" d="${E}" stroke="${Q}" stroke-width="${s.strokeWidth}" fill="none" />`:`
58
+ <path d="${E}" fill="${Q}" />`}Ue(e,r,B,s){let i="";i+=this.Oe(e,r,s);const E=this.Se(e,r),Q=this.ye(e,r,B,s);return Q&&(E?(i+=`
59
+ <g${E}>`,i+=Q,i+=`
60
+ </g>`):i+=Q),i}ke(e,r,B,s){let i=this.Fe(r);i+=this.$e(r,s),i+=`
61
+ <g id="ascii-cells">`;for(const E of e)i+=this.Ue(E,r,B,s);return i+=this.Ye(),i}Ve(e){return e.replace(/<path[^>]*d=""[^>]*\/>/g,"").replace(/\n\s*\n/g,`
62
+ `).replace(/[ \t]+$/gm,"")}}class PA extends ${Re(e){return this.Pe(e,"image/svg+xml;charset=utf-8")}He(e,r){this.Ie(e,this.de(r)+".svg","image/svg+xml;charset=utf-8")}ze(e,r){this.He(e,r||this.me())}}class tA{constructor(){g(this,"Je");g(this,"Le");g(this,"Ke");this.Je=new CA,this.Le=new uA,this.Ke=new PA}We(e){return{includeBackgroundRectangles:e.includeBackgroundRectangles??!0,drawMode:e.drawMode??"fill",strokeWidth:e.strokeWidth??1,backgroundColor:e.backgroundColor??[0,0,0,0]}}je(e,r={}){const B=this.We(r),s=this.Je.Ce(e.pipeline),i=this.Je.ve(s,e.grid),E=this.Le.ke(i,e.grid,e.font,B);return this.Le.Ve(E)}ze(e,r={}){const B=this.je(e,r),s=r.filename||this.Ke.me();this.Ke.ze(B,s)}}class dA extends H{Ze(e,r,B,s=" "){var Q;const i=[];let E=0;for(let n=0;n<r.rows;n++){const a=[];for(let h=0;h<r.cols;h++){const l=4*E,c=this.ce(e.characterPixels,l),P=((Q=B.characters[c])==null?void 0:Q.character)||s;a.push(P),E++}i.push(a)}return i}}class IA{Ne(e,r){const B=[];for(const i of e){let E=i.join("");r.preserveTrailingSpaces||(E=E.replace(/\s+$/,"")),B.push(E)}const s=r.lineEnding==="crlf"?`\r
25
63
  `:`
26
- `;return s.join(Q)}}class dA extends L{GQ(e,B){const s=this.FQ(B);this.UB(e,s,"text/plain;charset=utf-8")}FQ(e){let B=this.RB(e);return B===".txt"||B.length<=4?this.$B():B}}class eA{constructor(){g(this,"fQ");g(this,"dQ");g(this,"mQ");this.fQ=new IA,this.dQ=new wA,this.mQ=new dA}pQ(e){return{yQ:e.yQ??!1,MQ:e.MQ??"lf",YQ:e.YQ??" "}}TQ(e,B={}){const s=this.pQ(B),Q=this.fQ._B(e.bQ),i=this.fQ.xQ(Q,e.grid,e.font,s.YQ);return this.dQ._Q(i,s)}GQ(e,B={}){const s=this.TQ(e,B),Q=B.filename||this.mQ.$B();this.mQ.GQ(s,Q)}}class fA extends V{SQ(e,B=1,s="transparent"){const Q=e.canvas;if(B===1&&s==="transparent")return Q;const i=document.createElement("canvas"),E=i.getContext("2d"),r=Math.round(Q.width*B),n=Math.round(Q.height*B);return i.width=r,i.height=n,s!=="transparent"&&(E.fillStyle=s,E.fillRect(0,0,r,n)),E.imageSmoothingEnabled=!1,E.drawImage(Q,0,0,Q.width,Q.height,0,0,r,n),i}}class mA{OQ(e,B){const s=this.UQ(B.format);return B.format==="png"?e.toDataURL(s):e.toDataURL(s,B.kQ)}async VQ(e,B){return new Promise((s,Q)=>{const i=this.UQ(B.format),E=r=>{r?s(r):Q(Error(`Failed to generate ${B.format.toUpperCase()} blob`))};B.format==="png"?e.toBlob(E,i):e.toBlob(E,i,B.kQ)})}UQ(e){switch(e){case"png":return"image/png";case"jpg":return"image/jpeg";case"webp":return"image/webp";default:throw Error("Unsupported image format: "+e)}}}const BA={HQ:"image/png",RQ:"image/jpeg",$Q:"image/webp"},z={HQ:".png",RQ:".jpg",$Q:".webp"};class pA extends L{zQ(e,B,s){this.JQ(e,this.RB(B)+z[s])}JQ(e,B){const s=URL.createObjectURL(e);try{const Q=document.createElement("a");Q.href=s,Q.download=B,Q.style.display="none",Q.rel="noopener",document.body.appendChild(Q),Q.click(),document.body.removeChild(Q)}finally{URL.revokeObjectURL(s)}}LQ(e){return e in BA&&e in z}UQ(e){return BA[e]}KQ(e){return z[e]}}class vA{constructor(){g(this,"fQ");g(this,"dQ");g(this,"mQ");this.fQ=new fA,this.dQ=new mA,this.mQ=new pA}pQ(e){return{format:e.format??"png",kQ:e.kQ??1,scale:e.scale??1,backgroundColor:e.backgroundColor??"transparent"}}WQ(e){if(console.log("Validating image export options:",e),!this.mQ.LQ(e.format))throw Error(`Saving '${e.format}' files is not supported`);if(e.kQ<0||e.kQ>1)throw Error("Image quality must be between 0.0 and 1.0");if(e.scale<=0)throw Error("Scale factor must be greater than 0");e.scale>10&&console.warn("Large scale factors may result in very large files and slow performance"),e.format==="jpg"&&e.backgroundColor==="transparent"&&(e.backgroundColor="black")}jQ(e,B={}){const s=this.pQ(B);if(this.WQ(s),s.scale===1&&s.backgroundColor==="transparent")return this.dQ.OQ(e.canvas,s);const Q=this.fQ.SQ(e,s.scale,s.backgroundColor);return this.dQ.OQ(Q,s)}async VQ(e,B={}){const s=this.pQ(B);if(this.WQ(s),s.scale===1&&s.backgroundColor==="transparent")return await this.dQ.VQ(e.canvas,s);const Q=this.fQ.SQ(e,s.scale,s.backgroundColor);return await this.dQ.VQ(Q,s)}async zQ(e,B={}){const s=await this.VQ(e,B),Q=B.format??"png",i=B.filename||this.mQ.$B();this.mQ.zQ(s,i,Q)}}const xA=o=>class extends o{toString(e={}){return new eA().TQ(this,e)}ZQ(e={}){new eA().GQ(this,e)}BQ(e={}){return new tA().vQ(this,e)}wQ(e={}){new tA().wQ(this,e)}async NQ(e,B="png",s={}){await new vA().zQ(this.XQ,{...s,filename:e,format:B})}},bA=o=>class extends o{async ee(e){return this.Vt.ee(e).then(()=>{const B=this.Vt.re;this.qQ.ue(B.width,B.height),this.As.resize()})}fontSize(e){if(!d.validate(typeof e=="number"&&e>0,"Font size must be a positive number greater than 0.",{method:"fontSize",Ut:e})||this.Vt.fontSize===e)return;this.Vt.te(e);const B=this.Vt.re;this.qQ.ue(B.width,B.height),this.As.resize(),this.wt.UA()}},_A=o=>class extends o{ts(e){return this.As.add(e)}es(e){this.As.remove(e)}};class yA{constructor(){g(this,"wt");g(this,"Vt");g(this,"As");g(this,"XQ");g(this,"qQ")}}class H extends function(B,...s){return s.reduce((Q,i)=>i(Q),B)}(yA,lA,xA,bA,_A){constructor(B=null,s={}){super();g(this,"me");g(this,"Bs");g(this,"ve");g(this,"Qs");g(this,"ss");g(this,"Es",null);g(this,"rs",0);g(this,"gs");g(this,"ns",!0);g(this,"hs",0);g(this,"Ds",0);g(this,"ls",0);g(this,"Cs",[]);g(this,"cs",10);g(this,"us",!1);g(this,"Ps",!1);g(this,"Is",()=>{});g(this,"ws",()=>{});g(this,"fs");g(this,"ds",!1);this.me=B,this.Ps=B===null,this.Qs=s.ps??"auto",this.ss=s.vs??60,this.gs=1e3/this.ss}static async create(B=null,s={}){const Q=new this(B,s),i=Q.Ps?s:void 0;let E,r;Q.XQ=new q(Q.me,Q.Ps,i),Q.wt=new EA(Q.XQ.Me()),Q.Ps?(E=s.width||800,r=s.height||600):(E=Q.XQ.width||800,r=Q.XQ.height||600),Q.Bs=Q.wt.createFramebuffer(E,r),Q.Vt=new K(Q.wt,s.fontSize??16),await Q.Vt.initialize(s.bs);const n=Q.Vt.re;return Q.qQ=new Z(Q.XQ.canvas,n.width,n.height),Q.As=new AA(Q.wt,Q.Vt,Q.qQ),Q.xs(),Q._s(),Q}xs(){this.fs=()=>{this.Ps?this.ws():this.resize()},window.addEventListener("resize",this.fs),window.ResizeObserver&&this.me&&!this.Ps&&(this.ve=new ResizeObserver(()=>{this.resize()}),this.ve.observe(this.me))}vB(){if(this.ys(),this.ls++,this.us)console.warn("Cannot render: Required resources have been disposed");else if(this.Ps?(this.Bs.O(),this.Is(),this.Bs.end()):this.Bs.update(this.me),this.As.xB()?(this.As.vB(this.Bs),this.wt.background(0),this.wt.image(this.As.texture,this.qQ.offsetX,this.qQ.offsetY,this.As.texture.width,this.As.texture.height)):(this.wt.clear(),this.wt.image(this.Bs,this.qQ.offsetX,this.qQ.offsetY,this.Bs.width,this.Bs.height)),this.ds){let B=0;this.wt.image(this.As.$e,B,0,this.As.$e.width,this.As.$e.height),B+=this.As.$e.width,this.wt.image(this.As.ze,B,0,this.As.ze.width,this.As.ze.height),B+=this.As.ze.width,this.wt.image(this.As.Je,B,0,this.As.Je.width,this.As.Je.height),B+=this.As.Je.width,this.wt.image(this.As.Ke,B,0,this.As.Ke.width,this.As.Ke.height),B+=this.As.Ke.width,this.wt.image(this.As.Le,B,0,this.As.Le.width,this.As.Le.height)}}resize(){this.XQ.resize(),this.Bs.resize(this.XQ.width,this.XQ.height),this.qQ.resize(),this.As.resize(),this.wt.UA(),this.Qs!=="manual"&&this.vB()}_s(){if(this.Qs!=="auto"||!this.ns)return;this.rs=performance.now();const B=s=>{if(!this.ns)return void(this.Es=null);const Q=s-this.rs;Q>=this.gs&&(this.vB(),this.rs=s-Q%this.gs),this.ns&&(this.Es=requestAnimationFrame(B))};this.Es=requestAnimationFrame(B)}ys(){const B=performance.now();if(this.Ds>0){const s=B-this.Ds;this.Cs.push(s),this.Cs.length>this.cs&&this.Cs.shift();const Q=this.Cs.reduce((i,E)=>i+E,0)/this.Cs.length;this.hs=1e3/Q}this.Ds=B}Ms(){this.Es&&(cancelAnimationFrame(this.Es),this.Es=null)}ps(B){this.Qs!==B&&(this.Ms(),this.Qs=B,B==="auto"&&this.ns&&this._s())}vs(B){if(B===void 0)return this.hs;this.ss=B,this.gs=1e3/B,this.Qs==="auto"&&this.ns&&(this.Ms(),this._s())}Gs(){this.ns&&(this.ns=!1,this.Es&&(cancelAnimationFrame(this.Es),this.Es=null))}loop(){this.ns||(this.ns=!0,this.Qs==="auto"&&this._s())}Fs(B=1){if(d.validate(typeof B=="number"&&B>0&&Number.isInteger(B),"Redraw count must be a positive integer.",{method:"redraw",Ut:B}))for(let s=0;s<B;s++)this.vB()}Ys(){return this.Qs==="auto"&&this.ns}draw(B){this.Is=B}Ts(B){this.ws=B}Ss(B,s){this.XQ.resize(B,s),this.Bs.resize(this.XQ.width,this.XQ.height),this.qQ.resize(),this.As.resize(),this.wt.UA(),this.Qs!=="manual"&&this.vB()}destroy(){this.us||(this.Ms(),window.removeEventListener("resize",this.fs),this.ve&&this.ve.disconnect(),this.As.dispose(),this.Vt.dispose(),this.Bs.dispose(),this.wt.dispose(),this.us=!0)}debug(B){this.ds=B}get grid(){return this.qQ}get font(){return this.Vt}get mode(){return this.Qs}get bQ(){return this.As}get frameCount(){return this.ls}set frameCount(B){this.ls=B}get width(){return this.XQ.width}get height(){return this.XQ.height}get Os(){return this.us}}class Y{static async create(e,B={}){if(e instanceof HTMLCanvasElement||e instanceof HTMLVideoElement)return H.create(e,B);{const s=e||{};return H.create(null,s)}}static Us(e){d.u(e)}static get version(){return"0.1.6-beta.6"}}const MA=Object.freeze(Object.defineProperty({__proto__:null},Symbol.toStringTag,{value:"Module"})),TA=Y.create,RA=Y.Us,SA=Y.version;I.ks=q,I.Vs=AA,I.Hs=b,I.Rs=K,I.$s=Z,I.zs=H,I.wB=DA,I.create=TA,I.Js=MA,I.Us=RA,I.Ls=Y,I.version=SA,Object.defineProperty(I,Symbol.toStringTag,{value:"Module"})},typeof exports=="object"&&typeof module<"u"?t(exports):typeof define=="function"&&define.amd?define(["exports"],t):t((A=typeof globalThis<"u"?globalThis:A||self).Ls={});
64
+ `;return B.join(s)}}class fA extends ${Xe(e,r){const B=this.qe(r);this.Ie(e,B,"text/plain;charset=utf-8")}qe(e){let r=this.de(e);return r===".txt"||r.length<=4?this.me():r}}class eA{constructor(){g(this,"Je");g(this,"Le");g(this,"Ke");this.Je=new dA,this.Le=new IA,this.Ke=new fA}We(e){return{preserveTrailingSpaces:e.preserveTrailingSpaces??!1,lineEnding:e.lineEnding??"lf",emptyCharacter:e.emptyCharacter??" "}}AB(e,r={}){const B=this.We(r),s=this.Je.Ce(e.pipeline),i=this.Je.Ze(s,e.grid,e.font,B.emptyCharacter);return this.Le.Ne(i,B)}Xe(e,r={}){const B=this.AB(e,r),s=r.filename||this.Ke.me();this.Ke.Xe(B,s)}}class wA extends H{tB(e,r=1,B="transparent"){const s=e.canvas;if(r===1&&B==="transparent")return s;const i=document.createElement("canvas"),E=i.getContext("2d"),Q=Math.round(s.width*r),n=Math.round(s.height*r);return i.width=Q,i.height=n,B!=="transparent"&&(E.fillStyle=B,E.fillRect(0,0,Q,n)),E.imageSmoothingEnabled=!1,E.drawImage(s,0,0,s.width,s.height,0,0,Q,n),i}}class mA{eB(e,r){const B=this.BB(r.format);return r.format==="png"?e.toDataURL(B):e.toDataURL(B,r.quality)}async QB(e,r){return new Promise((B,s)=>{const i=this.BB(r.format),E=Q=>{Q?B(Q):s(Error(`Failed to generate ${r.format.toUpperCase()} blob`))};r.format==="png"?e.toBlob(E,i):e.toBlob(E,i,r.quality)})}BB(e){switch(e){case"png":return"image/png";case"jpg":return"image/jpeg";case"webp":return"image/webp";default:throw Error("Unsupported image format: "+e)}}}const pA={png:"image/png",jpg:"image/jpeg",webp:"image/webp"},rA={png:".png",jpg:".jpg",webp:".webp"};class xA extends ${sB(e,r,B){this.rB(e,this.de(r)+rA[B])}rB(e,r){const B=URL.createObjectURL(e);try{const s=document.createElement("a");s.href=B,s.download=r,s.style.display="none",s.rel="noopener",document.body.appendChild(s),s.click(),document.body.removeChild(s)}finally{URL.revokeObjectURL(B)}}iB(e){return e in pA&&e in rA}}class vA{constructor(){g(this,"Je");g(this,"Le");g(this,"Ke");this.Je=new wA,this.Le=new mA,this.Ke=new xA}We(e){return{format:e.format??"png",quality:e.quality??1,scale:e.scale??1,backgroundColor:e.backgroundColor??"transparent"}}EB(e){if(console.log("Validating image export options:",e),!this.Ke.iB(e.format))throw Error(`Saving '${e.format}' files is not supported`);if(e.quality<0||e.quality>1)throw Error("Image quality must be between 0.0 and 1.0");if(e.scale<=0)throw Error("Scale factor must be greater than 0");e.scale>10&&console.warn("Large scale factors may result in very large files and slow performance"),e.format==="jpg"&&e.backgroundColor==="transparent"&&(e.backgroundColor="black")}gB(e,r={}){const B=this.We(r);if(this.EB(B),B.scale===1&&B.backgroundColor==="transparent")return this.Le.eB(e.canvas,B);const s=this.Je.tB(e,B.scale,B.backgroundColor);return this.Le.eB(s,B)}async QB(e,r={}){const B=this.We(r);if(this.EB(B),B.scale===1&&B.backgroundColor==="transparent")return await this.Le.QB(e.canvas,B);const s=this.Je.tB(e,B.scale,B.backgroundColor);return await this.Le.QB(s,B)}async sB(e,r={}){const B=await this.QB(e,r),s=r.format??"png",i=r.filename||this.Ke.me();this.Ke.sB(B,i,s)}}const bA=o=>class extends o{toString(e={}){return new eA().AB(this,e)}saveStrings(e={}){new eA().Xe(this,e)}toSVG(e={}){return new tA().je(this,e)}saveSVG(e={}){new tA().ze(this,e)}async saveCanvas(e,r="png",B={}){await new vA().sB(this.textmodeCanvas,{...B,filename:e,format:r})}},yA=o=>class extends o{async loadFont(e){return this.et.It(e).then(()=>{const r=this.et.maxGlyphDimensions;this.zt.Gt(r.width,r.height),this.oB.$t()})}fontSize(e){if(!f.C(typeof e=="number"&&e>0,"Font size must be a positive number greater than 0.",{method:"fontSize",providedValue:e})||this.et.fontSize===e)return;this.et.Pt(e);const r=this.et.maxGlyphDimensions;this.zt.Gt(r.width,r.height),this.oB.$t(),this.WA.UA()}},_A=o=>class extends o{addConverter(e){return this.oB.add(e)}removeConverter(e){this.oB.remove(e)}};class TA{constructor(){g(this,"WA");g(this,"et");g(this,"oB");g(this,"textmodeCanvas");g(this,"zt")}}class J extends function(r,...B){return B.reduce((s,i)=>i(s),r)}(TA,cA,bA,yA,_A){constructor(r=null,B={}){super();g(this,"St");g(this,"nB");g(this,"Ut");g(this,"aB");g(this,"hB");g(this,"DB",null);g(this,"lB",0);g(this,"CB");g(this,"cB",!0);g(this,"uB",0);g(this,"PB",0);g(this,"IB",0);g(this,"wB",[]);g(this,"fB",10);g(this,"dB",!1);g(this,"mB",!1);g(this,"pB",()=>{});g(this,"_B",()=>{});g(this,"vB");this.St=r,this.mB=r===null,this.aB=B.renderMode??"auto",this.hB=B.frameRate??60,this.CB=1e3/this.hB}static async create(r=null,B={}){const s=new this(r,B),i=s.mB?B:void 0;let E,Q;s.textmodeCanvas=new q(s.captureSource,s.mB,i),s.WA=new EA(s.textmodeCanvas.Rt()),s.mB?(E=B.width||800,Q=B.height||600):(E=s.textmodeCanvas.width||800,Q=s.textmodeCanvas.height||600),s.nB=s.WA.TA(E,Q),s.et=new j(s.WA,B.fontSize??16),await s.et.Ct(B.fontSource);const n=s.et.maxGlyphDimensions;return s.zt=new Z(s.textmodeCanvas.canvas,n.width,n.height),s.oB=new AA(s.WA,s.et,s.zt),s.bB(),s.xB(),s}bB(){this.vB=()=>{this.mB?this._B():this.yB()},window.addEventListener("resize",this.vB),window.ResizeObserver&&this.St&&!this.mB&&(this.Ut=new ResizeObserver(()=>{this.yB()}),this.Ut.observe(this.St))}render(){this.MB(),this.IB++,this.dB?console.warn("Cannot render: Required resources have been disposed"):(this.mB?(this.nB.begin(),this.pB(),this.nB.end()):this.nB.update(this.St),this.oB.hasEnabledConverters()?(this.oB.le(this.nB),this.WA.SA(0),this.WA.kA(this.oB.texture,this.zt.offsetX,this.zt.offsetY,this.oB.texture.width,this.oB.texture.height)):(this.WA.OA(),this.WA.kA(this.nB,this.zt.offsetX,this.zt.offsetY,this.nB.width,this.nB.height)))}yB(){this.textmodeCanvas.$t(),this.nB.resize(this.textmodeCanvas.width,this.textmodeCanvas.height),this.zt.$t(),this.oB.$t(),this.WA.UA(),this.aB!=="manual"&&this.render()}xB(){if(this.aB!=="auto"||!this.cB)return;this.lB=performance.now();const r=B=>{if(!this.cB)return void(this.DB=null);const s=B-this.lB;s>=this.CB&&(this.render(),this.lB=B-s%this.CB),this.cB&&(this.DB=requestAnimationFrame(r))};this.DB=requestAnimationFrame(r)}MB(){const r=performance.now();if(this.PB>0){const B=r-this.PB;this.wB.push(B),this.wB.length>this.fB&&this.wB.shift();const s=this.wB.reduce((i,E)=>i+E,0)/this.wB.length;this.uB=1e3/s}this.PB=r}GB(){this.DB&&(cancelAnimationFrame(this.DB),this.DB=null)}renderMode(r){this.aB!==r&&(this.GB(),this.aB=r,r==="auto"&&this.cB&&this.xB())}frameRate(r){if(r===void 0)return this.uB;this.hB=r,this.CB=1e3/r,this.aB==="auto"&&this.cB&&(this.GB(),this.xB())}noLoop(){this.cB&&(this.cB=!1,this.DB&&(cancelAnimationFrame(this.DB),this.DB=null))}loop(){this.cB||(this.cB=!0,this.aB==="auto"&&this.xB())}redraw(r=1){if(f.C(typeof r=="number"&&r>0&&Number.isInteger(r),"Redraw count must be a positive integer.",{method:"redraw",providedValue:r}))for(let B=0;B<r;B++)this.render()}isLooping(){return this.aB==="auto"&&this.cB}draw(r){this.pB=r}windowResized(r){this._B=r}resizeCanvas(r,B){this.textmodeCanvas.$t(r,B),this.nB.resize(this.textmodeCanvas.width,this.textmodeCanvas.height),this.zt.$t(),this.oB.$t(),this.WA.UA(),this.aB!=="manual"&&this.render()}destroy(){this.dB||(this.GB(),window.removeEventListener("resize",this.vB),this.Ut&&this.Ut.disconnect(),this.oB.S(),this.et.S(),this.nB.S(),this.WA.S(),this.dB=!0)}get grid(){return this.zt}get font(){return this.et}get mode(){return this.aB}get pipeline(){return this.oB}get frameCount(){return this.IB}set frameCount(r){this.IB=r}get width(){return this.textmodeCanvas.width}get height(){return this.textmodeCanvas.height}get isDisposed(){return this.dB}}class Y{static async create(e,r={}){if(e instanceof HTMLCanvasElement||e instanceof HTMLVideoElement)return J.create(e,r);{const B=e||{};return J.create(null,B)}}static setErrorLevel(e){f.u(e)}static get version(){return"0.1.6-beta.7"}}const GA=Object.freeze(Object.defineProperty({__proto__:null},Symbol.toStringTag,{value:"Module"})),MA=Y.create,RA=Y.setErrorLevel,FA=Y.version;d.TextmodeCanvas=q,d.TextmodeConversionPipeline=AA,d.TextmodeErrorLevel=v,d.TextmodeFont=j,d.TextmodeGrid=Z,d.Textmodifier=J,d.converters=lA,d.create=MA,d.export=GA,d.setErrorLevel=RA,d.textmode=Y,d.version=FA,Object.defineProperty(d,Symbol.toStringTag,{value:"Module"})},typeof exports=="object"&&typeof module<"u"?t(exports):typeof define=="function"&&define.amd?define(["exports"],t):t((A=typeof globalThis<"u"?globalThis:A||self).textmode={});