UNPKG

aframe-input

Version:
6 lines 121 kB
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).AframeInput=e()}(this,(function(){"use strict";void 0!==typeof self&&self;!function(t,e){function r(t){return t&&"object"==typeof t&&"default"in t?t:{default:t}}function n(t){if(t&&t.__esModule)return t;var e=Object.create(null);return t&&Object.keys(t).forEach((function(r){if("default"!==r){var n=Object.getOwnPropertyDescriptor(t,r);Object.defineProperty(e,r,n.get?n:{enumerable:!0,get:function(){return t[r]}})}})),e.default=t,Object.freeze(e)}var a=n(t),i=r(e);function o(){var t,e=0,r=[],n=0,a=0,i=c((function(t){a||l(1,t)})),s=c((function(t){a||l(-1,t)}));function l(r,n){a++;var i=0;try{n===g&&p();var o=r>0&&h(n);o?o.call(n,c((function(t){i++,l(1,t)})),c((function(t){i++,l(-1,t)}))):(e=r,t=n,u())}catch(t){e||i||l(-1,t)}}function u(){n||(setTimeout(f,0),n=1)}function f(){var t=r;n=0,r=[],t.forEach(d)}function d(t){t()}function h(t){var e=t&&(v(t)||"object"==typeof t)&&t.then;return v(e)&&e}function c(t){var e=0;return function(){for(var r=[],n=arguments.length;n--;)r[n]=arguments[n];e++||t.apply(this,r)}}function p(){throw new TypeError("Chaining cycle detected")}var v=function(t){return"function"==typeof t},g={then:function(n,a){var i=o();return r.push((function(){var r=e>0?n:a;if(v(r))try{var o=r(t);o===i&&p();var s=h(o);s?s.call(o,i.resolve,i.reject):i.resolve(o)}catch(t){i.reject(t)}else i[e>0?"resolve":"reject"](t)})),e&&u(),i},resolve:i,reject:s};return g}function s(){var t,e,r=new Promise((function(r,n){t=r,e=n}));return{then:r.then.bind(r),resolve:t,reject:e}}o.all=s.all=function(t){var e=0,r=[],n=l();return 0===t.length?n.resolve([]):t.forEach((function(a,i){var o=l();o.resolve(a),o.then((function(a){e++,r[i]=a,e===t.length&&n.resolve(r)}),n.reject)})),n};var l="function"==typeof Promise?s:o;function u(){var t=Object.create(null);function e(n,a){var i=n.id,o=n.name,s=n.dependencies;void 0===s&&(s=[]);var l=n.init;void 0===l&&(l=function(){});var u=n.getTransferables;if(void 0===u&&(u=null),!t[i])try{s=s.map((function(r){return r&&r.isWorkerModule&&(e(r,(function(t){if(t instanceof Error)throw t})),r=t[r.id].value),r})),l=r("<"+o+">.init",l),u&&(u=r("<"+o+">.getTransferables",u));var f=null;"function"==typeof l?f=l.apply(void 0,s):console.error("worker module init function failed to rehydrate"),t[i]={id:i,value:f,getTransferables:u},a(f)}catch(t){t&&t.noLog||console.error(t),a(t)}}function r(t,e){var r=void 0;self.troikaDefine=function(t){return r=t};var n=URL.createObjectURL(new Blob(["/** "+t.replace(/\*/g,"")+" **/\n\ntroikaDefine(\n"+e+"\n)"],{type:"application/javascript"}));try{importScripts(n)}catch(t){console.error(t)}return URL.revokeObjectURL(n),delete self.troikaDefine,r}self.addEventListener("message",(function(r){var n=r.data,a=n.messageId,i=n.action,o=n.data;try{"registerModule"===i&&e(o,(function(t){t instanceof Error?postMessage({messageId:a,success:!1,error:t.message}):postMessage({messageId:a,success:!0,result:{isCallable:"function"==typeof t}})})),"callModule"===i&&function(e,r){var n,a=e.id,i=e.args;t[a]&&"function"==typeof t[a].value||r(new Error("Worker module "+a+": not found or its 'init' did not return a function"));try{var o=(n=t[a]).value.apply(n,i);o&&"function"==typeof o.then?o.then(s,(function(t){return r(t instanceof Error?t:new Error(""+t))})):s(o)}catch(t){r(t)}function s(e){try{var n=t[a].getTransferables&&t[a].getTransferables(e);n&&Array.isArray(n)&&n.length||(n=void 0),r(e,n)}catch(t){console.error(t),r(t)}}}(o,(function(t,e){t instanceof Error?postMessage({messageId:a,success:!1,error:t.message}):postMessage({messageId:a,success:!0,result:t},e||void 0)}))}catch(t){postMessage({messageId:a,success:!1,error:t.stack})}}))}var f=function(){var t=!1;if("undefined"!=typeof window&&void 0!==window.document)try{new Worker(URL.createObjectURL(new Blob([""],{type:"application/javascript"}))).terminate(),t=!0}catch(t){console.log("Troika createWorkerModule: web workers not allowed; falling back to main thread execution. Cause: ["+t.message+"]")}return f=function(){return t},t},d=0,h=0,c=!1,p=Object.create(null),v=Object.create(null),g=Object.create(null);function m(t){if(!(t&&"function"==typeof t.init||c))throw new Error("requires `options.init` function");var e=t.dependencies,r=t.init,n=t.getTransferables,a=t.workerId;if(!f())return function(t){var e=function(){for(var t=[],r=arguments.length;r--;)t[r]=arguments[r];return e._getInitResult().then((function(e){if("function"==typeof e)return e.apply(void 0,t);throw new Error("Worker module function was called but `init` did not return a callable function")}))};return e._getInitResult=function(){var r=t.dependencies,n=t.init;r=Array.isArray(r)?r.map((function(t){return t&&t._getInitResult?t._getInitResult():t})):[];var a=l.all(r).then((function(t){return n.apply(null,t)}));return e._getInitResult=function(){return a},a},e}(t);null==a&&(a="#default");var i="workerModule"+ ++d,o=t.name||i,s=null;function u(){for(var t=[],e=arguments.length;e--;)t[e]=arguments[e];if(!s){s=b(a,"registerModule",u.workerModuleData);var r=function(){s=null,v[a].delete(r)};(v[a]||(v[a]=new Set)).add(r)}return s.then((function(e){if(e.isCallable)return b(a,"callModule",{id:i,args:t});throw new Error("Worker module function was called but `init` did not return a callable function")}))}return e=e&&e.map((function(t){return"function"!=typeof t||t.workerModuleData||(c=!0,t=m({workerId:a,name:"<"+o+"> function dependency: "+t.name,init:"function(){return (\n"+y(t)+"\n)}"}),c=!1),t&&t.workerModuleData&&(t=t.workerModuleData),t})),u.workerModuleData={isWorkerModule:!0,id:i,name:o,dependencies:e,init:y(r),getTransferables:n&&y(n)},u}function y(t){var e=t.toString();return!/^function/.test(e)&&/^\w+\s*\(/.test(e)&&(e="function "+e),e}function b(t,e,r){var n=l(),a=++h;return g[a]=function(t){t.success?n.resolve(t.result):n.reject(new Error("Error in worker "+e+" call: "+t.error))},function(t){var e=p[t];if(!e){var r=y(u);(e=p[t]=new Worker(URL.createObjectURL(new Blob(["/** Worker Module Bootstrap: "+t.replace(/\*/g,"")+" **/\n\n;("+r+")()"],{type:"application/javascript"})))).onmessage=function(t){var e=t.data,r=e.messageId,n=g[r];if(!n)throw new Error("WorkerModule response with empty or unknown messageId");delete g[r],n(e)}}return e}(t).postMessage({messageId:a,action:e,data:r}),n}var x=m({name:"Thenable",dependencies:[l],init:function(t){return t}});function S(){var t=function(t){function e(t,e,r,n,a,i,o,s,l,u){var f=1-l;u.x=f*f*f*t+3*f*f*l*r+3*f*l*l*a+l*l*l*o,u.y=f*f*f*e+3*f*f*l*n+3*f*l*l*i+l*l*l*s}function r(t,e){for(var r,n,a,i,o,s=/([MLQCZ])([^MLQCZ]*)/g;r=s.exec(t);){var l=r[2].replace(/^\s*|\s*$/g,"").split(/[,\s]+/).map((function(t){return parseFloat(t)}));switch(r[1]){case"M":i=n=l[0],o=a=l[1];break;case"L":l[0]===i&&l[1]===o||e("L",i,o,i=l[0],o=l[1]);break;case"Q":e("Q",i,o,i=l[2],o=l[3],l[0],l[1]);break;case"C":e("C",i,o,i=l[4],o=l[5],l[0],l[1],l[2],l[3]);break;case"Z":i===n&&o===a||e("L",i,o,n,a)}}}function n(t,n,a){void 0===a&&(a=16);var i={x:0,y:0};r(t,(function(t,r,o,s,l,u,f,d,h){switch(t){case"L":n(r,o,s,l);break;case"Q":for(var c=r,p=o,v=1;v<a;v++)b=o,x=f,S=l,w=void 0,w=1-(U=v/(a-1)),(k=i).x=w*w*r+2*w*U*u+U*U*s,k.y=w*w*b+2*w*U*x+U*U*S,n(c,p,i.x,i.y),c=i.x,p=i.y;break;case"C":for(var g=r,m=o,y=1;y<a;y++)e(r,o,u,f,d,h,s,l,y/(a-1),i),n(g,m,i.x,i.y),g=i.x,m=i.y}var b,x,S,U,k,w}))}var a="precision highp float;attribute vec2 aUV;varying vec2 vUV;void main(){vUV=aUV;gl_Position=vec4(mix(vec2(-1.0),vec2(1.0),aUV),0.0,1.0);}",i=new WeakMap,o={premultipliedAlpha:!1,preserveDrawingBuffer:!0,antialias:!1,depth:!1};function s(t,e){var r=t.getContext?t.getContext("webgl",o):t,n=i.get(r);if(!n){var a="undefined"!=typeof WebGL2RenderingContext&&r instanceof WebGL2RenderingContext,s={},l={},u={},f=-1,d=[];function h(t){var e=s[t];if(!e&&!(e=s[t]=r.getExtension(t)))throw new Error(t+" not supported");return e}function c(t,e){var n=r.createShader(e);return r.shaderSource(n,t),r.compileShader(n),n}function p(t,e,n,i){if(!l[t]){var o={},s={},u=r.createProgram();r.attachShader(u,c(e,r.VERTEX_SHADER)),r.attachShader(u,c(n,r.FRAGMENT_SHADER)),r.linkProgram(u),l[t]={program:u,transaction:function(t){r.useProgram(u),t({setUniform:function(t,e){for(var n=[],a=arguments.length-2;a-- >0;)n[a]=arguments[a+2];var i=s[e]||(s[e]=r.getUniformLocation(u,e));r["uniform"+t].apply(r,[i].concat(n))},setAttribute:function(t,e,n,i,s){var l=o[t];l||(l=o[t]={buf:r.createBuffer(),loc:r.getAttribLocation(u,t),data:null}),r.bindBuffer(r.ARRAY_BUFFER,l.buf),r.vertexAttribPointer(l.loc,e,r.FLOAT,!1,0,0),r.enableVertexAttribArray(l.loc),a?r.vertexAttribDivisor(l.loc,i):h("ANGLE_instanced_arrays").vertexAttribDivisorANGLE(l.loc,i),s!==l.data&&(r.bufferData(r.ARRAY_BUFFER,s,n),l.data=s)}})}}}l[t].transaction(i)}function v(t,e){f++;try{r.activeTexture(r.TEXTURE0+f);var n=u[t];n||(n=u[t]=r.createTexture(),r.bindTexture(r.TEXTURE_2D,n),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_MIN_FILTER,r.NEAREST),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_MAG_FILTER,r.NEAREST)),r.bindTexture(r.TEXTURE_2D,n),e(n,f)}finally{f--}}function g(t,e,n){var a=r.createFramebuffer();d.push(a),r.bindFramebuffer(r.FRAMEBUFFER,a),r.activeTexture(r.TEXTURE0+e),r.bindTexture(r.TEXTURE_2D,t),r.framebufferTexture2D(r.FRAMEBUFFER,r.COLOR_ATTACHMENT0,r.TEXTURE_2D,t,0);try{n(a)}finally{r.deleteFramebuffer(a),r.bindFramebuffer(r.FRAMEBUFFER,d[--d.length-1]||null)}}function m(){s={},l={},u={},f=-1,d.length=0}r.canvas.addEventListener("webglcontextlost",(function(t){m(),t.preventDefault()}),!1),i.set(r,n={gl:r,isWebGL2:a,getExtension:h,withProgram:p,withTexture:v,withTextureFramebuffer:g,handleContextLoss:m})}e(n)}function l(t,e,r,n,i,o,l,u){void 0===l&&(l=15),void 0===u&&(u=null),s(t,(function(t){var s=t.gl,f=t.withProgram;(0,t.withTexture)("copy",(function(t,d){s.texImage2D(s.TEXTURE_2D,0,s.RGBA,i,o,0,s.RGBA,s.UNSIGNED_BYTE,e),f("copy",a,"precision highp float;uniform sampler2D tex;varying vec2 vUV;void main(){gl_FragColor=texture2D(tex,vUV);}",(function(t){var e=t.setUniform;(0,t.setAttribute)("aUV",2,s.STATIC_DRAW,0,new Float32Array([0,0,2,0,0,2])),e("1i","image",d),s.bindFramebuffer(s.FRAMEBUFFER,u||null),s.disable(s.BLEND),s.colorMask(8&l,4&l,2&l,1&l),s.viewport(r,n,i,o),s.scissor(r,n,i,o),s.drawArrays(s.TRIANGLES,0,3)}))}))}))}var u=Object.freeze({__proto__:null,withWebGLContext:s,renderImageData:l,resizeWebGLCanvasWithoutClearing:function(t,e,r){var n=t.width,a=t.height;s(t,(function(i){var o=i.gl,s=new Uint8Array(n*a*4);o.readPixels(0,0,n,a,o.RGBA,o.UNSIGNED_BYTE,s),t.width=e,t.height=r,l(o,s,0,0,n,a)}))}});function f(t,e,r,a,i,o){void 0===o&&(o=1);var s=new Uint8Array(t*e),l=a[2]-a[0],u=a[3]-a[1],f=[];n(r,(function(t,e,r,n){f.push({x1:t,y1:e,x2:r,y2:n,minX:Math.min(t,r),minY:Math.min(e,n),maxX:Math.max(t,r),maxY:Math.max(e,n)})})),f.sort((function(t,e){return t.maxX-e.maxX}));for(var d=0;d<t;d++)for(var h=0;h<e;h++){var p=g(a[0]+l*(d+.5)/t,a[1]+u*(h+.5)/e),v=Math.pow(1-Math.abs(p)/i,o)/2;p<0&&(v=1-v),v=Math.max(0,Math.min(255,Math.round(255*v))),s[h*t+d]=v}return s;function g(t,e){for(var r=1/0,n=1/0,a=f.length;a--;){var i=f[a];if(i.maxX+n<=t)break;if(t+n>i.minX&&e-n<i.maxY&&e+n>i.minY){var o=c(t,e,i.x1,i.y1,i.x2,i.y2);o<r&&(r=o,n=Math.sqrt(r))}}return function(t,e){for(var r=0,n=f.length;n--;){var a=f[n];if(a.maxX<=t)break;a.y1>e!=a.y2>e&&t<(a.x2-a.x1)*(e-a.y1)/(a.y2-a.y1)+a.x1&&(r+=a.y1<a.y2?1:-1)}return 0!==r}(t,e)&&(n=-n),n}}function d(t,e,r,n,a,i,o,s,l,u){void 0===i&&(i=1),void 0===s&&(s=0),void 0===l&&(l=0),void 0===u&&(u=0),h(t,e,r,n,a,i,o,null,s,l,u)}function h(t,e,r,n,a,i,o,s,u,d,h){void 0===i&&(i=1),void 0===u&&(u=0),void 0===d&&(d=0),void 0===h&&(h=0);for(var c=f(t,e,r,n,a,i),p=new Uint8Array(4*c.length),v=0;v<c.length;v++)p[4*v+h]=c[v];l(o,p,u,d,t,e,1<<3-h,s)}function c(t,e,r,n,a,i){var o=a-r,s=i-n,l=o*o+s*s,u=l?Math.max(0,Math.min(1,((t-r)*o+(e-n)*s)/l)):0,f=t-(r+u*o),d=e-(n+u*s);return f*f+d*d}var p=Object.freeze({__proto__:null,generate:f,generateIntoCanvas:d,generateIntoFramebuffer:h}),v=new Float32Array([0,0,2,0,0,2]),g=null,m=!1,y={},b=new WeakMap;function x(t){if(!m&&!w(t))throw new Error("WebGL generation not supported")}function S(t,e,r,n,a,i,o){if(void 0===i&&(i=1),void 0===o&&(o=null),!o&&!(o=g)){var l="function"==typeof OffscreenCanvas?new OffscreenCanvas(1,1):"undefined"!=typeof document?document.createElement("canvas"):null;if(!l)throw new Error("OffscreenCanvas or DOM canvas not supported");o=g=l.getContext("webgl",{depth:!1})}x(o);var u=new Uint8Array(t*e*4);s(o,(function(o){var s=o.gl,l=o.withTexture,f=o.withTextureFramebuffer;l("readable",(function(o,l){s.texImage2D(s.TEXTURE_2D,0,s.RGBA,t,e,0,s.RGBA,s.UNSIGNED_BYTE,null),f(o,l,(function(o){k(t,e,r,n,a,i,s,o,0,0,0),s.readPixels(0,0,t,e,s.RGBA,s.UNSIGNED_BYTE,u)}))}))}));for(var f=new Uint8Array(t*e),d=0,h=0;d<u.length;d+=4)f[h++]=u[d];return f}function U(t,e,r,n,a,i,o,s,l,u){void 0===i&&(i=1),void 0===s&&(s=0),void 0===l&&(l=0),void 0===u&&(u=0),k(t,e,r,n,a,i,o,null,s,l,u)}function k(t,e,r,i,o,l,u,f,d,h,c){void 0===l&&(l=1),void 0===d&&(d=0),void 0===h&&(h=0),void 0===c&&(c=0),x(u);var p=[];n(r,(function(t,e,r,n){p.push(t,e,r,n)})),p=new Float32Array(p),s(u,(function(r){var n=r.gl,s=r.isWebGL2,u=r.getExtension,g=r.withProgram,m=r.withTexture,y=r.withTextureFramebuffer,b=r.handleContextLoss;if(m("rawDistances",(function(r,m){t===r._lastWidth&&e===r._lastHeight||n.texImage2D(n.TEXTURE_2D,0,n.RGBA,r._lastWidth=t,r._lastHeight=e,0,n.RGBA,n.UNSIGNED_BYTE,null),g("main","precision highp float;uniform vec4 uGlyphBounds;attribute vec2 aUV;attribute vec4 aLineSegment;varying vec4 vLineSegment;varying vec2 vGlyphXY;void main(){vLineSegment=aLineSegment;vGlyphXY=mix(uGlyphBounds.xy,uGlyphBounds.zw,aUV);gl_Position=vec4(mix(vec2(-1.0),vec2(1.0),aUV),0.0,1.0);}","precision highp float;uniform vec4 uGlyphBounds;uniform float uMaxDistance;uniform float uExponent;varying vec4 vLineSegment;varying vec2 vGlyphXY;float absDistToSegment(vec2 point,vec2 lineA,vec2 lineB){vec2 lineDir=lineB-lineA;float lenSq=dot(lineDir,lineDir);float t=lenSq==0.0 ? 0.0 : clamp(dot(point-lineA,lineDir)/lenSq,0.0,1.0);vec2 linePt=lineA+t*lineDir;return distance(point,linePt);}void main(){vec4 seg=vLineSegment;vec2 p=vGlyphXY;float dist=absDistToSegment(p,seg.xy,seg.zw);float val=pow(1.0-clamp(dist/uMaxDistance,0.0,1.0),uExponent)*0.5;bool crossing=(seg.y>p.y!=seg.w>p.y)&&(p.x<(seg.z-seg.x)*(p.y-seg.y)/(seg.w-seg.y)+seg.x);bool crossingUp=crossing&&vLineSegment.y<vLineSegment.w;gl_FragColor=vec4(crossingUp ? 1.0/255.0 : 0.0,crossing&&!crossingUp ? 1.0/255.0 : 0.0,0.0,val);}",(function(a){var f=a.setAttribute,d=a.setUniform,h=!s&&u("ANGLE_instanced_arrays"),c=!s&&u("EXT_blend_minmax");f("aUV",2,n.STATIC_DRAW,0,v),f("aLineSegment",4,n.DYNAMIC_DRAW,1,p),d.apply(void 0,["4f","uGlyphBounds"].concat(i)),d("1f","uMaxDistance",o),d("1f","uExponent",l),y(r,m,(function(r){n.enable(n.BLEND),n.colorMask(!0,!0,!0,!0),n.viewport(0,0,t,e),n.scissor(0,0,t,e),n.blendFunc(n.ONE,n.ONE),n.blendEquationSeparate(n.FUNC_ADD,s?n.MAX:c.MAX_EXT),n.clear(n.COLOR_BUFFER_BIT),s?n.drawArraysInstanced(n.TRIANGLES,0,3,p.length/4):h.drawArraysInstancedANGLE(n.TRIANGLES,0,3,p.length/4)}))})),g("post",a,"precision highp float;uniform sampler2D tex;varying vec2 vUV;void main(){vec4 color=texture2D(tex,vUV);bool inside=color.r!=color.g;float val=inside ? 1.0-color.a : color.a;gl_FragColor=vec4(val);}",(function(r){r.setAttribute("aUV",2,n.STATIC_DRAW,0,v),r.setUniform("1i","tex",m),n.bindFramebuffer(n.FRAMEBUFFER,f),n.disable(n.BLEND),n.colorMask(0===c,1===c,2===c,3===c),n.viewport(d,h,t,e),n.scissor(d,h,t,e),n.drawArrays(n.TRIANGLES,0,3)}))})),n.isContextLost())throw b(),new Error("webgl context lost")}))}function w(t){var e=t&&t!==g?t.canvas||t:y,r=b.get(e);if(void 0===r){m=!0;var n=null;try{var a=[97,106,97,61,99,137,118,80,80,118,137,99,61,97,106,97],i=S(4,4,"M8,8L16,8L24,24L16,24Z",[0,0,32,32],24,1,t);(r=i&&a.length===i.length&&i.every((function(t,e){return t===a[e]})))||(n="bad trial run results",console.info(a,i))}catch(t){r=!1,n=t.message}n&&console.warn("WebGL SDF generation not supported:",n),m=!1,b.set(e,r)}return r}var T=Object.freeze({__proto__:null,generate:S,generateIntoCanvas:U,generateIntoFramebuffer:k,isSupported:w});return t.forEachPathCommand=r,t.generate=function(t,e,r,n,a,i){void 0===a&&(a=Math.max(n[2]-n[0],n[3]-n[1])/2),void 0===i&&(i=1);try{return S.apply(T,arguments)}catch(t){return console.info("WebGL SDF generation failed, falling back to JS",t),f.apply(p,arguments)}},t.generateIntoCanvas=function(t,e,r,n,a,i,o,s,l,u){void 0===a&&(a=Math.max(n[2]-n[0],n[3]-n[1])/2),void 0===i&&(i=1),void 0===s&&(s=0),void 0===l&&(l=0),void 0===u&&(u=0);try{return U.apply(T,arguments)}catch(t){return console.info("WebGL SDF generation failed, falling back to JS",t),d.apply(p,arguments)}},t.javascript=p,t.pathToLineSegments=n,t.webgl=T,t.webglUtils=u,Object.defineProperty(t,"__esModule",{value:!0}),t}({});return t}const U=/\bvoid\s+main\s*\(\s*\)\s*{/g;function k(e){return e.replace(/^[ \t]*#include +<([\w\d./]+)>/gm,(function(e,r){let n=t.ShaderChunk[r];return n?k(n):e}))}const w=[];for(let t=0;t<256;t++)w[t]=(t<16?"0":"")+t.toString(16);const T=Object.assign||function(){let t=arguments[0];for(let e=1,r=arguments.length;e<r;e++){let r=arguments[e];if(r)for(let e in r)r.hasOwnProperty(e)&&(t[e]=r[e])}return t},_=Date.now(),C=new WeakMap,F=new Map;let A=1e10;function E(e,r){const n=function(t){const e=JSON.stringify(t,I);let r=M.get(e);return null==r&&M.set(e,r=++O),r}(r);let a=C.get(e);if(a||C.set(e,a=Object.create(null)),a[n])return new a[n];const i=`_onBeforeCompile${n}`,o=function(t){e.onBeforeCompile.call(this,t);const a=this.customProgramCacheKey()+"|"+t.vertexShader+"|"+t.fragmentShader;let o=F[a];if(!o){const e=function({vertexShader:t,fragmentShader:e},r,n){let{vertexDefs:a,vertexMainIntro:i,vertexMainOutro:o,vertexTransform:s,fragmentDefs:l,fragmentMainIntro:u,fragmentMainOutro:f,fragmentColorTransform:d,customRewriter:h,timeUniform:c}=r;if(a=a||"",i=i||"",o=o||"",l=l||"",u=u||"",f=f||"",(s||h)&&(t=k(t)),(d||h)&&(e=k(e=e.replace(/^[ \t]*#include <((?:tonemapping|encodings|fog|premultiplied_alpha|dithering)_fragment)>/gm,"\n//!BEGIN_POST_CHUNK $1\n$&\n//!END_POST_CHUNK\n"))),h){let r=h({vertexShader:t,fragmentShader:e});t=r.vertexShader,e=r.fragmentShader}if(d){let t=[];e=e.replace(/^\/\/!BEGIN_POST_CHUNK[^]+?^\/\/!END_POST_CHUNK/gm,(e=>(t.push(e),""))),f=`${d}\n${t.join("\n")}\n${f}`}if(c){const t=`\nuniform float ${c};\n`;a=t+a,l=t+l}return s&&(a=`${a}\n\tvoid troikaVertexTransform${n}(inout vec3 position, inout vec3 normal, inout vec2 uv) {\n\t ${s}\n\t}\n\t`,i=`\n\ttroika_position_${n} = vec3(position);\n\ttroika_normal_${n} = vec3(normal);\n\ttroika_uv_${n} = vec2(uv);\n\ttroikaVertexTransform${n}(troika_position_${n}, troika_normal_${n}, troika_uv_${n});\n\t${i}\n\t`,t=(t=`vec3 troika_position_${n};\n\tvec3 troika_normal_${n};\n\tvec2 troika_uv_${n};\n\t${t}\n\t`).replace(/\b(position|normal|uv)\b/g,((t,e,r,a)=>/\battribute\s+vec[23]\s+$/.test(a.substr(0,r))?e:`troika_${e}_${n}`))),t=D(t,n,a,i,o),e=D(e,n,l,u,f),{vertexShader:t,fragmentShader:e}}(t,r,n);o=F[a]=e}t.vertexShader=o.vertexShader,t.fragmentShader=o.fragmentShader,T(t.uniforms,this.uniforms),r.timeUniform&&(t.uniforms[r.timeUniform]={get value(){return Date.now()-_}}),this[i]&&this[i](t)},s=function(){return l(r.chained?e:e.clone())},l=function(t){const a=Object.create(t,u);return Object.defineProperty(a,"baseMaterial",{value:e}),Object.defineProperty(a,"id",{value:A++}),a.uuid=function(){const t=4294967295*Math.random()|0,e=4294967295*Math.random()|0,r=4294967295*Math.random()|0,n=4294967295*Math.random()|0;return(w[255&t]+w[t>>8&255]+w[t>>16&255]+w[t>>24&255]+"-"+w[255&e]+w[e>>8&255]+"-"+w[e>>16&15|64]+w[e>>24&255]+"-"+w[63&r|128]+w[r>>8&255]+"-"+w[r>>16&255]+w[r>>24&255]+w[255&n]+w[n>>8&255]+w[n>>16&255]+w[n>>24&255]).toUpperCase()}(),a.uniforms=T({},t.uniforms,r.uniforms),a.defines=T({},t.defines,r.defines),a.defines[`TROIKA_DERIVED_MATERIAL_${n}`]="",a.extensions=T({},t.extensions,r.extensions),a._listeners=void 0,a},u={constructor:{value:s},isDerivedMaterial:{value:!0},customProgramCacheKey:{writable:!0,configurable:!0,value:function(){return e.customProgramCacheKey()+"|"+n}},onBeforeCompile:{get:()=>o,set(t){this[i]=t}},copy:{writable:!0,configurable:!0,value:function(r){return e.copy.call(this,r),e.isShaderMaterial||e.isDerivedMaterial||(T(this.extensions,r.extensions),T(this.defines,r.defines),T(this.uniforms,t.UniformsUtils.clone(r.uniforms))),this}},clone:{writable:!0,configurable:!0,value:function(){const t=new e.constructor;return l(t).copy(this)}},getDepthMaterial:{writable:!0,configurable:!0,value:function(){let n=this._depthMaterial;return n||(n=this._depthMaterial=E(e.isDerivedMaterial?e.getDepthMaterial():new t.MeshDepthMaterial({depthPacking:t.RGBADepthPacking}),r),n.defines.IS_DEPTH_MATERIAL="",n.uniforms=this.uniforms),n}},getDistanceMaterial:{writable:!0,configurable:!0,value:function(){let n=this._distanceMaterial;return n||(n=this._distanceMaterial=E(e.isDerivedMaterial?e.getDistanceMaterial():new t.MeshDistanceMaterial,r),n.defines.IS_DISTANCE_MATERIAL="",n.uniforms=this.uniforms),n}},dispose:{writable:!0,configurable:!0,value(){const{_depthMaterial:t,_distanceMaterial:r}=this;t&&t.dispose(),r&&r.dispose(),e.dispose.call(this)}}};return a[n]=s,new s}function D(t,e,r,n,a){return(n||a||r)&&(t=t.replace(U,`\n\t${r}\n\tvoid troikaOrigMain${e}() {`),t+=`\n\tvoid main() {\n\t ${n}\n\t troikaOrigMain${e}();\n\t ${a}\n\t}`),t}function I(t,e){return"uniforms"===t?void 0:"function"==typeof e?e.toString():e}let O=0;const M=new Map,B=()=>(self.performance||Date).now(),R=S();let P;const G=function(){const t=[];let e=0;function r(){const n=B();for(;t.length&&B()-n<5;)t.shift()();e=t.length?setTimeout(r,0):0}return(...n)=>{const a=l();return t.push((()=>{const t=B();try{R.webgl.generateIntoCanvas(...n),a.resolve({timing:B()-t})}catch(t){a.reject(t)}})),e||(e=setTimeout(r,0)),a}}(),L=function(){const t={};let e=0;return function(r,n,a,i,o,s,l,u,f,d){const h="TroikaTextSDFGenerator_JS_"+e++%4;let c=t[h];return c||(c=t[h]={workerModule:m({name:h,workerId:h,dependencies:[S,B],init(t,e){const r=t().javascript.generate;return function(...t){const n=e();return{textureData:r(...t),timing:e()-n}}},getTransferables:t=>[t.textureData.buffer]}),requests:0,idleTimer:null}),c.requests++,clearTimeout(c.idleTimer),c.workerModule(r,n,a,i,o,s).then((({textureData:t,timing:e})=>{const a=B(),i=new Uint8Array(4*t.length);for(let e=0;e<t.length;e++)i[4*e+d]=t[e];return R.webglUtils.renderImageData(l,i,u,f,r,n,1<<3-d),e+=B()-a,0==--c.requests&&(c.idleTimer=setTimeout((()=>{!function(t){v[t]&&v[t].forEach((function(t){t()})),p[t]&&(p[t].terminate(),delete p[t])}(h)}),2e3)),{timing:e}}))}}(),W=R.webglUtils.resizeWebGLCanvasWithoutClearing,j=m({name:"Typr Font Parser",dependencies:[ /*! Custom build of Typr.ts (https://github.com/fredli74/Typr.ts) for use in Troika text rendering. Original MIT license applies: https://github.com/fredli74/Typr.ts/blob/master/LICENSE */ function(){return"undefined"==typeof window&&(self.window=self),function(t){var e={parse:function(t){var r=e._bin,n=new Uint8Array(t);if("ttcf"==r.readASCII(n,0,4)){var a=4;r.readUshort(n,a),a+=2,r.readUshort(n,a),a+=2;var i=r.readUint(n,a);a+=4;for(var o=[],s=0;s<i;s++){var l=r.readUint(n,a);a+=4,o.push(e._readFont(n,l))}return o}return[e._readFont(n,0)]},_readFont:function(t,r){var n=e._bin,a=r;n.readFixed(t,r),r+=4;var i=n.readUshort(t,r);r+=2,n.readUshort(t,r),r+=2,n.readUshort(t,r),r+=2,n.readUshort(t,r),r+=2;for(var o=["cmap","head","hhea","maxp","hmtx","name","OS/2","post","loca","glyf","kern","CFF ","GPOS","GSUB","SVG "],s={_data:t,_offset:a},l={},u=0;u<i;u++){var f=n.readASCII(t,r,4);r+=4,n.readUint(t,r),r+=4;var d=n.readUint(t,r);r+=4;var h=n.readUint(t,r);r+=4,l[f]={offset:d,length:h}}for(u=0;u<o.length;u++){var c=o[u];l[c]&&(s[c.trim()]=e[c.trim()].parse(t,l[c].offset,l[c].length,s))}return s},_tabOffset:function(t,r,n){for(var a=e._bin,i=a.readUshort(t,n+4),o=n+12,s=0;s<i;s++){var l=a.readASCII(t,o,4);o+=4,a.readUint(t,o),o+=4;var u=a.readUint(t,o);if(o+=4,a.readUint(t,o),o+=4,l==r)return u}return 0}};e._bin={readFixed:function(t,e){return(t[e]<<8|t[e+1])+(t[e+2]<<8|t[e+3])/65540},readF2dot14:function(t,r){return e._bin.readShort(t,r)/16384},readInt:function(t,r){return e._bin._view(t).getInt32(r)},readInt8:function(t,r){return e._bin._view(t).getInt8(r)},readShort:function(t,r){return e._bin._view(t).getInt16(r)},readUshort:function(t,r){return e._bin._view(t).getUint16(r)},readUshorts:function(t,r,n){for(var a=[],i=0;i<n;i++)a.push(e._bin.readUshort(t,r+2*i));return a},readUint:function(t,r){return e._bin._view(t).getUint32(r)},readUint64:function(t,r){return 4294967296*e._bin.readUint(t,r)+e._bin.readUint(t,r+4)},readASCII:function(t,e,r){for(var n="",a=0;a<r;a++)n+=String.fromCharCode(t[e+a]);return n},readUnicode:function(t,e,r){for(var n="",a=0;a<r;a++){var i=t[e++]<<8|t[e++];n+=String.fromCharCode(i)}return n},_tdec:"undefined"!=typeof window&&window.TextDecoder?new window.TextDecoder:null,readUTF8:function(t,r,n){var a=e._bin._tdec;return a&&0==r&&n==t.length?a.decode(t):e._bin.readASCII(t,r,n)},readBytes:function(t,e,r){for(var n=[],a=0;a<r;a++)n.push(t[e+a]);return n},readASCIIArray:function(t,e,r){for(var n=[],a=0;a<r;a++)n.push(String.fromCharCode(t[e+a]));return n},_view:function(t){return t._dataView||(t._dataView=t.buffer?new DataView(t.buffer,t.byteOffset,t.byteLength):new DataView(new Uint8Array(t).buffer))}},e._lctf={},e._lctf.parse=function(t,r,n,a,i){var o=e._bin,s={},l=r;o.readFixed(t,r),r+=4;var u=o.readUshort(t,r);r+=2;var f=o.readUshort(t,r);r+=2;var d=o.readUshort(t,r);return r+=2,s.scriptList=e._lctf.readScriptList(t,l+u),s.featureList=e._lctf.readFeatureList(t,l+f),s.lookupList=e._lctf.readLookupList(t,l+d,i),s},e._lctf.readLookupList=function(t,r,n){var a=e._bin,i=r,o=[],s=a.readUshort(t,r);r+=2;for(var l=0;l<s;l++){var u=a.readUshort(t,r);r+=2;var f=e._lctf.readLookupTable(t,i+u,n);o.push(f)}return o},e._lctf.readLookupTable=function(t,r,n){var a=e._bin,i=r,o={tabs:[]};o.ltype=a.readUshort(t,r),r+=2,o.flag=a.readUshort(t,r),r+=2;var s=a.readUshort(t,r);r+=2;for(var l=o.ltype,u=0;u<s;u++){var f=a.readUshort(t,r);r+=2;var d=n(t,l,i+f,o);o.tabs.push(d)}return o},e._lctf.numOfOnes=function(t){for(var e=0,r=0;r<32;r++)0!=(t>>>r&1)&&e++;return e},e._lctf.readClassDef=function(t,r){var n=e._bin,a=[],i=n.readUshort(t,r);if(r+=2,1==i){var o=n.readUshort(t,r);r+=2;var s=n.readUshort(t,r);r+=2;for(var l=0;l<s;l++)a.push(o+l),a.push(o+l),a.push(n.readUshort(t,r)),r+=2}if(2==i){var u=n.readUshort(t,r);for(r+=2,l=0;l<u;l++)a.push(n.readUshort(t,r)),r+=2,a.push(n.readUshort(t,r)),r+=2,a.push(n.readUshort(t,r)),r+=2}return a},e._lctf.getInterval=function(t,e){for(var r=0;r<t.length;r+=3){var n=t[r],a=t[r+1];if(t[r+2],n<=e&&e<=a)return r}return-1},e._lctf.readCoverage=function(t,r){var n=e._bin,a={};a.fmt=n.readUshort(t,r),r+=2;var i=n.readUshort(t,r);return r+=2,1==a.fmt&&(a.tab=n.readUshorts(t,r,i)),2==a.fmt&&(a.tab=n.readUshorts(t,r,3*i)),a},e._lctf.coverageIndex=function(t,r){var n=t.tab;if(1==t.fmt)return n.indexOf(r);if(2==t.fmt){var a=e._lctf.getInterval(n,r);if(-1!=a)return n[a+2]+(r-n[a])}return-1},e._lctf.readFeatureList=function(t,r){var n=e._bin,a=r,i=[],o=n.readUshort(t,r);r+=2;for(var s=0;s<o;s++){var l=n.readASCII(t,r,4);r+=4;var u=n.readUshort(t,r);r+=2;var f=e._lctf.readFeatureTable(t,a+u);f.tag=l.trim(),i.push(f)}return i},e._lctf.readFeatureTable=function(t,r){var n=e._bin,a=r,i={},o=n.readUshort(t,r);r+=2,o>0&&(i.featureParams=a+o);var s=n.readUshort(t,r);r+=2,i.tab=[];for(var l=0;l<s;l++)i.tab.push(n.readUshort(t,r+2*l));return i},e._lctf.readScriptList=function(t,r){var n=e._bin,a=r,i={},o=n.readUshort(t,r);r+=2;for(var s=0;s<o;s++){var l=n.readASCII(t,r,4);r+=4;var u=n.readUshort(t,r);r+=2,i[l.trim()]=e._lctf.readScriptTable(t,a+u)}return i},e._lctf.readScriptTable=function(t,r){var n=e._bin,a=r,i={},o=n.readUshort(t,r);r+=2,i.default=e._lctf.readLangSysTable(t,a+o);var s=n.readUshort(t,r);r+=2;for(var l=0;l<s;l++){var u=n.readASCII(t,r,4);r+=4;var f=n.readUshort(t,r);r+=2,i[u.trim()]=e._lctf.readLangSysTable(t,a+f)}return i},e._lctf.readLangSysTable=function(t,r){var n=e._bin,a={};n.readUshort(t,r),r+=2,a.reqFeature=n.readUshort(t,r),r+=2;var i=n.readUshort(t,r);return r+=2,a.features=n.readUshorts(t,r,i),a},e.CFF={},e.CFF.parse=function(t,r,n){var a=e._bin;(t=new Uint8Array(t.buffer,r,n))[r=0],t[++r],t[++r],t[++r],r++;var i=[];r=e.CFF.readIndex(t,r,i);for(var o=[],s=0;s<i.length-1;s++)o.push(a.readASCII(t,r+i[s],i[s+1]-i[s]));r+=i[i.length-1];var l=[];r=e.CFF.readIndex(t,r,l);var u=[];for(s=0;s<l.length-1;s++)u.push(e.CFF.readDict(t,r+l[s],r+l[s+1]));r+=l[l.length-1];var f=u[0],d=[];r=e.CFF.readIndex(t,r,d);var h=[];for(s=0;s<d.length-1;s++)h.push(a.readASCII(t,r+d[s],d[s+1]-d[s]));if(r+=d[d.length-1],e.CFF.readSubrs(t,r,f),f.CharStrings){r=f.CharStrings,d=[],r=e.CFF.readIndex(t,r,d);var c=[];for(s=0;s<d.length-1;s++)c.push(a.readBytes(t,r+d[s],d[s+1]-d[s]));f.CharStrings=c}if(f.ROS){r=f.FDArray;var p=[];for(r=e.CFF.readIndex(t,r,p),f.FDArray=[],s=0;s<p.length-1;s++){var v=e.CFF.readDict(t,r+p[s],r+p[s+1]);e.CFF._readFDict(t,v,h),f.FDArray.push(v)}r+=p[p.length-1],r=f.FDSelect,f.FDSelect=[];var g=t[r];if(r++,3!=g)throw g;var m=a.readUshort(t,r);for(r+=2,s=0;s<m+1;s++)f.FDSelect.push(a.readUshort(t,r),t[r+2]),r+=3}return f.Encoding&&(f.Encoding=e.CFF.readEncoding(t,f.Encoding,f.CharStrings.length)),f.charset&&(f.charset=e.CFF.readCharset(t,f.charset,f.CharStrings.length)),e.CFF._readFDict(t,f,h),f},e.CFF._readFDict=function(t,r,n){var a;for(var i in r.Private&&(a=r.Private[1],r.Private=e.CFF.readDict(t,a,a+r.Private[0]),r.Private.Subrs&&e.CFF.readSubrs(t,a+r.Private.Subrs,r.Private)),r)-1!=["FamilyName","FontName","FullName","Notice","version","Copyright"].indexOf(i)&&(r[i]=n[r[i]-426+35])},e.CFF.readSubrs=function(t,r,n){var a=e._bin,i=[];r=e.CFF.readIndex(t,r,i);var o,s=i.length;o=s<1240?107:s<33900?1131:32768,n.Bias=o,n.Subrs=[];for(var l=0;l<i.length-1;l++)n.Subrs.push(a.readBytes(t,r+i[l],i[l+1]-i[l]))},e.CFF.tableSE=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,0,111,112,113,114,0,115,116,117,118,119,120,121,122,0,123,0,124,125,126,127,128,129,130,131,0,132,133,0,134,135,136,137,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,138,0,139,0,0,0,0,140,141,142,143,0,0,0,0,0,144,0,0,0,145,0,0,146,147,148,149,0,0,0,0],e.CFF.glyphByUnicode=function(t,e){for(var r=0;r<t.charset.length;r++)if(t.charset[r]==e)return r;return-1},e.CFF.glyphBySE=function(t,r){return r<0||r>255?-1:e.CFF.glyphByUnicode(t,e.CFF.tableSE[r])},e.CFF.readEncoding=function(t,r,n){e._bin;var a=[".notdef"],i=t[r];if(r++,0!=i)throw"error: unknown encoding format: "+i;var o=t[r];r++;for(var s=0;s<o;s++)a.push(t[r+s]);return a},e.CFF.readCharset=function(t,r,n){var a=e._bin,i=[".notdef"],o=t[r];if(r++,0==o)for(var s=0;s<n;s++){var l=a.readUshort(t,r);r+=2,i.push(l)}else{if(1!=o&&2!=o)throw"error: format: "+o;for(;i.length<n;){l=a.readUshort(t,r),r+=2;var u=0;for(1==o?(u=t[r],r++):(u=a.readUshort(t,r),r+=2),s=0;s<=u;s++)i.push(l),l++}}return i},e.CFF.readIndex=function(t,r,n){var a=e._bin,i=a.readUshort(t,r)+1,o=t[r+=2];if(r++,1==o)for(var s=0;s<i;s++)n.push(t[r+s]);else if(2==o)for(s=0;s<i;s++)n.push(a.readUshort(t,r+2*s));else if(3==o)for(s=0;s<i;s++)n.push(16777215&a.readUint(t,r+3*s-1));else if(1!=i)throw"unsupported offset size: "+o+", count: "+i;return(r+=i*o)-1},e.CFF.getCharString=function(t,r,n){var a=e._bin,i=t[r],o=t[r+1];t[r+2],t[r+3],t[r+4];var s=1,l=null,u=null;i<=20&&(l=i,s=1),12==i&&(l=100*i+o,s=2),21<=i&&i<=27&&(l=i,s=1),28==i&&(u=a.readShort(t,r+1),s=3),29<=i&&i<=31&&(l=i,s=1),32<=i&&i<=246&&(u=i-139,s=1),247<=i&&i<=250&&(u=256*(i-247)+o+108,s=2),251<=i&&i<=254&&(u=256*-(i-251)-o-108,s=2),255==i&&(u=a.readInt(t,r+1)/65535,s=5),n.val=null!=u?u:"o"+l,n.size=s},e.CFF.readCharString=function(t,r,n){for(var a=r+n,i=e._bin,o=[];r<a;){var s=t[r],l=t[r+1];t[r+2],t[r+3],t[r+4];var u=1,f=null,d=null;s<=20&&(f=s,u=1),12==s&&(f=100*s+l,u=2),19!=s&&20!=s||(f=s,u=2),21<=s&&s<=27&&(f=s,u=1),28==s&&(d=i.readShort(t,r+1),u=3),29<=s&&s<=31&&(f=s,u=1),32<=s&&s<=246&&(d=s-139,u=1),247<=s&&s<=250&&(d=256*(s-247)+l+108,u=2),251<=s&&s<=254&&(d=256*-(s-251)-l-108,u=2),255==s&&(d=i.readInt(t,r+1)/65535,u=5),o.push(null!=d?d:"o"+f),r+=u}return o},e.CFF.readDict=function(t,r,n){for(var a=e._bin,i={},o=[];r<n;){var s=t[r],l=t[r+1];t[r+2],t[r+3],t[r+4];var u=1,f=null,d=null;if(28==s&&(d=a.readShort(t,r+1),u=3),29==s&&(d=a.readInt(t,r+1),u=5),32<=s&&s<=246&&(d=s-139,u=1),247<=s&&s<=250&&(d=256*(s-247)+l+108,u=2),251<=s&&s<=254&&(d=256*-(s-251)-l-108,u=2),255==s)throw d=a.readInt(t,r+1)/65535,u=5,"unknown number";if(30==s){var h=[];for(u=1;;){var c=t[r+u];u++;var p=c>>4,v=15&c;if(15!=p&&h.push(p),15!=v&&h.push(v),15==v)break}for(var g="",m=[0,1,2,3,4,5,6,7,8,9,".","e","e-","reserved","-","endOfNumber"],y=0;y<h.length;y++)g+=m[h[y]];d=parseFloat(g)}s<=21&&(f=["version","Notice","FullName","FamilyName","Weight","FontBBox","BlueValues","OtherBlues","FamilyBlues","FamilyOtherBlues","StdHW","StdVW","escape","UniqueID","XUID","charset","Encoding","CharStrings","Private","Subrs","defaultWidthX","nominalWidthX"][s],u=1,12==s&&(f=["Copyright","isFixedPitch","ItalicAngle","UnderlinePosition","UnderlineThickness","PaintType","CharstringType","FontMatrix","StrokeWidth","BlueScale","BlueShift","BlueFuzz","StemSnapH","StemSnapV","ForceBold",0,0,"LanguageGroup","ExpansionFactor","initialRandomSeed","SyntheticBase","PostScript","BaseFontName","BaseFontBlend",0,0,0,0,0,0,"ROS","CIDFontVersion","CIDFontRevision","CIDFontType","CIDCount","UIDBase","FDArray","FDSelect","FontName"][l],u=2)),null!=f?(i[f]=1==o.length?o[0]:o,o=[]):o.push(d),r+=u}return i},e.cmap={},e.cmap.parse=function(t,r,n){t=new Uint8Array(t.buffer,r,n),r=0;var a=e._bin,i={};a.readUshort(t,r),r+=2;var o=a.readUshort(t,r);r+=2;var s=[];i.tables=[];for(var l=0;l<o;l++){var u=a.readUshort(t,r);r+=2;var f=a.readUshort(t,r);r+=2;var d=a.readUint(t,r);r+=4;var h="p"+u+"e"+f,c=s.indexOf(d);if(-1==c){var p;c=i.tables.length,s.push(d);var v=a.readUshort(t,d);0==v?p=e.cmap.parse0(t,d):4==v?p=e.cmap.parse4(t,d):6==v?p=e.cmap.parse6(t,d):12==v?p=e.cmap.parse12(t,d):console.debug("unknown format: "+v,u,f,d),i.tables.push(p)}if(null!=i[h])throw"multiple tables for one platform+encoding";i[h]=c}return i},e.cmap.parse0=function(t,r){var n=e._bin,a={};a.format=n.readUshort(t,r),r+=2;var i=n.readUshort(t,r);r+=2,n.readUshort(t,r),r+=2,a.map=[];for(var o=0;o<i-6;o++)a.map.push(t[r+o]);return a},e.cmap.parse4=function(t,r){var n=e._bin,a=r,i={};i.format=n.readUshort(t,r),r+=2;var o=n.readUshort(t,r);r+=2,n.readUshort(t,r),r+=2;var s=n.readUshort(t,r);r+=2;var l=s/2;i.searchRange=n.readUshort(t,r),r+=2,i.entrySelector=n.readUshort(t,r),r+=2,i.rangeShift=n.readUshort(t,r),r+=2,i.endCount=n.readUshorts(t,r,l),r+=2*l,r+=2,i.startCount=n.readUshorts(t,r,l),r+=2*l,i.idDelta=[];for(var u=0;u<l;u++)i.idDelta.push(n.readShort(t,r)),r+=2;for(i.idRangeOffset=n.readUshorts(t,r,l),r+=2*l,i.glyphIdArray=[];r<a+o;)i.glyphIdArray.push(n.readUshort(t,r)),r+=2;return i},e.cmap.parse6=function(t,r){var n=e._bin,a={};a.format=n.readUshort(t,r),r+=2,n.readUshort(t,r),r+=2,n.readUshort(t,r),r+=2,a.firstCode=n.readUshort(t,r),r+=2;var i=n.readUshort(t,r);r+=2,a.glyphIdArray=[];for(var o=0;o<i;o++)a.glyphIdArray.push(n.readUshort(t,r)),r+=2;return a},e.cmap.parse12=function(t,r){var n=e._bin,a={};a.format=n.readUshort(t,r),r+=2,r+=2,n.readUint(t,r),r+=4,n.readUint(t,r),r+=4;var i=n.readUint(t,r);r+=4,a.groups=[];for(var o=0;o<i;o++){var s=r+12*o,l=n.readUint(t,s+0),u=n.readUint(t,s+4),f=n.readUint(t,s+8);a.groups.push([l,u,f])}return a},e.glyf={},e.glyf.parse=function(t,e,r,n){for(var a=[],i=0;i<n.maxp.numGlyphs;i++)a.push(null);return a},e.glyf._parseGlyf=function(t,r){var n=e._bin,a=t._data,i=e._tabOffset(a,"glyf",t._offset)+t.loca[r];if(t.loca[r]==t.loca[r+1])return null;var o={};if(o.noc=n.readShort(a,i),i+=2,o.xMin=n.readShort(a,i),i+=2,o.yMin=n.readShort(a,i),i+=2,o.xMax=n.readShort(a,i),i+=2,o.yMax=n.readShort(a,i),i+=2,o.xMin>=o.xMax||o.yMin>=o.yMax)return null;if(o.noc>0){o.endPts=[];for(var s=0;s<o.noc;s++)o.endPts.push(n.readUshort(a,i)),i+=2;var l=n.readUshort(a,i);if(i+=2,a.length-i<l)return null;o.instructions=n.readBytes(a,i,l),i+=l;var u=o.endPts[o.noc-1]+1;for(o.flags=[],s=0;s<u;s++){var f=a[i];if(i++,o.flags.push(f),0!=(8&f)){var d=a[i];i++;for(var h=0;h<d;h++)o.flags.push(f),s++}}for(o.xs=[],s=0;s<u;s++){var c=0!=(2&o.flags[s]),p=0!=(16&o.flags[s]);c?(o.xs.push(p?a[i]:-a[i]),i++):p?o.xs.push(0):(o.xs.push(n.readShort(a,i)),i+=2)}for(o.ys=[],s=0;s<u;s++)c=0!=(4&o.flags[s]),p=0!=(32&o.flags[s]),c?(o.ys.push(p?a[i]:-a[i]),i++):p?o.ys.push(0):(o.ys.push(n.readShort(a,i)),i+=2);var v=0,g=0;for(s=0;s<u;s++)v+=o.xs[s],g+=o.ys[s],o.xs[s]=v,o.ys[s]=g}else{var m;o.parts=[];do{m=n.readUshort(a,i),i+=2;var y={m:{a:1,b:0,c:0,d:1,tx:0,ty:0},p1:-1,p2:-1};if(o.parts.push(y),y.glyphIndex=n.readUshort(a,i),i+=2,1&m){var b=n.readShort(a,i);i+=2;var x=n.readShort(a,i);i+=2}else b=n.readInt8(a,i),i++,x=n.readInt8(a,i),i++;2&m?(y.m.tx=b,y.m.ty=x):(y.p1=b,y.p2=x),8&m?(y.m.a=y.m.d=n.readF2dot14(a,i),i+=2):64&m?(y.m.a=n.readF2dot14(a,i),i+=2,y.m.d=n.readF2dot14(a,i),i+=2):128&m&&(y.m.a=n.readF2dot14(a,i),i+=2,y.m.b=n.readF2dot14(a,i),i+=2,y.m.c=n.readF2dot14(a,i),i+=2,y.m.d=n.readF2dot14(a,i),i+=2)}while(32&m);if(256&m){var S=n.readUshort(a,i);for(i+=2,o.instr=[],s=0;s<S;s++)o.instr.push(a[i]),i++}}return o},e.GPOS={},e.GPOS.parse=function(t,r,n,a){return e._lctf.parse(t,r,n,a,e.GPOS.subt)},e.GPOS.subt=function(t,r,n,a){var i=e._bin,o=n,s={};if(s.fmt=i.readUshort(t,n),n+=2,1==r||2==r||3==r||7==r||8==r&&s.fmt<=2){var l=i.readUshort(t,n);n+=2,s.coverage=e._lctf.readCoverage(t,l+o)}if(1==r&&1==s.fmt){var u=i.readUshort(t,n);n+=2;var f=e._lctf.numOfOnes(u);0!=u&&(s.pos=e.GPOS.readValueRecord(t,n,u))}else if(2==r&&s.fmt>=1&&s.fmt<=2){u=i.readUshort(t,n),n+=2;var d=i.readUshort(t,n);n+=2,f=e._lctf.numOfOnes(u);var h=e._lctf.numOfOnes(d);if(1==s.fmt){s.pairsets=[];var c=i.readUshort(t,n);n+=2;for(var p=0;p<c;p++){var v=o+i.readUshort(t,n);n+=2;var g=i.readUshort(t,v);v+=2;for(var m=[],y=0;y<g;y++){var b=i.readUshort(t,v);v+=2,0!=u&&(T=e.GPOS.readValueRecord(t,v,u),v+=2*f),0!=d&&(_=e.GPOS.readValueRecord(t,v,d),v+=2*h),m.push({gid2:b,val1:T,val2:_})}s.pairsets.push(m)}}if(2==s.fmt){var x=i.readUshort(t,n);n+=2;var S=i.readUshort(t,n);n+=2;var U=i.readUshort(t,n);n+=2;var k=i.readUshort(t,n);for(n+=2,s.classDef1=e._lctf.readClassDef(t,o+x),s.classDef2=e._lctf.readClassDef(t,o+S),s.matrix=[],p=0;p<U;p++){var w=[];for(y=0;y<k;y++){var T=null,_=null;0!=u&&(T=e.GPOS.readValueRecord(t,n,u),n+=2*f),0!=d&&(_=e.GPOS.readValueRecord(t,n,d),n+=2*h),w.push({val1:T,val2:_})}s.matrix.push(w)}}}else{if(9==r&&1==s.fmt){var C=i.readUshort(t,n);n+=2;var F=i.readUint(t,n);if(n+=4,9==a.ltype)a.ltype=C;else if(a.ltype!=C)throw"invalid extension substitution";return e.GPOS.subt(t,a.ltype,o+F)}console.debug("unsupported GPOS table LookupType",r,"format",s.fmt)}return s},e.GPOS.readValueRecord=function(t,r,n){var a=e._bin,i=[];return i.push(1&n?a.readShort(t,r):0),r+=1&n?2:0,i.push(2&n?a.readShort(t,r):0),r+=2&n?2:0,i.push(4&n?a.readShort(t,r):0),r+=4&n?2:0,i.push(8&n?a.readShort(t,r):0),r+=8&n?2:0,i},e.GSUB={},e.GSUB.parse=function(t,r,n,a){return e._lctf.parse(t,r,n,a,e.GSUB.subt)},e.GSUB.subt=function(t,r,n,a){var i=e._bin,o=n,s={};if(s.fmt=i.readUshort(t,n),n+=2,1!=r&&4!=r&&5!=r&&6!=r)return null;if(1==r||4==r||5==r&&s.fmt<=2||6==r&&s.fmt<=2){var l=i.readUshort(t,n);n+=2,s.coverage=e._lctf.readCoverage(t,o+l)}if(1==r&&s.fmt>=1&&s.fmt<=2){if(1==s.fmt)s.delta=i.readShort(t,n),n+=2;else if(2==s.fmt){var u=i.readUshort(t,n);n+=2,s.newg=i.readUshorts(t,n,u),n+=2*s.newg.length}}else if(4==r){s.vals=[],u=i.readUshort(t,n),n+=2;for(var f=0;f<u;f++){var d=i.readUshort(t,n);n+=2,s.vals.push(e.GSUB.readLigatureSet(t,o+d))}}else if(5==r&&2==s.fmt){if(2==s.fmt){var h=i.readUshort(t,n);n+=2,s.cDef=e._lctf.readClassDef(t,o+h),s.scset=[];var c=i.readUshort(t,n);for(n+=2,f=0;f<c;f++){var p=i.readUshort(t,n);n+=2,s.scset.push(0==p?null:e.GSUB.readSubClassSet(t,o+p))}}}else if(6==r&&3==s.fmt){if(3==s.fmt){for(f=0;f<3;f++){u=i.readUshort(t,n),n+=2;for(var v=[],g=0;g<u;g++)v.push(e._lctf.readCoverage(t,o+i.readUshort(t,n+2*g)));n+=2*u,0==f&&(s.backCvg=v),1==f&&(s.inptCvg=v),2==f&&(s.ahedCvg=v)}u=i.readUshort(t,n),n+=2,s.lookupRec=e.GSUB.readSubstLookupRecords(t,n,u)}}else{if(7==r&&1==s.fmt){var m=i.readUshort(t,n);n+=2;var y=i.readUint(t,n);if(n+=4,9==a.ltype)a.ltype=m;else if(a.ltype!=m)throw"invalid extension substitution";return e.GSUB.subt(t,a.ltype,o+y)}console.debug("unsupported GSUB table LookupType",r,"format",s.fmt)}return s},e.GSUB.readSubClassSet=function(t,r){var n=e._bin.readUshort,a=r,i=[],o=n(t,r);r+=2;for(var s=0;s<o;s++){var l=n(t,r);r+=2,i.push(e.GSUB.readSubClassRule(t,a+l))}return i},e.GSUB.readSubClassRule=function(t,r){var n=e._bin.readUshort,a={},i=n(t,r),o=n(t,r+=2);r+=2,a.input=[];for(var s=0;s<i-1;s++)a.input.push(n(t,r)),r+=2;return a.substLookupRecords=e.GSUB.readSubstLookupRecords(t,r,o),a},e.GSUB.readSubstLookupRecords=function(t,r,n){for(var a=e._bin.readUshort,i=[],o=0;o<n;o++)i.push(a(t,r),a(t,r+2)),r+=4;return i},e.GSUB.readChainSubClassSet=function(t,r){var n=e._bin,a=r,i=[],o=n.readUshort(t,r);r+=2;for(var s=0;s<o;s++){var l=n.readUshort(t,r);r+=2,i.push(e.GSUB.readChainSubClassRule(t,a+l))}return i},e.GSUB.readChainSubClassRule=function(t,r){for(var n=e._bin,a={},i=["backtrack","input","lookahead"],o=0;o<i.length;o++){var s=n.readUshort(t,r);r+=2,1==o&&s--,a[i[o]]=n.readUshorts(t,r,s),r+=2*a[i[o]].length}return s=n.readUshort(t,r),r+=2,a.subst=n.readUshorts(t,r,2*s),r+=2*a.subst.length,a},e.GSUB.readLigatureSet=function(t,r){var n=e._bin,a=r,i=[],o=n.readUshort(t,r);r+=2;for(var s=0;s<o;s++){var l=n.readUshort(t,r);r+=2,i.push(e.GSUB.readLigature(t,a+l))}return i},e.GSUB.readLigature=function(t,r){var n=e._bin,a={chain:[]};a.nglyph=n.readUshort(t,r),r+=2;var i=n.readUshort(t,r);r+=2;for(var o=0;o<i-1;o++)a.chain.push(n.readUshort(t,r)),r+=2;return a},e.head={},e.head.parse=function(t,r,n){var a=e._bin,i={};return a.readFixed(t,r),r+=4,i.fontRevision=a.readFixed(t,r),r+=4,a.readUint(t,r),r+=4,a.readUint(t,r),r+=4,i.flags=a.readUshort(t,r),r+=2,i.unitsPerEm=a.readUshort(t,r),r+=2,i.created=a.readUint64(t,r),r+=8,i.modified=a.readUint64(t,r),r+=8,i.xMin=a.readShort(t,r),r+=2,i.yMin=a.readShort(t,r),r+=2,i.xMax=a.readShort(t,r),r+=2,i.yMax=a.readShort(t,r),r+=2,i.macStyle=a.readUshort(t,r),r+=2,i.lowestRecPPEM=a.readUshort(t,r),r+=2,i.fontDirectionHint=a.readShort(t,r),r+=2,i.indexToLocFormat=a.readShort(t,r),r+=2,i.glyphDataFormat=a.readShort(t,r),r+=2,i},e.hhea={},e.hhea.parse=function(t,r,n){var a=e._bin,i={};return a.readFixed(t,r),r+=4,i.ascender=a.readShort(t,r),r+=2,i.descender=a.readShort(t,r),r+=2,i.lineGap=a.readShort(t,r),r+=2,i.advanceWidthMax=a.readUshort(t,r),r+=2,i.minLeftSideBearing=a.readShort(t,r),r+=2,i.minRightSideBearing=a.readShort(t,r),r+=2,i.xMaxExtent=a.readShort(t,r),r+=2,i.caretSlopeRise=a.readShort(t,r),r+=2,i.caretSlopeRun=a.readShort(t,r),r+=2,i.caretOffset=a.readShort(t,r),r+=2,r+=8,i.metricDataFormat=a.readShort(t,r),r+=2,i.numberOfHMetrics=a.readUshort(t,r),r+=2,i},e.hmtx={},e.hmtx.parse=function(t,r,n,a){for(var i=e._bin,o={aWidth:[],lsBearing:[]},s=0,l=0,u=0;u<a.maxp.numGlyphs;u++)u<a.hhea.numberOfHMetrics&&(s=i.readUshort(t,r),r+=2,l=i.readShort(t,r),r+=2),o.aWidth.push(s),o.lsBearing.push(l);return o},e.kern={},e.kern.parse=function(t,r,n,a){var i=e._bin,o=i.readUshort(t,r);if(r+=2,1==o)return e.kern.parseV1(t,r-2,n,a);var s=i.readUshort(t,r);r+=2;for(var l={glyph1:[],rval:[]},u=0;u<s;u++){r+=2,n=i.readUshort(t,r),r+=2;var f=i.readUshort(t,r);r+=2;var d=f>>>8;if(0!=(d&=15))throw"unknown kern table format: "+d;r=e.kern.readFormat0(t,r,l)}return l},e.kern.parseV1=function(t,r,n,a){var i=e._bin;i.readFixed(t,r),r+=4;var o=i.readUint(t,r);r+=4;for(var s={glyph1:[],rval:[]},l=0;l<o;l++){i.readUint(t,r),r+=4;var u=i.readUshort(t,r);r+=2,i.readUshort(t,r),r+=2;var f=u>>>8;if(0!=(f&=15))throw"unknown kern table format: "+f;r=e.kern.readFormat0(t,r,s)}return s},e.kern.readFormat0=function(t,r,n){var a=e._bin,i=-1,o=a.readUshort(t,r);r+=2,a.readUshort(t,r),r+=2,a.readUshort(t,r),r+=2,a.readUshort(t,r),r+=2;for(var s=0;s<o;s++){var l=a.readUshort(t,r);r+=2;var u=a.readUshort(t,r);r+=2;var f=a.readShort(t,r);r+=2,l!=i&&(n.glyph1.push(l),n.rval.push({glyph2:[],vals:[]}));var d=n.rval[n.rval.length-1];d.glyph2.push(u),d.vals.push(f),i=l}return r},e.loca={},e.loca.parse=function(t,r,n,a){var i=e._bin,o=[],s=a.head.indexToLocFormat,l=a.maxp.numGlyphs+1;if(0==s)for(var u=0;u<l;u++)o.push(i.readUshort(t,r+(u<<1))<<1);if(1==s)for(u=0;u<l;u++)o.push(i.readUint(t,r+(u<<2)));return o},e.maxp={},e.maxp.parse=function(t,r,n){var a=e._bin,i={},o=a.readUint(t,r);return r+=4,i.numGlyphs=a.readUshort(t,r),r+=2,65536==o&&(i.maxPoints=a.readUshort(t,r),r+=2,i.maxContours=a.readUshort(t,r),r+=2,i.maxCompositePoints=a.readUshort(t,r),r+=2,i.maxCompositeContours=a.readUshort(t,r),r+=2,i.maxZones=a.readUshort(t,r),r+=2,i.maxTwilightPoints=a.readUshort(t,r),r+=2,i.maxStorage=a.readUshort(t,r),r+=2,i.maxFunctionDefs=a.readUshort(t,r),r+=2,i.maxInstructionDefs=a.readUshort(t,r),r+=2,i.maxStackElements=a.readUshort(t,r),r+=2,i.maxSizeOfInstructions=a.readUshort(t,r),r+=2,i.maxComponentElements=a.readUshort(t,r),r+=2,i.maxComponentDepth=a.readUshort(t,r),r+=2),i},e.name={},e.name.parse=function(t,r,n){var a=e._bin,i={};a.readUshort(t,r),r+=2;var o=a.readUshort(t,r);r+=2,a.readUshort(t,r);for(var s,l=["copyright","fontFamily","fontSubfamily","ID","fullName","version","postScriptName","trademark","manufacturer","designer","description","urlVendor","urlDesigner","licence","licenceURL","---","typoFamilyName","typoSubfamilyName","compatibleFull","sampleText","postScriptCID","wwsFamilyName","wwsSubfamilyName","lightPalette","darkPalette"],u=r+=2,f=0;f<o;f++){var d=a.readUshort(t,r);r+=2;var h=a.readUshort(t,r);r+=2;var c=a.readUshort(t,r);r+=2;var p=a.readUshort(t,r);r+=2;var v=a.readUshort(t,r);r+=2;var g=a.readUshort(t,r);r+=2;var m,y=l[p],b=u+12*o+g;if(0==d)m=a.readUnicode(t,b,v/2);else if(3==d&&0==h)m=a.readUnicode(t,b,v/2);else if(0==h)m=a.readASCII(t,b,v);else if(1==h)m=a.readUnicode(t,b,v/2);else if(3==h)m=a.readUnicode(t,b,v/2);else{if(1!=d)throw"unknown encoding "+h+", platformID: "+d;m=a.readASCII(t,b,v),console.debug("reading unknown MAC encoding "+h+" as ASCII")}var x="p"+d+","+c.toString(16);null==i[x]&&(i[x]={}),i[x][void 0!==y?y:p]=m,i[x]._lang=c}for(var S in i)if(null!=i[S].postScriptName&&1033==i[S]._lang)return i[S];for(var S in i)if(null!=i[S].postScriptName&&0==i[S]._lang)return i[S];for(var S in i)if(null!=i[S].postScriptName&&3084==i[S]._lang)return i[S];for(var S in i)if(null!=i[S].postScriptName)return i[S];for(var S in i){s=S;break}return console.debug("returning name table with languageID "+i[s]._lang),i[s]},e["OS/2"]={},e["OS/2"].parse=function(t,r,n){var a=e._bin.readUshort(t,r);r+=2;var i={};if(0==a)e["OS/2"].version0(t,r,i);else if(1==a)e["OS/2"].version1(t,r,i);else if(2==a||3==a||4==a)e["OS/2"].version2(t,r,i);else{if(5!=a)throw"unknown OS/2 table version: "+a;e["OS/2"].version5(t,r,i)}return i},e["OS/2"].version0=function(t,r,n){var a=e._bin;return n.xAvgCharWidth=a.readShort(t,r),r+=2,n.usWeightClass=a.readUshort(t,r),r+=2,n.usWidthClass=a.readUshort(t,r),r+=2,n.fsType=a.readUshort(t,r),r+=2,n.ySubscriptXSize=a.readShort(t,r),r+=2,n.ySubscriptYSize=a.readShort(t,r),r+=2,n.ySubscriptXOffset=a.readShort(t,r),r+=2,n.ySubscriptYOffset=a.readShort(t,r),r+=2,n.ySuperscriptXSize=a.readShort(t,r),r+=2,n.ySuperscriptYSize=a.readShort(t,r),r+=2,n.ySuperscriptXOffset=a.readShort(t,r),r+=2,n.ySuperscriptYOffset=a.readShort(t,r),r+=2,n.yStrikeoutSize=a.readShort(t,r),r+=2,n.yStrikeoutPosition=a.readShort(t,r),r+=2,n.sFamilyClass=a.readShort(t,r),r+=2,n.panose=a.readBytes(t,r,10),r+=10,n.ulUnicodeRange1=a.readUint(t,r),r+=4,n.ulUnicodeRange2=a.readUint(t,r),r+=4,n.ulUnicodeRange3=a.readUint(t,r),r+=4,n.ulUnicodeRange4=a.readUint(t,r),r+=4,n.achVendID=[a.readInt8(t,r),a.readInt8(t,r+1),a.readInt8(t,r+2),a.readInt8(t,r+3)],r+=4,n.fsSelection=a.readUshort(t,r),r+=2,n.usFirstCharIndex=a.readUshort(t,r),r+=2,n.usLastCharIndex=a.readUshort(t,r),r+=2,n.sTypoAscender=a.readShort(t,r),r+=2,n.sTypoDescender=a.readShort(t,r),r+=2,n.sTypoLineGap=a.readShort(t,r),r+=2,n.usWinAscent=a.readUshort(t,r),r+=2,n.usWinDescent=a.readUshort(t,r),r+2},e["OS/2"].version1=function(t,r,n){var a=e._bin;return r=e["OS/2"].version0(t,r,n),n.ulCodePageRange1=a.readUint(t,r),r+=4,n.ulCodePageRange2=a.readUint(t,r),r+4},e["OS/2"].version2=function(t,r,n){var a=e._bin;return r=e["OS/2"].version1(t,r,n),n.sxHeight=a.readShort(t,r),r+=2,n.sCapHeight=a.readShort(t,r),r+=2,n.usDefault=a.readUshort(t,r),r+=2,n.usBreak=a.readUshort(t,r),r+=2,n.usMaxContext=a.readUshort(t,r),r+2},e["OS/2"].version5=function(t,r,n){var a=e._bin;return r=e["OS/2"].version2(t,r,n),n.usLowerOpticalPointSize=a.readUshort(t,r),r+=2,n.usUpperOpticalPointSize=a.readUshort(t,r),r+2},e.post={},e.post.parse=function(t,r,n){var a=e._bin,i={};return i.version=a.readFixed(t,r),r+=4,i.italicAngle=a.readFixed(t,r),r+=4,i.underlinePosition=a.readShort(t,r),r+=2,i.underlineThickness=a.readShort(t,r),r+=2,i},null==e&&(e={}),null==e.U&&(e.U={}),e.U.codeToGlyph=function(t,e){var r=t.cmap,n=-1;if(nu