From 6c095fa9e10440d2046be647acc5899b95710276 Mon Sep 17 00:00:00 2001 From: Eric Rowell Date: Wed, 17 Apr 2019 21:38:03 -0700 Subject: [PATCH] v2.2.1 --- CHANGELOG.md | 4 + engine/dist/ElGrapho.js | 116 ++++++++++++++-------------- engine/dist/ElGrapho.min.js | 6 +- engine/src/ElGrapho.js | 2 +- engine/src/shaders/hitPoint.vert | 9 +-- engine/src/shaders/point.frag | 7 +- engine/src/shaders/point.vert | 35 +++++---- engine/src/shaders/pointHit.frag | 7 +- engine/src/shaders/pointStroke.vert | 8 +- engine/src/shaders/triangle.frag | 7 +- engine/src/shaders/triangle.vert | 37 +++++---- package.json | 2 +- 12 files changed, 124 insertions(+), 116 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2702391..fd9a9f4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Changlog +## v2.2.1 +* oops, mobile devices don't support webgl2 yet. Rolled back to webgl +* now using gray color channels, rather than alpha, to focus on groups when clicking. Results are much nicer. + ## v2.2.0 * fast tooltips for large graphs * smart label zooming diff --git a/engine/dist/ElGrapho.js b/engine/dist/ElGrapho.js index de76185..bd3b67c 100644 --- a/engine/dist/ElGrapho.js +++ b/engine/dist/ElGrapho.js @@ -1,7 +1,7 @@ /* - * El Grapho v2.2.0 + * El Grapho v2.2.1 * A high performance WebGL graph data visualization engine - * Release Date: 04-15-2019 + * Release Date: 04-17-2019 * https://github.com/ericdrowell/elgrapho * Licensed under the MIT or GPL Version 2 licenses. * @@ -420,18 +420,17 @@ module.exports = ` /*! no static exports found */ /***/ (function(module, exports) { -module.exports = `#version 300 es +module.exports = `//#version 300 es -in vec4 aVertexPosition; - -in float aVertexIndex; +attribute vec4 aVertexPosition; +attribute float aVertexIndex; uniform mat4 uModelViewMatrix; uniform mat4 uProjectionMatrix; uniform bool magicZoom; uniform float nodeSize; -out vec4 vVertexColor; +varying vec4 vVertexColor; // unsigned rIntValue = (u_color / 256 / 256) % 256; // unsigned gIntValue = (u_color / 256 ) % 256; @@ -471,7 +470,7 @@ void main() { /*! no static exports found */ /***/ (function(module, exports) { -module.exports = `#version 300 es +module.exports = `//#version 300 es //https://www.desultoryquest.com/blog/drawing-anti-aliased-circular-points-using-opengl-slash-webgl/ //#extension GL_OES_standard_derivatives : enable @@ -479,8 +478,7 @@ module.exports = `#version 300 es // https://www.desultoryquest.com/blog/drawing-anti-aliased-circular-points-using-opengl-slash-webgl/ // https://www.desultoryquest.com/blog/downloads/code/points.js precision mediump float; -in vec4 vVertexColor; -out vec4 fragColor; +varying vec4 vVertexColor; void main(void) { float r = 0.0, delta = 0.0, alpha = 1.0; @@ -497,7 +495,7 @@ void main(void) { - fragColor = vVertexColor * alpha; + gl_FragColor = vVertexColor * alpha; }`; /***/ }), @@ -509,11 +507,11 @@ void main(void) { /*! no static exports found */ /***/ (function(module, exports) { -module.exports = `#version 300 es +module.exports = `//#version 300 es -in vec4 aVertexPosition; +attribute vec4 aVertexPosition; // TODO: this should be an int -in float aVertexColor; +attribute float aVertexColor; uniform mat4 uModelViewMatrix; uniform mat4 uProjectionMatrix; @@ -522,7 +520,7 @@ uniform float nodeSize; // TODO: focusedGroup and group should change to int uniform float focusedGroup; -out vec4 vVertexColor; +varying vec4 vVertexColor; // const PALETTE_HEX = [ // '3366CC', @@ -561,41 +559,44 @@ void main() { // gl_VertexID - float alpha; + bool isGray; if (focusedGroup == -1.0 || aVertexColor == focusedGroup) { - alpha = 1.0; + isGray = false; // must be between -1 and 1 gl_Position.z = -0.5; } else { - alpha = 0.5; + isGray = true; gl_Position.z = -0.2; } - if (validColor == 0.0) { - vVertexColor = vec4(51.0/255.0, 102.0/255.0, 204.0/255.0, alpha); // 3366CC + if (isGray) { + vVertexColor = vec4(220.0/255.0, 220.0/255.0, 220.0/255.0, 1.0); + } + else if (validColor == 0.0) { + vVertexColor = vec4(51.0/255.0, 102.0/255.0, 204.0/255.0, 1.0); // 3366CC } else if (validColor == 1.0) { - vVertexColor = vec4(220.0/255.0, 57.0/255.0, 18.0/255.0, alpha); // DC3912 + vVertexColor = vec4(220.0/255.0, 57.0/255.0, 18.0/255.0, 1.0); // DC3912 } else if (validColor == 2.0) { - vVertexColor = vec4(255.0/255.0, 153.0/255.0, 0.0/255.0, alpha); // FF9900 + vVertexColor = vec4(255.0/255.0, 153.0/255.0, 0.0/255.0, 1.0); // FF9900 } else if (validColor == 3.0) { - vVertexColor = vec4(16.0/255.0, 150.0/255.0, 24.0/255.0, alpha); // 109618 + vVertexColor = vec4(16.0/255.0, 150.0/255.0, 24.0/255.0, 1.0); // 109618 } else if (validColor == 4.0) { - vVertexColor = vec4(153.0/255.0, 0.0/255.0, 153.0/255.0, alpha); // 990099 + vVertexColor = vec4(153.0/255.0, 0.0/255.0, 153.0/255.0, 1.0); // 990099 } else if (validColor == 5.0) { - vVertexColor = vec4(59.0/255.0, 62.0/255.0, 172.0/255.0, alpha); // 3B3EAC + vVertexColor = vec4(59.0/255.0, 62.0/255.0, 172.0/255.0, 1.0); // 3B3EAC } else if (validColor == 6.0) { - vVertexColor = vec4(0.0/255.0, 153.0/255.0, 198.0/255.0, alpha); // 0099C6 + vVertexColor = vec4(0.0/255.0, 153.0/255.0, 198.0/255.0, 1.0); // 0099C6 } else if (validColor == 7.0) { - vVertexColor = vec4(221.0/255.0, 68.0/255.0, 119.0/255.0, alpha); // DD4477 + vVertexColor = vec4(221.0/255.0, 68.0/255.0, 119.0/255.0, 1.0); // DD4477 } }`; @@ -609,12 +610,11 @@ void main() { /*! no static exports found */ /***/ (function(module, exports) { -module.exports = `#version 300 es +module.exports = `//#version 300 es //https://www.desultoryquest.com/blog/drawing-anti-aliased-circular-points-using-opengl-slash-webgl/ precision mediump float; -in vec4 vVertexColor; -out vec4 fragColor; +varying vec4 vVertexColor; void main(void) { float r = 0.0, delta = 0.0, alpha = 1.0; @@ -624,7 +624,7 @@ void main(void) { discard; } - fragColor = vVertexColor * alpha; + gl_FragColor = vVertexColor * alpha; }`; /***/ }), @@ -636,10 +636,10 @@ void main(void) { /*! no static exports found */ /***/ (function(module, exports) { -module.exports = `#version 300 es +module.exports = `//#version 300 es -in vec4 aVertexPosition; -in float aVertexColor; +attribute vec4 aVertexPosition; +attribute float aVertexColor; uniform mat4 uModelViewMatrix; uniform mat4 uProjectionMatrix; @@ -648,7 +648,7 @@ uniform float nodeSize; uniform float focusedGroup; uniform int hoverNode; -out vec4 vVertexColor; +varying vec4 vVertexColor; const float POINT_STROKE_WIDTH_FACTOR = 1.5; @@ -692,16 +692,15 @@ void main() { /*! no static exports found */ /***/ (function(module, exports) { -module.exports = `#version 300 es +module.exports = `//#version 300 es // use lowp for solid colors to improve perf // https://stackoverflow.com/questions/13780609/what-does-precision-mediump-float-mean precision mediump float; -in vec4 vVertexColor; -out vec4 fragColor; +varying vec4 vVertexColor; void main(void) { - fragColor = vVertexColor; + gl_FragColor = vVertexColor; }`; /***/ }), @@ -713,11 +712,11 @@ void main(void) { /*! no static exports found */ /***/ (function(module, exports) { -module.exports = `#version 300 es +module.exports = `//#version 300 es -in vec4 aVertexPosition; -in vec4 normal; -in float aVertexColor; +attribute vec4 aVertexPosition; +attribute vec4 normal; +attribute float aVertexColor; uniform mat4 uModelViewMatrix; uniform mat4 uProjectionMatrix; @@ -728,7 +727,7 @@ uniform float focusedGroup; float MAX_NODE_SIZE = 16.0; const float PI = 3.1415926535897932384626433832795; -out vec4 vVertexColor; +varying vec4 vVertexColor; vec2 rotate(vec2 v, float a) { float s = sin(a); @@ -762,42 +761,45 @@ void main() { //gl_Position.z = 0.0; - float alpha; + bool isGray; if (focusedGroup == -1.0 || aVertexColor == focusedGroup) { - alpha = 1.0; + isGray = false; gl_Position.z = -0.3; } else { - alpha = 0.5; + isGray = true; gl_Position.z = 0.0; } float validColor = mod(aVertexColor, 8.0); - if (validColor == 0.0) { - vVertexColor = vec4(51.0/255.0, 102.0/255.0, 204.0/255.0, alpha); // 3366CC + if (isGray) { + vVertexColor = vec4(220.0/255.0, 220.0/255.0, 220.0/255.0, 1.0); + } + else if (validColor == 0.0) { + vVertexColor = vec4(51.0/255.0, 102.0/255.0, 204.0/255.0, 1.0); // 3366CC } else if (validColor == 1.0) { - vVertexColor = vec4(220.0/255.0, 57.0/255.0, 18.0/255.0, alpha); // DC3912 + vVertexColor = vec4(220.0/255.0, 57.0/255.0, 18.0/255.0, 1.0); // DC3912 } else if (validColor == 2.0) { - vVertexColor = vec4(255.0/255.0, 153.0/255.0, 0.0/255.0, alpha); // FF9900 + vVertexColor = vec4(255.0/255.0, 153.0/255.0, 0.0/255.0, 1.0); // FF9900 } else if (validColor == 3.0) { - vVertexColor = vec4(16.0/255.0, 150.0/255.0, 24.0/255.0, alpha); // 109618 + vVertexColor = vec4(16.0/255.0, 150.0/255.0, 24.0/255.0, 1.0); // 109618 } else if (validColor == 4.0) { - vVertexColor = vec4(153.0/255.0, 0.0/255.0, 153.0/255.0, alpha); // 990099 + vVertexColor = vec4(153.0/255.0, 0.0/255.0, 153.0/255.0, 1.0); // 990099 } else if (validColor == 5.0) { - vVertexColor = vec4(59.0/255.0, 62.0/255.0, 172.0/255.0, alpha); // 3B3EAC + vVertexColor = vec4(59.0/255.0, 62.0/255.0, 172.0/255.0, 1.0); // 3B3EAC } else if (validColor == 6.0) { - vVertexColor = vec4(0.0/255.0, 153.0/255.0, 198.0/255.0, alpha); // 0099C6 + vVertexColor = vec4(0.0/255.0, 153.0/255.0, 198.0/255.0, 1.0); // 0099C6 } else if (validColor == 7.0) { - vVertexColor = vec4(221.0/255.0, 68.0/255.0, 119.0/255.0, alpha); // DD4477 + vVertexColor = vec4(221.0/255.0, 68.0/255.0, 119.0/255.0, 1.0); // DD4477 } }`; @@ -1026,7 +1028,7 @@ ElGrapho.prototype = { }); let mainLayer = new Concrete.Layer({ - contextType: 'webgl2' + contextType: 'webgl' }); let labelsLayer = this.labelsLayer = new Concrete.Layer({ diff --git a/engine/dist/ElGrapho.min.js b/engine/dist/ElGrapho.min.js index b9dc1d9..8aef16a 100644 --- a/engine/dist/ElGrapho.min.js +++ b/engine/dist/ElGrapho.min.js @@ -1,7 +1,7 @@ /* - * El Grapho v2.2.0 + * El Grapho v2.2.1 * A high performance WebGL graph data visualization engine - * Release Date: 04-15-2019 + * Release Date: 04-17-2019 * https://github.com/ericdrowell/elgrapho * Licensed under the MIT or GPL Version 2 licenses. * @@ -25,4 +25,4 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -!function(n,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.ElGrapho=t():n.ElGrapho=t()}(this,function(){return function(n){var t={};function r(e){if(t[e])return t[e].exports;var o=t[e]={i:e,l:!1,exports:{}};return n[e].call(o.exports,o,o.exports,r),o.l=!0,o.exports}return r.m=n,r.c=t,r.d=function(n,t,e){r.o(n,t)||Object.defineProperty(n,t,{enumerable:!0,get:e})},r.r=function(n){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(n,"__esModule",{value:!0})},r.t=function(n,t){if(1&t&&(n=r(n)),8&t)return n;if(4&t&&"object"==typeof n&&n&&n.__esModule)return n;var e=Object.create(null);if(r.r(e),Object.defineProperty(e,"default",{enumerable:!0,value:n}),2&t&&"string"!=typeof n)for(var o in n)r.d(e,o,function(t){return n[t]}.bind(null,o));return e},r.n=function(n){var t=n&&n.__esModule?function(){return n.default}:function(){return n};return r.d(t,"a",t),t},r.o=function(n,t){return Object.prototype.hasOwnProperty.call(n,t)},r.p="",r(r.s="./engine/src/ElGrapho.js")}({"./engine/dist/icons/boxZoomIcon.svg.js":function(n,t){n.exports='\n\n\x3c!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --\x3e\n\n\n\n \n \n \n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n'},"./engine/dist/icons/moveIcon.svg.js":function(n,t){n.exports='\n\n\n\n \n \n \n\n'},"./engine/dist/icons/resetIcon.svg.js":function(n,t){n.exports='\n\n\x3c!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --\x3e\n\n\n \n \n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n'},"./engine/dist/icons/selectIcon.svg.js":function(n,t){n.exports='\n\n\x3c!-- Generator: Adobe Illustrator 17.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --\x3e\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n'},"./engine/dist/icons/zoomInIcon.svg.js":function(n,t){n.exports='\n\n\x3c!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --\x3e\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n'},"./engine/dist/icons/zoomOutIcon.svg.js":function(n,t){n.exports='\n\n\x3c!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --\x3e\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n'},"./engine/dist/shaders/hitPoint.vert.js":function(n,t){n.exports="#version 300 es\n\nin vec4 aVertexPosition;\n\nin float aVertexIndex;\n\nuniform mat4 uModelViewMatrix;\nuniform mat4 uProjectionMatrix;\nuniform bool magicZoom;\nuniform float nodeSize;\n\nout vec4 vVertexColor;\n\n// unsigned rIntValue = (u_color / 256 / 256) % 256;\n// unsigned gIntValue = (u_color / 256 ) % 256;\n// unsigned bIntValue = (u_color ) % 256;\n\n// https://stackoverflow.com/questions/6893302/decode-rgb-value-to-single-float-without-bit-shift-in-glsl\n// had to flip r and b to match concrete notation\nvec3 unpackColor(float f) {\n vec3 color;\n color.r = floor(f / 256.0 / 256.0);\n color.g = floor((f - color.r * 256.0 * 256.0) / 256.0);\n color.b = floor(f - color.r * 256.0 * 256.0 - color.g * 256.0);\n // now we have a vec3 with the 3 components in range [0..255]. Let's normalize it!\n return color / 255.0;\n}\n\nvoid main() {\n gl_Position = uProjectionMatrix * uModelViewMatrix * aVertexPosition;\n\n if (magicZoom) {\n gl_PointSize = nodeSize; \n }\n else {\n float size = nodeSize * min(length(uModelViewMatrix[0]), length(uModelViewMatrix[1]));\n gl_PointSize = max(size, 5.0);\n }\n\n vVertexColor = vec4(unpackColor(aVertexIndex), 1.0);\n}"},"./engine/dist/shaders/point.frag.js":function(n,t){n.exports="#version 300 es\n\n//https://www.desultoryquest.com/blog/drawing-anti-aliased-circular-points-using-opengl-slash-webgl/\n//#extension GL_OES_standard_derivatives : enable\n\n// https://www.desultoryquest.com/blog/drawing-anti-aliased-circular-points-using-opengl-slash-webgl/\n// https://www.desultoryquest.com/blog/downloads/code/points.js\nprecision mediump float;\nin vec4 vVertexColor;\nout vec4 fragColor;\n\nvoid main(void) {\n float r = 0.0, delta = 0.0, alpha = 1.0;\n vec2 cxy = 2.0 * gl_PointCoord - 1.0;\n r = dot(cxy, cxy);\n\n if (r > 1.0) {\n discard;\n }\n\n // delta = fwidth(r);\n // alpha = 1.0 - smoothstep(1.0 - delta, 1.0 + delta, r);\n\n\n\n\n fragColor = vVertexColor * alpha;\n}"},"./engine/dist/shaders/point.vert.js":function(n,t){n.exports="#version 300 es\n\nin vec4 aVertexPosition;\n// TODO: this should be an int\nin float aVertexColor;\n\nuniform mat4 uModelViewMatrix;\nuniform mat4 uProjectionMatrix;\nuniform bool magicZoom;\nuniform float nodeSize;\n// TODO: focusedGroup and group should change to int\nuniform float focusedGroup;\n\nout vec4 vVertexColor;\n\n// const PALETTE_HEX = [\n// '3366CC',\n// 'DC3912',\n// 'FF9900',\n// '109618',\n// '990099',\n// '3B3EAC',\n// '0099C6',\n// 'DD4477',\n// '66AA00',\n// 'B82E2E',\n// '316395',\n// '994499',\n// '22AA99',\n// 'AAAA11',\n// '6633CC',\n// 'E67300',\n// '8B0707',\n// '329262',\n// '5574A6',\n// '3B3EAC'\n// ];\n\nvoid main() {\n gl_Position = uProjectionMatrix * uModelViewMatrix * aVertexPosition;\n\n if (magicZoom) {\n gl_PointSize = nodeSize; \n }\n else {\n gl_PointSize = nodeSize * min(length(uModelViewMatrix[0]), length(uModelViewMatrix[1]));\n }\n\n float validColor = mod(aVertexColor, 8.0);\n\n // gl_VertexID\n\n float alpha;\n\n if (focusedGroup == -1.0 || aVertexColor == focusedGroup) {\n alpha = 1.0;\n // must be between -1 and 1\n gl_Position.z = -0.5;\n }\n else {\n alpha = 0.5;\n gl_Position.z = -0.2;\n }\n\n if (validColor == 0.0) {\n vVertexColor = vec4(51.0/255.0, 102.0/255.0, 204.0/255.0, alpha); // 3366CC\n }\n else if (validColor == 1.0) {\n vVertexColor = vec4(220.0/255.0, 57.0/255.0, 18.0/255.0, alpha); // DC3912\n }\n else if (validColor == 2.0) {\n vVertexColor = vec4(255.0/255.0, 153.0/255.0, 0.0/255.0, alpha); // FF9900\n }\n else if (validColor == 3.0) {\n vVertexColor = vec4(16.0/255.0, 150.0/255.0, 24.0/255.0, alpha); // 109618\n }\n else if (validColor == 4.0) {\n vVertexColor = vec4(153.0/255.0, 0.0/255.0, 153.0/255.0, alpha); // 990099\n }\n else if (validColor == 5.0) {\n vVertexColor = vec4(59.0/255.0, 62.0/255.0, 172.0/255.0, alpha); // 3B3EAC\n }\n else if (validColor == 6.0) {\n vVertexColor = vec4(0.0/255.0, 153.0/255.0, 198.0/255.0, alpha); // 0099C6\n }\n else if (validColor == 7.0) {\n vVertexColor = vec4(221.0/255.0, 68.0/255.0, 119.0/255.0, alpha); // DD4477\n }\n\n}"},"./engine/dist/shaders/pointHit.frag.js":function(n,t){n.exports="#version 300 es\n\n//https://www.desultoryquest.com/blog/drawing-anti-aliased-circular-points-using-opengl-slash-webgl/\nprecision mediump float;\nin vec4 vVertexColor;\nout vec4 fragColor;\n\nvoid main(void) {\n float r = 0.0, delta = 0.0, alpha = 1.0;\n vec2 cxy = 2.0 * gl_PointCoord - 1.0;\n r = dot(cxy, cxy);\n if (r > 1.0) {\n discard;\n }\n\n fragColor = vVertexColor * alpha;\n}"},"./engine/dist/shaders/pointStroke.vert.js":function(n,t){n.exports="#version 300 es\n\nin vec4 aVertexPosition;\nin float aVertexColor;\n\nuniform mat4 uModelViewMatrix;\nuniform mat4 uProjectionMatrix;\nuniform bool magicZoom;\nuniform float nodeSize;\nuniform float focusedGroup;\nuniform int hoverNode;\n\nout vec4 vVertexColor;\n\nconst float POINT_STROKE_WIDTH_FACTOR = 1.5;\n\nvoid main() {\n gl_Position = uProjectionMatrix * uModelViewMatrix * aVertexPosition;\n //gl_Position.z = 0.0;\n\n if (magicZoom) {\n gl_PointSize = nodeSize * POINT_STROKE_WIDTH_FACTOR; \n }\n else {\n gl_PointSize = nodeSize * min(length(uModelViewMatrix[0]), length(uModelViewMatrix[1])) * POINT_STROKE_WIDTH_FACTOR;\n }\n\n \n if (focusedGroup == -1.0 || aVertexColor == focusedGroup) {\n gl_Position.z = -0.4;\n }\n else {\n gl_Position.z = -0.1;\n }\n\n // if (gl_VertexID == hoverNode) {\n \n // vVertexColor = vec4(0.0, 0.0, 0.0, 1.0); \n // }\n // else {\n vVertexColor = vec4(1.0, 1.0, 1.0, 1.0); \n //}\n\n \n\n}"},"./engine/dist/shaders/triangle.frag.js":function(n,t){n.exports="#version 300 es\n\n// use lowp for solid colors to improve perf\n// https://stackoverflow.com/questions/13780609/what-does-precision-mediump-float-mean\nprecision mediump float;\nin vec4 vVertexColor;\nout vec4 fragColor;\n\nvoid main(void) {\n fragColor = vVertexColor;\n}"},"./engine/dist/shaders/triangle.vert.js":function(n,t){n.exports="#version 300 es\n\nin vec4 aVertexPosition;\nin vec4 normal;\nin float aVertexColor;\n\nuniform mat4 uModelViewMatrix;\nuniform mat4 uProjectionMatrix;\nuniform bool magicZoom;\nuniform float nodeSize;\nuniform float focusedGroup;\n\nfloat MAX_NODE_SIZE = 16.0;\nconst float PI = 3.1415926535897932384626433832795;\n\nout vec4 vVertexColor;\n\nvec2 rotate(vec2 v, float a) {\n\tfloat s = sin(a);\n\tfloat c = cos(a);\n\tmat2 m = mat2(c, -s, s, c);\n\treturn m * v;\n}\n\n// https://mattdesl.svbtle.com/drawing-lines-is-hard\n// https://github.com/mattdesl/three-line-2d/blob/master/shaders/basic.js\nvoid main() {\n float zoomX = length(uModelViewMatrix[0]);\n float zoomY = length(uModelViewMatrix[1]);\n // vec2 standardZoomVector = normalize(vec2(1.0, 0.0));\n // vec2 zoomVector = normalize(vec2(zoomX, zoomY));\n // float zoomAngle = dot(standardZoomVector, zoomVector);\n // vec2 vec2Normal = vec2(normal.xy);\n // vec2 rotatedNormal = rotate(vec2Normal, zoomAngle);\n // vec4 newNormal = vec4(rotatedNormal.x, rotatedNormal.y, 0.0, 0.0);\n\n vec4 newNormal = vec4(normal.x, normal.y, 0.0, 0.0);\n\n if (magicZoom) {\n gl_Position = uProjectionMatrix * ((uModelViewMatrix * aVertexPosition) + newNormal);\n }\n else {\n newNormal.x = newNormal.x * zoomX * nodeSize / MAX_NODE_SIZE;\n newNormal.y = newNormal.y * zoomY * nodeSize / MAX_NODE_SIZE;\n gl_Position = uProjectionMatrix * ((uModelViewMatrix * aVertexPosition) + newNormal);\n }\n\n //gl_Position.z = 0.0;\n \n float alpha;\n\n if (focusedGroup == -1.0 || aVertexColor == focusedGroup) {\n alpha = 1.0;\n gl_Position.z = -0.3;\n }\n else {\n alpha = 0.5;\n gl_Position.z = 0.0;\n }\n\n float validColor = mod(aVertexColor, 8.0);\n\n if (validColor == 0.0) {\n vVertexColor = vec4(51.0/255.0, 102.0/255.0, 204.0/255.0, alpha); // 3366CC\n }\n else if (validColor == 1.0) {\n vVertexColor = vec4(220.0/255.0, 57.0/255.0, 18.0/255.0, alpha); // DC3912\n }\n else if (validColor == 2.0) {\n vVertexColor = vec4(255.0/255.0, 153.0/255.0, 0.0/255.0, alpha); // FF9900\n }\n else if (validColor == 3.0) {\n vVertexColor = vec4(16.0/255.0, 150.0/255.0, 24.0/255.0, alpha); // 109618\n }\n else if (validColor == 4.0) {\n vVertexColor = vec4(153.0/255.0, 0.0/255.0, 153.0/255.0, alpha); // 990099\n }\n else if (validColor == 5.0) {\n vVertexColor = vec4(59.0/255.0, 62.0/255.0, 172.0/255.0, alpha); // 3B3EAC\n }\n else if (validColor == 6.0) {\n vVertexColor = vec4(0.0/255.0, 153.0/255.0, 198.0/255.0, alpha); // 0099C6\n }\n else if (validColor == 7.0) {\n vVertexColor = vec4(221.0/255.0, 68.0/255.0, 119.0/255.0, alpha); // DD4477\n }\n}"},"./engine/dist/styles/ElGrapho.min.css.js":function(n,t){n.exports=".el-grapho-tooltip{position:fixed;background-color:white;pointer-events:none;padding:10px;border:1px solid #333;border-radius:3px;font-family:verdana;font-size:12px;user-select:none}.el-grapho-controls{position:absolute;right:0;top:5px;opacity:0;transition:opacity .3s ease-in-out}.el-grapho-controls button{background:white;padding:5px;cursor:pointer;outline:0;border:2px solid black;border-radius:3px;margin-right:5px}.el-grapho-controls .el-grapho-step-down-control{transform:scale(1,-1)}.el-grapho-wrapper:hover .el-grapho-controls{opacity:1}.el-grapho-count{position:absolute;bottom:5px;right:5px;pointer-events:none;font-family:monospace;background-color:white;border-radius:3px;padding:3px;opacity:.9}.el-grapho-count::selection{background:transparent}.el-grapho-box-zoom-component{position:fixed;border:1px solid #119fe0;background-color:rgba(17,159,224,0.1);pointer-events:none}.el-grapho-loading-component{width:100%;height:100%;background-color:rgba(255,255,255,0.9);position:absolute;top:0;opacity:0;transition:opacity .3s ease-in-out;pointer-events:none}.el-grapho-loading .el-grapho-loading-component{opacity:1}.spinner{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.spinner>div{width:18px;height:18px;background-color:#333;border-radius:100%;display:inline-block;-webkit-animation:sk-bouncedelay 1.4s infinite ease-in-out both;animation:sk-bouncedelay 1.4s infinite ease-in-out both}.spinner .bounce1{-webkit-animation-delay:-0.32s;animation-delay:-0.32s}.spinner .bounce2{-webkit-animation-delay:-0.16s;animation-delay:-0.16s}@-webkit-keyframes sk-bouncedelay{0%,80%,100%{-webkit-transform:scale(0)}40%{-webkit-transform:scale(1)}}@keyframes sk-bouncedelay{0%,80%,100%{-webkit-transform:scale(0);transform:scale(0)}40%{-webkit-transform:scale(1);transform:scale(1)}}.el-grapho-wrapper{display:inline-block;position:relative;background-color:white;overflow:hidden}.el-grapho-wrapper.el-grapho-select-interaction-mode{cursor:default}.el-grapho-wrapper.el-grapho-select-interaction-mode .el-grapho-controls .el-grapho-select-control{border-color:#119fe0}.el-grapho-wrapper.el-grapho-select-interaction-mode .el-grapho-controls .el-grapho-select-control path,.el-grapho-wrapper.el-grapho-select-interaction-mode .el-grapho-controls .el-grapho-select-control polygon{fill:#119fe0}.el-grapho-wrapper.el-grapho-pan-interaction-mode{cursor:move}.el-grapho-wrapper.el-grapho-pan-interaction-mode .el-grapho-controls .el-grapho-pan-control{border-color:#119fe0}.el-grapho-wrapper.el-grapho-pan-interaction-mode .el-grapho-controls .el-grapho-pan-control path,.el-grapho-wrapper.el-grapho-pan-interaction-mode .el-grapho-controls .el-grapho-pan-control polygon{fill:#119fe0}.el-grapho-wrapper.el-grapho-box-zoom-interaction-mode{cursor:zoom-in}.el-grapho-wrapper.el-grapho-box-zoom-interaction-mode .el-grapho-controls .el-grapho-box-zoom-control{border-color:#119fe0}.el-grapho-wrapper.el-grapho-box-zoom-interaction-mode .el-grapho-controls .el-grapho-box-zoom-control path,.el-grapho-wrapper.el-grapho-box-zoom-interaction-mode .el-grapho-controls .el-grapho-box-zoom-control polygon{fill:#119fe0}\n"},"./engine/src/Color.js":function(n,t){const r={rgbToInt:function(n){return(n[0]<<16)+(n[1]<<8)+n[2]},intToRGB:function(n){return[(16711680&n)>>16,(65280&n)>>8,255&n]},hexToRgb:function(n){var t=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(n);return[parseInt(t[1],16),parseInt(t[2],16),parseInt(t[3],16)]}};n.exports=r},"./engine/src/Dom.js":function(n,t){const r={create:function(n){let t=document.createElement("div");return t.className=n,t},closest:function(n,t){if(!document.documentElement.contains(n))return null;do{if(n.matches(t))return n;n=n.parentElement||n.parentNode}while(null!==n&&1===n.nodeType);return null}};n.exports=r},"./engine/src/EasingFunctions.js":function(n,t){n.exports={linear:function(n){return n},easeInQuad:function(n){return n*n},easeOutQuad:function(n){return n*(2-n)},easeInOutQuad:function(n){return n<.5?2*n*n:(4-2*n)*n-1},easeInCubic:function(n){return n*n*n},easeOutCubic:function(n){return--n*n*n+1},easeInOutCubic:function(n){return n<.5?4*n*n*n:(n-1)*(2*n-2)*(2*n-2)+1},easeInQuart:function(n){return n*n*n*n},easeOutQuart:function(n){return 1- --n*n*n*n},easeInOutQuart:function(n){return n<.5?8*n*n*n*n:1-8*--n*n*n*n},easeInQuint:function(n){return n*n*n*n*n},easeOutQuint:function(n){return 1+--n*n*n*n*n},easeInOutQuint:function(n){return n<.5?16*n*n*n*n*n:1+16*--n*n*n*n*n}}},"./engine/src/ElGrapho.js":function(n,t,r){const e=r("./engine/src/UUID.js"),o=r("./engine/src/WebGL.js"),i=r("./engine/src/Profiler.js"),u=r("./engine/src/ElGraphoCollection.js"),a=r("./engine/src/components/Controls/Controls.js"),c=r("./engine/src/components/Count/Count.js"),s=r("./engine/src/Events.js"),f=r("./node_modules/concretejs/build/concrete.min.js"),l=r("./node_modules/lodash/lodash.js"),h=r("./engine/src/Color.js"),d=r("./engine/src/Theme.js"),p=r("./engine/src/components/Tooltip/Tooltip.js"),g=r("./engine/src/formatters/NumberFormatter.js"),v=r("./engine/src/VertexBridge.js"),m=r("./engine/src/Enums.js"),x=r("./engine/src/components/BoxZoom/BoxZoom.js"),_=r("./engine/src/Dom.js"),y=r("./engine/src/components/Loading/Loading.js"),b=r("./engine/src/Labels.js"),w=r("./engine/src/layouts/Tree.js"),M=r("./engine/src/layouts/Cluster.js"),A=r("./engine/src/layouts/Chord.js"),j=r("./engine/src/layouts/ForceDirected.js"),E=r("./engine/src/layouts/Hairball.js"),P=r("./engine/src/layouts/RadialTree.js");let I=function(n){let t=this;void 0!==n.model.then?n.model.then(function(r){n.model=r,t.init(n)}):this.init(n)};I.prototype={init:function(n){this.container=n.container||document.createElement("div"),this.id=e.generate(),this.dirty=!0,this.hitDirty=!0,this.zoomX=1,this.zoomY=1,this.panX=0,this.panY=0,this.events=new s,this.model=n.model,this.width=n.model.width,this.height=n.model.height,this.steps=n.model.steps,this.nodeSize=n.nodeSize||1,this.nodeSize*=16,this.focusedGroup=-1,this.animations=[],this.wrapper=document.createElement("div"),this.wrapper.className="el-grapho-wrapper",this.wrapper.style.width=this.width+"px",this.wrapper.style.height=this.height+"px",this.container.innerHTML="",this.container.appendChild(this.wrapper),this.animations=void 0===n.animations||n.animations,this.setInteractionMode(m.interactionMode.SELECT),this.panStart=null,this.idle=!0,this.debug=void 0!==n.debug&&n.debug,this.showArrows=void 0!==n.arrows&&n.arrows,this.tooltipTemplate=function(n,t){t.innerHTML=I.NumberFormatter.addCommas(n)},this.hoveredDataIndex=-1,this.allListeners=[];let t=this.viewport=new f.Viewport({container:this.wrapper,width:this.width,height:this.height}),r=new f.Layer({contextType:"webgl2"}),i=this.labelsLayer=new f.Layer({contextType:"2d"});t.add(r),t.add(i),this.webgl=new o({layer:r}),u.initialized||u.init();let a=this.vertices=v.modelToVertices(n.model,this.width,this.height,this.showArrows);this.webgl.initBuffers(a),this.initComponents(),this.labels=new b,this.listen(),u.graphs.push(this)},initComponents:function(){let n=this.model;this.controls=new a({container:this.wrapper,graph:this,showStepControls:!0}),this.loading=new y({container:this.wrapper}),this.debug&&(this.count=new c({container:this.wrapper}),this.count.update(n.nodes.length,n.edges.length,n.steps))},renderLabels:function(n){let t=this;this.labels.clear();let r=this.vertices.points.positions;this.model.nodes.forEach(function(n,e){let o=2*e;t.labels.addLabel(n.label,r[o],r[o+1])});let e=this.labelsLayer.scene.context;e.save(),e.translate(this.width/2,this.height/2),e.scale(n,n),e.textAlign="center",e.font="12px Arial",e.fillStyle="#333",e.strokeStyle="white",e.lineWidth=3,e.lineJoin="round",this.labels.labelsAdded.forEach(function(r){let o=(r.x*t.zoomX+t.panX)/n,i=(-1*r.y*t.zoomY-t.panY)/n-10;e.beginPath(),e.strokeText(r.str,o,i),e.fillText(r.str,o,i)}),e.restore()},getMousePosition(n){let t=this.wrapper.getBoundingClientRect();return{x:n.clientX-t.left,y:n.clientY-t.top}},addListener:function(n,t,r){this.allListeners[t]=this.allListeners[t]||[],this.allListeners[t].push({o:n,on:t,fn:r}),n.addEventListener(t,r)},removeAllListeners:function(){const n=this.allListeners.length;for(let t=0;tn.zoomBoxAnchor.x&&s.y>n.zoomBoxAnchor.y?(i=s.x-n.zoomBoxAnchor.x,u=s.y-n.zoomBoxAnchor.y,e=n.zoomBoxAnchor.x,o=n.zoomBoxAnchor.y):s.x>n.zoomBoxAnchor.x&&s.y<=n.zoomBoxAnchor.y?(i=s.x-n.zoomBoxAnchor.x,u=n.zoomBoxAnchor.y-s.y,e=n.zoomBoxAnchor.x,o=s.y):s.x<=n.zoomBoxAnchor.x&&s.y<=n.zoomBoxAnchor.y?(i=n.zoomBoxAnchor.x-s.x,u=n.zoomBoxAnchor.y-s.y,e=s.x,o=s.y):s.x<=n.zoomBoxAnchor.x&&s.y>n.zoomBoxAnchor.y&&(i=n.zoomBoxAnchor.x-s.x,u=s.y-n.zoomBoxAnchor.y,e=s.x,o=n.zoomBoxAnchor.y);let f=t.width,l=t.height;i<2||u<2?(a=2,c=2,i=0,u=0,e=s.x,o=s.y):(a=f/i,c=l/u);let h=l/2,d=(f/2-(e+i/2))*n.zoomX,p=(o+u/2-h)*n.zoomY;n.zoomToPoint(d,p,a,c),x.destroy(),n.zoomBoxAnchor=null}}),this.addListener(t.container,"mouseup",function(r){if(!_.closest(r.target,".el-grapho-controls")){if(!n.panStart&&!n.zoomBoxAnchor){let e=n.getMousePosition(r),o=t.getIntersection(e.x,e.y);-1===o?n.deselectGroup():(n.selectGroup(n.vertices.points.colors[o]),n.fire(m.events.NODE_CLICK,{dataIndex:o}))}if(n.interactionMode===m.interactionMode.PAN){let e=n.getMousePosition(r),o={x:e.x-n.panStart.x,y:e.y-n.panStart.y};n.panX+=o.x,n.panY-=o.y,n.panStart=null,t.scene.canvas.style.marginLeft=0,t.scene.canvas.style.marginTop=0,n.dirty=!0,n.hitDirty=!0}}}),this.addListener(t.container,"mouseout",l.throttle(function(){p.hide()}))},setInteractionMode:function(n){this.interactionMode=n,this.wrapper.className="el-grapho-wrapper el-grapho-"+n+"-interaction-mode"},zoomToPoint:function(n,t,r,e){if(p.hide(),this.animations){this.animations=[];let o=this;this.animations.push({startVal:o.zoomX,endVal:o.zoomX*r,startTime:(new Date).getTime(),endTime:(new Date).getTime()+300,prop:"zoomX"}),this.animations.push({startVal:o.zoomY,endVal:o.zoomY*e,startTime:(new Date).getTime(),endTime:(new Date).getTime()+300,prop:"zoomY"}),this.animations.push({startVal:o.panX,endVal:(o.panX+n/o.zoomX)*r,startTime:(new Date).getTime(),endTime:(new Date).getTime()+300,prop:"panX"}),this.animations.push({startVal:o.panY,endVal:(o.panY+t/o.zoomY)*e,startTime:(new Date).getTime(),endTime:(new Date).getTime()+300,prop:"panY"}),this.dirty=!0}else this.panX=(this.panX+n/this.zoomX)*r,this.panY=(this.panY+t/this.zoomY)*e,this.zoomX=this.zoomX*r,this.zoomY=this.zoomY*e,this.dirty=!0,this.hitDirty=!0},zoomIn:function(){p.hide(),this.zoomToPoint(0,0,2,2)},zoomOut:function(){p.hide(),this.zoomToPoint(0,0,.5,.5)},reset:function(){if(p.hide(),this.animations){this.animations=[];let n=this;this.animations.push({startVal:n.zoomX,endVal:1,startTime:(new Date).getTime(),endTime:(new Date).getTime()+300,prop:"zoomX"}),this.animations.push({startVal:n.zoomY,endVal:1,startTime:(new Date).getTime(),endTime:(new Date).getTime()+300,prop:"zoomY"}),this.animations.push({startVal:n.panX,endVal:0,startTime:(new Date).getTime(),endTime:(new Date).getTime()+300,prop:"panX"}),this.animations.push({startVal:n.panY,endVal:0,startTime:(new Date).getTime(),endTime:(new Date).getTime()+300,prop:"panY"}),this.dirty=!0}else this.zoomX=1,this.zoomY=1,this.panX=0,this.panY=0,this.dirty=!0,this.hitDirty=!0},on:function(n,t){this.events.on(n,t)},fire:function(n,t){this.events.fire(n,t)},showLoading:function(){this.wrapper.classList.add("el-grapho-loading")},hideLoading:function(){this.wrapper.classList.remove("el-grapho-loading")},destroy:function(){this.removeAllListeners(),this.viewport.destroy(),u.remove(this)},selectGroup:function(n){this.focusedGroup=n,this.dirty=!0},deselectGroup:function(){this.focusedGroup=-1,this.dirty=!0}},I.Theme=d,I.Color=h,I.Profiler=i,I.NumberFormatter=g,I.layouts={Tree:w,Cluster:M,Chord:A,ForceDirected:j,Hairball:E,RadialTree:P},n.exports=I},"./engine/src/ElGraphoCollection.js":function(n,t,r){const e=r("./engine/src/EasingFunctions.js"),o=r("./engine/dist/styles/ElGrapho.min.css.js"),i=r("./engine/src/Enums.js");let u={graphs:[],initialized:!1,init:function(){u.injectStyles(),u.executeFrame(),u.initialized=!0},injectStyles:function(){let n=document.getElementsByTagName("head")[0],t=document.createElement("style");t.setAttribute("type","text/css"),t.styleSheet?t.styleSheet.cssText=o:t.appendChild(document.createTextNode(o)),n.appendChild(t)},executeFrame:function(){let n=(new Date).getTime();u.graphs.forEach(function(t){let r,o,u=0,a=!0;for(;u=16?(r=!0,o=16):(r=!1,o=t.nodeSize),t.dirty){a=!1,t.webgl.drawScene(t.panX,t.panY,t.zoomX,t.zoomY,r,o,t.focusedGroup,t.hoveredDataIndex),t.labelsLayer.scene.clear(),void 0!==t.model.nodes[0].label&&t.renderLabels(t.zoomX<1||t.zoomY<1?Math.min(t.zoomX,t.zoomY):1),t.viewport.render(),t.dirty=!1}t.hitDirty&&(a=!1,t.webgl.drawHit(t.panX,t.panY,t.zoomX,t.zoomY,r,o),t.hitDirty=!1),a&&!t.idle&&t.fire(i.events.IDLE),t.idle=a}),requestAnimationFrame(u.executeFrame)},remove:function(n){let t=u.graphs,r=t.length;for(let e=0;eo.anchorX?(r=o.anchorX,e=n):(r=n,e=o.anchorX),t>o.anchorY?(i=o.anchorY,u=t):(i=t,u=o.anchorY);let a=e-r,c=u-i;o.el.style.left=Math.floor(r)+"px",o.el.style.top=Math.floor(i)+"px",o.el.style.width=Math.floor(a)+"px",o.el.style.height=Math.floor(c)+"px"}},destroy:function(){let n=document.querySelector(".el-grapho-box-zoom-component");n&&n.remove(),o.active=!1}};n.exports=o},"./engine/src/components/Controls/Controls.js":function(n,t,r){const e=r("./engine/dist/icons/zoomInIcon.svg.js"),o=r("./engine/dist/icons/zoomOutIcon.svg.js"),i=r("./engine/dist/icons/moveIcon.svg.js"),u=r("./engine/dist/icons/selectIcon.svg.js"),a=r("./engine/dist/icons/boxZoomIcon.svg.js"),c=r("./engine/dist/icons/resetIcon.svg.js"),s=function(n){this.graph=n.graph,this.container=n.container,this.wrapper=document.createElement("div"),this.wrapper.className="el-grapho-controls",this.container.appendChild(this.wrapper),this.selectButton=this.addButton({icon:u,evtName:"select"}),this.boxZoomIcon=this.addButton({icon:a,evtName:"box-zoom"}),this.panButton=this.addButton({icon:i,evtName:"pan"}),this.resetButton=this.addButton({icon:c,evtName:"reset"}),this.zoomInButton=this.addButton({icon:e,evtName:"zoom-in"}),this.zoomOutButton=this.addButton({icon:o,evtName:"zoom-out"})};s.prototype={addButton:function(n){let t=document.createElement("button");t.className="el-grapho-"+n.evtName+"-control";let r=this.graph;return t.innerHTML=n.icon,t.addEventListener("click",function(){r.fire(n.evtName)}),this.wrapper.appendChild(t),t}},n.exports=s},"./engine/src/components/Count/Count.js":function(n,t,r){const e=r("./engine/src/formatters/NumberFormatter.js"),o=function(n){let t=this.wrapper=document.createElement("span");n.container.appendChild(t)};o.prototype={update:function(n,t,r){let o=e.addCommas(n)+" nodes + "+e.addCommas(t)+" edges",i=void 0===r?"":" x "+r+" steps";this.wrapper.innerHTML=o+i,this.wrapper.className="el-grapho-count"}},n.exports=o},"./engine/src/components/Loading/Loading.js":function(n,t,r){const e=r("./engine/src/Dom.js"),o=function(n){this.container=n.container,this.wrapper=e.create("el-grapho-loading-component");this.wrapper.innerHTML='\n
\n
\n
\n
\n
\n ',this.container.appendChild(this.wrapper)};o.prototype={},n.exports=o},"./engine/src/components/Tooltip/Tooltip.js":function(n,t,r){const e=r("./engine/src/Dom.js"),o={DEFAULT_TEMPLATE:function(n){this.wrapper.innerHTML=n},initialized:!1,init:function(){o.wrapper=e.create("el-grapho-tooltip"),document.body.appendChild(this.wrapper),o.initialized=!0},render:function(n,t,r,e){o.initialized||o.init(),o.wrapper.style.display="inline-block",o.wrapper.style.left=t+"px",o.wrapper.style.bottom=window.innerHeight-r+10+"px",e(n,this.wrapper)},hide:function(){o.initialized||o.init(),o.wrapper.style.display="none"}};n.exports=o},"./engine/src/formatters/NumberFormatter.js":function(n,t){const r={addCommas:function(n){return n.toString().replace(/\B(?=(\d{3})+(?!\d))/g,",")},roundToNearestDecimalPlace:function(n,t){let r=Math.pow(10,t);return Math.round(n*r)/r}};n.exports=r},"./engine/src/layouts/Chord.js":function(n,t,r){const e=r("./engine/src/layouts/utils/fitToViewport.js");n.exports=function(n){let t=n.nodes.length;return n.nodes.forEach(function(n,r){let e=-1*Math.PI*2*r/t+Math.PI/2;n.x=Math.cos(e),n.y=Math.sin(e)}),e(n.nodes,!1),n}},"./engine/src/layouts/Cluster.js":function(n,t,r){const e=r("./engine/src/layouts/utils/fitToViewport.js");n.exports=function(n){let t,r,o=n.width,i=n.height;o>i?(t=i/o,r=1):(t=1,r=o/i);let u={};n.nodes.forEach(function(n,t){let r=n.group;void 0===u[r]&&(u[r]=[]),u[r].push(t)});let a,c=Object.keys(u).length,s=0,f=0;for(a in u)f=Math.max(f,u[a].length);let l=1/Math.sqrt(f);for(a in u){let e,o,i=u[a],f=-2*Math.PI*s/c+Math.PI;1===c?(e=0,o=0):(e=Math.cos(f),o=Math.sin(f));let h=l,d=l/h,p=0;i.forEach(function(i){let u=Math.cos(p)*h*t,a=Math.sin(p)*h*r;n.nodes[i].x=e+u,n.nodes[i].y=o+a,h+=l*d/(2*Math.PI),p-=d=l/h}),s++}return e(n.nodes,!0),n}},"./engine/src/layouts/ForceDirected.js":function(n,t,r){const e=r("./engine/src/layouts/utils/fitToViewport.js"),o=r("./node_modules/d3-force/src/index.js");n.exports=function(n){void 0===n.steps&&(n.steps=30);let t=[],r=[];n.nodes.forEach(function(n,r){t.push({id:r,group:n.group})}),n.edges.forEach(function(n){r.push({source:n.from,target:n.to})});var i=o.forceSimulation(t).force("charge",o.forceManyBody()).force("link",o.forceLink(r).distance(20).strength(1)).force("x",o.forceX()).force("y",o.forceY());return i.tick(n.steps),i.stop(),i.nodes().forEach(function(t,r){n.nodes[r].x=t.x,n.nodes[r].y=t.y}),e(n.nodes,!1),n}},"./engine/src/layouts/Hairball.js":function(n,t,r){const e=r("./engine/src/layouts/utils/fitToViewport.js"),o=function(n,t){t.forEach(function(t){let r,e,o=t.from,i=t.to,u=n[o].x,a=n[o].y,c=n[i].x-u,s=n[i].y-a;Math.sqrt(c*c+s*s)>0&&(r=.1*c,e=.1*s,n[o].x+=r,n[o].y+=e,n[i].x-=r,n[i].y-=e)})};n.exports=function(n){void 0===n.steps&&(n.steps=20);let t=n.nodes,r=n.edges;!function(n){let t=n.length,r=[];n.forEach(function(n){let t=n.group;void 0===r[t]&&(r[t]={count:0}),r[t].count++});let e=0;for(let n=0;ni&&(i=n.level)}),r.sort(function(n,t){return n.index-t.index});for(let n=0;n<=i;n++)u.push([]);return r.forEach(function(n,t){n.index=t,u[n.level].push(n)}),u}},"./engine/src/layouts/utils/fitToViewport.js":function(n,t){n.exports=function(n,t){let r=Number.POSITIVE_INFINITY,e=Number.POSITIVE_INFINITY,o=Number.NEGATIVE_INFINITY,i=Number.NEGATIVE_INFINITY;n.forEach(function(n){let t=n.x,u=n.y;r=Math.min(r,t),e=Math.min(e,u),o=Math.max(o,t),i=Math.max(i,u)});let u=o-r,a=i-e,c=r+u/2,s=e+a/2,f=1.9/u,l=1.9/a;if(t){let n=Math.min(f,l);f=n,l=n}n.forEach(function(n){n.x=(n.x-c)*f,n.y=(n.y-s)*l})}},"./node_modules/concretejs/build/concrete.min.js":function(n,t,r){var e,o={},i=0;o.PIXEL_RATIO=window&&window.navigator&&window.navigator.userAgent&&!/PhantomJS/.test(window.navigator.userAgent)?2:1,o.viewports=[],o.Viewport=function(n){n||(n={}),this.container=n.container,this.layers=[],this.id=i++,this.scene=new o.Scene,this.setSize(n.width||0,n.height||0),n.container.innerHTML="",n.container.appendChild(this.scene.canvas),o.viewports.push(this)},o.Viewport.prototype={add:function(n){return this.layers.push(n),n.setSize(n.width||this.width,n.height||this.height),n.viewport=this},setSize:function(n,t){return this.width=n,this.height=t,this.scene.setSize(n,t),this},getIntersection:function(n,t){var r,e,o=this.layers;for(r=o.length-1;0<=r;r--)if(0<=(e=o[r].hit.getIntersection(n,t)))return e;return-1},getIndex:function(){var n,t=o.viewports,r=t.length,e=0;for(e=0;e>16,(65280&n)>>8,255&n]}},function(i){"use strict";void 0===(e=function(){return o}.call(t,r,t,n))||(n.exports=e)}()},"./node_modules/d3-dispatch/src/dispatch.js":function(n,t,r){"use strict";r.r(t);var e={value:function(){}};function o(){for(var n,t=0,r=arguments.length,e={};t=0&&(t=n.slice(r+1),n=n.slice(0,r)),n&&!e.hasOwnProperty(n))throw new Error("unknown type: "+n);return{type:n,name:t}})),c=-1,s=i.length;if(!(arguments.length<2)){if(null!=t&&"function"!=typeof t)throw new Error("invalid callback: "+t);for(;++c0)for(var r,e,o=new Array(r),i=0;ih+s||ed+s||of.index){var l=h-u.x-u.vx,v=d-u.y-u.vy,m=l*l+v*v;mn.r&&(n.r=n[t].r)}function h(){if(t){var e,o,i=t.length;for(r=new Array(i),e=0;e[f(n,t,a),n]));for(e=0,c=new Array(i);e=f)){(n.data!==t||n.next)&&(0===c&&(p+=(c=Object(i.default)())*c),0===h&&(p+=(h=Object(i.default)())*h),p1?(null==r?l.delete(n):l.set(n,m(r)),t):l.get(n)},find:function(t,r,e){var o,i,u,a,c,s=0,f=n.length;for(null==e?e=1/0:e*=e,s=0;s1?(d.on(n,r),t):d.on(n)}}}},"./node_modules/d3-force/src/x.js":function(n,t,r){"use strict";r.r(t);var e=r("./node_modules/d3-force/src/constant.js");t.default=function(n){var t,r,o,i=Object(e.default)(.1);function u(n){for(var e,i=0,u=t.length;i=(i=(g+m)/2))?g=i:m=i,(f=r>=(u=(v+x)/2))?v=u:x=u,o=d,!(d=d[l=f<<1|s]))return o[l]=p,n;if(a=+n._x.call(null,d.data),c=+n._y.call(null,d.data),t===a&&r===c)return p.next=d,o?o[l]=p:n._root=p,n;do{o=o?o[l]=new Array(4):n._root=new Array(4),(s=t>=(i=(g+m)/2))?g=i:m=i,(f=r>=(u=(v+x)/2))?v=u:x=u}while((l=f<<1|s)==(h=(c>=u)<<1|a>=i));return o[h]=d,o[l]=p,n}function o(n){var t,r,o,i,u=n.length,a=new Array(u),c=new Array(u),s=1/0,f=1/0,l=-1/0,h=-1/0;for(r=0;rl&&(l=o),ih&&(h=i));if(s>l||f>h)return this;for(this.cover(s,f).cover(l,h),r=0;rn||n>=o||e>t||t>=i;)switch(a=(td||(u=s.y0)>p||(a=s.x1)=x)<<1|n>=m)&&(s=g[g.length-1],g[g.length-1]=g[g.length-1-f],g[g.length-1-f]=s)}else{var _=n-+this._x.call(null,v.data),y=t-+this._y.call(null,v.data),b=_*_+y*y;if(b=(a=(p+v)/2))?p=a:v=a,(f=u>=(c=(g+m)/2))?g=c:m=c,t=d,!(d=d[l=f<<1|s]))return this;if(!d.length)break;(t[l+1&3]||t[l+2&3]||t[l+3&3])&&(r=t,h=l)}for(;d.data!==n;)if(e=d,!(d=d.next))return this;return(o=d.next)&&delete d.next,e?(o?e.next=o:delete e.next,this):t?(o?t[l]=o:delete t[l],(d=t[0]||t[1]||t[2]||t[3])&&d===(t[3]||t[2]||t[1]||t[0])&&!d.length&&(r?r[h]=d:this._root=d),this):(this._root=o,this)}},"./node_modules/d3-quadtree/src/root.js":function(n,t,r){"use strict";r.r(t),t.default=function(){return this._root}},"./node_modules/d3-quadtree/src/size.js":function(n,t,r){"use strict";r.r(t),t.default=function(){var n=0;return this.visit(function(t){if(!t.length)do{++n}while(t=t.next)}),n}},"./node_modules/d3-quadtree/src/visit.js":function(n,t,r){"use strict";r.r(t);var e=r("./node_modules/d3-quadtree/src/quad.js");t.default=function(n){var t,r,o,i,u,a,c=[],s=this._root;for(s&&c.push(new e.default(s,this._x0,this._y0,this._x1,this._y1));t=c.pop();)if(!n(s=t.node,o=t.x0,i=t.y0,u=t.x1,a=t.y1)&&s.length){var f=(o+u)/2,l=(i+a)/2;(r=s[3])&&c.push(new e.default(r,f,l,u,a)),(r=s[2])&&c.push(new e.default(r,o,l,f,a)),(r=s[1])&&c.push(new e.default(r,f,i,u,l)),(r=s[0])&&c.push(new e.default(r,o,i,f,l))}return this}},"./node_modules/d3-quadtree/src/visitAfter.js":function(n,t,r){"use strict";r.r(t);var e=r("./node_modules/d3-quadtree/src/quad.js");t.default=function(n){var t,r=[],o=[];for(this._root&&r.push(new e.default(this._root,this._x0,this._y0,this._x1,this._y1));t=r.pop();){var i=t.node;if(i.length){var u,a=t.x0,c=t.y0,s=t.x1,f=t.y1,l=(a+s)/2,h=(c+f)/2;(u=i[0])&&r.push(new e.default(u,a,c,l,h)),(u=i[1])&&r.push(new e.default(u,l,c,s,h)),(u=i[2])&&r.push(new e.default(u,a,h,l,f)),(u=i[3])&&r.push(new e.default(u,l,h,s,f))}o.push(t)}for(;t=o.pop();)n(t.node,t.x0,t.y0,t.x1,t.y1);return this}},"./node_modules/d3-quadtree/src/x.js":function(n,t,r){"use strict";function e(n){return n[0]}r.r(t),r.d(t,"defaultX",function(){return e}),t.default=function(n){return arguments.length?(this._x=n,this):this._x}},"./node_modules/d3-quadtree/src/y.js":function(n,t,r){"use strict";function e(n){return n[1]}r.r(t),r.d(t,"defaultY",function(){return e}),t.default=function(n){return arguments.length?(this._y=n,this):this._y}},"./node_modules/d3-timer/src/index.js":function(n,t,r){"use strict";r.r(t);var e=r("./node_modules/d3-timer/src/timer.js");r.d(t,"now",function(){return e.now}),r.d(t,"timer",function(){return e.timer}),r.d(t,"timerFlush",function(){return e.timerFlush});var o=r("./node_modules/d3-timer/src/timeout.js");r.d(t,"timeout",function(){return o.default});var i=r("./node_modules/d3-timer/src/interval.js");r.d(t,"interval",function(){return i.default})},"./node_modules/d3-timer/src/interval.js":function(n,t,r){"use strict";r.r(t);var e=r("./node_modules/d3-timer/src/timer.js");t.default=function(n,t,r){var o=new e.Timer,i=t;return null==t?(o.restart(n,t,r),o):(t=+t,r=null==r?Object(e.now)():+r,o.restart(function e(u){u+=i,o.restart(e,i+=t,r),n(u)},t,r),o)}},"./node_modules/d3-timer/src/timeout.js":function(n,t,r){"use strict";r.r(t);var e=r("./node_modules/d3-timer/src/timer.js");t.default=function(n,t,r){var o=new e.Timer;return t=null==t?0:+t,o.restart(function(r){o.stop(),n(r+t)},t,r),o}},"./node_modules/d3-timer/src/timer.js":function(n,t,r){"use strict";r.r(t),r.d(t,"now",function(){return p}),r.d(t,"Timer",function(){return v}),r.d(t,"timer",function(){return m}),r.d(t,"timerFlush",function(){return x});var e,o,i=0,u=0,a=0,c=1e3,s=0,f=0,l=0,h="object"==typeof performance&&performance.now?performance:Date,d="object"==typeof window&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(n){setTimeout(n,17)};function p(){return f||(d(g),f=h.now()+l)}function g(){f=0}function v(){this._call=this._time=this._next=null}function m(n,t,r){var e=new v;return e.restart(n,t,r),e}function x(){p(),++i;for(var n,t=e;t;)(n=f-t._time)>=0&&t._call.call(null,n),t=t._next;--i}function _(){f=(s=h.now())+l,i=u=0;try{x()}finally{i=0,function(){var n,t,r=e,i=1/0;for(;r;)r._call?(i>r._time&&(i=r._time),n=r,r=r._next):(t=r._next,r._next=null,r=n?n._next=t:e=t);o=n,b(i)}(),f=0}}function y(){var n=h.now(),t=n-s;t>c&&(l-=t,s=n)}function b(n){i||(u&&(u=clearTimeout(u)),n-f>24?(n<1/0&&(u=setTimeout(_,n-h.now()-l)),a&&(a=clearInterval(a))):(a||(s=h.now(),a=setInterval(y,c)),i=1,d(_)))}v.prototype=m.prototype={constructor:v,restart:function(n,t,r){if("function"!=typeof n)throw new TypeError("callback is not a function");r=(null==r?p():+r)+(null==t?0:+t),this._next||o===this||(o?o._next=this:e=this,o=this),this._call=n,this._time=r,b()},stop:function(){this._call&&(this._call=null,this._time=1/0,b())}}},"./node_modules/gl-matrix/lib/gl-matrix.js":function(n,t,r){"use strict";r.r(t);var e=r("./node_modules/gl-matrix/lib/gl-matrix/common.js");r.d(t,"glMatrix",function(){return e});var o=r("./node_modules/gl-matrix/lib/gl-matrix/mat2.js");r.d(t,"mat2",function(){return o});var i=r("./node_modules/gl-matrix/lib/gl-matrix/mat2d.js");r.d(t,"mat2d",function(){return i});var u=r("./node_modules/gl-matrix/lib/gl-matrix/mat3.js");r.d(t,"mat3",function(){return u});var a=r("./node_modules/gl-matrix/lib/gl-matrix/mat4.js");r.d(t,"mat4",function(){return a});var c=r("./node_modules/gl-matrix/lib/gl-matrix/quat.js");r.d(t,"quat",function(){return c});var s=r("./node_modules/gl-matrix/lib/gl-matrix/quat2.js");r.d(t,"quat2",function(){return s});var f=r("./node_modules/gl-matrix/lib/gl-matrix/vec2.js");r.d(t,"vec2",function(){return f});var l=r("./node_modules/gl-matrix/lib/gl-matrix/vec3.js");r.d(t,"vec3",function(){return l});var h=r("./node_modules/gl-matrix/lib/gl-matrix/vec4.js");r.d(t,"vec4",function(){return h})},"./node_modules/gl-matrix/lib/gl-matrix/common.js":function(n,t,r){"use strict";r.r(t),r.d(t,"EPSILON",function(){return e}),r.d(t,"ARRAY_TYPE",function(){return o}),r.d(t,"RANDOM",function(){return i}),r.d(t,"setMatrixArrayType",function(){return u}),r.d(t,"toRadian",function(){return c}),r.d(t,"equals",function(){return s});var e=1e-6,o="undefined"!=typeof Float32Array?Float32Array:Array,i=Math.random;function u(n){o=n}var a=Math.PI/180;function c(n){return n*a}function s(n,t){return Math.abs(n-t)<=e*Math.max(1,Math.abs(n),Math.abs(t))}},"./node_modules/gl-matrix/lib/gl-matrix/mat2.js":function(n,t,r){"use strict";r.r(t),r.d(t,"create",function(){return o}),r.d(t,"clone",function(){return i}),r.d(t,"copy",function(){return u}),r.d(t,"identity",function(){return a}),r.d(t,"fromValues",function(){return c}),r.d(t,"set",function(){return s}),r.d(t,"transpose",function(){return f}),r.d(t,"invert",function(){return l}),r.d(t,"adjoint",function(){return h}),r.d(t,"determinant",function(){return d}),r.d(t,"multiply",function(){return p}),r.d(t,"rotate",function(){return g}),r.d(t,"scale",function(){return v}),r.d(t,"fromRotation",function(){return m}),r.d(t,"fromScaling",function(){return x}),r.d(t,"str",function(){return _}),r.d(t,"frob",function(){return y}),r.d(t,"LDU",function(){return b}),r.d(t,"add",function(){return w}),r.d(t,"subtract",function(){return M}),r.d(t,"exactEquals",function(){return A}),r.d(t,"equals",function(){return j}),r.d(t,"multiplyScalar",function(){return E}),r.d(t,"multiplyScalarAndAdd",function(){return P}),r.d(t,"mul",function(){return I}),r.d(t,"sub",function(){return T});var e=r("./node_modules/gl-matrix/lib/gl-matrix/common.js");function o(){var n=new e.ARRAY_TYPE(4);return e.ARRAY_TYPE!=Float32Array&&(n[1]=0,n[2]=0),n[0]=1,n[3]=1,n}function i(n){var t=new e.ARRAY_TYPE(4);return t[0]=n[0],t[1]=n[1],t[2]=n[2],t[3]=n[3],t}function u(n,t){return n[0]=t[0],n[1]=t[1],n[2]=t[2],n[3]=t[3],n}function a(n){return n[0]=1,n[1]=0,n[2]=0,n[3]=1,n}function c(n,t,r,o){var i=new e.ARRAY_TYPE(4);return i[0]=n,i[1]=t,i[2]=r,i[3]=o,i}function s(n,t,r,e,o){return n[0]=t,n[1]=r,n[2]=e,n[3]=o,n}function f(n,t){if(n===t){var r=t[1];n[1]=t[2],n[2]=r}else n[0]=t[0],n[1]=t[2],n[2]=t[1],n[3]=t[3];return n}function l(n,t){var r=t[0],e=t[1],o=t[2],i=t[3],u=r*i-o*e;return u?(u=1/u,n[0]=i*u,n[1]=-e*u,n[2]=-o*u,n[3]=r*u,n):null}function h(n,t){var r=t[0];return n[0]=t[3],n[1]=-t[1],n[2]=-t[2],n[3]=r,n}function d(n){return n[0]*n[3]-n[2]*n[1]}function p(n,t,r){var e=t[0],o=t[1],i=t[2],u=t[3],a=r[0],c=r[1],s=r[2],f=r[3];return n[0]=e*a+i*c,n[1]=o*a+u*c,n[2]=e*s+i*f,n[3]=o*s+u*f,n}function g(n,t,r){var e=t[0],o=t[1],i=t[2],u=t[3],a=Math.sin(r),c=Math.cos(r);return n[0]=e*c+i*a,n[1]=o*c+u*a,n[2]=e*-a+i*c,n[3]=o*-a+u*c,n}function v(n,t,r){var e=t[0],o=t[1],i=t[2],u=t[3],a=r[0],c=r[1];return n[0]=e*a,n[1]=o*a,n[2]=i*c,n[3]=u*c,n}function m(n,t){var r=Math.sin(t),e=Math.cos(t);return n[0]=e,n[1]=r,n[2]=-r,n[3]=e,n}function x(n,t){return n[0]=t[0],n[1]=0,n[2]=0,n[3]=t[1],n}function _(n){return"mat2("+n[0]+", "+n[1]+", "+n[2]+", "+n[3]+")"}function y(n){return Math.sqrt(Math.pow(n[0],2)+Math.pow(n[1],2)+Math.pow(n[2],2)+Math.pow(n[3],2))}function b(n,t,r,e){return n[2]=e[2]/e[0],r[0]=e[0],r[1]=e[1],r[3]=e[3]-n[2]*r[1],[n,t,r]}function w(n,t,r){return n[0]=t[0]+r[0],n[1]=t[1]+r[1],n[2]=t[2]+r[2],n[3]=t[3]+r[3],n}function M(n,t,r){return n[0]=t[0]-r[0],n[1]=t[1]-r[1],n[2]=t[2]-r[2],n[3]=t[3]-r[3],n}function A(n,t){return n[0]===t[0]&&n[1]===t[1]&&n[2]===t[2]&&n[3]===t[3]}function j(n,t){var r=n[0],o=n[1],i=n[2],u=n[3],a=t[0],c=t[1],s=t[2],f=t[3];return Math.abs(r-a)<=e.EPSILON*Math.max(1,Math.abs(r),Math.abs(a))&&Math.abs(o-c)<=e.EPSILON*Math.max(1,Math.abs(o),Math.abs(c))&&Math.abs(i-s)<=e.EPSILON*Math.max(1,Math.abs(i),Math.abs(s))&&Math.abs(u-f)<=e.EPSILON*Math.max(1,Math.abs(u),Math.abs(f))}function E(n,t,r){return n[0]=t[0]*r,n[1]=t[1]*r,n[2]=t[2]*r,n[3]=t[3]*r,n}function P(n,t,r,e){return n[0]=t[0]+r[0]*e,n[1]=t[1]+r[1]*e,n[2]=t[2]+r[2]*e,n[3]=t[3]+r[3]*e,n}var I=p,T=M},"./node_modules/gl-matrix/lib/gl-matrix/mat2d.js":function(n,t,r){"use strict";r.r(t),r.d(t,"create",function(){return o}),r.d(t,"clone",function(){return i}),r.d(t,"copy",function(){return u}),r.d(t,"identity",function(){return a}),r.d(t,"fromValues",function(){return c}),r.d(t,"set",function(){return s}),r.d(t,"invert",function(){return f}),r.d(t,"determinant",function(){return l}),r.d(t,"multiply",function(){return h}),r.d(t,"rotate",function(){return d}),r.d(t,"scale",function(){return p}),r.d(t,"translate",function(){return g}),r.d(t,"fromRotation",function(){return v}),r.d(t,"fromScaling",function(){return m}),r.d(t,"fromTranslation",function(){return x}),r.d(t,"str",function(){return _}),r.d(t,"frob",function(){return y}),r.d(t,"add",function(){return b}),r.d(t,"subtract",function(){return w}),r.d(t,"multiplyScalar",function(){return M}),r.d(t,"multiplyScalarAndAdd",function(){return A}),r.d(t,"exactEquals",function(){return j}),r.d(t,"equals",function(){return E}),r.d(t,"mul",function(){return P}),r.d(t,"sub",function(){return I});var e=r("./node_modules/gl-matrix/lib/gl-matrix/common.js");function o(){var n=new e.ARRAY_TYPE(6);return e.ARRAY_TYPE!=Float32Array&&(n[1]=0,n[2]=0,n[4]=0,n[5]=0),n[0]=1,n[3]=1,n}function i(n){var t=new e.ARRAY_TYPE(6);return t[0]=n[0],t[1]=n[1],t[2]=n[2],t[3]=n[3],t[4]=n[4],t[5]=n[5],t}function u(n,t){return n[0]=t[0],n[1]=t[1],n[2]=t[2],n[3]=t[3],n[4]=t[4],n[5]=t[5],n}function a(n){return n[0]=1,n[1]=0,n[2]=0,n[3]=1,n[4]=0,n[5]=0,n}function c(n,t,r,o,i,u){var a=new e.ARRAY_TYPE(6);return a[0]=n,a[1]=t,a[2]=r,a[3]=o,a[4]=i,a[5]=u,a}function s(n,t,r,e,o,i,u){return n[0]=t,n[1]=r,n[2]=e,n[3]=o,n[4]=i,n[5]=u,n}function f(n,t){var r=t[0],e=t[1],o=t[2],i=t[3],u=t[4],a=t[5],c=r*i-e*o;return c?(c=1/c,n[0]=i*c,n[1]=-e*c,n[2]=-o*c,n[3]=r*c,n[4]=(o*a-i*u)*c,n[5]=(e*u-r*a)*c,n):null}function l(n){return n[0]*n[3]-n[1]*n[2]}function h(n,t,r){var e=t[0],o=t[1],i=t[2],u=t[3],a=t[4],c=t[5],s=r[0],f=r[1],l=r[2],h=r[3],d=r[4],p=r[5];return n[0]=e*s+i*f,n[1]=o*s+u*f,n[2]=e*l+i*h,n[3]=o*l+u*h,n[4]=e*d+i*p+a,n[5]=o*d+u*p+c,n}function d(n,t,r){var e=t[0],o=t[1],i=t[2],u=t[3],a=t[4],c=t[5],s=Math.sin(r),f=Math.cos(r);return n[0]=e*f+i*s,n[1]=o*f+u*s,n[2]=e*-s+i*f,n[3]=o*-s+u*f,n[4]=a,n[5]=c,n}function p(n,t,r){var e=t[0],o=t[1],i=t[2],u=t[3],a=t[4],c=t[5],s=r[0],f=r[1];return n[0]=e*s,n[1]=o*s,n[2]=i*f,n[3]=u*f,n[4]=a,n[5]=c,n}function g(n,t,r){var e=t[0],o=t[1],i=t[2],u=t[3],a=t[4],c=t[5],s=r[0],f=r[1];return n[0]=e,n[1]=o,n[2]=i,n[3]=u,n[4]=e*s+i*f+a,n[5]=o*s+u*f+c,n}function v(n,t){var r=Math.sin(t),e=Math.cos(t);return n[0]=e,n[1]=r,n[2]=-r,n[3]=e,n[4]=0,n[5]=0,n}function m(n,t){return n[0]=t[0],n[1]=0,n[2]=0,n[3]=t[1],n[4]=0,n[5]=0,n}function x(n,t){return n[0]=1,n[1]=0,n[2]=0,n[3]=1,n[4]=t[0],n[5]=t[1],n}function _(n){return"mat2d("+n[0]+", "+n[1]+", "+n[2]+", "+n[3]+", "+n[4]+", "+n[5]+")"}function y(n){return Math.sqrt(Math.pow(n[0],2)+Math.pow(n[1],2)+Math.pow(n[2],2)+Math.pow(n[3],2)+Math.pow(n[4],2)+Math.pow(n[5],2)+1)}function b(n,t,r){return n[0]=t[0]+r[0],n[1]=t[1]+r[1],n[2]=t[2]+r[2],n[3]=t[3]+r[3],n[4]=t[4]+r[4],n[5]=t[5]+r[5],n}function w(n,t,r){return n[0]=t[0]-r[0],n[1]=t[1]-r[1],n[2]=t[2]-r[2],n[3]=t[3]-r[3],n[4]=t[4]-r[4],n[5]=t[5]-r[5],n}function M(n,t,r){return n[0]=t[0]*r,n[1]=t[1]*r,n[2]=t[2]*r,n[3]=t[3]*r,n[4]=t[4]*r,n[5]=t[5]*r,n}function A(n,t,r,e){return n[0]=t[0]+r[0]*e,n[1]=t[1]+r[1]*e,n[2]=t[2]+r[2]*e,n[3]=t[3]+r[3]*e,n[4]=t[4]+r[4]*e,n[5]=t[5]+r[5]*e,n}function j(n,t){return n[0]===t[0]&&n[1]===t[1]&&n[2]===t[2]&&n[3]===t[3]&&n[4]===t[4]&&n[5]===t[5]}function E(n,t){var r=n[0],o=n[1],i=n[2],u=n[3],a=n[4],c=n[5],s=t[0],f=t[1],l=t[2],h=t[3],d=t[4],p=t[5];return Math.abs(r-s)<=e.EPSILON*Math.max(1,Math.abs(r),Math.abs(s))&&Math.abs(o-f)<=e.EPSILON*Math.max(1,Math.abs(o),Math.abs(f))&&Math.abs(i-l)<=e.EPSILON*Math.max(1,Math.abs(i),Math.abs(l))&&Math.abs(u-h)<=e.EPSILON*Math.max(1,Math.abs(u),Math.abs(h))&&Math.abs(a-d)<=e.EPSILON*Math.max(1,Math.abs(a),Math.abs(d))&&Math.abs(c-p)<=e.EPSILON*Math.max(1,Math.abs(c),Math.abs(p))}var P=h,I=w},"./node_modules/gl-matrix/lib/gl-matrix/mat3.js":function(n,t,r){"use strict";r.r(t),r.d(t,"create",function(){return o}),r.d(t,"fromMat4",function(){return i}),r.d(t,"clone",function(){return u}),r.d(t,"copy",function(){return a}),r.d(t,"fromValues",function(){return c}),r.d(t,"set",function(){return s}),r.d(t,"identity",function(){return f}),r.d(t,"transpose",function(){return l}),r.d(t,"invert",function(){return h}),r.d(t,"adjoint",function(){return d}),r.d(t,"determinant",function(){return p}),r.d(t,"multiply",function(){return g}),r.d(t,"translate",function(){return v}),r.d(t,"rotate",function(){return m}),r.d(t,"scale",function(){return x}),r.d(t,"fromTranslation",function(){return _}),r.d(t,"fromRotation",function(){return y}),r.d(t,"fromScaling",function(){return b}),r.d(t,"fromMat2d",function(){return w}),r.d(t,"fromQuat",function(){return M}),r.d(t,"normalFromMat4",function(){return A}),r.d(t,"projection",function(){return j}),r.d(t,"str",function(){return E}),r.d(t,"frob",function(){return P}),r.d(t,"add",function(){return I}),r.d(t,"subtract",function(){return T}),r.d(t,"multiplyScalar",function(){return S}),r.d(t,"multiplyScalarAndAdd",function(){return O}),r.d(t,"exactEquals",function(){return L}),r.d(t,"equals",function(){return z}),r.d(t,"mul",function(){return R}),r.d(t,"sub",function(){return C});var e=r("./node_modules/gl-matrix/lib/gl-matrix/common.js");function o(){var n=new e.ARRAY_TYPE(9);return e.ARRAY_TYPE!=Float32Array&&(n[1]=0,n[2]=0,n[3]=0,n[5]=0,n[6]=0,n[7]=0),n[0]=1,n[4]=1,n[8]=1,n}function i(n,t){return n[0]=t[0],n[1]=t[1],n[2]=t[2],n[3]=t[4],n[4]=t[5],n[5]=t[6],n[6]=t[8],n[7]=t[9],n[8]=t[10],n}function u(n){var t=new e.ARRAY_TYPE(9);return t[0]=n[0],t[1]=n[1],t[2]=n[2],t[3]=n[3],t[4]=n[4],t[5]=n[5],t[6]=n[6],t[7]=n[7],t[8]=n[8],t}function a(n,t){return n[0]=t[0],n[1]=t[1],n[2]=t[2],n[3]=t[3],n[4]=t[4],n[5]=t[5],n[6]=t[6],n[7]=t[7],n[8]=t[8],n}function c(n,t,r,o,i,u,a,c,s){var f=new e.ARRAY_TYPE(9);return f[0]=n,f[1]=t,f[2]=r,f[3]=o,f[4]=i,f[5]=u,f[6]=a,f[7]=c,f[8]=s,f}function s(n,t,r,e,o,i,u,a,c,s){return n[0]=t,n[1]=r,n[2]=e,n[3]=o,n[4]=i,n[5]=u,n[6]=a,n[7]=c,n[8]=s,n}function f(n){return n[0]=1,n[1]=0,n[2]=0,n[3]=0,n[4]=1,n[5]=0,n[6]=0,n[7]=0,n[8]=1,n}function l(n,t){if(n===t){var r=t[1],e=t[2],o=t[5];n[1]=t[3],n[2]=t[6],n[3]=r,n[5]=t[7],n[6]=e,n[7]=o}else n[0]=t[0],n[1]=t[3],n[2]=t[6],n[3]=t[1],n[4]=t[4],n[5]=t[7],n[6]=t[2],n[7]=t[5],n[8]=t[8];return n}function h(n,t){var r=t[0],e=t[1],o=t[2],i=t[3],u=t[4],a=t[5],c=t[6],s=t[7],f=t[8],l=f*u-a*s,h=-f*i+a*c,d=s*i-u*c,p=r*l+e*h+o*d;return p?(p=1/p,n[0]=l*p,n[1]=(-f*e+o*s)*p,n[2]=(a*e-o*u)*p,n[3]=h*p,n[4]=(f*r-o*c)*p,n[5]=(-a*r+o*i)*p,n[6]=d*p,n[7]=(-s*r+e*c)*p,n[8]=(u*r-e*i)*p,n):null}function d(n,t){var r=t[0],e=t[1],o=t[2],i=t[3],u=t[4],a=t[5],c=t[6],s=t[7],f=t[8];return n[0]=u*f-a*s,n[1]=o*s-e*f,n[2]=e*a-o*u,n[3]=a*c-i*f,n[4]=r*f-o*c,n[5]=o*i-r*a,n[6]=i*s-u*c,n[7]=e*c-r*s,n[8]=r*u-e*i,n}function p(n){var t=n[0],r=n[1],e=n[2],o=n[3],i=n[4],u=n[5],a=n[6],c=n[7],s=n[8];return t*(s*i-u*c)+r*(-s*o+u*a)+e*(c*o-i*a)}function g(n,t,r){var e=t[0],o=t[1],i=t[2],u=t[3],a=t[4],c=t[5],s=t[6],f=t[7],l=t[8],h=r[0],d=r[1],p=r[2],g=r[3],v=r[4],m=r[5],x=r[6],_=r[7],y=r[8];return n[0]=h*e+d*u+p*s,n[1]=h*o+d*a+p*f,n[2]=h*i+d*c+p*l,n[3]=g*e+v*u+m*s,n[4]=g*o+v*a+m*f,n[5]=g*i+v*c+m*l,n[6]=x*e+_*u+y*s,n[7]=x*o+_*a+y*f,n[8]=x*i+_*c+y*l,n}function v(n,t,r){var e=t[0],o=t[1],i=t[2],u=t[3],a=t[4],c=t[5],s=t[6],f=t[7],l=t[8],h=r[0],d=r[1];return n[0]=e,n[1]=o,n[2]=i,n[3]=u,n[4]=a,n[5]=c,n[6]=h*e+d*u+s,n[7]=h*o+d*a+f,n[8]=h*i+d*c+l,n}function m(n,t,r){var e=t[0],o=t[1],i=t[2],u=t[3],a=t[4],c=t[5],s=t[6],f=t[7],l=t[8],h=Math.sin(r),d=Math.cos(r);return n[0]=d*e+h*u,n[1]=d*o+h*a,n[2]=d*i+h*c,n[3]=d*u-h*e,n[4]=d*a-h*o,n[5]=d*c-h*i,n[6]=s,n[7]=f,n[8]=l,n}function x(n,t,r){var e=r[0],o=r[1];return n[0]=e*t[0],n[1]=e*t[1],n[2]=e*t[2],n[3]=o*t[3],n[4]=o*t[4],n[5]=o*t[5],n[6]=t[6],n[7]=t[7],n[8]=t[8],n}function _(n,t){return n[0]=1,n[1]=0,n[2]=0,n[3]=0,n[4]=1,n[5]=0,n[6]=t[0],n[7]=t[1],n[8]=1,n}function y(n,t){var r=Math.sin(t),e=Math.cos(t);return n[0]=e,n[1]=r,n[2]=0,n[3]=-r,n[4]=e,n[5]=0,n[6]=0,n[7]=0,n[8]=1,n}function b(n,t){return n[0]=t[0],n[1]=0,n[2]=0,n[3]=0,n[4]=t[1],n[5]=0,n[6]=0,n[7]=0,n[8]=1,n}function w(n,t){return n[0]=t[0],n[1]=t[1],n[2]=0,n[3]=t[2],n[4]=t[3],n[5]=0,n[6]=t[4],n[7]=t[5],n[8]=1,n}function M(n,t){var r=t[0],e=t[1],o=t[2],i=t[3],u=r+r,a=e+e,c=o+o,s=r*u,f=e*u,l=e*a,h=o*u,d=o*a,p=o*c,g=i*u,v=i*a,m=i*c;return n[0]=1-l-p,n[3]=f-m,n[6]=h+v,n[1]=f+m,n[4]=1-s-p,n[7]=d-g,n[2]=h-v,n[5]=d+g,n[8]=1-s-l,n}function A(n,t){var r=t[0],e=t[1],o=t[2],i=t[3],u=t[4],a=t[5],c=t[6],s=t[7],f=t[8],l=t[9],h=t[10],d=t[11],p=t[12],g=t[13],v=t[14],m=t[15],x=r*a-e*u,_=r*c-o*u,y=r*s-i*u,b=e*c-o*a,w=e*s-i*a,M=o*s-i*c,A=f*g-l*p,j=f*v-h*p,E=f*m-d*p,P=l*v-h*g,I=l*m-d*g,T=h*m-d*v,S=x*T-_*I+y*P+b*E-w*j+M*A;return S?(S=1/S,n[0]=(a*T-c*I+s*P)*S,n[1]=(c*E-u*T-s*j)*S,n[2]=(u*I-a*E+s*A)*S,n[3]=(o*I-e*T-i*P)*S,n[4]=(r*T-o*E+i*j)*S,n[5]=(e*E-r*I-i*A)*S,n[6]=(g*M-v*w+m*b)*S,n[7]=(v*y-p*M-m*_)*S,n[8]=(p*w-g*y+m*x)*S,n):null}function j(n,t,r){return n[0]=2/t,n[1]=0,n[2]=0,n[3]=0,n[4]=-2/r,n[5]=0,n[6]=-1,n[7]=1,n[8]=1,n}function E(n){return"mat3("+n[0]+", "+n[1]+", "+n[2]+", "+n[3]+", "+n[4]+", "+n[5]+", "+n[6]+", "+n[7]+", "+n[8]+")"}function P(n){return Math.sqrt(Math.pow(n[0],2)+Math.pow(n[1],2)+Math.pow(n[2],2)+Math.pow(n[3],2)+Math.pow(n[4],2)+Math.pow(n[5],2)+Math.pow(n[6],2)+Math.pow(n[7],2)+Math.pow(n[8],2))}function I(n,t,r){return n[0]=t[0]+r[0],n[1]=t[1]+r[1],n[2]=t[2]+r[2],n[3]=t[3]+r[3],n[4]=t[4]+r[4],n[5]=t[5]+r[5],n[6]=t[6]+r[6],n[7]=t[7]+r[7],n[8]=t[8]+r[8],n}function T(n,t,r){return n[0]=t[0]-r[0],n[1]=t[1]-r[1],n[2]=t[2]-r[2],n[3]=t[3]-r[3],n[4]=t[4]-r[4],n[5]=t[5]-r[5],n[6]=t[6]-r[6],n[7]=t[7]-r[7],n[8]=t[8]-r[8],n}function S(n,t,r){return n[0]=t[0]*r,n[1]=t[1]*r,n[2]=t[2]*r,n[3]=t[3]*r,n[4]=t[4]*r,n[5]=t[5]*r,n[6]=t[6]*r,n[7]=t[7]*r,n[8]=t[8]*r,n}function O(n,t,r,e){return n[0]=t[0]+r[0]*e,n[1]=t[1]+r[1]*e,n[2]=t[2]+r[2]*e,n[3]=t[3]+r[3]*e,n[4]=t[4]+r[4]*e,n[5]=t[5]+r[5]*e,n[6]=t[6]+r[6]*e,n[7]=t[7]+r[7]*e,n[8]=t[8]+r[8]*e,n}function L(n,t){return n[0]===t[0]&&n[1]===t[1]&&n[2]===t[2]&&n[3]===t[3]&&n[4]===t[4]&&n[5]===t[5]&&n[6]===t[6]&&n[7]===t[7]&&n[8]===t[8]}function z(n,t){var r=n[0],o=n[1],i=n[2],u=n[3],a=n[4],c=n[5],s=n[6],f=n[7],l=n[8],h=t[0],d=t[1],p=t[2],g=t[3],v=t[4],m=t[5],x=t[6],_=t[7],y=t[8];return Math.abs(r-h)<=e.EPSILON*Math.max(1,Math.abs(r),Math.abs(h))&&Math.abs(o-d)<=e.EPSILON*Math.max(1,Math.abs(o),Math.abs(d))&&Math.abs(i-p)<=e.EPSILON*Math.max(1,Math.abs(i),Math.abs(p))&&Math.abs(u-g)<=e.EPSILON*Math.max(1,Math.abs(u),Math.abs(g))&&Math.abs(a-v)<=e.EPSILON*Math.max(1,Math.abs(a),Math.abs(v))&&Math.abs(c-m)<=e.EPSILON*Math.max(1,Math.abs(c),Math.abs(m))&&Math.abs(s-x)<=e.EPSILON*Math.max(1,Math.abs(s),Math.abs(x))&&Math.abs(f-_)<=e.EPSILON*Math.max(1,Math.abs(f),Math.abs(_))&&Math.abs(l-y)<=e.EPSILON*Math.max(1,Math.abs(l),Math.abs(y))}var R=g,C=T},"./node_modules/gl-matrix/lib/gl-matrix/mat4.js":function(n,t,r){"use strict";r.r(t),r.d(t,"create",function(){return o}),r.d(t,"clone",function(){return i}),r.d(t,"copy",function(){return u}),r.d(t,"fromValues",function(){return a}),r.d(t,"set",function(){return c}),r.d(t,"identity",function(){return s}),r.d(t,"transpose",function(){return f}),r.d(t,"invert",function(){return l}),r.d(t,"adjoint",function(){return h}),r.d(t,"determinant",function(){return d}),r.d(t,"multiply",function(){return p}),r.d(t,"translate",function(){return g}),r.d(t,"scale",function(){return v}),r.d(t,"rotate",function(){return m}),r.d(t,"rotateX",function(){return x}),r.d(t,"rotateY",function(){return _}),r.d(t,"rotateZ",function(){return y}),r.d(t,"fromTranslation",function(){return b}),r.d(t,"fromScaling",function(){return w}),r.d(t,"fromRotation",function(){return M}),r.d(t,"fromXRotation",function(){return A}),r.d(t,"fromYRotation",function(){return j}),r.d(t,"fromZRotation",function(){return E}),r.d(t,"fromRotationTranslation",function(){return P}),r.d(t,"fromQuat2",function(){return I}),r.d(t,"getTranslation",function(){return T}),r.d(t,"getScaling",function(){return S}),r.d(t,"getRotation",function(){return O}),r.d(t,"fromRotationTranslationScale",function(){return L}),r.d(t,"fromRotationTranslationScaleOrigin",function(){return z}),r.d(t,"fromQuat",function(){return R}),r.d(t,"frustum",function(){return C}),r.d(t,"perspective",function(){return N}),r.d(t,"perspectiveFromFieldOfView",function(){return V}),r.d(t,"ortho",function(){return q}),r.d(t,"lookAt",function(){return B}),r.d(t,"targetTo",function(){return D}),r.d(t,"str",function(){return k}),r.d(t,"frob",function(){return Y}),r.d(t,"add",function(){return U}),r.d(t,"subtract",function(){return F}),r.d(t,"multiplyScalar",function(){return X}),r.d(t,"multiplyScalarAndAdd",function(){return G}),r.d(t,"exactEquals",function(){return Z}),r.d(t,"equals",function(){return W}),r.d(t,"mul",function(){return H}),r.d(t,"sub",function(){return $});var e=r("./node_modules/gl-matrix/lib/gl-matrix/common.js");function o(){var n=new e.ARRAY_TYPE(16);return e.ARRAY_TYPE!=Float32Array&&(n[1]=0,n[2]=0,n[3]=0,n[4]=0,n[6]=0,n[7]=0,n[8]=0,n[9]=0,n[11]=0,n[12]=0,n[13]=0,n[14]=0),n[0]=1,n[5]=1,n[10]=1,n[15]=1,n}function i(n){var t=new e.ARRAY_TYPE(16);return t[0]=n[0],t[1]=n[1],t[2]=n[2],t[3]=n[3],t[4]=n[4],t[5]=n[5],t[6]=n[6],t[7]=n[7],t[8]=n[8],t[9]=n[9],t[10]=n[10],t[11]=n[11],t[12]=n[12],t[13]=n[13],t[14]=n[14],t[15]=n[15],t}function u(n,t){return n[0]=t[0],n[1]=t[1],n[2]=t[2],n[3]=t[3],n[4]=t[4],n[5]=t[5],n[6]=t[6],n[7]=t[7],n[8]=t[8],n[9]=t[9],n[10]=t[10],n[11]=t[11],n[12]=t[12],n[13]=t[13],n[14]=t[14],n[15]=t[15],n}function a(n,t,r,o,i,u,a,c,s,f,l,h,d,p,g,v){var m=new e.ARRAY_TYPE(16);return m[0]=n,m[1]=t,m[2]=r,m[3]=o,m[4]=i,m[5]=u,m[6]=a,m[7]=c,m[8]=s,m[9]=f,m[10]=l,m[11]=h,m[12]=d,m[13]=p,m[14]=g,m[15]=v,m}function c(n,t,r,e,o,i,u,a,c,s,f,l,h,d,p,g,v){return n[0]=t,n[1]=r,n[2]=e,n[3]=o,n[4]=i,n[5]=u,n[6]=a,n[7]=c,n[8]=s,n[9]=f,n[10]=l,n[11]=h,n[12]=d,n[13]=p,n[14]=g,n[15]=v,n}function s(n){return n[0]=1,n[1]=0,n[2]=0,n[3]=0,n[4]=0,n[5]=1,n[6]=0,n[7]=0,n[8]=0,n[9]=0,n[10]=1,n[11]=0,n[12]=0,n[13]=0,n[14]=0,n[15]=1,n}function f(n,t){if(n===t){var r=t[1],e=t[2],o=t[3],i=t[6],u=t[7],a=t[11];n[1]=t[4],n[2]=t[8],n[3]=t[12],n[4]=r,n[6]=t[9],n[7]=t[13],n[8]=e,n[9]=i,n[11]=t[14],n[12]=o,n[13]=u,n[14]=a}else n[0]=t[0],n[1]=t[4],n[2]=t[8],n[3]=t[12],n[4]=t[1],n[5]=t[5],n[6]=t[9],n[7]=t[13],n[8]=t[2],n[9]=t[6],n[10]=t[10],n[11]=t[14],n[12]=t[3],n[13]=t[7],n[14]=t[11],n[15]=t[15];return n}function l(n,t){var r=t[0],e=t[1],o=t[2],i=t[3],u=t[4],a=t[5],c=t[6],s=t[7],f=t[8],l=t[9],h=t[10],d=t[11],p=t[12],g=t[13],v=t[14],m=t[15],x=r*a-e*u,_=r*c-o*u,y=r*s-i*u,b=e*c-o*a,w=e*s-i*a,M=o*s-i*c,A=f*g-l*p,j=f*v-h*p,E=f*m-d*p,P=l*v-h*g,I=l*m-d*g,T=h*m-d*v,S=x*T-_*I+y*P+b*E-w*j+M*A;return S?(S=1/S,n[0]=(a*T-c*I+s*P)*S,n[1]=(o*I-e*T-i*P)*S,n[2]=(g*M-v*w+m*b)*S,n[3]=(h*w-l*M-d*b)*S,n[4]=(c*E-u*T-s*j)*S,n[5]=(r*T-o*E+i*j)*S,n[6]=(v*y-p*M-m*_)*S,n[7]=(f*M-h*y+d*_)*S,n[8]=(u*I-a*E+s*A)*S,n[9]=(e*E-r*I-i*A)*S,n[10]=(p*w-g*y+m*x)*S,n[11]=(l*y-f*w-d*x)*S,n[12]=(a*j-u*P-c*A)*S,n[13]=(r*P-e*j+o*A)*S,n[14]=(g*_-p*b-v*x)*S,n[15]=(f*b-l*_+h*x)*S,n):null}function h(n,t){var r=t[0],e=t[1],o=t[2],i=t[3],u=t[4],a=t[5],c=t[6],s=t[7],f=t[8],l=t[9],h=t[10],d=t[11],p=t[12],g=t[13],v=t[14],m=t[15];return n[0]=a*(h*m-d*v)-l*(c*m-s*v)+g*(c*d-s*h),n[1]=-(e*(h*m-d*v)-l*(o*m-i*v)+g*(o*d-i*h)),n[2]=e*(c*m-s*v)-a*(o*m-i*v)+g*(o*s-i*c),n[3]=-(e*(c*d-s*h)-a*(o*d-i*h)+l*(o*s-i*c)),n[4]=-(u*(h*m-d*v)-f*(c*m-s*v)+p*(c*d-s*h)),n[5]=r*(h*m-d*v)-f*(o*m-i*v)+p*(o*d-i*h),n[6]=-(r*(c*m-s*v)-u*(o*m-i*v)+p*(o*s-i*c)),n[7]=r*(c*d-s*h)-u*(o*d-i*h)+f*(o*s-i*c),n[8]=u*(l*m-d*g)-f*(a*m-s*g)+p*(a*d-s*l),n[9]=-(r*(l*m-d*g)-f*(e*m-i*g)+p*(e*d-i*l)),n[10]=r*(a*m-s*g)-u*(e*m-i*g)+p*(e*s-i*a),n[11]=-(r*(a*d-s*l)-u*(e*d-i*l)+f*(e*s-i*a)),n[12]=-(u*(l*v-h*g)-f*(a*v-c*g)+p*(a*h-c*l)),n[13]=r*(l*v-h*g)-f*(e*v-o*g)+p*(e*h-o*l),n[14]=-(r*(a*v-c*g)-u*(e*v-o*g)+p*(e*c-o*a)),n[15]=r*(a*h-c*l)-u*(e*h-o*l)+f*(e*c-o*a),n}function d(n){var t=n[0],r=n[1],e=n[2],o=n[3],i=n[4],u=n[5],a=n[6],c=n[7],s=n[8],f=n[9],l=n[10],h=n[11],d=n[12],p=n[13],g=n[14],v=n[15];return(t*u-r*i)*(l*v-h*g)-(t*a-e*i)*(f*v-h*p)+(t*c-o*i)*(f*g-l*p)+(r*a-e*u)*(s*v-h*d)-(r*c-o*u)*(s*g-l*d)+(e*c-o*a)*(s*p-f*d)}function p(n,t,r){var e=t[0],o=t[1],i=t[2],u=t[3],a=t[4],c=t[5],s=t[6],f=t[7],l=t[8],h=t[9],d=t[10],p=t[11],g=t[12],v=t[13],m=t[14],x=t[15],_=r[0],y=r[1],b=r[2],w=r[3];return n[0]=_*e+y*a+b*l+w*g,n[1]=_*o+y*c+b*h+w*v,n[2]=_*i+y*s+b*d+w*m,n[3]=_*u+y*f+b*p+w*x,_=r[4],y=r[5],b=r[6],w=r[7],n[4]=_*e+y*a+b*l+w*g,n[5]=_*o+y*c+b*h+w*v,n[6]=_*i+y*s+b*d+w*m,n[7]=_*u+y*f+b*p+w*x,_=r[8],y=r[9],b=r[10],w=r[11],n[8]=_*e+y*a+b*l+w*g,n[9]=_*o+y*c+b*h+w*v,n[10]=_*i+y*s+b*d+w*m,n[11]=_*u+y*f+b*p+w*x,_=r[12],y=r[13],b=r[14],w=r[15],n[12]=_*e+y*a+b*l+w*g,n[13]=_*o+y*c+b*h+w*v,n[14]=_*i+y*s+b*d+w*m,n[15]=_*u+y*f+b*p+w*x,n}function g(n,t,r){var e=r[0],o=r[1],i=r[2],u=void 0,a=void 0,c=void 0,s=void 0,f=void 0,l=void 0,h=void 0,d=void 0,p=void 0,g=void 0,v=void 0,m=void 0;return t===n?(n[12]=t[0]*e+t[4]*o+t[8]*i+t[12],n[13]=t[1]*e+t[5]*o+t[9]*i+t[13],n[14]=t[2]*e+t[6]*o+t[10]*i+t[14],n[15]=t[3]*e+t[7]*o+t[11]*i+t[15]):(u=t[0],a=t[1],c=t[2],s=t[3],f=t[4],l=t[5],h=t[6],d=t[7],p=t[8],g=t[9],v=t[10],m=t[11],n[0]=u,n[1]=a,n[2]=c,n[3]=s,n[4]=f,n[5]=l,n[6]=h,n[7]=d,n[8]=p,n[9]=g,n[10]=v,n[11]=m,n[12]=u*e+f*o+p*i+t[12],n[13]=a*e+l*o+g*i+t[13],n[14]=c*e+h*o+v*i+t[14],n[15]=s*e+d*o+m*i+t[15]),n}function v(n,t,r){var e=r[0],o=r[1],i=r[2];return n[0]=t[0]*e,n[1]=t[1]*e,n[2]=t[2]*e,n[3]=t[3]*e,n[4]=t[4]*o,n[5]=t[5]*o,n[6]=t[6]*o,n[7]=t[7]*o,n[8]=t[8]*i,n[9]=t[9]*i,n[10]=t[10]*i,n[11]=t[11]*i,n[12]=t[12],n[13]=t[13],n[14]=t[14],n[15]=t[15],n}function m(n,t,r,o){var i,u,a,c,s,f,l,h,d,p,g,v,m,x,_,y,b,w,M,A,j,E,P,I,T=o[0],S=o[1],O=o[2],L=Math.sqrt(T*T+S*S+O*O);return L0?(r[0]=2*(c*a+l*o+s*u-f*i)/h,r[1]=2*(s*a+l*i+f*o-c*u)/h,r[2]=2*(f*a+l*u+c*i-s*o)/h):(r[0]=2*(c*a+l*o+s*u-f*i),r[1]=2*(s*a+l*i+f*o-c*u),r[2]=2*(f*a+l*u+c*i-s*o)),P(n,t,r),n}function T(n,t){return n[0]=t[12],n[1]=t[13],n[2]=t[14],n}function S(n,t){var r=t[0],e=t[1],o=t[2],i=t[4],u=t[5],a=t[6],c=t[8],s=t[9],f=t[10];return n[0]=Math.sqrt(r*r+e*e+o*o),n[1]=Math.sqrt(i*i+u*u+a*a),n[2]=Math.sqrt(c*c+s*s+f*f),n}function O(n,t){var r=t[0]+t[5]+t[10],e=0;return r>0?(e=2*Math.sqrt(r+1),n[3]=.25*e,n[0]=(t[6]-t[9])/e,n[1]=(t[8]-t[2])/e,n[2]=(t[1]-t[4])/e):t[0]>t[5]&&t[0]>t[10]?(e=2*Math.sqrt(1+t[0]-t[5]-t[10]),n[3]=(t[6]-t[9])/e,n[0]=.25*e,n[1]=(t[1]+t[4])/e,n[2]=(t[8]+t[2])/e):t[5]>t[10]?(e=2*Math.sqrt(1+t[5]-t[0]-t[10]),n[3]=(t[8]-t[2])/e,n[0]=(t[1]+t[4])/e,n[1]=.25*e,n[2]=(t[6]+t[9])/e):(e=2*Math.sqrt(1+t[10]-t[0]-t[5]),n[3]=(t[1]-t[4])/e,n[0]=(t[8]+t[2])/e,n[1]=(t[6]+t[9])/e,n[2]=.25*e),n}function L(n,t,r,e){var o=t[0],i=t[1],u=t[2],a=t[3],c=o+o,s=i+i,f=u+u,l=o*c,h=o*s,d=o*f,p=i*s,g=i*f,v=u*f,m=a*c,x=a*s,_=a*f,y=e[0],b=e[1],w=e[2];return n[0]=(1-(p+v))*y,n[1]=(h+_)*y,n[2]=(d-x)*y,n[3]=0,n[4]=(h-_)*b,n[5]=(1-(l+v))*b,n[6]=(g+m)*b,n[7]=0,n[8]=(d+x)*w,n[9]=(g-m)*w,n[10]=(1-(l+p))*w,n[11]=0,n[12]=r[0],n[13]=r[1],n[14]=r[2],n[15]=1,n}function z(n,t,r,e,o){var i=t[0],u=t[1],a=t[2],c=t[3],s=i+i,f=u+u,l=a+a,h=i*s,d=i*f,p=i*l,g=u*f,v=u*l,m=a*l,x=c*s,_=c*f,y=c*l,b=e[0],w=e[1],M=e[2],A=o[0],j=o[1],E=o[2],P=(1-(g+m))*b,I=(d+y)*b,T=(p-_)*b,S=(d-y)*w,O=(1-(h+m))*w,L=(v+x)*w,z=(p+_)*M,R=(v-x)*M,C=(1-(h+g))*M;return n[0]=P,n[1]=I,n[2]=T,n[3]=0,n[4]=S,n[5]=O,n[6]=L,n[7]=0,n[8]=z,n[9]=R,n[10]=C,n[11]=0,n[12]=r[0]+A-(P*A+S*j+z*E),n[13]=r[1]+j-(I*A+O*j+R*E),n[14]=r[2]+E-(T*A+L*j+C*E),n[15]=1,n}function R(n,t){var r=t[0],e=t[1],o=t[2],i=t[3],u=r+r,a=e+e,c=o+o,s=r*u,f=e*u,l=e*a,h=o*u,d=o*a,p=o*c,g=i*u,v=i*a,m=i*c;return n[0]=1-l-p,n[1]=f+m,n[2]=h-v,n[3]=0,n[4]=f-m,n[5]=1-s-p,n[6]=d+g,n[7]=0,n[8]=h+v,n[9]=d-g,n[10]=1-s-l,n[11]=0,n[12]=0,n[13]=0,n[14]=0,n[15]=1,n}function C(n,t,r,e,o,i,u){var a=1/(r-t),c=1/(o-e),s=1/(i-u);return n[0]=2*i*a,n[1]=0,n[2]=0,n[3]=0,n[4]=0,n[5]=2*i*c,n[6]=0,n[7]=0,n[8]=(r+t)*a,n[9]=(o+e)*c,n[10]=(u+i)*s,n[11]=-1,n[12]=0,n[13]=0,n[14]=u*i*2*s,n[15]=0,n}function N(n,t,r,e,o){var i=1/Math.tan(t/2),u=void 0;return n[0]=i/r,n[1]=0,n[2]=0,n[3]=0,n[4]=0,n[5]=i,n[6]=0,n[7]=0,n[8]=0,n[9]=0,n[11]=-1,n[12]=0,n[13]=0,n[15]=0,null!=o&&o!==1/0?(u=1/(e-o),n[10]=(o+e)*u,n[14]=2*o*e*u):(n[10]=-1,n[14]=-2*e),n}function V(n,t,r,e){var o=Math.tan(t.upDegrees*Math.PI/180),i=Math.tan(t.downDegrees*Math.PI/180),u=Math.tan(t.leftDegrees*Math.PI/180),a=Math.tan(t.rightDegrees*Math.PI/180),c=2/(u+a),s=2/(o+i);return n[0]=c,n[1]=0,n[2]=0,n[3]=0,n[4]=0,n[5]=s,n[6]=0,n[7]=0,n[8]=-(u-a)*c*.5,n[9]=(o-i)*s*.5,n[10]=e/(r-e),n[11]=-1,n[12]=0,n[13]=0,n[14]=e*r/(r-e),n[15]=0,n}function q(n,t,r,e,o,i,u){var a=1/(t-r),c=1/(e-o),s=1/(i-u);return n[0]=-2*a,n[1]=0,n[2]=0,n[3]=0,n[4]=0,n[5]=-2*c,n[6]=0,n[7]=0,n[8]=0,n[9]=0,n[10]=2*s,n[11]=0,n[12]=(t+r)*a,n[13]=(o+e)*c,n[14]=(u+i)*s,n[15]=1,n}function B(n,t,r,o){var i=void 0,u=void 0,a=void 0,c=void 0,f=void 0,l=void 0,h=void 0,d=void 0,p=void 0,g=void 0,v=t[0],m=t[1],x=t[2],_=o[0],y=o[1],b=o[2],w=r[0],M=r[1],A=r[2];return Math.abs(v-w)0&&(f*=d=1/Math.sqrt(d),l*=d,h*=d);var p=c*h-s*l,g=s*f-a*h,v=a*l-c*f;return(d=p*p+g*g+v*v)>0&&(p*=d=1/Math.sqrt(d),g*=d,v*=d),n[0]=p,n[1]=g,n[2]=v,n[3]=0,n[4]=l*v-h*g,n[5]=h*p-f*v,n[6]=f*g-l*p,n[7]=0,n[8]=f,n[9]=l,n[10]=h,n[11]=0,n[12]=o,n[13]=i,n[14]=u,n[15]=1,n}function k(n){return"mat4("+n[0]+", "+n[1]+", "+n[2]+", "+n[3]+", "+n[4]+", "+n[5]+", "+n[6]+", "+n[7]+", "+n[8]+", "+n[9]+", "+n[10]+", "+n[11]+", "+n[12]+", "+n[13]+", "+n[14]+", "+n[15]+")"}function Y(n){return Math.sqrt(Math.pow(n[0],2)+Math.pow(n[1],2)+Math.pow(n[2],2)+Math.pow(n[3],2)+Math.pow(n[4],2)+Math.pow(n[5],2)+Math.pow(n[6],2)+Math.pow(n[7],2)+Math.pow(n[8],2)+Math.pow(n[9],2)+Math.pow(n[10],2)+Math.pow(n[11],2)+Math.pow(n[12],2)+Math.pow(n[13],2)+Math.pow(n[14],2)+Math.pow(n[15],2))}function U(n,t,r){return n[0]=t[0]+r[0],n[1]=t[1]+r[1],n[2]=t[2]+r[2],n[3]=t[3]+r[3],n[4]=t[4]+r[4],n[5]=t[5]+r[5],n[6]=t[6]+r[6],n[7]=t[7]+r[7],n[8]=t[8]+r[8],n[9]=t[9]+r[9],n[10]=t[10]+r[10],n[11]=t[11]+r[11],n[12]=t[12]+r[12],n[13]=t[13]+r[13],n[14]=t[14]+r[14],n[15]=t[15]+r[15],n}function F(n,t,r){return n[0]=t[0]-r[0],n[1]=t[1]-r[1],n[2]=t[2]-r[2],n[3]=t[3]-r[3],n[4]=t[4]-r[4],n[5]=t[5]-r[5],n[6]=t[6]-r[6],n[7]=t[7]-r[7],n[8]=t[8]-r[8],n[9]=t[9]-r[9],n[10]=t[10]-r[10],n[11]=t[11]-r[11],n[12]=t[12]-r[12],n[13]=t[13]-r[13],n[14]=t[14]-r[14],n[15]=t[15]-r[15],n}function X(n,t,r){return n[0]=t[0]*r,n[1]=t[1]*r,n[2]=t[2]*r,n[3]=t[3]*r,n[4]=t[4]*r,n[5]=t[5]*r,n[6]=t[6]*r,n[7]=t[7]*r,n[8]=t[8]*r,n[9]=t[9]*r,n[10]=t[10]*r,n[11]=t[11]*r,n[12]=t[12]*r,n[13]=t[13]*r,n[14]=t[14]*r,n[15]=t[15]*r,n}function G(n,t,r,e){return n[0]=t[0]+r[0]*e,n[1]=t[1]+r[1]*e,n[2]=t[2]+r[2]*e,n[3]=t[3]+r[3]*e,n[4]=t[4]+r[4]*e,n[5]=t[5]+r[5]*e,n[6]=t[6]+r[6]*e,n[7]=t[7]+r[7]*e,n[8]=t[8]+r[8]*e,n[9]=t[9]+r[9]*e,n[10]=t[10]+r[10]*e,n[11]=t[11]+r[11]*e,n[12]=t[12]+r[12]*e,n[13]=t[13]+r[13]*e,n[14]=t[14]+r[14]*e,n[15]=t[15]+r[15]*e,n}function Z(n,t){return n[0]===t[0]&&n[1]===t[1]&&n[2]===t[2]&&n[3]===t[3]&&n[4]===t[4]&&n[5]===t[5]&&n[6]===t[6]&&n[7]===t[7]&&n[8]===t[8]&&n[9]===t[9]&&n[10]===t[10]&&n[11]===t[11]&&n[12]===t[12]&&n[13]===t[13]&&n[14]===t[14]&&n[15]===t[15]}function W(n,t){var r=n[0],o=n[1],i=n[2],u=n[3],a=n[4],c=n[5],s=n[6],f=n[7],l=n[8],h=n[9],d=n[10],p=n[11],g=n[12],v=n[13],m=n[14],x=n[15],_=t[0],y=t[1],b=t[2],w=t[3],M=t[4],A=t[5],j=t[6],E=t[7],P=t[8],I=t[9],T=t[10],S=t[11],O=t[12],L=t[13],z=t[14],R=t[15];return Math.abs(r-_)<=e.EPSILON*Math.max(1,Math.abs(r),Math.abs(_))&&Math.abs(o-y)<=e.EPSILON*Math.max(1,Math.abs(o),Math.abs(y))&&Math.abs(i-b)<=e.EPSILON*Math.max(1,Math.abs(i),Math.abs(b))&&Math.abs(u-w)<=e.EPSILON*Math.max(1,Math.abs(u),Math.abs(w))&&Math.abs(a-M)<=e.EPSILON*Math.max(1,Math.abs(a),Math.abs(M))&&Math.abs(c-A)<=e.EPSILON*Math.max(1,Math.abs(c),Math.abs(A))&&Math.abs(s-j)<=e.EPSILON*Math.max(1,Math.abs(s),Math.abs(j))&&Math.abs(f-E)<=e.EPSILON*Math.max(1,Math.abs(f),Math.abs(E))&&Math.abs(l-P)<=e.EPSILON*Math.max(1,Math.abs(l),Math.abs(P))&&Math.abs(h-I)<=e.EPSILON*Math.max(1,Math.abs(h),Math.abs(I))&&Math.abs(d-T)<=e.EPSILON*Math.max(1,Math.abs(d),Math.abs(T))&&Math.abs(p-S)<=e.EPSILON*Math.max(1,Math.abs(p),Math.abs(S))&&Math.abs(g-O)<=e.EPSILON*Math.max(1,Math.abs(g),Math.abs(O))&&Math.abs(v-L)<=e.EPSILON*Math.max(1,Math.abs(v),Math.abs(L))&&Math.abs(m-z)<=e.EPSILON*Math.max(1,Math.abs(m),Math.abs(z))&&Math.abs(x-R)<=e.EPSILON*Math.max(1,Math.abs(x),Math.abs(R))}var H=p,$=F},"./node_modules/gl-matrix/lib/gl-matrix/quat.js":function(n,t,r){"use strict";r.r(t),r.d(t,"create",function(){return a}),r.d(t,"identity",function(){return c}),r.d(t,"setAxisAngle",function(){return s}),r.d(t,"getAxisAngle",function(){return f}),r.d(t,"multiply",function(){return l}),r.d(t,"rotateX",function(){return h}),r.d(t,"rotateY",function(){return d}),r.d(t,"rotateZ",function(){return p}),r.d(t,"calculateW",function(){return g}),r.d(t,"slerp",function(){return v}),r.d(t,"random",function(){return m}),r.d(t,"invert",function(){return x}),r.d(t,"conjugate",function(){return _}),r.d(t,"fromMat3",function(){return y}),r.d(t,"fromEuler",function(){return b}),r.d(t,"str",function(){return w}),r.d(t,"clone",function(){return T}),r.d(t,"fromValues",function(){return S}),r.d(t,"copy",function(){return O}),r.d(t,"set",function(){return L}),r.d(t,"add",function(){return z}),r.d(t,"mul",function(){return R}),r.d(t,"scale",function(){return C}),r.d(t,"dot",function(){return N}),r.d(t,"lerp",function(){return V}),r.d(t,"length",function(){return q}),r.d(t,"len",function(){return B}),r.d(t,"squaredLength",function(){return D}),r.d(t,"sqrLen",function(){return k}),r.d(t,"normalize",function(){return Y}),r.d(t,"exactEquals",function(){return U}),r.d(t,"equals",function(){return F}),r.d(t,"rotationTo",function(){return X}),r.d(t,"sqlerp",function(){return G}),r.d(t,"setAxes",function(){return Z});var e=r("./node_modules/gl-matrix/lib/gl-matrix/common.js"),o=r("./node_modules/gl-matrix/lib/gl-matrix/mat3.js"),i=r("./node_modules/gl-matrix/lib/gl-matrix/vec3.js"),u=r("./node_modules/gl-matrix/lib/gl-matrix/vec4.js");function a(){var n=new e.ARRAY_TYPE(4);return e.ARRAY_TYPE!=Float32Array&&(n[0]=0,n[1]=0,n[2]=0),n[3]=1,n}function c(n){return n[0]=0,n[1]=0,n[2]=0,n[3]=1,n}function s(n,t,r){r*=.5;var e=Math.sin(r);return n[0]=e*t[0],n[1]=e*t[1],n[2]=e*t[2],n[3]=Math.cos(r),n}function f(n,t){var r=2*Math.acos(t[3]),o=Math.sin(r/2);return o>e.EPSILON?(n[0]=t[0]/o,n[1]=t[1]/o,n[2]=t[2]/o):(n[0]=1,n[1]=0,n[2]=0),r}function l(n,t,r){var e=t[0],o=t[1],i=t[2],u=t[3],a=r[0],c=r[1],s=r[2],f=r[3];return n[0]=e*f+u*a+o*s-i*c,n[1]=o*f+u*c+i*a-e*s,n[2]=i*f+u*s+e*c-o*a,n[3]=u*f-e*a-o*c-i*s,n}function h(n,t,r){r*=.5;var e=t[0],o=t[1],i=t[2],u=t[3],a=Math.sin(r),c=Math.cos(r);return n[0]=e*c+u*a,n[1]=o*c+i*a,n[2]=i*c-o*a,n[3]=u*c-e*a,n}function d(n,t,r){r*=.5;var e=t[0],o=t[1],i=t[2],u=t[3],a=Math.sin(r),c=Math.cos(r);return n[0]=e*c-i*a,n[1]=o*c+u*a,n[2]=i*c+e*a,n[3]=u*c-o*a,n}function p(n,t,r){r*=.5;var e=t[0],o=t[1],i=t[2],u=t[3],a=Math.sin(r),c=Math.cos(r);return n[0]=e*c+o*a,n[1]=o*c-e*a,n[2]=i*c+u*a,n[3]=u*c-i*a,n}function g(n,t){var r=t[0],e=t[1],o=t[2];return n[0]=r,n[1]=e,n[2]=o,n[3]=Math.sqrt(Math.abs(1-r*r-e*e-o*o)),n}function v(n,t,r,o){var i=t[0],u=t[1],a=t[2],c=t[3],s=r[0],f=r[1],l=r[2],h=r[3],d=void 0,p=void 0,g=void 0,v=void 0,m=void 0;return(p=i*s+u*f+a*l+c*h)<0&&(p=-p,s=-s,f=-f,l=-l,h=-h),1-p>e.EPSILON?(d=Math.acos(p),g=Math.sin(d),v=Math.sin((1-o)*d)/g,m=Math.sin(o*d)/g):(v=1-o,m=o),n[0]=v*i+m*s,n[1]=v*u+m*f,n[2]=v*a+m*l,n[3]=v*c+m*h,n}function m(n){var t=e.RANDOM(),r=e.RANDOM(),o=e.RANDOM(),i=Math.sqrt(1-t),u=Math.sqrt(t);return n[0]=i*Math.sin(2*Math.PI*r),n[1]=i*Math.cos(2*Math.PI*r),n[2]=u*Math.sin(2*Math.PI*o),n[3]=u*Math.cos(2*Math.PI*o),n}function x(n,t){var r=t[0],e=t[1],o=t[2],i=t[3],u=r*r+e*e+o*o+i*i,a=u?1/u:0;return n[0]=-r*a,n[1]=-e*a,n[2]=-o*a,n[3]=i*a,n}function _(n,t){return n[0]=-t[0],n[1]=-t[1],n[2]=-t[2],n[3]=t[3],n}function y(n,t){var r=t[0]+t[4]+t[8],e=void 0;if(r>0)e=Math.sqrt(r+1),n[3]=.5*e,e=.5/e,n[0]=(t[5]-t[7])*e,n[1]=(t[6]-t[2])*e,n[2]=(t[1]-t[3])*e;else{var o=0;t[4]>t[0]&&(o=1),t[8]>t[3*o+o]&&(o=2);var i=(o+1)%3,u=(o+2)%3;e=Math.sqrt(t[3*o+o]-t[3*i+i]-t[3*u+u]+1),n[o]=.5*e,e=.5/e,n[3]=(t[3*i+u]-t[3*u+i])*e,n[i]=(t[3*i+o]+t[3*o+i])*e,n[u]=(t[3*u+o]+t[3*o+u])*e}return n}function b(n,t,r,e){var o=.5*Math.PI/180;t*=o,r*=o,e*=o;var i=Math.sin(t),u=Math.cos(t),a=Math.sin(r),c=Math.cos(r),s=Math.sin(e),f=Math.cos(e);return n[0]=i*c*f-u*a*s,n[1]=u*a*f+i*c*s,n[2]=u*c*s-i*a*f,n[3]=u*c*f+i*a*s,n}function w(n){return"quat("+n[0]+", "+n[1]+", "+n[2]+", "+n[3]+")"}var M,A,j,E,P,I,T=u.clone,S=u.fromValues,O=u.copy,L=u.set,z=u.add,R=l,C=u.scale,N=u.dot,V=u.lerp,q=u.length,B=q,D=u.squaredLength,k=D,Y=u.normalize,U=u.exactEquals,F=u.equals,X=(M=i.create(),A=i.fromValues(1,0,0),j=i.fromValues(0,1,0),function(n,t,r){var e=i.dot(t,r);return e<-.999999?(i.cross(M,A,t),i.len(M)<1e-6&&i.cross(M,j,t),i.normalize(M,M),s(n,M,Math.PI),n):e>.999999?(n[0]=0,n[1]=0,n[2]=0,n[3]=1,n):(i.cross(M,t,r),n[0]=M[0],n[1]=M[1],n[2]=M[2],n[3]=1+e,Y(n,n))}),G=(E=a(),P=a(),function(n,t,r,e,o,i){return v(E,t,o,i),v(P,r,e,i),v(n,E,P,2*i*(1-i)),n}),Z=(I=o.create(),function(n,t,r,e){return I[0]=r[0],I[3]=r[1],I[6]=r[2],I[1]=e[0],I[4]=e[1],I[7]=e[2],I[2]=-t[0],I[5]=-t[1],I[8]=-t[2],Y(n,y(n,I))})},"./node_modules/gl-matrix/lib/gl-matrix/quat2.js":function(n,t,r){"use strict";r.r(t),r.d(t,"create",function(){return u}),r.d(t,"clone",function(){return a}),r.d(t,"fromValues",function(){return c}),r.d(t,"fromRotationTranslationValues",function(){return s}),r.d(t,"fromRotationTranslation",function(){return f}),r.d(t,"fromTranslation",function(){return l}),r.d(t,"fromRotation",function(){return h}),r.d(t,"fromMat4",function(){return d}),r.d(t,"copy",function(){return p}),r.d(t,"identity",function(){return g}),r.d(t,"set",function(){return v}),r.d(t,"getReal",function(){return m}),r.d(t,"getDual",function(){return x}),r.d(t,"setReal",function(){return _}),r.d(t,"setDual",function(){return y}),r.d(t,"getTranslation",function(){return b}),r.d(t,"translate",function(){return w}),r.d(t,"rotateX",function(){return M}),r.d(t,"rotateY",function(){return A}),r.d(t,"rotateZ",function(){return j}),r.d(t,"rotateByQuatAppend",function(){return E}),r.d(t,"rotateByQuatPrepend",function(){return P}),r.d(t,"rotateAroundAxis",function(){return I}),r.d(t,"add",function(){return T}),r.d(t,"multiply",function(){return S}),r.d(t,"mul",function(){return O}),r.d(t,"scale",function(){return L}),r.d(t,"dot",function(){return z}),r.d(t,"lerp",function(){return R}),r.d(t,"invert",function(){return C}),r.d(t,"conjugate",function(){return N}),r.d(t,"length",function(){return V}),r.d(t,"len",function(){return q}),r.d(t,"squaredLength",function(){return B}),r.d(t,"sqrLen",function(){return D}),r.d(t,"normalize",function(){return k}),r.d(t,"str",function(){return Y}),r.d(t,"exactEquals",function(){return U}),r.d(t,"equals",function(){return F});var e=r("./node_modules/gl-matrix/lib/gl-matrix/common.js"),o=r("./node_modules/gl-matrix/lib/gl-matrix/quat.js"),i=r("./node_modules/gl-matrix/lib/gl-matrix/mat4.js");function u(){var n=new e.ARRAY_TYPE(8);return e.ARRAY_TYPE!=Float32Array&&(n[0]=0,n[1]=0,n[2]=0,n[4]=0,n[5]=0,n[6]=0,n[7]=0),n[3]=1,n}function a(n){var t=new e.ARRAY_TYPE(8);return t[0]=n[0],t[1]=n[1],t[2]=n[2],t[3]=n[3],t[4]=n[4],t[5]=n[5],t[6]=n[6],t[7]=n[7],t}function c(n,t,r,o,i,u,a,c){var s=new e.ARRAY_TYPE(8);return s[0]=n,s[1]=t,s[2]=r,s[3]=o,s[4]=i,s[5]=u,s[6]=a,s[7]=c,s}function s(n,t,r,o,i,u,a){var c=new e.ARRAY_TYPE(8);c[0]=n,c[1]=t,c[2]=r,c[3]=o;var s=.5*i,f=.5*u,l=.5*a;return c[4]=s*o+f*r-l*t,c[5]=f*o+l*n-s*r,c[6]=l*o+s*t-f*n,c[7]=-s*n-f*t-l*r,c}function f(n,t,r){var e=.5*r[0],o=.5*r[1],i=.5*r[2],u=t[0],a=t[1],c=t[2],s=t[3];return n[0]=u,n[1]=a,n[2]=c,n[3]=s,n[4]=e*s+o*c-i*a,n[5]=o*s+i*u-e*c,n[6]=i*s+e*a-o*u,n[7]=-e*u-o*a-i*c,n}function l(n,t){return n[0]=0,n[1]=0,n[2]=0,n[3]=1,n[4]=.5*t[0],n[5]=.5*t[1],n[6]=.5*t[2],n[7]=0,n}function h(n,t){return n[0]=t[0],n[1]=t[1],n[2]=t[2],n[3]=t[3],n[4]=0,n[5]=0,n[6]=0,n[7]=0,n}function d(n,t){var r=o.create();i.getRotation(r,t);var u=new e.ARRAY_TYPE(3);return i.getTranslation(u,t),f(n,r,u),n}function p(n,t){return n[0]=t[0],n[1]=t[1],n[2]=t[2],n[3]=t[3],n[4]=t[4],n[5]=t[5],n[6]=t[6],n[7]=t[7],n}function g(n){return n[0]=0,n[1]=0,n[2]=0,n[3]=1,n[4]=0,n[5]=0,n[6]=0,n[7]=0,n}function v(n,t,r,e,o,i,u,a,c){return n[0]=t,n[1]=r,n[2]=e,n[3]=o,n[4]=i,n[5]=u,n[6]=a,n[7]=c,n}var m=o.copy;function x(n,t){return n[0]=t[4],n[1]=t[5],n[2]=t[6],n[3]=t[7],n}var _=o.copy;function y(n,t){return n[4]=t[0],n[5]=t[1],n[6]=t[2],n[7]=t[3],n}function b(n,t){var r=t[4],e=t[5],o=t[6],i=t[7],u=-t[0],a=-t[1],c=-t[2],s=t[3];return n[0]=2*(r*s+i*u+e*c-o*a),n[1]=2*(e*s+i*a+o*u-r*c),n[2]=2*(o*s+i*c+r*a-e*u),n}function w(n,t,r){var e=t[0],o=t[1],i=t[2],u=t[3],a=.5*r[0],c=.5*r[1],s=.5*r[2],f=t[4],l=t[5],h=t[6],d=t[7];return n[0]=e,n[1]=o,n[2]=i,n[3]=u,n[4]=u*a+o*s-i*c+f,n[5]=u*c+i*a-e*s+l,n[6]=u*s+e*c-o*a+h,n[7]=-e*a-o*c-i*s+d,n}function M(n,t,r){var e=-t[0],i=-t[1],u=-t[2],a=t[3],c=t[4],s=t[5],f=t[6],l=t[7],h=c*a+l*e+s*u-f*i,d=s*a+l*i+f*e-c*u,p=f*a+l*u+c*i-s*e,g=l*a-c*e-s*i-f*u;return o.rotateX(n,t,r),e=n[0],i=n[1],u=n[2],a=n[3],n[4]=h*a+g*e+d*u-p*i,n[5]=d*a+g*i+p*e-h*u,n[6]=p*a+g*u+h*i-d*e,n[7]=g*a-h*e-d*i-p*u,n}function A(n,t,r){var e=-t[0],i=-t[1],u=-t[2],a=t[3],c=t[4],s=t[5],f=t[6],l=t[7],h=c*a+l*e+s*u-f*i,d=s*a+l*i+f*e-c*u,p=f*a+l*u+c*i-s*e,g=l*a-c*e-s*i-f*u;return o.rotateY(n,t,r),e=n[0],i=n[1],u=n[2],a=n[3],n[4]=h*a+g*e+d*u-p*i,n[5]=d*a+g*i+p*e-h*u,n[6]=p*a+g*u+h*i-d*e,n[7]=g*a-h*e-d*i-p*u,n}function j(n,t,r){var e=-t[0],i=-t[1],u=-t[2],a=t[3],c=t[4],s=t[5],f=t[6],l=t[7],h=c*a+l*e+s*u-f*i,d=s*a+l*i+f*e-c*u,p=f*a+l*u+c*i-s*e,g=l*a-c*e-s*i-f*u;return o.rotateZ(n,t,r),e=n[0],i=n[1],u=n[2],a=n[3],n[4]=h*a+g*e+d*u-p*i,n[5]=d*a+g*i+p*e-h*u,n[6]=p*a+g*u+h*i-d*e,n[7]=g*a-h*e-d*i-p*u,n}function E(n,t,r){var e=r[0],o=r[1],i=r[2],u=r[3],a=t[0],c=t[1],s=t[2],f=t[3];return n[0]=a*u+f*e+c*i-s*o,n[1]=c*u+f*o+s*e-a*i,n[2]=s*u+f*i+a*o-c*e,n[3]=f*u-a*e-c*o-s*i,a=t[4],c=t[5],s=t[6],f=t[7],n[4]=a*u+f*e+c*i-s*o,n[5]=c*u+f*o+s*e-a*i,n[6]=s*u+f*i+a*o-c*e,n[7]=f*u-a*e-c*o-s*i,n}function P(n,t,r){var e=t[0],o=t[1],i=t[2],u=t[3],a=r[0],c=r[1],s=r[2],f=r[3];return n[0]=e*f+u*a+o*s-i*c,n[1]=o*f+u*c+i*a-e*s,n[2]=i*f+u*s+e*c-o*a,n[3]=u*f-e*a-o*c-i*s,a=r[4],c=r[5],s=r[6],f=r[7],n[4]=e*f+u*a+o*s-i*c,n[5]=o*f+u*c+i*a-e*s,n[6]=i*f+u*s+e*c-o*a,n[7]=u*f-e*a-o*c-i*s,n}function I(n,t,r,o){if(Math.abs(o)0){r=Math.sqrt(r);var e=t[0]/r,o=t[1]/r,i=t[2]/r,u=t[3]/r,a=t[4],c=t[5],s=t[6],f=t[7],l=e*a+o*c+i*s+u*f;n[0]=e,n[1]=o,n[2]=i,n[3]=u,n[4]=(a-e*l)/r,n[5]=(c-o*l)/r,n[6]=(s-i*l)/r,n[7]=(f-u*l)/r}return n}function Y(n){return"quat2("+n[0]+", "+n[1]+", "+n[2]+", "+n[3]+", "+n[4]+", "+n[5]+", "+n[6]+", "+n[7]+")"}function U(n,t){return n[0]===t[0]&&n[1]===t[1]&&n[2]===t[2]&&n[3]===t[3]&&n[4]===t[4]&&n[5]===t[5]&&n[6]===t[6]&&n[7]===t[7]}function F(n,t){var r=n[0],o=n[1],i=n[2],u=n[3],a=n[4],c=n[5],s=n[6],f=n[7],l=t[0],h=t[1],d=t[2],p=t[3],g=t[4],v=t[5],m=t[6],x=t[7];return Math.abs(r-l)<=e.EPSILON*Math.max(1,Math.abs(r),Math.abs(l))&&Math.abs(o-h)<=e.EPSILON*Math.max(1,Math.abs(o),Math.abs(h))&&Math.abs(i-d)<=e.EPSILON*Math.max(1,Math.abs(i),Math.abs(d))&&Math.abs(u-p)<=e.EPSILON*Math.max(1,Math.abs(u),Math.abs(p))&&Math.abs(a-g)<=e.EPSILON*Math.max(1,Math.abs(a),Math.abs(g))&&Math.abs(c-v)<=e.EPSILON*Math.max(1,Math.abs(c),Math.abs(v))&&Math.abs(s-m)<=e.EPSILON*Math.max(1,Math.abs(s),Math.abs(m))&&Math.abs(f-x)<=e.EPSILON*Math.max(1,Math.abs(f),Math.abs(x))}},"./node_modules/gl-matrix/lib/gl-matrix/vec2.js":function(n,t,r){"use strict";r.r(t),r.d(t,"create",function(){return o}),r.d(t,"clone",function(){return i}),r.d(t,"fromValues",function(){return u}),r.d(t,"copy",function(){return a}),r.d(t,"set",function(){return c}),r.d(t,"add",function(){return s}),r.d(t,"subtract",function(){return f}),r.d(t,"multiply",function(){return l}),r.d(t,"divide",function(){return h}),r.d(t,"ceil",function(){return d}),r.d(t,"floor",function(){return p}),r.d(t,"min",function(){return g}),r.d(t,"max",function(){return v}),r.d(t,"round",function(){return m}),r.d(t,"scale",function(){return x}),r.d(t,"scaleAndAdd",function(){return _}),r.d(t,"distance",function(){return y}),r.d(t,"squaredDistance",function(){return b}),r.d(t,"length",function(){return w}),r.d(t,"squaredLength",function(){return M}),r.d(t,"negate",function(){return A}),r.d(t,"inverse",function(){return j}),r.d(t,"normalize",function(){return E}),r.d(t,"dot",function(){return P}),r.d(t,"cross",function(){return I}),r.d(t,"lerp",function(){return T}),r.d(t,"random",function(){return S}),r.d(t,"transformMat2",function(){return O}),r.d(t,"transformMat2d",function(){return L}),r.d(t,"transformMat3",function(){return z}),r.d(t,"transformMat4",function(){return R}),r.d(t,"rotate",function(){return C}),r.d(t,"angle",function(){return N}),r.d(t,"str",function(){return V}),r.d(t,"exactEquals",function(){return q}),r.d(t,"equals",function(){return B}),r.d(t,"len",function(){return k}),r.d(t,"sub",function(){return Y}),r.d(t,"mul",function(){return U}),r.d(t,"div",function(){return F}),r.d(t,"dist",function(){return X}),r.d(t,"sqrDist",function(){return G}),r.d(t,"sqrLen",function(){return Z}),r.d(t,"forEach",function(){return W});var e=r("./node_modules/gl-matrix/lib/gl-matrix/common.js");function o(){var n=new e.ARRAY_TYPE(2);return e.ARRAY_TYPE!=Float32Array&&(n[0]=0,n[1]=0),n}function i(n){var t=new e.ARRAY_TYPE(2);return t[0]=n[0],t[1]=n[1],t}function u(n,t){var r=new e.ARRAY_TYPE(2);return r[0]=n,r[1]=t,r}function a(n,t){return n[0]=t[0],n[1]=t[1],n}function c(n,t,r){return n[0]=t,n[1]=r,n}function s(n,t,r){return n[0]=t[0]+r[0],n[1]=t[1]+r[1],n}function f(n,t,r){return n[0]=t[0]-r[0],n[1]=t[1]-r[1],n}function l(n,t,r){return n[0]=t[0]*r[0],n[1]=t[1]*r[1],n}function h(n,t,r){return n[0]=t[0]/r[0],n[1]=t[1]/r[1],n}function d(n,t){return n[0]=Math.ceil(t[0]),n[1]=Math.ceil(t[1]),n}function p(n,t){return n[0]=Math.floor(t[0]),n[1]=Math.floor(t[1]),n}function g(n,t,r){return n[0]=Math.min(t[0],r[0]),n[1]=Math.min(t[1],r[1]),n}function v(n,t,r){return n[0]=Math.max(t[0],r[0]),n[1]=Math.max(t[1],r[1]),n}function m(n,t){return n[0]=Math.round(t[0]),n[1]=Math.round(t[1]),n}function x(n,t,r){return n[0]=t[0]*r,n[1]=t[1]*r,n}function _(n,t,r,e){return n[0]=t[0]+r[0]*e,n[1]=t[1]+r[1]*e,n}function y(n,t){var r=t[0]-n[0],e=t[1]-n[1];return Math.sqrt(r*r+e*e)}function b(n,t){var r=t[0]-n[0],e=t[1]-n[1];return r*r+e*e}function w(n){var t=n[0],r=n[1];return Math.sqrt(t*t+r*r)}function M(n){var t=n[0],r=n[1];return t*t+r*r}function A(n,t){return n[0]=-t[0],n[1]=-t[1],n}function j(n,t){return n[0]=1/t[0],n[1]=1/t[1],n}function E(n,t){var r=t[0],e=t[1],o=r*r+e*e;return o>0&&(o=1/Math.sqrt(o),n[0]=t[0]*o,n[1]=t[1]*o),n}function P(n,t){return n[0]*t[0]+n[1]*t[1]}function I(n,t,r){var e=t[0]*r[1]-t[1]*r[0];return n[0]=n[1]=0,n[2]=e,n}function T(n,t,r,e){var o=t[0],i=t[1];return n[0]=o+e*(r[0]-o),n[1]=i+e*(r[1]-i),n}function S(n,t){t=t||1;var r=2*e.RANDOM()*Math.PI;return n[0]=Math.cos(r)*t,n[1]=Math.sin(r)*t,n}function O(n,t,r){var e=t[0],o=t[1];return n[0]=r[0]*e+r[2]*o,n[1]=r[1]*e+r[3]*o,n}function L(n,t,r){var e=t[0],o=t[1];return n[0]=r[0]*e+r[2]*o+r[4],n[1]=r[1]*e+r[3]*o+r[5],n}function z(n,t,r){var e=t[0],o=t[1];return n[0]=r[0]*e+r[3]*o+r[6],n[1]=r[1]*e+r[4]*o+r[7],n}function R(n,t,r){var e=t[0],o=t[1];return n[0]=r[0]*e+r[4]*o+r[12],n[1]=r[1]*e+r[5]*o+r[13],n}function C(n,t,r,e){var o=t[0]-r[0],i=t[1]-r[1],u=Math.sin(e),a=Math.cos(e);return n[0]=o*a-i*u+r[0],n[1]=o*u+i*a+r[1],n}function N(n,t){var r=n[0],e=n[1],o=t[0],i=t[1],u=r*r+e*e;u>0&&(u=1/Math.sqrt(u));var a=o*o+i*i;a>0&&(a=1/Math.sqrt(a));var c=(r*o+e*i)*u*a;return c>1?0:c<-1?Math.PI:Math.acos(c)}function V(n){return"vec2("+n[0]+", "+n[1]+")"}function q(n,t){return n[0]===t[0]&&n[1]===t[1]}function B(n,t){var r=n[0],o=n[1],i=t[0],u=t[1];return Math.abs(r-i)<=e.EPSILON*Math.max(1,Math.abs(r),Math.abs(i))&&Math.abs(o-u)<=e.EPSILON*Math.max(1,Math.abs(o),Math.abs(u))}var D,k=w,Y=f,U=l,F=h,X=y,G=b,Z=M,W=(D=o(),function(n,t,r,e,o,i){var u=void 0,a=void 0;for(t||(t=2),r||(r=0),a=e?Math.min(e*t+r,n.length):n.length,u=r;u0&&(i=1/Math.sqrt(i),n[0]=t[0]*i,n[1]=t[1]*i,n[2]=t[2]*i),n}function P(n,t){return n[0]*t[0]+n[1]*t[1]+n[2]*t[2]}function I(n,t,r){var e=t[0],o=t[1],i=t[2],u=r[0],a=r[1],c=r[2];return n[0]=o*c-i*a,n[1]=i*u-e*c,n[2]=e*a-o*u,n}function T(n,t,r,e){var o=t[0],i=t[1],u=t[2];return n[0]=o+e*(r[0]-o),n[1]=i+e*(r[1]-i),n[2]=u+e*(r[2]-u),n}function S(n,t,r,e,o,i){var u=i*i,a=u*(2*i-3)+1,c=u*(i-2)+i,s=u*(i-1),f=u*(3-2*i);return n[0]=t[0]*a+r[0]*c+e[0]*s+o[0]*f,n[1]=t[1]*a+r[1]*c+e[1]*s+o[1]*f,n[2]=t[2]*a+r[2]*c+e[2]*s+o[2]*f,n}function O(n,t,r,e,o,i){var u=1-i,a=u*u,c=i*i,s=a*u,f=3*i*a,l=3*c*u,h=c*i;return n[0]=t[0]*s+r[0]*f+e[0]*l+o[0]*h,n[1]=t[1]*s+r[1]*f+e[1]*l+o[1]*h,n[2]=t[2]*s+r[2]*f+e[2]*l+o[2]*h,n}function L(n,t){t=t||1;var r=2*e.RANDOM()*Math.PI,o=2*e.RANDOM()-1,i=Math.sqrt(1-o*o)*t;return n[0]=Math.cos(r)*i,n[1]=Math.sin(r)*i,n[2]=o*t,n}function z(n,t,r){var e=t[0],o=t[1],i=t[2],u=r[3]*e+r[7]*o+r[11]*i+r[15];return u=u||1,n[0]=(r[0]*e+r[4]*o+r[8]*i+r[12])/u,n[1]=(r[1]*e+r[5]*o+r[9]*i+r[13])/u,n[2]=(r[2]*e+r[6]*o+r[10]*i+r[14])/u,n}function R(n,t,r){var e=t[0],o=t[1],i=t[2];return n[0]=e*r[0]+o*r[3]+i*r[6],n[1]=e*r[1]+o*r[4]+i*r[7],n[2]=e*r[2]+o*r[5]+i*r[8],n}function C(n,t,r){var e=r[0],o=r[1],i=r[2],u=r[3],a=t[0],c=t[1],s=t[2],f=o*s-i*c,l=i*a-e*s,h=e*c-o*a,d=o*h-i*l,p=i*f-e*h,g=e*l-o*f,v=2*u;return f*=v,l*=v,h*=v,d*=2,p*=2,g*=2,n[0]=a+f+d,n[1]=c+l+p,n[2]=s+h+g,n}function N(n,t,r,e){var o=[],i=[];return o[0]=t[0]-r[0],o[1]=t[1]-r[1],o[2]=t[2]-r[2],i[0]=o[0],i[1]=o[1]*Math.cos(e)-o[2]*Math.sin(e),i[2]=o[1]*Math.sin(e)+o[2]*Math.cos(e),n[0]=i[0]+r[0],n[1]=i[1]+r[1],n[2]=i[2]+r[2],n}function V(n,t,r,e){var o=[],i=[];return o[0]=t[0]-r[0],o[1]=t[1]-r[1],o[2]=t[2]-r[2],i[0]=o[2]*Math.sin(e)+o[0]*Math.cos(e),i[1]=o[1],i[2]=o[2]*Math.cos(e)-o[0]*Math.sin(e),n[0]=i[0]+r[0],n[1]=i[1]+r[1],n[2]=i[2]+r[2],n}function q(n,t,r,e){var o=[],i=[];return o[0]=t[0]-r[0],o[1]=t[1]-r[1],o[2]=t[2]-r[2],i[0]=o[0]*Math.cos(e)-o[1]*Math.sin(e),i[1]=o[0]*Math.sin(e)+o[1]*Math.cos(e),i[2]=o[2],n[0]=i[0]+r[0],n[1]=i[1]+r[1],n[2]=i[2]+r[2],n}function B(n,t){var r=a(n[0],n[1],n[2]),e=a(t[0],t[1],t[2]);E(r,r),E(e,e);var o=P(r,e);return o>1?0:o<-1?Math.PI:Math.acos(o)}function D(n){return"vec3("+n[0]+", "+n[1]+", "+n[2]+")"}function k(n,t){return n[0]===t[0]&&n[1]===t[1]&&n[2]===t[2]}function Y(n,t){var r=n[0],o=n[1],i=n[2],u=t[0],a=t[1],c=t[2];return Math.abs(r-u)<=e.EPSILON*Math.max(1,Math.abs(r),Math.abs(u))&&Math.abs(o-a)<=e.EPSILON*Math.max(1,Math.abs(o),Math.abs(a))&&Math.abs(i-c)<=e.EPSILON*Math.max(1,Math.abs(i),Math.abs(c))}var U,F=l,X=h,G=d,Z=b,W=w,H=u,$=M,K=(U=o(),function(n,t,r,e,o,i){var u=void 0,a=void 0;for(t||(t=3),r||(r=0),a=e?Math.min(e*t+r,n.length):n.length,u=r;u0&&(u=1/Math.sqrt(u),n[0]=r*u,n[1]=e*u,n[2]=o*u,n[3]=i*u),n}function P(n,t){return n[0]*t[0]+n[1]*t[1]+n[2]*t[2]+n[3]*t[3]}function I(n,t,r,e){var o=t[0],i=t[1],u=t[2],a=t[3];return n[0]=o+e*(r[0]-o),n[1]=i+e*(r[1]-i),n[2]=u+e*(r[2]-u),n[3]=a+e*(r[3]-a),n}function T(n,t){var r,o,i,u,a,c;t=t||1;do{a=(r=2*e.RANDOM()-1)*r+(o=2*e.RANDOM()-1)*o}while(a>=1);do{c=(i=2*e.RANDOM()-1)*i+(u=2*e.RANDOM()-1)*u}while(c>=1);var s=Math.sqrt((1-a)/c);return n[0]=t*r,n[1]=t*o,n[2]=t*i*s,n[3]=t*u*s,n}function S(n,t,r){var e=t[0],o=t[1],i=t[2],u=t[3];return n[0]=r[0]*e+r[4]*o+r[8]*i+r[12]*u,n[1]=r[1]*e+r[5]*o+r[9]*i+r[13]*u,n[2]=r[2]*e+r[6]*o+r[10]*i+r[14]*u,n[3]=r[3]*e+r[7]*o+r[11]*i+r[15]*u,n}function O(n,t,r){var e=t[0],o=t[1],i=t[2],u=r[0],a=r[1],c=r[2],s=r[3],f=s*e+a*i-c*o,l=s*o+c*e-u*i,h=s*i+u*o-a*e,d=-u*e-a*o-c*i;return n[0]=f*s+d*-u+l*-c-h*-a,n[1]=l*s+d*-a+h*-u-f*-c,n[2]=h*s+d*-c+f*-a-l*-u,n[3]=t[3],n}function L(n){return"vec4("+n[0]+", "+n[1]+", "+n[2]+", "+n[3]+")"}function z(n,t){return n[0]===t[0]&&n[1]===t[1]&&n[2]===t[2]&&n[3]===t[3]}function R(n,t){var r=n[0],o=n[1],i=n[2],u=n[3],a=t[0],c=t[1],s=t[2],f=t[3];return Math.abs(r-a)<=e.EPSILON*Math.max(1,Math.abs(r),Math.abs(a))&&Math.abs(o-c)<=e.EPSILON*Math.max(1,Math.abs(o),Math.abs(c))&&Math.abs(i-s)<=e.EPSILON*Math.max(1,Math.abs(i),Math.abs(s))&&Math.abs(u-f)<=e.EPSILON*Math.max(1,Math.abs(u),Math.abs(f))}var C,N=f,V=l,q=h,B=y,D=b,k=w,Y=M,U=(C=o(),function(n,t,r,e,o,i){var u=void 0,a=void 0;for(t||(t=4),r||(r=0),a=e?Math.min(e*t+r,n.length):n.length,u=r;u>>1,D=[["ary",A],["bind",m],["bindKey",x],["curry",y],["curryRight",b],["flip",E],["partial",w],["partialRight",M],["rearg",j]],k="[object Arguments]",Y="[object Array]",U="[object AsyncFunction]",F="[object Boolean]",X="[object Date]",G="[object DOMException]",Z="[object Error]",W="[object Function]",H="[object GeneratorFunction]",$="[object Map]",K="[object Number]",Q="[object Null]",J="[object Object]",nn="[object Proxy]",tn="[object RegExp]",rn="[object Set]",en="[object String]",on="[object Symbol]",un="[object Undefined]",an="[object WeakMap]",cn="[object WeakSet]",sn="[object ArrayBuffer]",fn="[object DataView]",ln="[object Float32Array]",hn="[object Float64Array]",dn="[object Int8Array]",pn="[object Int16Array]",gn="[object Int32Array]",vn="[object Uint8Array]",mn="[object Uint8ClampedArray]",xn="[object Uint16Array]",_n="[object Uint32Array]",yn=/\b__p \+= '';/g,bn=/\b(__p \+=) '' \+/g,wn=/(__e\(.*?\)|\b__t\)) \+\n'';/g,Mn=/&(?:amp|lt|gt|quot|#39);/g,An=/[&<>"']/g,jn=RegExp(Mn.source),En=RegExp(An.source),Pn=/<%-([\s\S]+?)%>/g,In=/<%([\s\S]+?)%>/g,Tn=/<%=([\s\S]+?)%>/g,Sn=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,On=/^\w*$/,Ln=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,zn=/[\\^$.*+?()[\]{}|]/g,Rn=RegExp(zn.source),Cn=/^\s+|\s+$/g,Nn=/^\s+/,Vn=/\s+$/,qn=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,Bn=/\{\n\/\* \[wrapped with (.+)\] \*/,Dn=/,? & /,kn=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,Yn=/\\(\\)?/g,Un=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,Fn=/\w*$/,Xn=/^[-+]0x[0-9a-f]+$/i,Gn=/^0b[01]+$/i,Zn=/^\[object .+?Constructor\]$/,Wn=/^0o[0-7]+$/i,Hn=/^(?:0|[1-9]\d*)$/,$n=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,Kn=/($^)/,Qn=/['\n\r\u2028\u2029\\]/g,Jn="\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff",nt="\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",tt="[\\ud800-\\udfff]",rt="["+nt+"]",et="["+Jn+"]",ot="\\d+",it="[\\u2700-\\u27bf]",ut="[a-z\\xdf-\\xf6\\xf8-\\xff]",at="[^\\ud800-\\udfff"+nt+ot+"\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde]",ct="\\ud83c[\\udffb-\\udfff]",st="[^\\ud800-\\udfff]",ft="(?:\\ud83c[\\udde6-\\uddff]){2}",lt="[\\ud800-\\udbff][\\udc00-\\udfff]",ht="[A-Z\\xc0-\\xd6\\xd8-\\xde]",dt="(?:"+ut+"|"+at+")",pt="(?:"+ht+"|"+at+")",gt="(?:"+et+"|"+ct+")"+"?",vt="[\\ufe0e\\ufe0f]?"+gt+("(?:\\u200d(?:"+[st,ft,lt].join("|")+")[\\ufe0e\\ufe0f]?"+gt+")*"),mt="(?:"+[it,ft,lt].join("|")+")"+vt,xt="(?:"+[st+et+"?",et,ft,lt,tt].join("|")+")",_t=RegExp("['’]","g"),yt=RegExp(et,"g"),bt=RegExp(ct+"(?="+ct+")|"+xt+vt,"g"),wt=RegExp([ht+"?"+ut+"+(?:['’](?:d|ll|m|re|s|t|ve))?(?="+[rt,ht,"$"].join("|")+")",pt+"+(?:['’](?:D|LL|M|RE|S|T|VE))?(?="+[rt,ht+dt,"$"].join("|")+")",ht+"?"+dt+"+(?:['’](?:d|ll|m|re|s|t|ve))?",ht+"+(?:['’](?:D|LL|M|RE|S|T|VE))?","\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])","\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",ot,mt].join("|"),"g"),Mt=RegExp("[\\u200d\\ud800-\\udfff"+Jn+"\\ufe0e\\ufe0f]"),At=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,jt=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],Et=-1,Pt={};Pt[ln]=Pt[hn]=Pt[dn]=Pt[pn]=Pt[gn]=Pt[vn]=Pt[mn]=Pt[xn]=Pt[_n]=!0,Pt[k]=Pt[Y]=Pt[sn]=Pt[F]=Pt[fn]=Pt[X]=Pt[Z]=Pt[W]=Pt[$]=Pt[K]=Pt[J]=Pt[tn]=Pt[rn]=Pt[en]=Pt[an]=!1;var It={};It[k]=It[Y]=It[sn]=It[fn]=It[F]=It[X]=It[ln]=It[hn]=It[dn]=It[pn]=It[gn]=It[$]=It[K]=It[J]=It[tn]=It[rn]=It[en]=It[on]=It[vn]=It[mn]=It[xn]=It[_n]=!0,It[Z]=It[W]=It[an]=!1;var Tt={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},St=parseFloat,Ot=parseInt,Lt="object"==typeof n&&n&&n.Object===Object&&n,zt="object"==typeof self&&self&&self.Object===Object&&self,Rt=Lt||zt||Function("return this")(),Ct=t&&!t.nodeType&&t,Nt=Ct&&"object"==typeof e&&e&&!e.nodeType&&e,Vt=Nt&&Nt.exports===Ct,qt=Vt&&Lt.process,Bt=function(){try{var n=Nt&&Nt.require&&Nt.require("util").types;return n||qt&&qt.binding&&qt.binding("util")}catch(n){}}(),Dt=Bt&&Bt.isArrayBuffer,kt=Bt&&Bt.isDate,Yt=Bt&&Bt.isMap,Ut=Bt&&Bt.isRegExp,Ft=Bt&&Bt.isSet,Xt=Bt&&Bt.isTypedArray;function Gt(n,t,r){switch(r.length){case 0:return n.call(t);case 1:return n.call(t,r[0]);case 2:return n.call(t,r[0],r[1]);case 3:return n.call(t,r[0],r[1],r[2])}return n.apply(t,r)}function Zt(n,t,r,e){for(var o=-1,i=null==n?0:n.length;++o-1}function Jt(n,t,r){for(var e=-1,o=null==n?0:n.length;++e-1;);return r}function br(n,t){for(var r=n.length;r--&&cr(t,n[r],0)>-1;);return r}var wr=dr({"À":"A","Á":"A","Â":"A","Ã":"A","Ä":"A","Å":"A","à":"a","á":"a","â":"a","ã":"a","ä":"a","å":"a","Ç":"C","ç":"c","Ð":"D","ð":"d","È":"E","É":"E","Ê":"E","Ë":"E","è":"e","é":"e","ê":"e","ë":"e","Ì":"I","Í":"I","Î":"I","Ï":"I","ì":"i","í":"i","î":"i","ï":"i","Ñ":"N","ñ":"n","Ò":"O","Ó":"O","Ô":"O","Õ":"O","Ö":"O","Ø":"O","ò":"o","ó":"o","ô":"o","õ":"o","ö":"o","ø":"o","Ù":"U","Ú":"U","Û":"U","Ü":"U","ù":"u","ú":"u","û":"u","ü":"u","Ý":"Y","ý":"y","ÿ":"y","Æ":"Ae","æ":"ae","Þ":"Th","þ":"th","ß":"ss","Ā":"A","Ă":"A","Ą":"A","ā":"a","ă":"a","ą":"a","Ć":"C","Ĉ":"C","Ċ":"C","Č":"C","ć":"c","ĉ":"c","ċ":"c","č":"c","Ď":"D","Đ":"D","ď":"d","đ":"d","Ē":"E","Ĕ":"E","Ė":"E","Ę":"E","Ě":"E","ē":"e","ĕ":"e","ė":"e","ę":"e","ě":"e","Ĝ":"G","Ğ":"G","Ġ":"G","Ģ":"G","ĝ":"g","ğ":"g","ġ":"g","ģ":"g","Ĥ":"H","Ħ":"H","ĥ":"h","ħ":"h","Ĩ":"I","Ī":"I","Ĭ":"I","Į":"I","İ":"I","ĩ":"i","ī":"i","ĭ":"i","į":"i","ı":"i","Ĵ":"J","ĵ":"j","Ķ":"K","ķ":"k","ĸ":"k","Ĺ":"L","Ļ":"L","Ľ":"L","Ŀ":"L","Ł":"L","ĺ":"l","ļ":"l","ľ":"l","ŀ":"l","ł":"l","Ń":"N","Ņ":"N","Ň":"N","Ŋ":"N","ń":"n","ņ":"n","ň":"n","ŋ":"n","Ō":"O","Ŏ":"O","Ő":"O","ō":"o","ŏ":"o","ő":"o","Ŕ":"R","Ŗ":"R","Ř":"R","ŕ":"r","ŗ":"r","ř":"r","Ś":"S","Ŝ":"S","Ş":"S","Š":"S","ś":"s","ŝ":"s","ş":"s","š":"s","Ţ":"T","Ť":"T","Ŧ":"T","ţ":"t","ť":"t","ŧ":"t","Ũ":"U","Ū":"U","Ŭ":"U","Ů":"U","Ű":"U","Ų":"U","ũ":"u","ū":"u","ŭ":"u","ů":"u","ű":"u","ų":"u","Ŵ":"W","ŵ":"w","Ŷ":"Y","ŷ":"y","Ÿ":"Y","Ź":"Z","Ż":"Z","Ž":"Z","ź":"z","ż":"z","ž":"z","IJ":"IJ","ij":"ij","Œ":"Oe","œ":"oe","ʼn":"'n","ſ":"s"}),Mr=dr({"&":"&","<":"<",">":">",'"':""","'":"'"});function Ar(n){return"\\"+Tt[n]}function jr(n){return Mt.test(n)}function Er(n){var t=-1,r=Array(n.size);return n.forEach(function(n,e){r[++t]=[e,n]}),r}function Pr(n,t){return function(r){return n(t(r))}}function Ir(n,t){for(var r=-1,e=n.length,o=0,i=[];++r",""":'"',"'":"'"});var Rr=function n(t){var r,e=(t=null==t?Rt:Rr.defaults(Rt.Object(),t,Rr.pick(Rt,jt))).Array,o=t.Date,Jn=t.Error,nt=t.Function,tt=t.Math,rt=t.Object,et=t.RegExp,ot=t.String,it=t.TypeError,ut=e.prototype,at=nt.prototype,ct=rt.prototype,st=t["__core-js_shared__"],ft=at.toString,lt=ct.hasOwnProperty,ht=0,dt=(r=/[^.]+$/.exec(st&&st.keys&&st.keys.IE_PROTO||""))?"Symbol(src)_1."+r:"",pt=ct.toString,gt=ft.call(rt),vt=Rt._,mt=et("^"+ft.call(lt).replace(zn,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),xt=Vt?t.Buffer:i,bt=t.Symbol,Mt=t.Uint8Array,Tt=xt?xt.allocUnsafe:i,Lt=Pr(rt.getPrototypeOf,rt),zt=rt.create,Ct=ct.propertyIsEnumerable,Nt=ut.splice,qt=bt?bt.isConcatSpreadable:i,Bt=bt?bt.iterator:i,ir=bt?bt.toStringTag:i,dr=function(){try{var n=Bi(rt,"defineProperty");return n({},"",{}),n}catch(n){}}(),Cr=t.clearTimeout!==Rt.clearTimeout&&t.clearTimeout,Nr=o&&o.now!==Rt.Date.now&&o.now,Vr=t.setTimeout!==Rt.setTimeout&&t.setTimeout,qr=tt.ceil,Br=tt.floor,Dr=rt.getOwnPropertySymbols,kr=xt?xt.isBuffer:i,Yr=t.isFinite,Ur=ut.join,Fr=Pr(rt.keys,rt),Xr=tt.max,Gr=tt.min,Zr=o.now,Wr=t.parseInt,Hr=tt.random,$r=ut.reverse,Kr=Bi(t,"DataView"),Qr=Bi(t,"Map"),Jr=Bi(t,"Promise"),ne=Bi(t,"Set"),te=Bi(t,"WeakMap"),re=Bi(rt,"create"),ee=te&&new te,oe={},ie=lu(Kr),ue=lu(Qr),ae=lu(Jr),ce=lu(ne),se=lu(te),fe=bt?bt.prototype:i,le=fe?fe.valueOf:i,he=fe?fe.toString:i;function de(n){if(Ia(n)&&!ma(n)&&!(n instanceof me)){if(n instanceof ve)return n;if(lt.call(n,"__wrapped__"))return hu(n)}return new ve(n)}var pe=function(){function n(){}return function(t){if(!Pa(t))return{};if(zt)return zt(t);n.prototype=t;var r=new n;return n.prototype=i,r}}();function ge(){}function ve(n,t){this.__wrapped__=n,this.__actions__=[],this.__chain__=!!t,this.__index__=0,this.__values__=i}function me(n){this.__wrapped__=n,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=V,this.__views__=[]}function xe(n){var t=-1,r=null==n?0:n.length;for(this.clear();++t=t?n:t)),n}function Ce(n,t,r,e,o,u){var a,c=t&h,s=t&d,f=t&p;if(r&&(a=o?r(n,e,o,u):r(n)),a!==i)return a;if(!Pa(n))return n;var l=ma(n);if(l){if(a=function(n){var t=n.length,r=new n.constructor(t);return t&&"string"==typeof n[0]&<.call(n,"index")&&(r.index=n.index,r.input=n.input),r}(n),!c)return ei(n,a)}else{var g=Yi(n),v=g==W||g==H;if(ba(n))return Ko(n,c);if(g==J||g==k||v&&!o){if(a=s||v?{}:Fi(n),!c)return s?function(n,t){return oi(n,ki(n),t)}(n,function(n,t){return n&&oi(t,ic(t),n)}(a,n)):function(n,t){return oi(n,Di(n),t)}(n,Oe(a,n))}else{if(!It[g])return o?n:{};a=function(n,t,r){var e,o,i,u=n.constructor;switch(t){case sn:return Qo(n);case F:case X:return new u(+n);case fn:return function(n,t){var r=t?Qo(n.buffer):n.buffer;return new n.constructor(r,n.byteOffset,n.byteLength)}(n,r);case ln:case hn:case dn:case pn:case gn:case vn:case mn:case xn:case _n:return Jo(n,r);case $:return new u;case K:case en:return new u(n);case tn:return(i=new(o=n).constructor(o.source,Fn.exec(o))).lastIndex=o.lastIndex,i;case rn:return new u;case on:return e=n,le?rt(le.call(e)):{}}}(n,g,c)}}u||(u=new we);var m=u.get(n);if(m)return m;if(u.set(n,a),za(n))return n.forEach(function(e){a.add(Ce(e,t,r,e,n,u))}),a;if(Ta(n))return n.forEach(function(e,o){a.set(o,Ce(e,t,r,o,n,u))}),a;var x=l?i:(f?s?Li:Oi:s?ic:oc)(n);return Wt(x||n,function(e,o){x&&(e=n[o=e]),Ie(a,o,Ce(e,t,r,o,n,u))}),a}function Ne(n,t,r){var e=r.length;if(null==n)return!e;for(n=rt(n);e--;){var o=r[e],u=t[o],a=n[o];if(a===i&&!(o in n)||!u(a))return!1}return!0}function Ve(n,t,r){if("function"!=typeof n)throw new it(c);return ou(function(){n.apply(i,r)},t)}function qe(n,t,r,e){var o=-1,i=Qt,a=!0,c=n.length,s=[],f=t.length;if(!c)return s;r&&(t=nr(t,mr(r))),e?(i=Jt,a=!1):t.length>=u&&(i=_r,a=!1,t=new be(t));n:for(;++o-1},_e.prototype.set=function(n,t){var r=this.__data__,e=Te(r,n);return e<0?(++this.size,r.push([n,t])):r[e][1]=t,this},ye.prototype.clear=function(){this.size=0,this.__data__={hash:new xe,map:new(Qr||_e),string:new xe}},ye.prototype.delete=function(n){var t=Vi(this,n).delete(n);return this.size-=t?1:0,t},ye.prototype.get=function(n){return Vi(this,n).get(n)},ye.prototype.has=function(n){return Vi(this,n).has(n)},ye.prototype.set=function(n,t){var r=Vi(this,n),e=r.size;return r.set(n,t),this.size+=r.size==e?0:1,this},be.prototype.add=be.prototype.push=function(n){return this.__data__.set(n,s),this},be.prototype.has=function(n){return this.__data__.has(n)},we.prototype.clear=function(){this.__data__=new _e,this.size=0},we.prototype.delete=function(n){var t=this.__data__,r=t.delete(n);return this.size=t.size,r},we.prototype.get=function(n){return this.__data__.get(n)},we.prototype.has=function(n){return this.__data__.has(n)},we.prototype.set=function(n,t){var r=this.__data__;if(r instanceof _e){var e=r.__data__;if(!Qr||e.length0&&r(a)?t>1?Fe(a,t-1,r,e,o):tr(o,a):e||(o[o.length]=a)}return o}var Xe=ci(),Ge=ci(!0);function Ze(n,t){return n&&Xe(n,t,oc)}function We(n,t){return n&&Ge(n,t,oc)}function He(n,t){return Kt(t,function(t){return Aa(n[t])})}function $e(n,t){for(var r=0,e=(t=Zo(t,n)).length;null!=n&&rt}function no(n,t){return null!=n&<.call(n,t)}function to(n,t){return null!=n&&t in rt(n)}function ro(n,t,r){for(var o=r?Jt:Qt,u=n[0].length,a=n.length,c=a,s=e(a),f=1/0,l=[];c--;){var h=n[c];c&&t&&(h=nr(h,mr(t))),f=Gr(h.length,f),s[c]=!r&&(t||u>=120&&h.length>=120)?new be(c&&h):i}h=n[0];var d=-1,p=s[0];n:for(;++d=a)return c;var s=r[e];return c*("desc"==s?-1:1)}}return n.index-t.index}(n,t,r)})}function _o(n,t,r){for(var e=-1,o=t.length,i={};++e-1;)a!==n&&Nt.call(a,c,1),Nt.call(n,c,1);return n}function bo(n,t){for(var r=n?t.length:0,e=r-1;r--;){var o=t[r];if(r==e||o!==i){var i=o;Gi(o)?Nt.call(n,o,1):Bo(n,o)}}return n}function wo(n,t){return n+Br(Hr()*(t-n+1))}function Mo(n,t){var r="";if(!n||t<1||t>R)return r;do{t%2&&(r+=n),(t=Br(t/2))&&(n+=n)}while(t);return r}function Ao(n,t){return iu(nu(n,t,Sc),n+"")}function jo(n){return Ae(dc(n))}function Eo(n,t){var r=dc(n);return cu(r,Re(t,0,r.length))}function Po(n,t,r,e){if(!Pa(n))return n;for(var o=-1,u=(t=Zo(t,n)).length,a=u-1,c=n;null!=c&&++oi?0:i+t),(r=r>i?i:r)<0&&(r+=i),i=t>r?0:r-t>>>0,t>>>=0;for(var u=e(i);++o>>1,u=n[i];null!==u&&!Ca(u)&&(r?u<=t:u=u){var f=t?null:Mi(n);if(f)return Tr(f);a=!1,o=_r,s=new be}else s=t?[]:c;n:for(;++e=e?n:Oo(n,t,r)}var $o=Cr||function(n){return Rt.clearTimeout(n)};function Ko(n,t){if(t)return n.slice();var r=n.length,e=Tt?Tt(r):new n.constructor(r);return n.copy(e),e}function Qo(n){var t=new n.constructor(n.byteLength);return new Mt(t).set(new Mt(n)),t}function Jo(n,t){var r=t?Qo(n.buffer):n.buffer;return new n.constructor(r,n.byteOffset,n.length)}function ni(n,t){if(n!==t){var r=n!==i,e=null===n,o=n==n,u=Ca(n),a=t!==i,c=null===t,s=t==t,f=Ca(t);if(!c&&!f&&!u&&n>t||u&&a&&s&&!c&&!f||e&&a&&s||!r&&s||!o)return 1;if(!e&&!u&&!f&&n1?r[o-1]:i,a=o>2?r[2]:i;for(u=n.length>3&&"function"==typeof u?(o--,u):i,a&&Zi(r[0],r[1],a)&&(u=o<3?i:u,o=1),t=rt(t);++e-1?o[u?t[a]:a]:i}}function di(n){return Si(function(t){var r=t.length,e=r,o=ve.prototype.thru;for(n&&t.reverse();e--;){var u=t[e];if("function"!=typeof u)throw new it(c);if(o&&!a&&"wrapper"==Ri(u))var a=new ve([],!0)}for(e=a?e:r;++e1&&y.reverse(),h&&fc))return!1;var f=u.get(n);if(f&&u.get(t))return f==t;var l=-1,h=!0,d=r&v?new be:i;for(u.set(n,t),u.set(t,n);++l-1&&n%1==0&&n1?"& ":"")+t[e],t=t.join(r>2?", ":" "),n.replace(qn,"{\n/* [wrapped with "+t+"] */\n")}(e,function(n,t){return Wt(D,function(r){var e="_."+r[0];t&r[1]&&!Qt(n,e)&&n.push(e)}),n.sort()}(function(n){var t=n.match(Bn);return t?t[1].split(Dn):[]}(e),r)))}function au(n){var t=0,r=0;return function(){var e=Zr(),o=S-(e-r);if(r=e,o>0){if(++t>=T)return arguments[0]}else t=0;return n.apply(i,arguments)}}function cu(n,t){var r=-1,e=n.length,o=e-1;for(t=t===i?e:t;++r1?n[t-1]:i;return Lu(n,r="function"==typeof r?(n.pop(),r):i)});function Bu(n){var t=de(n);return t.__chain__=!0,t}function Du(n,t){return t(n)}var ku=Si(function(n){var t=n.length,r=t?n[0]:0,e=this.__wrapped__,o=function(t){return ze(t,n)};return!(t>1||this.__actions__.length)&&e instanceof me&&Gi(r)?((e=e.slice(r,+r+(t?1:0))).__actions__.push({func:Du,args:[o],thisArg:i}),new ve(e,this.__chain__).thru(function(n){return t&&!n.length&&n.push(i),n})):this.thru(o)});var Yu=ii(function(n,t,r){lt.call(n,r)?++n[r]:Le(n,r,1)});var Uu=hi(vu),Fu=hi(mu);function Xu(n,t){return(ma(n)?Wt:Be)(n,Ni(t,3))}function Gu(n,t){return(ma(n)?Ht:De)(n,Ni(t,3))}var Zu=ii(function(n,t,r){lt.call(n,r)?n[r].push(t):Le(n,r,[t])});var Wu=Ao(function(n,t,r){var o=-1,i="function"==typeof t,u=_a(n)?e(n.length):[];return Be(n,function(n){u[++o]=i?Gt(t,n,r):eo(n,t,r)}),u}),Hu=ii(function(n,t,r){Le(n,r,t)});function $u(n,t){return(ma(n)?nr:ho)(n,Ni(t,3))}var Ku=ii(function(n,t,r){n[r?0:1].push(t)},function(){return[[],[]]});var Qu=Ao(function(n,t){if(null==n)return[];var r=t.length;return r>1&&Zi(n,t[0],t[1])?t=[]:r>2&&Zi(t[0],t[1],t[2])&&(t=[t[0]]),xo(n,Fe(t,1),[])}),Ju=Nr||function(){return Rt.Date.now()};function na(n,t,r){return t=r?i:t,t=n&&null==t?n.length:t,ji(n,A,i,i,i,i,t)}function ta(n,t){var r;if("function"!=typeof t)throw new it(c);return n=ka(n),function(){return--n>0&&(r=t.apply(this,arguments)),n<=1&&(t=i),r}}var ra=Ao(function(n,t,r){var e=m;if(r.length){var o=Ir(r,Ci(ra));e|=w}return ji(n,e,t,r,o)}),ea=Ao(function(n,t,r){var e=m|x;if(r.length){var o=Ir(r,Ci(ea));e|=w}return ji(t,e,n,r,o)});function oa(n,t,r){var e,o,u,a,s,f,l=0,h=!1,d=!1,p=!0;if("function"!=typeof n)throw new it(c);function g(t){var r=e,u=o;return e=o=i,l=t,a=n.apply(u,r)}function v(n){var r=n-f;return f===i||r>=t||r<0||d&&n-l>=u}function m(){var n=Ju();if(v(n))return x(n);s=ou(m,function(n){var r=t-(n-f);return d?Gr(r,u-(n-l)):r}(n))}function x(n){return s=i,p&&e?g(n):(e=o=i,a)}function _(){var n=Ju(),r=v(n);if(e=arguments,o=this,f=n,r){if(s===i)return function(n){return l=n,s=ou(m,t),h?g(n):a}(f);if(d)return s=ou(m,t),g(f)}return s===i&&(s=ou(m,t)),a}return t=Ua(t)||0,Pa(r)&&(h=!!r.leading,u=(d="maxWait"in r)?Xr(Ua(r.maxWait)||0,t):u,p="trailing"in r?!!r.trailing:p),_.cancel=function(){s!==i&&$o(s),l=0,e=f=o=s=i},_.flush=function(){return s===i?a:x(Ju())},_}var ia=Ao(function(n,t){return Ve(n,1,t)}),ua=Ao(function(n,t,r){return Ve(n,Ua(t)||0,r)});function aa(n,t){if("function"!=typeof n||null!=t&&"function"!=typeof t)throw new it(c);var r=function(){var e=arguments,o=t?t.apply(this,e):e[0],i=r.cache;if(i.has(o))return i.get(o);var u=n.apply(this,e);return r.cache=i.set(o,u)||i,u};return r.cache=new(aa.Cache||ye),r}function ca(n){if("function"!=typeof n)throw new it(c);return function(){var t=arguments;switch(t.length){case 0:return!n.call(this);case 1:return!n.call(this,t[0]);case 2:return!n.call(this,t[0],t[1]);case 3:return!n.call(this,t[0],t[1],t[2])}return!n.apply(this,t)}}aa.Cache=ye;var sa=Wo(function(n,t){var r=(t=1==t.length&&ma(t[0])?nr(t[0],mr(Ni())):nr(Fe(t,1),mr(Ni()))).length;return Ao(function(e){for(var o=-1,i=Gr(e.length,r);++o=t}),va=oo(function(){return arguments}())?oo:function(n){return Ia(n)&<.call(n,"callee")&&!Ct.call(n,"callee")},ma=e.isArray,xa=Dt?mr(Dt):function(n){return Ia(n)&&Qe(n)==sn};function _a(n){return null!=n&&Ea(n.length)&&!Aa(n)}function ya(n){return Ia(n)&&_a(n)}var ba=kr||Uc,wa=kt?mr(kt):function(n){return Ia(n)&&Qe(n)==X};function Ma(n){if(!Ia(n))return!1;var t=Qe(n);return t==Z||t==G||"string"==typeof n.message&&"string"==typeof n.name&&!Oa(n)}function Aa(n){if(!Pa(n))return!1;var t=Qe(n);return t==W||t==H||t==U||t==nn}function ja(n){return"number"==typeof n&&n==ka(n)}function Ea(n){return"number"==typeof n&&n>-1&&n%1==0&&n<=R}function Pa(n){var t=typeof n;return null!=n&&("object"==t||"function"==t)}function Ia(n){return null!=n&&"object"==typeof n}var Ta=Yt?mr(Yt):function(n){return Ia(n)&&Yi(n)==$};function Sa(n){return"number"==typeof n||Ia(n)&&Qe(n)==K}function Oa(n){if(!Ia(n)||Qe(n)!=J)return!1;var t=Lt(n);if(null===t)return!0;var r=lt.call(t,"constructor")&&t.constructor;return"function"==typeof r&&r instanceof r&&ft.call(r)==gt}var La=Ut?mr(Ut):function(n){return Ia(n)&&Qe(n)==tn};var za=Ft?mr(Ft):function(n){return Ia(n)&&Yi(n)==rn};function Ra(n){return"string"==typeof n||!ma(n)&&Ia(n)&&Qe(n)==en}function Ca(n){return"symbol"==typeof n||Ia(n)&&Qe(n)==on}var Na=Xt?mr(Xt):function(n){return Ia(n)&&Ea(n.length)&&!!Pt[Qe(n)]};var Va=yi(lo),qa=yi(function(n,t){return n<=t});function Ba(n){if(!n)return[];if(_a(n))return Ra(n)?Lr(n):ei(n);if(Bt&&n[Bt])return function(n){for(var t,r=[];!(t=n.next()).done;)r.push(t.value);return r}(n[Bt]());var t=Yi(n);return(t==$?Er:t==rn?Tr:dc)(n)}function Da(n){return n?(n=Ua(n))===z||n===-z?(n<0?-1:1)*C:n==n?n:0:0===n?n:0}function ka(n){var t=Da(n),r=t%1;return t==t?r?t-r:t:0}function Ya(n){return n?Re(ka(n),0,V):0}function Ua(n){if("number"==typeof n)return n;if(Ca(n))return N;if(Pa(n)){var t="function"==typeof n.valueOf?n.valueOf():n;n=Pa(t)?t+"":t}if("string"!=typeof n)return 0===n?n:+n;n=n.replace(Cn,"");var r=Gn.test(n);return r||Wn.test(n)?Ot(n.slice(2),r?2:8):Xn.test(n)?N:+n}function Fa(n){return oi(n,ic(n))}function Xa(n){return null==n?"":Vo(n)}var Ga=ui(function(n,t){if(Ki(t)||_a(t))oi(t,oc(t),n);else for(var r in t)lt.call(t,r)&&Ie(n,r,t[r])}),Za=ui(function(n,t){oi(t,ic(t),n)}),Wa=ui(function(n,t,r,e){oi(t,ic(t),n,e)}),Ha=ui(function(n,t,r,e){oi(t,oc(t),n,e)}),$a=Si(ze);var Ka=Ao(function(n,t){n=rt(n);var r=-1,e=t.length,o=e>2?t[2]:i;for(o&&Zi(t[0],t[1],o)&&(e=1);++r1),t}),oi(n,Li(n),r),e&&(r=Ce(r,h|d|p,Ii));for(var o=t.length;o--;)Bo(r,t[o]);return r});var sc=Si(function(n,t){return null==n?{}:function(n,t){return _o(n,t,function(t,r){return nc(n,r)})}(n,t)});function fc(n,t){if(null==n)return{};var r=nr(Li(n),function(n){return[n]});return t=Ni(t),_o(n,r,function(n,r){return t(n,r[0])})}var lc=Ai(oc),hc=Ai(ic);function dc(n){return null==n?[]:xr(n,oc(n))}var pc=fi(function(n,t,r){return t=t.toLowerCase(),n+(r?gc(t):t)});function gc(n){return Mc(Xa(n).toLowerCase())}function vc(n){return(n=Xa(n))&&n.replace($n,wr).replace(yt,"")}var mc=fi(function(n,t,r){return n+(r?"-":"")+t.toLowerCase()}),xc=fi(function(n,t,r){return n+(r?" ":"")+t.toLowerCase()}),_c=si("toLowerCase");var yc=fi(function(n,t,r){return n+(r?"_":"")+t.toLowerCase()});var bc=fi(function(n,t,r){return n+(r?" ":"")+Mc(t)});var wc=fi(function(n,t,r){return n+(r?" ":"")+t.toUpperCase()}),Mc=si("toUpperCase");function Ac(n,t,r){return n=Xa(n),(t=r?i:t)===i?function(n){return At.test(n)}(n)?function(n){return n.match(wt)||[]}(n):function(n){return n.match(kn)||[]}(n):n.match(t)||[]}var jc=Ao(function(n,t){try{return Gt(n,i,t)}catch(n){return Ma(n)?n:new Jn(n)}}),Ec=Si(function(n,t){return Wt(t,function(t){t=fu(t),Le(n,t,ra(n[t],n))}),n});function Pc(n){return function(){return n}}var Ic=di(),Tc=di(!0);function Sc(n){return n}function Oc(n){return co("function"==typeof n?n:Ce(n,h))}var Lc=Ao(function(n,t){return function(r){return eo(r,n,t)}}),zc=Ao(function(n,t){return function(r){return eo(n,r,t)}});function Rc(n,t,r){var e=oc(t),o=He(t,e);null!=r||Pa(t)&&(o.length||!e.length)||(r=t,t=n,n=this,o=He(t,oc(t)));var i=!(Pa(r)&&"chain"in r&&!r.chain),u=Aa(n);return Wt(o,function(r){var e=t[r];n[r]=e,u&&(n.prototype[r]=function(){var t=this.__chain__;if(i||t){var r=n(this.__wrapped__);return(r.__actions__=ei(this.__actions__)).push({func:e,args:arguments,thisArg:n}),r.__chain__=t,r}return e.apply(n,tr([this.value()],arguments))})}),n}function Cc(){}var Nc=mi(nr),Vc=mi($t),qc=mi(or);function Bc(n){return Wi(n)?hr(fu(n)):function(n){return function(t){return $e(t,n)}}(n)}var Dc=_i(),kc=_i(!0);function Yc(){return[]}function Uc(){return!1}var Fc=vi(function(n,t){return n+t},0),Xc=wi("ceil"),Gc=vi(function(n,t){return n/t},1),Zc=wi("floor");var Wc,Hc=vi(function(n,t){return n*t},1),$c=wi("round"),Kc=vi(function(n,t){return n-t},0);return de.after=function(n,t){if("function"!=typeof t)throw new it(c);return n=ka(n),function(){if(--n<1)return t.apply(this,arguments)}},de.ary=na,de.assign=Ga,de.assignIn=Za,de.assignInWith=Wa,de.assignWith=Ha,de.at=$a,de.before=ta,de.bind=ra,de.bindAll=Ec,de.bindKey=ea,de.castArray=function(){if(!arguments.length)return[];var n=arguments[0];return ma(n)?n:[n]},de.chain=Bu,de.chunk=function(n,t,r){t=(r?Zi(n,t,r):t===i)?1:Xr(ka(t),0);var o=null==n?0:n.length;if(!o||t<1)return[];for(var u=0,a=0,c=e(qr(o/t));uo?0:o+r),(e=e===i||e>o?o:ka(e))<0&&(e+=o),e=r>e?0:Ya(e);r>>0)?(n=Xa(n))&&("string"==typeof t||null!=t&&!La(t))&&!(t=Vo(t))&&jr(n)?Ho(Lr(n),0,r):n.split(t,r):[]},de.spread=function(n,t){if("function"!=typeof n)throw new it(c);return t=null==t?0:Xr(ka(t),0),Ao(function(r){var e=r[t],o=Ho(r,0,t);return e&&tr(o,e),Gt(n,this,o)})},de.tail=function(n){var t=null==n?0:n.length;return t?Oo(n,1,t):[]},de.take=function(n,t,r){return n&&n.length?Oo(n,0,(t=r||t===i?1:ka(t))<0?0:t):[]},de.takeRight=function(n,t,r){var e=null==n?0:n.length;return e?Oo(n,(t=e-(t=r||t===i?1:ka(t)))<0?0:t,e):[]},de.takeRightWhile=function(n,t){return n&&n.length?ko(n,Ni(t,3),!1,!0):[]},de.takeWhile=function(n,t){return n&&n.length?ko(n,Ni(t,3)):[]},de.tap=function(n,t){return t(n),n},de.throttle=function(n,t,r){var e=!0,o=!0;if("function"!=typeof n)throw new it(c);return Pa(r)&&(e="leading"in r?!!r.leading:e,o="trailing"in r?!!r.trailing:o),oa(n,t,{leading:e,maxWait:t,trailing:o})},de.thru=Du,de.toArray=Ba,de.toPairs=lc,de.toPairsIn=hc,de.toPath=function(n){return ma(n)?nr(n,fu):Ca(n)?[n]:ei(su(Xa(n)))},de.toPlainObject=Fa,de.transform=function(n,t,r){var e=ma(n),o=e||ba(n)||Na(n);if(t=Ni(t,4),null==r){var i=n&&n.constructor;r=o?e?new i:[]:Pa(n)&&Aa(i)?pe(Lt(n)):{}}return(o?Wt:Ze)(n,function(n,e,o){return t(r,n,e,o)}),r},de.unary=function(n){return na(n,1)},de.union=Iu,de.unionBy=Tu,de.unionWith=Su,de.uniq=function(n){return n&&n.length?qo(n):[]},de.uniqBy=function(n,t){return n&&n.length?qo(n,Ni(t,2)):[]},de.uniqWith=function(n,t){return t="function"==typeof t?t:i,n&&n.length?qo(n,i,t):[]},de.unset=function(n,t){return null==n||Bo(n,t)},de.unzip=Ou,de.unzipWith=Lu,de.update=function(n,t,r){return null==n?n:Do(n,t,Go(r))},de.updateWith=function(n,t,r,e){return e="function"==typeof e?e:i,null==n?n:Do(n,t,Go(r),e)},de.values=dc,de.valuesIn=function(n){return null==n?[]:xr(n,ic(n))},de.without=zu,de.words=Ac,de.wrap=function(n,t){return fa(Go(t),n)},de.xor=Ru,de.xorBy=Cu,de.xorWith=Nu,de.zip=Vu,de.zipObject=function(n,t){return Fo(n||[],t||[],Ie)},de.zipObjectDeep=function(n,t){return Fo(n||[],t||[],Po)},de.zipWith=qu,de.entries=lc,de.entriesIn=hc,de.extend=Za,de.extendWith=Wa,Rc(de,de),de.add=Fc,de.attempt=jc,de.camelCase=pc,de.capitalize=gc,de.ceil=Xc,de.clamp=function(n,t,r){return r===i&&(r=t,t=i),r!==i&&(r=(r=Ua(r))==r?r:0),t!==i&&(t=(t=Ua(t))==t?t:0),Re(Ua(n),t,r)},de.clone=function(n){return Ce(n,p)},de.cloneDeep=function(n){return Ce(n,h|p)},de.cloneDeepWith=function(n,t){return Ce(n,h|p,t="function"==typeof t?t:i)},de.cloneWith=function(n,t){return Ce(n,p,t="function"==typeof t?t:i)},de.conformsTo=function(n,t){return null==t||Ne(n,t,oc(t))},de.deburr=vc,de.defaultTo=function(n,t){return null==n||n!=n?t:n},de.divide=Gc,de.endsWith=function(n,t,r){n=Xa(n),t=Vo(t);var e=n.length,o=r=r===i?e:Re(ka(r),0,e);return(r-=t.length)>=0&&n.slice(r,o)==t},de.eq=da,de.escape=function(n){return(n=Xa(n))&&En.test(n)?n.replace(An,Mr):n},de.escapeRegExp=function(n){return(n=Xa(n))&&Rn.test(n)?n.replace(zn,"\\$&"):n},de.every=function(n,t,r){var e=ma(n)?$t:ke;return r&&Zi(n,t,r)&&(t=i),e(n,Ni(t,3))},de.find=Uu,de.findIndex=vu,de.findKey=function(n,t){return ur(n,Ni(t,3),Ze)},de.findLast=Fu,de.findLastIndex=mu,de.findLastKey=function(n,t){return ur(n,Ni(t,3),We)},de.floor=Zc,de.forEach=Xu,de.forEachRight=Gu,de.forIn=function(n,t){return null==n?n:Xe(n,Ni(t,3),ic)},de.forInRight=function(n,t){return null==n?n:Ge(n,Ni(t,3),ic)},de.forOwn=function(n,t){return n&&Ze(n,Ni(t,3))},de.forOwnRight=function(n,t){return n&&We(n,Ni(t,3))},de.get=Ja,de.gt=pa,de.gte=ga,de.has=function(n,t){return null!=n&&Ui(n,t,no)},de.hasIn=nc,de.head=_u,de.identity=Sc,de.includes=function(n,t,r,e){n=_a(n)?n:dc(n),r=r&&!e?ka(r):0;var o=n.length;return r<0&&(r=Xr(o+r,0)),Ra(n)?r<=o&&n.indexOf(t,r)>-1:!!o&&cr(n,t,r)>-1},de.indexOf=function(n,t,r){var e=null==n?0:n.length;if(!e)return-1;var o=null==r?0:ka(r);return o<0&&(o=Xr(e+o,0)),cr(n,t,o)},de.inRange=function(n,t,r){return t=Da(t),r===i?(r=t,t=0):r=Da(r),function(n,t,r){return n>=Gr(t,r)&&n=-R&&n<=R},de.isSet=za,de.isString=Ra,de.isSymbol=Ca,de.isTypedArray=Na,de.isUndefined=function(n){return n===i},de.isWeakMap=function(n){return Ia(n)&&Yi(n)==an},de.isWeakSet=function(n){return Ia(n)&&Qe(n)==cn},de.join=function(n,t){return null==n?"":Ur.call(n,t)},de.kebabCase=mc,de.last=Mu,de.lastIndexOf=function(n,t,r){var e=null==n?0:n.length;if(!e)return-1;var o=e;return r!==i&&(o=(o=ka(r))<0?Xr(e+o,0):Gr(o,e-1)),t==t?function(n,t,r){for(var e=r+1;e--;)if(n[e]===t)return e;return e}(n,t,o):ar(n,fr,o,!0)},de.lowerCase=xc,de.lowerFirst=_c,de.lt=Va,de.lte=qa,de.max=function(n){return n&&n.length?Ye(n,Sc,Je):i},de.maxBy=function(n,t){return n&&n.length?Ye(n,Ni(t,2),Je):i},de.mean=function(n){return lr(n,Sc)},de.meanBy=function(n,t){return lr(n,Ni(t,2))},de.min=function(n){return n&&n.length?Ye(n,Sc,lo):i},de.minBy=function(n,t){return n&&n.length?Ye(n,Ni(t,2),lo):i},de.stubArray=Yc,de.stubFalse=Uc,de.stubObject=function(){return{}},de.stubString=function(){return""},de.stubTrue=function(){return!0},de.multiply=Hc,de.nth=function(n,t){return n&&n.length?mo(n,ka(t)):i},de.noConflict=function(){return Rt._===this&&(Rt._=vt),this},de.noop=Cc,de.now=Ju,de.pad=function(n,t,r){n=Xa(n);var e=(t=ka(t))?Or(n):0;if(!t||e>=t)return n;var o=(t-e)/2;return xi(Br(o),r)+n+xi(qr(o),r)},de.padEnd=function(n,t,r){n=Xa(n);var e=(t=ka(t))?Or(n):0;return t&&et){var e=n;n=t,t=e}if(r||n%1||t%1){var o=Hr();return Gr(n+o*(t-n+St("1e-"+((o+"").length-1))),t)}return wo(n,t)},de.reduce=function(n,t,r){var e=ma(n)?rr:pr,o=arguments.length<3;return e(n,Ni(t,4),r,o,Be)},de.reduceRight=function(n,t,r){var e=ma(n)?er:pr,o=arguments.length<3;return e(n,Ni(t,4),r,o,De)},de.repeat=function(n,t,r){return t=(r?Zi(n,t,r):t===i)?1:ka(t),Mo(Xa(n),t)},de.replace=function(){var n=arguments,t=Xa(n[0]);return n.length<3?t:t.replace(n[1],n[2])},de.result=function(n,t,r){var e=-1,o=(t=Zo(t,n)).length;for(o||(o=1,n=i);++eR)return[];var r=V,e=Gr(n,V);t=Ni(t),n-=V;for(var o=vr(e,t);++r=u)return n;var c=r-Or(e);if(c<1)return e;var s=a?Ho(a,0,c).join(""):n.slice(0,c);if(o===i)return s+e;if(a&&(c+=s.length-c),La(o)){if(n.slice(c).search(o)){var f,l=s;for(o.global||(o=et(o.source,Xa(Fn.exec(o))+"g")),o.lastIndex=0;f=o.exec(l);)var h=f.index;s=s.slice(0,h===i?c:h)}}else if(n.indexOf(Vo(o),c)!=c){var d=s.lastIndexOf(o);d>-1&&(s=s.slice(0,d))}return s+e},de.unescape=function(n){return(n=Xa(n))&&jn.test(n)?n.replace(Mn,zr):n},de.uniqueId=function(n){var t=++ht;return Xa(n)+t},de.upperCase=wc,de.upperFirst=Mc,de.each=Xu,de.eachRight=Gu,de.first=_u,Rc(de,(Wc={},Ze(de,function(n,t){lt.call(de.prototype,t)||(Wc[t]=n)}),Wc),{chain:!1}),de.VERSION="4.17.11",Wt(["bind","bindKey","curry","curryRight","partial","partialRight"],function(n){de[n].placeholder=de}),Wt(["drop","take"],function(n,t){me.prototype[n]=function(r){r=r===i?1:Xr(ka(r),0);var e=this.__filtered__&&!t?new me(this):this.clone();return e.__filtered__?e.__takeCount__=Gr(r,e.__takeCount__):e.__views__.push({size:Gr(r,V),type:n+(e.__dir__<0?"Right":"")}),e},me.prototype[n+"Right"]=function(t){return this.reverse()[n](t).reverse()}}),Wt(["filter","map","takeWhile"],function(n,t){var r=t+1,e=r==O||3==r;me.prototype[n]=function(n){var t=this.clone();return t.__iteratees__.push({iteratee:Ni(n,3),type:r}),t.__filtered__=t.__filtered__||e,t}}),Wt(["head","last"],function(n,t){var r="take"+(t?"Right":"");me.prototype[n]=function(){return this[r](1).value()[0]}}),Wt(["initial","tail"],function(n,t){var r="drop"+(t?"":"Right");me.prototype[n]=function(){return this.__filtered__?new me(this):this[r](1)}}),me.prototype.compact=function(){return this.filter(Sc)},me.prototype.find=function(n){return this.filter(n).head()},me.prototype.findLast=function(n){return this.reverse().find(n)},me.prototype.invokeMap=Ao(function(n,t){return"function"==typeof n?new me(this):this.map(function(r){return eo(r,n,t)})}),me.prototype.reject=function(n){return this.filter(ca(Ni(n)))},me.prototype.slice=function(n,t){n=ka(n);var r=this;return r.__filtered__&&(n>0||t<0)?new me(r):(n<0?r=r.takeRight(-n):n&&(r=r.drop(n)),t!==i&&(r=(t=ka(t))<0?r.dropRight(-t):r.take(t-n)),r)},me.prototype.takeRightWhile=function(n){return this.reverse().takeWhile(n).reverse()},me.prototype.toArray=function(){return this.take(V)},Ze(me.prototype,function(n,t){var r=/^(?:filter|find|map|reject)|While$/.test(t),e=/^(?:head|last)$/.test(t),o=de[e?"take"+("last"==t?"Right":""):t],u=e||/^find/.test(t);o&&(de.prototype[t]=function(){var t=this.__wrapped__,a=e?[1]:arguments,c=t instanceof me,s=a[0],f=c||ma(t),l=function(n){var t=o.apply(de,tr([n],a));return e&&h?t[0]:t};f&&r&&"function"==typeof s&&1!=s.length&&(c=f=!1);var h=this.__chain__,d=!!this.__actions__.length,p=u&&!h,g=c&&!d;if(!u&&f){t=g?t:new me(this);var v=n.apply(t,a);return v.__actions__.push({func:Du,args:[l],thisArg:i}),new ve(v,h)}return p&&g?n.apply(this,a):(v=this.thru(l),p?e?v.value()[0]:v.value():v)})}),Wt(["pop","push","shift","sort","splice","unshift"],function(n){var t=ut[n],r=/^(?:push|sort|unshift)$/.test(n)?"tap":"thru",e=/^(?:pop|shift)$/.test(n);de.prototype[n]=function(){var n=arguments;if(e&&!this.__chain__){var o=this.value();return t.apply(ma(o)?o:[],n)}return this[r](function(r){return t.apply(ma(r)?r:[],n)})}}),Ze(me.prototype,function(n,t){var r=de[t];if(r){var e=r.name+"";(oe[e]||(oe[e]=[])).push({name:t,func:r})}}),oe[pi(i,x).name]=[{name:"wrapper",func:i}],me.prototype.clone=function(){var n=new me(this.__wrapped__);return n.__actions__=ei(this.__actions__),n.__dir__=this.__dir__,n.__filtered__=this.__filtered__,n.__iteratees__=ei(this.__iteratees__),n.__takeCount__=this.__takeCount__,n.__views__=ei(this.__views__),n},me.prototype.reverse=function(){if(this.__filtered__){var n=new me(this);n.__dir__=-1,n.__filtered__=!0}else(n=this.clone()).__dir__*=-1;return n},me.prototype.value=function(){var n=this.__wrapped__.value(),t=this.__dir__,r=ma(n),e=t<0,o=r?n.length:0,i=function(n,t,r){for(var e=-1,o=r.length;++e=this.__values__.length;return{done:n,value:n?i:this.__values__[this.__index__++]}},de.prototype.plant=function(n){for(var t,r=this;r instanceof ge;){var e=hu(r);e.__index__=0,e.__values__=i,t?o.__wrapped__=e:t=e;var o=e;r=r.__wrapped__}return o.__wrapped__=n,t},de.prototype.reverse=function(){var n=this.__wrapped__;if(n instanceof me){var t=n;return this.__actions__.length&&(t=new me(this)),(t=t.reverse()).__actions__.push({func:Du,args:[Pu],thisArg:i}),new ve(t,this.__chain__)}return this.thru(Pu)},de.prototype.toJSON=de.prototype.valueOf=de.prototype.value=function(){return Yo(this.__wrapped__,this.__actions__)},de.prototype.first=de.prototype.head,Bt&&(de.prototype[Bt]=function(){return this}),de}();Rt._=Rr,(o=function(){return Rr}.call(t,r,t,e))===i||(e.exports=o)}).call(this)}).call(this,r("./node_modules/webpack/buildin/global.js"),r("./node_modules/webpack/buildin/module.js")(n))},"./node_modules/webpack/buildin/global.js":function(n,t){var r;r=function(){return this}();try{r=r||Function("return this")()||(0,eval)("this")}catch(n){"object"==typeof window&&(r=window)}n.exports=r},"./node_modules/webpack/buildin/module.js":function(n,t){n.exports=function(n){return n.webpackPolyfill||(n.deprecate=function(){},n.paths=[],n.children||(n.children=[]),Object.defineProperty(n,"loaded",{enumerable:!0,get:function(){return n.l}}),Object.defineProperty(n,"id",{enumerable:!0,get:function(){return n.i}}),n.webpackPolyfill=1),n}}})}); \ No newline at end of file +!function(n,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.ElGrapho=t():n.ElGrapho=t()}(this,function(){return function(n){var t={};function r(e){if(t[e])return t[e].exports;var o=t[e]={i:e,l:!1,exports:{}};return n[e].call(o.exports,o,o.exports,r),o.l=!0,o.exports}return r.m=n,r.c=t,r.d=function(n,t,e){r.o(n,t)||Object.defineProperty(n,t,{enumerable:!0,get:e})},r.r=function(n){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(n,"__esModule",{value:!0})},r.t=function(n,t){if(1&t&&(n=r(n)),8&t)return n;if(4&t&&"object"==typeof n&&n&&n.__esModule)return n;var e=Object.create(null);if(r.r(e),Object.defineProperty(e,"default",{enumerable:!0,value:n}),2&t&&"string"!=typeof n)for(var o in n)r.d(e,o,function(t){return n[t]}.bind(null,o));return e},r.n=function(n){var t=n&&n.__esModule?function(){return n.default}:function(){return n};return r.d(t,"a",t),t},r.o=function(n,t){return Object.prototype.hasOwnProperty.call(n,t)},r.p="",r(r.s="./engine/src/ElGrapho.js")}({"./engine/dist/icons/boxZoomIcon.svg.js":function(n,t){n.exports='\n\n\x3c!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --\x3e\n\n\n\n \n \n \n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n'},"./engine/dist/icons/moveIcon.svg.js":function(n,t){n.exports='\n\n\n\n \n \n \n\n'},"./engine/dist/icons/resetIcon.svg.js":function(n,t){n.exports='\n\n\x3c!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --\x3e\n\n\n \n \n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n'},"./engine/dist/icons/selectIcon.svg.js":function(n,t){n.exports='\n\n\x3c!-- Generator: Adobe Illustrator 17.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --\x3e\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n'},"./engine/dist/icons/zoomInIcon.svg.js":function(n,t){n.exports='\n\n\x3c!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --\x3e\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n'},"./engine/dist/icons/zoomOutIcon.svg.js":function(n,t){n.exports='\n\n\x3c!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --\x3e\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n'},"./engine/dist/shaders/hitPoint.vert.js":function(n,t){n.exports="//#version 300 es\n\nattribute vec4 aVertexPosition;\nattribute float aVertexIndex;\n\nuniform mat4 uModelViewMatrix;\nuniform mat4 uProjectionMatrix;\nuniform bool magicZoom;\nuniform float nodeSize;\n\nvarying vec4 vVertexColor;\n\n// unsigned rIntValue = (u_color / 256 / 256) % 256;\n// unsigned gIntValue = (u_color / 256 ) % 256;\n// unsigned bIntValue = (u_color ) % 256;\n\n// https://stackoverflow.com/questions/6893302/decode-rgb-value-to-single-float-without-bit-shift-in-glsl\n// had to flip r and b to match concrete notation\nvec3 unpackColor(float f) {\n vec3 color;\n color.r = floor(f / 256.0 / 256.0);\n color.g = floor((f - color.r * 256.0 * 256.0) / 256.0);\n color.b = floor(f - color.r * 256.0 * 256.0 - color.g * 256.0);\n // now we have a vec3 with the 3 components in range [0..255]. Let's normalize it!\n return color / 255.0;\n}\n\nvoid main() {\n gl_Position = uProjectionMatrix * uModelViewMatrix * aVertexPosition;\n\n if (magicZoom) {\n gl_PointSize = nodeSize; \n }\n else {\n float size = nodeSize * min(length(uModelViewMatrix[0]), length(uModelViewMatrix[1]));\n gl_PointSize = max(size, 5.0);\n }\n\n vVertexColor = vec4(unpackColor(aVertexIndex), 1.0);\n}"},"./engine/dist/shaders/point.frag.js":function(n,t){n.exports="//#version 300 es\n\n//https://www.desultoryquest.com/blog/drawing-anti-aliased-circular-points-using-opengl-slash-webgl/\n//#extension GL_OES_standard_derivatives : enable\n\n// https://www.desultoryquest.com/blog/drawing-anti-aliased-circular-points-using-opengl-slash-webgl/\n// https://www.desultoryquest.com/blog/downloads/code/points.js\nprecision mediump float;\nvarying vec4 vVertexColor;\n\nvoid main(void) {\n float r = 0.0, delta = 0.0, alpha = 1.0;\n vec2 cxy = 2.0 * gl_PointCoord - 1.0;\n r = dot(cxy, cxy);\n\n if (r > 1.0) {\n discard;\n }\n\n // delta = fwidth(r);\n // alpha = 1.0 - smoothstep(1.0 - delta, 1.0 + delta, r);\n\n\n\n\n gl_FragColor = vVertexColor * alpha;\n}"},"./engine/dist/shaders/point.vert.js":function(n,t){n.exports="//#version 300 es\n\nattribute vec4 aVertexPosition;\n// TODO: this should be an int\nattribute float aVertexColor;\n\nuniform mat4 uModelViewMatrix;\nuniform mat4 uProjectionMatrix;\nuniform bool magicZoom;\nuniform float nodeSize;\n// TODO: focusedGroup and group should change to int\nuniform float focusedGroup;\n\nvarying vec4 vVertexColor;\n\n// const PALETTE_HEX = [\n// '3366CC',\n// 'DC3912',\n// 'FF9900',\n// '109618',\n// '990099',\n// '3B3EAC',\n// '0099C6',\n// 'DD4477',\n// '66AA00',\n// 'B82E2E',\n// '316395',\n// '994499',\n// '22AA99',\n// 'AAAA11',\n// '6633CC',\n// 'E67300',\n// '8B0707',\n// '329262',\n// '5574A6',\n// '3B3EAC'\n// ];\n\nvoid main() {\n gl_Position = uProjectionMatrix * uModelViewMatrix * aVertexPosition;\n\n if (magicZoom) {\n gl_PointSize = nodeSize; \n }\n else {\n gl_PointSize = nodeSize * min(length(uModelViewMatrix[0]), length(uModelViewMatrix[1]));\n }\n\n float validColor = mod(aVertexColor, 8.0);\n\n // gl_VertexID\n\n bool isGray;\n\n if (focusedGroup == -1.0 || aVertexColor == focusedGroup) {\n isGray = false;\n // must be between -1 and 1\n gl_Position.z = -0.5;\n }\n else {\n isGray = true;\n gl_Position.z = -0.2;\n }\n\n if (isGray) {\n vVertexColor = vec4(220.0/255.0, 220.0/255.0, 220.0/255.0, 1.0); \n }\n else if (validColor == 0.0) {\n vVertexColor = vec4(51.0/255.0, 102.0/255.0, 204.0/255.0, 1.0); // 3366CC\n }\n else if (validColor == 1.0) {\n vVertexColor = vec4(220.0/255.0, 57.0/255.0, 18.0/255.0, 1.0); // DC3912\n }\n else if (validColor == 2.0) {\n vVertexColor = vec4(255.0/255.0, 153.0/255.0, 0.0/255.0, 1.0); // FF9900\n }\n else if (validColor == 3.0) {\n vVertexColor = vec4(16.0/255.0, 150.0/255.0, 24.0/255.0, 1.0); // 109618\n }\n else if (validColor == 4.0) {\n vVertexColor = vec4(153.0/255.0, 0.0/255.0, 153.0/255.0, 1.0); // 990099\n }\n else if (validColor == 5.0) {\n vVertexColor = vec4(59.0/255.0, 62.0/255.0, 172.0/255.0, 1.0); // 3B3EAC\n }\n else if (validColor == 6.0) {\n vVertexColor = vec4(0.0/255.0, 153.0/255.0, 198.0/255.0, 1.0); // 0099C6\n }\n else if (validColor == 7.0) {\n vVertexColor = vec4(221.0/255.0, 68.0/255.0, 119.0/255.0, 1.0); // DD4477\n }\n\n}"},"./engine/dist/shaders/pointHit.frag.js":function(n,t){n.exports="//#version 300 es\n\n//https://www.desultoryquest.com/blog/drawing-anti-aliased-circular-points-using-opengl-slash-webgl/\nprecision mediump float;\nvarying vec4 vVertexColor;\n\nvoid main(void) {\n float r = 0.0, delta = 0.0, alpha = 1.0;\n vec2 cxy = 2.0 * gl_PointCoord - 1.0;\n r = dot(cxy, cxy);\n if (r > 1.0) {\n discard;\n }\n\n gl_FragColor = vVertexColor * alpha;\n}"},"./engine/dist/shaders/pointStroke.vert.js":function(n,t){n.exports="//#version 300 es\n\nattribute vec4 aVertexPosition;\nattribute float aVertexColor;\n\nuniform mat4 uModelViewMatrix;\nuniform mat4 uProjectionMatrix;\nuniform bool magicZoom;\nuniform float nodeSize;\nuniform float focusedGroup;\nuniform int hoverNode;\n\nvarying vec4 vVertexColor;\n\nconst float POINT_STROKE_WIDTH_FACTOR = 1.5;\n\nvoid main() {\n gl_Position = uProjectionMatrix * uModelViewMatrix * aVertexPosition;\n //gl_Position.z = 0.0;\n\n if (magicZoom) {\n gl_PointSize = nodeSize * POINT_STROKE_WIDTH_FACTOR; \n }\n else {\n gl_PointSize = nodeSize * min(length(uModelViewMatrix[0]), length(uModelViewMatrix[1])) * POINT_STROKE_WIDTH_FACTOR;\n }\n\n \n if (focusedGroup == -1.0 || aVertexColor == focusedGroup) {\n gl_Position.z = -0.4;\n }\n else {\n gl_Position.z = -0.1;\n }\n\n // if (gl_VertexID == hoverNode) {\n \n // vVertexColor = vec4(0.0, 0.0, 0.0, 1.0); \n // }\n // else {\n vVertexColor = vec4(1.0, 1.0, 1.0, 1.0); \n //}\n\n \n\n}"},"./engine/dist/shaders/triangle.frag.js":function(n,t){n.exports="//#version 300 es\n\n// use lowp for solid colors to improve perf\n// https://stackoverflow.com/questions/13780609/what-does-precision-mediump-float-mean\nprecision mediump float;\nvarying vec4 vVertexColor;\n\nvoid main(void) {\n gl_FragColor = vVertexColor;\n}"},"./engine/dist/shaders/triangle.vert.js":function(n,t){n.exports="//#version 300 es\n\nattribute vec4 aVertexPosition;\nattribute vec4 normal;\nattribute float aVertexColor;\n\nuniform mat4 uModelViewMatrix;\nuniform mat4 uProjectionMatrix;\nuniform bool magicZoom;\nuniform float nodeSize;\nuniform float focusedGroup;\n\nfloat MAX_NODE_SIZE = 16.0;\nconst float PI = 3.1415926535897932384626433832795;\n\nvarying vec4 vVertexColor;\n\nvec2 rotate(vec2 v, float a) {\n\tfloat s = sin(a);\n\tfloat c = cos(a);\n\tmat2 m = mat2(c, -s, s, c);\n\treturn m * v;\n}\n\n// https://mattdesl.svbtle.com/drawing-lines-is-hard\n// https://github.com/mattdesl/three-line-2d/blob/master/shaders/basic.js\nvoid main() {\n float zoomX = length(uModelViewMatrix[0]);\n float zoomY = length(uModelViewMatrix[1]);\n // vec2 standardZoomVector = normalize(vec2(1.0, 0.0));\n // vec2 zoomVector = normalize(vec2(zoomX, zoomY));\n // float zoomAngle = dot(standardZoomVector, zoomVector);\n // vec2 vec2Normal = vec2(normal.xy);\n // vec2 rotatedNormal = rotate(vec2Normal, zoomAngle);\n // vec4 newNormal = vec4(rotatedNormal.x, rotatedNormal.y, 0.0, 0.0);\n\n vec4 newNormal = vec4(normal.x, normal.y, 0.0, 0.0);\n\n if (magicZoom) {\n gl_Position = uProjectionMatrix * ((uModelViewMatrix * aVertexPosition) + newNormal);\n }\n else {\n newNormal.x = newNormal.x * zoomX * nodeSize / MAX_NODE_SIZE;\n newNormal.y = newNormal.y * zoomY * nodeSize / MAX_NODE_SIZE;\n gl_Position = uProjectionMatrix * ((uModelViewMatrix * aVertexPosition) + newNormal);\n }\n\n //gl_Position.z = 0.0;\n \n bool isGray;\n\n if (focusedGroup == -1.0 || aVertexColor == focusedGroup) {\n isGray = false;\n gl_Position.z = -0.3;\n }\n else {\n isGray = true;\n gl_Position.z = 0.0;\n }\n\n float validColor = mod(aVertexColor, 8.0);\n\n if (isGray) {\n vVertexColor = vec4(220.0/255.0, 220.0/255.0, 220.0/255.0, 1.0); \n }\n else if (validColor == 0.0) {\n vVertexColor = vec4(51.0/255.0, 102.0/255.0, 204.0/255.0, 1.0); // 3366CC\n }\n else if (validColor == 1.0) {\n vVertexColor = vec4(220.0/255.0, 57.0/255.0, 18.0/255.0, 1.0); // DC3912\n }\n else if (validColor == 2.0) {\n vVertexColor = vec4(255.0/255.0, 153.0/255.0, 0.0/255.0, 1.0); // FF9900\n }\n else if (validColor == 3.0) {\n vVertexColor = vec4(16.0/255.0, 150.0/255.0, 24.0/255.0, 1.0); // 109618\n }\n else if (validColor == 4.0) {\n vVertexColor = vec4(153.0/255.0, 0.0/255.0, 153.0/255.0, 1.0); // 990099\n }\n else if (validColor == 5.0) {\n vVertexColor = vec4(59.0/255.0, 62.0/255.0, 172.0/255.0, 1.0); // 3B3EAC\n }\n else if (validColor == 6.0) {\n vVertexColor = vec4(0.0/255.0, 153.0/255.0, 198.0/255.0, 1.0); // 0099C6\n }\n else if (validColor == 7.0) {\n vVertexColor = vec4(221.0/255.0, 68.0/255.0, 119.0/255.0, 1.0); // DD4477\n }\n}"},"./engine/dist/styles/ElGrapho.min.css.js":function(n,t){n.exports=".el-grapho-tooltip{position:fixed;background-color:white;pointer-events:none;padding:10px;border:1px solid #333;border-radius:3px;font-family:verdana;font-size:12px;user-select:none}.el-grapho-controls{position:absolute;right:0;top:5px;opacity:0;transition:opacity .3s ease-in-out}.el-grapho-controls button{background:white;padding:5px;cursor:pointer;outline:0;border:2px solid black;border-radius:3px;margin-right:5px}.el-grapho-controls .el-grapho-step-down-control{transform:scale(1,-1)}.el-grapho-wrapper:hover .el-grapho-controls{opacity:1}.el-grapho-count{position:absolute;bottom:5px;right:5px;pointer-events:none;font-family:monospace;background-color:white;border-radius:3px;padding:3px;opacity:.9}.el-grapho-count::selection{background:transparent}.el-grapho-box-zoom-component{position:fixed;border:1px solid #119fe0;background-color:rgba(17,159,224,0.1);pointer-events:none}.el-grapho-loading-component{width:100%;height:100%;background-color:rgba(255,255,255,0.9);position:absolute;top:0;opacity:0;transition:opacity .3s ease-in-out;pointer-events:none}.el-grapho-loading .el-grapho-loading-component{opacity:1}.spinner{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.spinner>div{width:18px;height:18px;background-color:#333;border-radius:100%;display:inline-block;-webkit-animation:sk-bouncedelay 1.4s infinite ease-in-out both;animation:sk-bouncedelay 1.4s infinite ease-in-out both}.spinner .bounce1{-webkit-animation-delay:-0.32s;animation-delay:-0.32s}.spinner .bounce2{-webkit-animation-delay:-0.16s;animation-delay:-0.16s}@-webkit-keyframes sk-bouncedelay{0%,80%,100%{-webkit-transform:scale(0)}40%{-webkit-transform:scale(1)}}@keyframes sk-bouncedelay{0%,80%,100%{-webkit-transform:scale(0);transform:scale(0)}40%{-webkit-transform:scale(1);transform:scale(1)}}.el-grapho-wrapper{display:inline-block;position:relative;background-color:white;overflow:hidden}.el-grapho-wrapper.el-grapho-select-interaction-mode{cursor:default}.el-grapho-wrapper.el-grapho-select-interaction-mode .el-grapho-controls .el-grapho-select-control{border-color:#119fe0}.el-grapho-wrapper.el-grapho-select-interaction-mode .el-grapho-controls .el-grapho-select-control path,.el-grapho-wrapper.el-grapho-select-interaction-mode .el-grapho-controls .el-grapho-select-control polygon{fill:#119fe0}.el-grapho-wrapper.el-grapho-pan-interaction-mode{cursor:move}.el-grapho-wrapper.el-grapho-pan-interaction-mode .el-grapho-controls .el-grapho-pan-control{border-color:#119fe0}.el-grapho-wrapper.el-grapho-pan-interaction-mode .el-grapho-controls .el-grapho-pan-control path,.el-grapho-wrapper.el-grapho-pan-interaction-mode .el-grapho-controls .el-grapho-pan-control polygon{fill:#119fe0}.el-grapho-wrapper.el-grapho-box-zoom-interaction-mode{cursor:zoom-in}.el-grapho-wrapper.el-grapho-box-zoom-interaction-mode .el-grapho-controls .el-grapho-box-zoom-control{border-color:#119fe0}.el-grapho-wrapper.el-grapho-box-zoom-interaction-mode .el-grapho-controls .el-grapho-box-zoom-control path,.el-grapho-wrapper.el-grapho-box-zoom-interaction-mode .el-grapho-controls .el-grapho-box-zoom-control polygon{fill:#119fe0}\n"},"./engine/src/Color.js":function(n,t){const r={rgbToInt:function(n){return(n[0]<<16)+(n[1]<<8)+n[2]},intToRGB:function(n){return[(16711680&n)>>16,(65280&n)>>8,255&n]},hexToRgb:function(n){var t=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(n);return[parseInt(t[1],16),parseInt(t[2],16),parseInt(t[3],16)]}};n.exports=r},"./engine/src/Dom.js":function(n,t){const r={create:function(n){let t=document.createElement("div");return t.className=n,t},closest:function(n,t){if(!document.documentElement.contains(n))return null;do{if(n.matches(t))return n;n=n.parentElement||n.parentNode}while(null!==n&&1===n.nodeType);return null}};n.exports=r},"./engine/src/EasingFunctions.js":function(n,t){n.exports={linear:function(n){return n},easeInQuad:function(n){return n*n},easeOutQuad:function(n){return n*(2-n)},easeInOutQuad:function(n){return n<.5?2*n*n:(4-2*n)*n-1},easeInCubic:function(n){return n*n*n},easeOutCubic:function(n){return--n*n*n+1},easeInOutCubic:function(n){return n<.5?4*n*n*n:(n-1)*(2*n-2)*(2*n-2)+1},easeInQuart:function(n){return n*n*n*n},easeOutQuart:function(n){return 1- --n*n*n*n},easeInOutQuart:function(n){return n<.5?8*n*n*n*n:1-8*--n*n*n*n},easeInQuint:function(n){return n*n*n*n*n},easeOutQuint:function(n){return 1+--n*n*n*n*n},easeInOutQuint:function(n){return n<.5?16*n*n*n*n*n:1+16*--n*n*n*n*n}}},"./engine/src/ElGrapho.js":function(n,t,r){const e=r("./engine/src/UUID.js"),o=r("./engine/src/WebGL.js"),i=r("./engine/src/Profiler.js"),u=r("./engine/src/ElGraphoCollection.js"),a=r("./engine/src/components/Controls/Controls.js"),c=r("./engine/src/components/Count/Count.js"),s=r("./engine/src/Events.js"),f=r("./node_modules/concretejs/build/concrete.min.js"),l=r("./node_modules/lodash/lodash.js"),h=r("./engine/src/Color.js"),d=r("./engine/src/Theme.js"),p=r("./engine/src/components/Tooltip/Tooltip.js"),g=r("./engine/src/formatters/NumberFormatter.js"),v=r("./engine/src/VertexBridge.js"),m=r("./engine/src/Enums.js"),x=r("./engine/src/components/BoxZoom/BoxZoom.js"),_=r("./engine/src/Dom.js"),y=r("./engine/src/components/Loading/Loading.js"),b=r("./engine/src/Labels.js"),w=r("./engine/src/layouts/Tree.js"),M=r("./engine/src/layouts/Cluster.js"),A=r("./engine/src/layouts/Chord.js"),j=r("./engine/src/layouts/ForceDirected.js"),E=r("./engine/src/layouts/Hairball.js"),P=r("./engine/src/layouts/RadialTree.js");let I=function(n){let t=this;void 0!==n.model.then?n.model.then(function(r){n.model=r,t.init(n)}):this.init(n)};I.prototype={init:function(n){this.container=n.container||document.createElement("div"),this.id=e.generate(),this.dirty=!0,this.hitDirty=!0,this.zoomX=1,this.zoomY=1,this.panX=0,this.panY=0,this.events=new s,this.model=n.model,this.width=n.model.width,this.height=n.model.height,this.steps=n.model.steps,this.nodeSize=n.nodeSize||1,this.nodeSize*=16,this.focusedGroup=-1,this.animations=[],this.wrapper=document.createElement("div"),this.wrapper.className="el-grapho-wrapper",this.wrapper.style.width=this.width+"px",this.wrapper.style.height=this.height+"px",this.container.innerHTML="",this.container.appendChild(this.wrapper),this.animations=void 0===n.animations||n.animations,this.setInteractionMode(m.interactionMode.SELECT),this.panStart=null,this.idle=!0,this.debug=void 0!==n.debug&&n.debug,this.showArrows=void 0!==n.arrows&&n.arrows,this.tooltipTemplate=function(n,t){t.innerHTML=I.NumberFormatter.addCommas(n)},this.hoveredDataIndex=-1,this.allListeners=[];let t=this.viewport=new f.Viewport({container:this.wrapper,width:this.width,height:this.height}),r=new f.Layer({contextType:"webgl"}),i=this.labelsLayer=new f.Layer({contextType:"2d"});t.add(r),t.add(i),this.webgl=new o({layer:r}),u.initialized||u.init();let a=this.vertices=v.modelToVertices(n.model,this.width,this.height,this.showArrows);this.webgl.initBuffers(a),this.initComponents(),this.labels=new b,this.listen(),u.graphs.push(this)},initComponents:function(){let n=this.model;this.controls=new a({container:this.wrapper,graph:this,showStepControls:!0}),this.loading=new y({container:this.wrapper}),this.debug&&(this.count=new c({container:this.wrapper}),this.count.update(n.nodes.length,n.edges.length,n.steps))},renderLabels:function(n){let t=this;this.labels.clear();let r=this.vertices.points.positions;this.model.nodes.forEach(function(n,e){let o=2*e;t.labels.addLabel(n.label,r[o],r[o+1])});let e=this.labelsLayer.scene.context;e.save(),e.translate(this.width/2,this.height/2),e.scale(n,n),e.textAlign="center",e.font="12px Arial",e.fillStyle="#333",e.strokeStyle="white",e.lineWidth=3,e.lineJoin="round",this.labels.labelsAdded.forEach(function(r){let o=(r.x*t.zoomX+t.panX)/n,i=(-1*r.y*t.zoomY-t.panY)/n-10;e.beginPath(),e.strokeText(r.str,o,i),e.fillText(r.str,o,i)}),e.restore()},getMousePosition(n){let t=this.wrapper.getBoundingClientRect();return{x:n.clientX-t.left,y:n.clientY-t.top}},addListener:function(n,t,r){this.allListeners[t]=this.allListeners[t]||[],this.allListeners[t].push({o:n,on:t,fn:r}),n.addEventListener(t,r)},removeAllListeners:function(){const n=this.allListeners.length;for(let t=0;tn.zoomBoxAnchor.x&&s.y>n.zoomBoxAnchor.y?(i=s.x-n.zoomBoxAnchor.x,u=s.y-n.zoomBoxAnchor.y,e=n.zoomBoxAnchor.x,o=n.zoomBoxAnchor.y):s.x>n.zoomBoxAnchor.x&&s.y<=n.zoomBoxAnchor.y?(i=s.x-n.zoomBoxAnchor.x,u=n.zoomBoxAnchor.y-s.y,e=n.zoomBoxAnchor.x,o=s.y):s.x<=n.zoomBoxAnchor.x&&s.y<=n.zoomBoxAnchor.y?(i=n.zoomBoxAnchor.x-s.x,u=n.zoomBoxAnchor.y-s.y,e=s.x,o=s.y):s.x<=n.zoomBoxAnchor.x&&s.y>n.zoomBoxAnchor.y&&(i=n.zoomBoxAnchor.x-s.x,u=s.y-n.zoomBoxAnchor.y,e=s.x,o=n.zoomBoxAnchor.y);let f=t.width,l=t.height;i<2||u<2?(a=2,c=2,i=0,u=0,e=s.x,o=s.y):(a=f/i,c=l/u);let h=l/2,d=(f/2-(e+i/2))*n.zoomX,p=(o+u/2-h)*n.zoomY;n.zoomToPoint(d,p,a,c),x.destroy(),n.zoomBoxAnchor=null}}),this.addListener(t.container,"mouseup",function(r){if(!_.closest(r.target,".el-grapho-controls")){if(!n.panStart&&!n.zoomBoxAnchor){let e=n.getMousePosition(r),o=t.getIntersection(e.x,e.y);-1===o?n.deselectGroup():(n.selectGroup(n.vertices.points.colors[o]),n.fire(m.events.NODE_CLICK,{dataIndex:o}))}if(n.interactionMode===m.interactionMode.PAN){let e=n.getMousePosition(r),o={x:e.x-n.panStart.x,y:e.y-n.panStart.y};n.panX+=o.x,n.panY-=o.y,n.panStart=null,t.scene.canvas.style.marginLeft=0,t.scene.canvas.style.marginTop=0,n.dirty=!0,n.hitDirty=!0}}}),this.addListener(t.container,"mouseout",l.throttle(function(){p.hide()}))},setInteractionMode:function(n){this.interactionMode=n,this.wrapper.className="el-grapho-wrapper el-grapho-"+n+"-interaction-mode"},zoomToPoint:function(n,t,r,e){if(p.hide(),this.animations){this.animations=[];let o=this;this.animations.push({startVal:o.zoomX,endVal:o.zoomX*r,startTime:(new Date).getTime(),endTime:(new Date).getTime()+300,prop:"zoomX"}),this.animations.push({startVal:o.zoomY,endVal:o.zoomY*e,startTime:(new Date).getTime(),endTime:(new Date).getTime()+300,prop:"zoomY"}),this.animations.push({startVal:o.panX,endVal:(o.panX+n/o.zoomX)*r,startTime:(new Date).getTime(),endTime:(new Date).getTime()+300,prop:"panX"}),this.animations.push({startVal:o.panY,endVal:(o.panY+t/o.zoomY)*e,startTime:(new Date).getTime(),endTime:(new Date).getTime()+300,prop:"panY"}),this.dirty=!0}else this.panX=(this.panX+n/this.zoomX)*r,this.panY=(this.panY+t/this.zoomY)*e,this.zoomX=this.zoomX*r,this.zoomY=this.zoomY*e,this.dirty=!0,this.hitDirty=!0},zoomIn:function(){p.hide(),this.zoomToPoint(0,0,2,2)},zoomOut:function(){p.hide(),this.zoomToPoint(0,0,.5,.5)},reset:function(){if(p.hide(),this.animations){this.animations=[];let n=this;this.animations.push({startVal:n.zoomX,endVal:1,startTime:(new Date).getTime(),endTime:(new Date).getTime()+300,prop:"zoomX"}),this.animations.push({startVal:n.zoomY,endVal:1,startTime:(new Date).getTime(),endTime:(new Date).getTime()+300,prop:"zoomY"}),this.animations.push({startVal:n.panX,endVal:0,startTime:(new Date).getTime(),endTime:(new Date).getTime()+300,prop:"panX"}),this.animations.push({startVal:n.panY,endVal:0,startTime:(new Date).getTime(),endTime:(new Date).getTime()+300,prop:"panY"}),this.dirty=!0}else this.zoomX=1,this.zoomY=1,this.panX=0,this.panY=0,this.dirty=!0,this.hitDirty=!0},on:function(n,t){this.events.on(n,t)},fire:function(n,t){this.events.fire(n,t)},showLoading:function(){this.wrapper.classList.add("el-grapho-loading")},hideLoading:function(){this.wrapper.classList.remove("el-grapho-loading")},destroy:function(){this.removeAllListeners(),this.viewport.destroy(),u.remove(this)},selectGroup:function(n){this.focusedGroup=n,this.dirty=!0},deselectGroup:function(){this.focusedGroup=-1,this.dirty=!0}},I.Theme=d,I.Color=h,I.Profiler=i,I.NumberFormatter=g,I.layouts={Tree:w,Cluster:M,Chord:A,ForceDirected:j,Hairball:E,RadialTree:P},n.exports=I},"./engine/src/ElGraphoCollection.js":function(n,t,r){const e=r("./engine/src/EasingFunctions.js"),o=r("./engine/dist/styles/ElGrapho.min.css.js"),i=r("./engine/src/Enums.js");let u={graphs:[],initialized:!1,init:function(){u.injectStyles(),u.executeFrame(),u.initialized=!0},injectStyles:function(){let n=document.getElementsByTagName("head")[0],t=document.createElement("style");t.setAttribute("type","text/css"),t.styleSheet?t.styleSheet.cssText=o:t.appendChild(document.createTextNode(o)),n.appendChild(t)},executeFrame:function(){let n=(new Date).getTime();u.graphs.forEach(function(t){let r,o,u=0,a=!0;for(;u=16?(r=!0,o=16):(r=!1,o=t.nodeSize),t.dirty){a=!1,t.webgl.drawScene(t.panX,t.panY,t.zoomX,t.zoomY,r,o,t.focusedGroup,t.hoveredDataIndex),t.labelsLayer.scene.clear(),void 0!==t.model.nodes[0].label&&t.renderLabels(t.zoomX<1||t.zoomY<1?Math.min(t.zoomX,t.zoomY):1),t.viewport.render(),t.dirty=!1}t.hitDirty&&(a=!1,t.webgl.drawHit(t.panX,t.panY,t.zoomX,t.zoomY,r,o),t.hitDirty=!1),a&&!t.idle&&t.fire(i.events.IDLE),t.idle=a}),requestAnimationFrame(u.executeFrame)},remove:function(n){let t=u.graphs,r=t.length;for(let e=0;eo.anchorX?(r=o.anchorX,e=n):(r=n,e=o.anchorX),t>o.anchorY?(i=o.anchorY,u=t):(i=t,u=o.anchorY);let a=e-r,c=u-i;o.el.style.left=Math.floor(r)+"px",o.el.style.top=Math.floor(i)+"px",o.el.style.width=Math.floor(a)+"px",o.el.style.height=Math.floor(c)+"px"}},destroy:function(){let n=document.querySelector(".el-grapho-box-zoom-component");n&&n.remove(),o.active=!1}};n.exports=o},"./engine/src/components/Controls/Controls.js":function(n,t,r){const e=r("./engine/dist/icons/zoomInIcon.svg.js"),o=r("./engine/dist/icons/zoomOutIcon.svg.js"),i=r("./engine/dist/icons/moveIcon.svg.js"),u=r("./engine/dist/icons/selectIcon.svg.js"),a=r("./engine/dist/icons/boxZoomIcon.svg.js"),c=r("./engine/dist/icons/resetIcon.svg.js"),s=function(n){this.graph=n.graph,this.container=n.container,this.wrapper=document.createElement("div"),this.wrapper.className="el-grapho-controls",this.container.appendChild(this.wrapper),this.selectButton=this.addButton({icon:u,evtName:"select"}),this.boxZoomIcon=this.addButton({icon:a,evtName:"box-zoom"}),this.panButton=this.addButton({icon:i,evtName:"pan"}),this.resetButton=this.addButton({icon:c,evtName:"reset"}),this.zoomInButton=this.addButton({icon:e,evtName:"zoom-in"}),this.zoomOutButton=this.addButton({icon:o,evtName:"zoom-out"})};s.prototype={addButton:function(n){let t=document.createElement("button");t.className="el-grapho-"+n.evtName+"-control";let r=this.graph;return t.innerHTML=n.icon,t.addEventListener("click",function(){r.fire(n.evtName)}),this.wrapper.appendChild(t),t}},n.exports=s},"./engine/src/components/Count/Count.js":function(n,t,r){const e=r("./engine/src/formatters/NumberFormatter.js"),o=function(n){let t=this.wrapper=document.createElement("span");n.container.appendChild(t)};o.prototype={update:function(n,t,r){let o=e.addCommas(n)+" nodes + "+e.addCommas(t)+" edges",i=void 0===r?"":" x "+r+" steps";this.wrapper.innerHTML=o+i,this.wrapper.className="el-grapho-count"}},n.exports=o},"./engine/src/components/Loading/Loading.js":function(n,t,r){const e=r("./engine/src/Dom.js"),o=function(n){this.container=n.container,this.wrapper=e.create("el-grapho-loading-component");this.wrapper.innerHTML='\n
\n
\n
\n
\n
\n ',this.container.appendChild(this.wrapper)};o.prototype={},n.exports=o},"./engine/src/components/Tooltip/Tooltip.js":function(n,t,r){const e=r("./engine/src/Dom.js"),o={DEFAULT_TEMPLATE:function(n){this.wrapper.innerHTML=n},initialized:!1,init:function(){o.wrapper=e.create("el-grapho-tooltip"),document.body.appendChild(this.wrapper),o.initialized=!0},render:function(n,t,r,e){o.initialized||o.init(),o.wrapper.style.display="inline-block",o.wrapper.style.left=t+"px",o.wrapper.style.bottom=window.innerHeight-r+10+"px",e(n,this.wrapper)},hide:function(){o.initialized||o.init(),o.wrapper.style.display="none"}};n.exports=o},"./engine/src/formatters/NumberFormatter.js":function(n,t){const r={addCommas:function(n){return n.toString().replace(/\B(?=(\d{3})+(?!\d))/g,",")},roundToNearestDecimalPlace:function(n,t){let r=Math.pow(10,t);return Math.round(n*r)/r}};n.exports=r},"./engine/src/layouts/Chord.js":function(n,t,r){const e=r("./engine/src/layouts/utils/fitToViewport.js");n.exports=function(n){let t=n.nodes.length;return n.nodes.forEach(function(n,r){let e=-1*Math.PI*2*r/t+Math.PI/2;n.x=Math.cos(e),n.y=Math.sin(e)}),e(n.nodes,!1),n}},"./engine/src/layouts/Cluster.js":function(n,t,r){const e=r("./engine/src/layouts/utils/fitToViewport.js");n.exports=function(n){let t,r,o=n.width,i=n.height;o>i?(t=i/o,r=1):(t=1,r=o/i);let u={};n.nodes.forEach(function(n,t){let r=n.group;void 0===u[r]&&(u[r]=[]),u[r].push(t)});let a,c=Object.keys(u).length,s=0,f=0;for(a in u)f=Math.max(f,u[a].length);let l=1/Math.sqrt(f);for(a in u){let e,o,i=u[a],f=-2*Math.PI*s/c+Math.PI;1===c?(e=0,o=0):(e=Math.cos(f),o=Math.sin(f));let h=l,d=l/h,p=0;i.forEach(function(i){let u=Math.cos(p)*h*t,a=Math.sin(p)*h*r;n.nodes[i].x=e+u,n.nodes[i].y=o+a,h+=l*d/(2*Math.PI),p-=d=l/h}),s++}return e(n.nodes,!0),n}},"./engine/src/layouts/ForceDirected.js":function(n,t,r){const e=r("./engine/src/layouts/utils/fitToViewport.js"),o=r("./node_modules/d3-force/src/index.js");n.exports=function(n){void 0===n.steps&&(n.steps=30);let t=[],r=[];n.nodes.forEach(function(n,r){t.push({id:r,group:n.group})}),n.edges.forEach(function(n){r.push({source:n.from,target:n.to})});var i=o.forceSimulation(t).force("charge",o.forceManyBody()).force("link",o.forceLink(r).distance(20).strength(1)).force("x",o.forceX()).force("y",o.forceY());return i.tick(n.steps),i.stop(),i.nodes().forEach(function(t,r){n.nodes[r].x=t.x,n.nodes[r].y=t.y}),e(n.nodes,!1),n}},"./engine/src/layouts/Hairball.js":function(n,t,r){const e=r("./engine/src/layouts/utils/fitToViewport.js"),o=function(n,t){t.forEach(function(t){let r,e,o=t.from,i=t.to,u=n[o].x,a=n[o].y,c=n[i].x-u,s=n[i].y-a;Math.sqrt(c*c+s*s)>0&&(r=.1*c,e=.1*s,n[o].x+=r,n[o].y+=e,n[i].x-=r,n[i].y-=e)})};n.exports=function(n){void 0===n.steps&&(n.steps=20);let t=n.nodes,r=n.edges;!function(n){let t=n.length,r=[];n.forEach(function(n){let t=n.group;void 0===r[t]&&(r[t]={count:0}),r[t].count++});let e=0;for(let n=0;ni&&(i=n.level)}),r.sort(function(n,t){return n.index-t.index});for(let n=0;n<=i;n++)u.push([]);return r.forEach(function(n,t){n.index=t,u[n.level].push(n)}),u}},"./engine/src/layouts/utils/fitToViewport.js":function(n,t){n.exports=function(n,t){let r=Number.POSITIVE_INFINITY,e=Number.POSITIVE_INFINITY,o=Number.NEGATIVE_INFINITY,i=Number.NEGATIVE_INFINITY;n.forEach(function(n){let t=n.x,u=n.y;r=Math.min(r,t),e=Math.min(e,u),o=Math.max(o,t),i=Math.max(i,u)});let u=o-r,a=i-e,c=r+u/2,s=e+a/2,f=1.9/u,l=1.9/a;if(t){let n=Math.min(f,l);f=n,l=n}n.forEach(function(n){n.x=(n.x-c)*f,n.y=(n.y-s)*l})}},"./node_modules/concretejs/build/concrete.min.js":function(n,t,r){var e,o={},i=0;o.PIXEL_RATIO=window&&window.navigator&&window.navigator.userAgent&&!/PhantomJS/.test(window.navigator.userAgent)?2:1,o.viewports=[],o.Viewport=function(n){n||(n={}),this.container=n.container,this.layers=[],this.id=i++,this.scene=new o.Scene,this.setSize(n.width||0,n.height||0),n.container.innerHTML="",n.container.appendChild(this.scene.canvas),o.viewports.push(this)},o.Viewport.prototype={add:function(n){return this.layers.push(n),n.setSize(n.width||this.width,n.height||this.height),n.viewport=this},setSize:function(n,t){return this.width=n,this.height=t,this.scene.setSize(n,t),this},getIntersection:function(n,t){var r,e,o=this.layers;for(r=o.length-1;0<=r;r--)if(0<=(e=o[r].hit.getIntersection(n,t)))return e;return-1},getIndex:function(){var n,t=o.viewports,r=t.length,e=0;for(e=0;e>16,(65280&n)>>8,255&n]}},function(i){"use strict";void 0===(e=function(){return o}.call(t,r,t,n))||(n.exports=e)}()},"./node_modules/d3-dispatch/src/dispatch.js":function(n,t,r){"use strict";r.r(t);var e={value:function(){}};function o(){for(var n,t=0,r=arguments.length,e={};t=0&&(t=n.slice(r+1),n=n.slice(0,r)),n&&!e.hasOwnProperty(n))throw new Error("unknown type: "+n);return{type:n,name:t}})),c=-1,s=i.length;if(!(arguments.length<2)){if(null!=t&&"function"!=typeof t)throw new Error("invalid callback: "+t);for(;++c0)for(var r,e,o=new Array(r),i=0;ih+s||ed+s||of.index){var l=h-u.x-u.vx,v=d-u.y-u.vy,m=l*l+v*v;mn.r&&(n.r=n[t].r)}function h(){if(t){var e,o,i=t.length;for(r=new Array(i),e=0;e[f(n,t,a),n]));for(e=0,c=new Array(i);e=f)){(n.data!==t||n.next)&&(0===c&&(p+=(c=Object(i.default)())*c),0===h&&(p+=(h=Object(i.default)())*h),p1?(null==r?l.delete(n):l.set(n,m(r)),t):l.get(n)},find:function(t,r,e){var o,i,u,a,c,s=0,f=n.length;for(null==e?e=1/0:e*=e,s=0;s1?(d.on(n,r),t):d.on(n)}}}},"./node_modules/d3-force/src/x.js":function(n,t,r){"use strict";r.r(t);var e=r("./node_modules/d3-force/src/constant.js");t.default=function(n){var t,r,o,i=Object(e.default)(.1);function u(n){for(var e,i=0,u=t.length;i=(i=(g+m)/2))?g=i:m=i,(f=r>=(u=(v+x)/2))?v=u:x=u,o=d,!(d=d[l=f<<1|s]))return o[l]=p,n;if(a=+n._x.call(null,d.data),c=+n._y.call(null,d.data),t===a&&r===c)return p.next=d,o?o[l]=p:n._root=p,n;do{o=o?o[l]=new Array(4):n._root=new Array(4),(s=t>=(i=(g+m)/2))?g=i:m=i,(f=r>=(u=(v+x)/2))?v=u:x=u}while((l=f<<1|s)==(h=(c>=u)<<1|a>=i));return o[h]=d,o[l]=p,n}function o(n){var t,r,o,i,u=n.length,a=new Array(u),c=new Array(u),s=1/0,f=1/0,l=-1/0,h=-1/0;for(r=0;rl&&(l=o),ih&&(h=i));if(s>l||f>h)return this;for(this.cover(s,f).cover(l,h),r=0;rn||n>=o||e>t||t>=i;)switch(a=(td||(u=s.y0)>p||(a=s.x1)=x)<<1|n>=m)&&(s=g[g.length-1],g[g.length-1]=g[g.length-1-f],g[g.length-1-f]=s)}else{var _=n-+this._x.call(null,v.data),y=t-+this._y.call(null,v.data),b=_*_+y*y;if(b=(a=(p+v)/2))?p=a:v=a,(f=u>=(c=(g+m)/2))?g=c:m=c,t=d,!(d=d[l=f<<1|s]))return this;if(!d.length)break;(t[l+1&3]||t[l+2&3]||t[l+3&3])&&(r=t,h=l)}for(;d.data!==n;)if(e=d,!(d=d.next))return this;return(o=d.next)&&delete d.next,e?(o?e.next=o:delete e.next,this):t?(o?t[l]=o:delete t[l],(d=t[0]||t[1]||t[2]||t[3])&&d===(t[3]||t[2]||t[1]||t[0])&&!d.length&&(r?r[h]=d:this._root=d),this):(this._root=o,this)}},"./node_modules/d3-quadtree/src/root.js":function(n,t,r){"use strict";r.r(t),t.default=function(){return this._root}},"./node_modules/d3-quadtree/src/size.js":function(n,t,r){"use strict";r.r(t),t.default=function(){var n=0;return this.visit(function(t){if(!t.length)do{++n}while(t=t.next)}),n}},"./node_modules/d3-quadtree/src/visit.js":function(n,t,r){"use strict";r.r(t);var e=r("./node_modules/d3-quadtree/src/quad.js");t.default=function(n){var t,r,o,i,u,a,c=[],s=this._root;for(s&&c.push(new e.default(s,this._x0,this._y0,this._x1,this._y1));t=c.pop();)if(!n(s=t.node,o=t.x0,i=t.y0,u=t.x1,a=t.y1)&&s.length){var f=(o+u)/2,l=(i+a)/2;(r=s[3])&&c.push(new e.default(r,f,l,u,a)),(r=s[2])&&c.push(new e.default(r,o,l,f,a)),(r=s[1])&&c.push(new e.default(r,f,i,u,l)),(r=s[0])&&c.push(new e.default(r,o,i,f,l))}return this}},"./node_modules/d3-quadtree/src/visitAfter.js":function(n,t,r){"use strict";r.r(t);var e=r("./node_modules/d3-quadtree/src/quad.js");t.default=function(n){var t,r=[],o=[];for(this._root&&r.push(new e.default(this._root,this._x0,this._y0,this._x1,this._y1));t=r.pop();){var i=t.node;if(i.length){var u,a=t.x0,c=t.y0,s=t.x1,f=t.y1,l=(a+s)/2,h=(c+f)/2;(u=i[0])&&r.push(new e.default(u,a,c,l,h)),(u=i[1])&&r.push(new e.default(u,l,c,s,h)),(u=i[2])&&r.push(new e.default(u,a,h,l,f)),(u=i[3])&&r.push(new e.default(u,l,h,s,f))}o.push(t)}for(;t=o.pop();)n(t.node,t.x0,t.y0,t.x1,t.y1);return this}},"./node_modules/d3-quadtree/src/x.js":function(n,t,r){"use strict";function e(n){return n[0]}r.r(t),r.d(t,"defaultX",function(){return e}),t.default=function(n){return arguments.length?(this._x=n,this):this._x}},"./node_modules/d3-quadtree/src/y.js":function(n,t,r){"use strict";function e(n){return n[1]}r.r(t),r.d(t,"defaultY",function(){return e}),t.default=function(n){return arguments.length?(this._y=n,this):this._y}},"./node_modules/d3-timer/src/index.js":function(n,t,r){"use strict";r.r(t);var e=r("./node_modules/d3-timer/src/timer.js");r.d(t,"now",function(){return e.now}),r.d(t,"timer",function(){return e.timer}),r.d(t,"timerFlush",function(){return e.timerFlush});var o=r("./node_modules/d3-timer/src/timeout.js");r.d(t,"timeout",function(){return o.default});var i=r("./node_modules/d3-timer/src/interval.js");r.d(t,"interval",function(){return i.default})},"./node_modules/d3-timer/src/interval.js":function(n,t,r){"use strict";r.r(t);var e=r("./node_modules/d3-timer/src/timer.js");t.default=function(n,t,r){var o=new e.Timer,i=t;return null==t?(o.restart(n,t,r),o):(t=+t,r=null==r?Object(e.now)():+r,o.restart(function e(u){u+=i,o.restart(e,i+=t,r),n(u)},t,r),o)}},"./node_modules/d3-timer/src/timeout.js":function(n,t,r){"use strict";r.r(t);var e=r("./node_modules/d3-timer/src/timer.js");t.default=function(n,t,r){var o=new e.Timer;return t=null==t?0:+t,o.restart(function(r){o.stop(),n(r+t)},t,r),o}},"./node_modules/d3-timer/src/timer.js":function(n,t,r){"use strict";r.r(t),r.d(t,"now",function(){return p}),r.d(t,"Timer",function(){return v}),r.d(t,"timer",function(){return m}),r.d(t,"timerFlush",function(){return x});var e,o,i=0,u=0,a=0,c=1e3,s=0,f=0,l=0,h="object"==typeof performance&&performance.now?performance:Date,d="object"==typeof window&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(n){setTimeout(n,17)};function p(){return f||(d(g),f=h.now()+l)}function g(){f=0}function v(){this._call=this._time=this._next=null}function m(n,t,r){var e=new v;return e.restart(n,t,r),e}function x(){p(),++i;for(var n,t=e;t;)(n=f-t._time)>=0&&t._call.call(null,n),t=t._next;--i}function _(){f=(s=h.now())+l,i=u=0;try{x()}finally{i=0,function(){var n,t,r=e,i=1/0;for(;r;)r._call?(i>r._time&&(i=r._time),n=r,r=r._next):(t=r._next,r._next=null,r=n?n._next=t:e=t);o=n,b(i)}(),f=0}}function y(){var n=h.now(),t=n-s;t>c&&(l-=t,s=n)}function b(n){i||(u&&(u=clearTimeout(u)),n-f>24?(n<1/0&&(u=setTimeout(_,n-h.now()-l)),a&&(a=clearInterval(a))):(a||(s=h.now(),a=setInterval(y,c)),i=1,d(_)))}v.prototype=m.prototype={constructor:v,restart:function(n,t,r){if("function"!=typeof n)throw new TypeError("callback is not a function");r=(null==r?p():+r)+(null==t?0:+t),this._next||o===this||(o?o._next=this:e=this,o=this),this._call=n,this._time=r,b()},stop:function(){this._call&&(this._call=null,this._time=1/0,b())}}},"./node_modules/gl-matrix/lib/gl-matrix.js":function(n,t,r){"use strict";r.r(t);var e=r("./node_modules/gl-matrix/lib/gl-matrix/common.js");r.d(t,"glMatrix",function(){return e});var o=r("./node_modules/gl-matrix/lib/gl-matrix/mat2.js");r.d(t,"mat2",function(){return o});var i=r("./node_modules/gl-matrix/lib/gl-matrix/mat2d.js");r.d(t,"mat2d",function(){return i});var u=r("./node_modules/gl-matrix/lib/gl-matrix/mat3.js");r.d(t,"mat3",function(){return u});var a=r("./node_modules/gl-matrix/lib/gl-matrix/mat4.js");r.d(t,"mat4",function(){return a});var c=r("./node_modules/gl-matrix/lib/gl-matrix/quat.js");r.d(t,"quat",function(){return c});var s=r("./node_modules/gl-matrix/lib/gl-matrix/quat2.js");r.d(t,"quat2",function(){return s});var f=r("./node_modules/gl-matrix/lib/gl-matrix/vec2.js");r.d(t,"vec2",function(){return f});var l=r("./node_modules/gl-matrix/lib/gl-matrix/vec3.js");r.d(t,"vec3",function(){return l});var h=r("./node_modules/gl-matrix/lib/gl-matrix/vec4.js");r.d(t,"vec4",function(){return h})},"./node_modules/gl-matrix/lib/gl-matrix/common.js":function(n,t,r){"use strict";r.r(t),r.d(t,"EPSILON",function(){return e}),r.d(t,"ARRAY_TYPE",function(){return o}),r.d(t,"RANDOM",function(){return i}),r.d(t,"setMatrixArrayType",function(){return u}),r.d(t,"toRadian",function(){return c}),r.d(t,"equals",function(){return s});var e=1e-6,o="undefined"!=typeof Float32Array?Float32Array:Array,i=Math.random;function u(n){o=n}var a=Math.PI/180;function c(n){return n*a}function s(n,t){return Math.abs(n-t)<=e*Math.max(1,Math.abs(n),Math.abs(t))}},"./node_modules/gl-matrix/lib/gl-matrix/mat2.js":function(n,t,r){"use strict";r.r(t),r.d(t,"create",function(){return o}),r.d(t,"clone",function(){return i}),r.d(t,"copy",function(){return u}),r.d(t,"identity",function(){return a}),r.d(t,"fromValues",function(){return c}),r.d(t,"set",function(){return s}),r.d(t,"transpose",function(){return f}),r.d(t,"invert",function(){return l}),r.d(t,"adjoint",function(){return h}),r.d(t,"determinant",function(){return d}),r.d(t,"multiply",function(){return p}),r.d(t,"rotate",function(){return g}),r.d(t,"scale",function(){return v}),r.d(t,"fromRotation",function(){return m}),r.d(t,"fromScaling",function(){return x}),r.d(t,"str",function(){return _}),r.d(t,"frob",function(){return y}),r.d(t,"LDU",function(){return b}),r.d(t,"add",function(){return w}),r.d(t,"subtract",function(){return M}),r.d(t,"exactEquals",function(){return A}),r.d(t,"equals",function(){return j}),r.d(t,"multiplyScalar",function(){return E}),r.d(t,"multiplyScalarAndAdd",function(){return P}),r.d(t,"mul",function(){return I}),r.d(t,"sub",function(){return T});var e=r("./node_modules/gl-matrix/lib/gl-matrix/common.js");function o(){var n=new e.ARRAY_TYPE(4);return e.ARRAY_TYPE!=Float32Array&&(n[1]=0,n[2]=0),n[0]=1,n[3]=1,n}function i(n){var t=new e.ARRAY_TYPE(4);return t[0]=n[0],t[1]=n[1],t[2]=n[2],t[3]=n[3],t}function u(n,t){return n[0]=t[0],n[1]=t[1],n[2]=t[2],n[3]=t[3],n}function a(n){return n[0]=1,n[1]=0,n[2]=0,n[3]=1,n}function c(n,t,r,o){var i=new e.ARRAY_TYPE(4);return i[0]=n,i[1]=t,i[2]=r,i[3]=o,i}function s(n,t,r,e,o){return n[0]=t,n[1]=r,n[2]=e,n[3]=o,n}function f(n,t){if(n===t){var r=t[1];n[1]=t[2],n[2]=r}else n[0]=t[0],n[1]=t[2],n[2]=t[1],n[3]=t[3];return n}function l(n,t){var r=t[0],e=t[1],o=t[2],i=t[3],u=r*i-o*e;return u?(u=1/u,n[0]=i*u,n[1]=-e*u,n[2]=-o*u,n[3]=r*u,n):null}function h(n,t){var r=t[0];return n[0]=t[3],n[1]=-t[1],n[2]=-t[2],n[3]=r,n}function d(n){return n[0]*n[3]-n[2]*n[1]}function p(n,t,r){var e=t[0],o=t[1],i=t[2],u=t[3],a=r[0],c=r[1],s=r[2],f=r[3];return n[0]=e*a+i*c,n[1]=o*a+u*c,n[2]=e*s+i*f,n[3]=o*s+u*f,n}function g(n,t,r){var e=t[0],o=t[1],i=t[2],u=t[3],a=Math.sin(r),c=Math.cos(r);return n[0]=e*c+i*a,n[1]=o*c+u*a,n[2]=e*-a+i*c,n[3]=o*-a+u*c,n}function v(n,t,r){var e=t[0],o=t[1],i=t[2],u=t[3],a=r[0],c=r[1];return n[0]=e*a,n[1]=o*a,n[2]=i*c,n[3]=u*c,n}function m(n,t){var r=Math.sin(t),e=Math.cos(t);return n[0]=e,n[1]=r,n[2]=-r,n[3]=e,n}function x(n,t){return n[0]=t[0],n[1]=0,n[2]=0,n[3]=t[1],n}function _(n){return"mat2("+n[0]+", "+n[1]+", "+n[2]+", "+n[3]+")"}function y(n){return Math.sqrt(Math.pow(n[0],2)+Math.pow(n[1],2)+Math.pow(n[2],2)+Math.pow(n[3],2))}function b(n,t,r,e){return n[2]=e[2]/e[0],r[0]=e[0],r[1]=e[1],r[3]=e[3]-n[2]*r[1],[n,t,r]}function w(n,t,r){return n[0]=t[0]+r[0],n[1]=t[1]+r[1],n[2]=t[2]+r[2],n[3]=t[3]+r[3],n}function M(n,t,r){return n[0]=t[0]-r[0],n[1]=t[1]-r[1],n[2]=t[2]-r[2],n[3]=t[3]-r[3],n}function A(n,t){return n[0]===t[0]&&n[1]===t[1]&&n[2]===t[2]&&n[3]===t[3]}function j(n,t){var r=n[0],o=n[1],i=n[2],u=n[3],a=t[0],c=t[1],s=t[2],f=t[3];return Math.abs(r-a)<=e.EPSILON*Math.max(1,Math.abs(r),Math.abs(a))&&Math.abs(o-c)<=e.EPSILON*Math.max(1,Math.abs(o),Math.abs(c))&&Math.abs(i-s)<=e.EPSILON*Math.max(1,Math.abs(i),Math.abs(s))&&Math.abs(u-f)<=e.EPSILON*Math.max(1,Math.abs(u),Math.abs(f))}function E(n,t,r){return n[0]=t[0]*r,n[1]=t[1]*r,n[2]=t[2]*r,n[3]=t[3]*r,n}function P(n,t,r,e){return n[0]=t[0]+r[0]*e,n[1]=t[1]+r[1]*e,n[2]=t[2]+r[2]*e,n[3]=t[3]+r[3]*e,n}var I=p,T=M},"./node_modules/gl-matrix/lib/gl-matrix/mat2d.js":function(n,t,r){"use strict";r.r(t),r.d(t,"create",function(){return o}),r.d(t,"clone",function(){return i}),r.d(t,"copy",function(){return u}),r.d(t,"identity",function(){return a}),r.d(t,"fromValues",function(){return c}),r.d(t,"set",function(){return s}),r.d(t,"invert",function(){return f}),r.d(t,"determinant",function(){return l}),r.d(t,"multiply",function(){return h}),r.d(t,"rotate",function(){return d}),r.d(t,"scale",function(){return p}),r.d(t,"translate",function(){return g}),r.d(t,"fromRotation",function(){return v}),r.d(t,"fromScaling",function(){return m}),r.d(t,"fromTranslation",function(){return x}),r.d(t,"str",function(){return _}),r.d(t,"frob",function(){return y}),r.d(t,"add",function(){return b}),r.d(t,"subtract",function(){return w}),r.d(t,"multiplyScalar",function(){return M}),r.d(t,"multiplyScalarAndAdd",function(){return A}),r.d(t,"exactEquals",function(){return j}),r.d(t,"equals",function(){return E}),r.d(t,"mul",function(){return P}),r.d(t,"sub",function(){return I});var e=r("./node_modules/gl-matrix/lib/gl-matrix/common.js");function o(){var n=new e.ARRAY_TYPE(6);return e.ARRAY_TYPE!=Float32Array&&(n[1]=0,n[2]=0,n[4]=0,n[5]=0),n[0]=1,n[3]=1,n}function i(n){var t=new e.ARRAY_TYPE(6);return t[0]=n[0],t[1]=n[1],t[2]=n[2],t[3]=n[3],t[4]=n[4],t[5]=n[5],t}function u(n,t){return n[0]=t[0],n[1]=t[1],n[2]=t[2],n[3]=t[3],n[4]=t[4],n[5]=t[5],n}function a(n){return n[0]=1,n[1]=0,n[2]=0,n[3]=1,n[4]=0,n[5]=0,n}function c(n,t,r,o,i,u){var a=new e.ARRAY_TYPE(6);return a[0]=n,a[1]=t,a[2]=r,a[3]=o,a[4]=i,a[5]=u,a}function s(n,t,r,e,o,i,u){return n[0]=t,n[1]=r,n[2]=e,n[3]=o,n[4]=i,n[5]=u,n}function f(n,t){var r=t[0],e=t[1],o=t[2],i=t[3],u=t[4],a=t[5],c=r*i-e*o;return c?(c=1/c,n[0]=i*c,n[1]=-e*c,n[2]=-o*c,n[3]=r*c,n[4]=(o*a-i*u)*c,n[5]=(e*u-r*a)*c,n):null}function l(n){return n[0]*n[3]-n[1]*n[2]}function h(n,t,r){var e=t[0],o=t[1],i=t[2],u=t[3],a=t[4],c=t[5],s=r[0],f=r[1],l=r[2],h=r[3],d=r[4],p=r[5];return n[0]=e*s+i*f,n[1]=o*s+u*f,n[2]=e*l+i*h,n[3]=o*l+u*h,n[4]=e*d+i*p+a,n[5]=o*d+u*p+c,n}function d(n,t,r){var e=t[0],o=t[1],i=t[2],u=t[3],a=t[4],c=t[5],s=Math.sin(r),f=Math.cos(r);return n[0]=e*f+i*s,n[1]=o*f+u*s,n[2]=e*-s+i*f,n[3]=o*-s+u*f,n[4]=a,n[5]=c,n}function p(n,t,r){var e=t[0],o=t[1],i=t[2],u=t[3],a=t[4],c=t[5],s=r[0],f=r[1];return n[0]=e*s,n[1]=o*s,n[2]=i*f,n[3]=u*f,n[4]=a,n[5]=c,n}function g(n,t,r){var e=t[0],o=t[1],i=t[2],u=t[3],a=t[4],c=t[5],s=r[0],f=r[1];return n[0]=e,n[1]=o,n[2]=i,n[3]=u,n[4]=e*s+i*f+a,n[5]=o*s+u*f+c,n}function v(n,t){var r=Math.sin(t),e=Math.cos(t);return n[0]=e,n[1]=r,n[2]=-r,n[3]=e,n[4]=0,n[5]=0,n}function m(n,t){return n[0]=t[0],n[1]=0,n[2]=0,n[3]=t[1],n[4]=0,n[5]=0,n}function x(n,t){return n[0]=1,n[1]=0,n[2]=0,n[3]=1,n[4]=t[0],n[5]=t[1],n}function _(n){return"mat2d("+n[0]+", "+n[1]+", "+n[2]+", "+n[3]+", "+n[4]+", "+n[5]+")"}function y(n){return Math.sqrt(Math.pow(n[0],2)+Math.pow(n[1],2)+Math.pow(n[2],2)+Math.pow(n[3],2)+Math.pow(n[4],2)+Math.pow(n[5],2)+1)}function b(n,t,r){return n[0]=t[0]+r[0],n[1]=t[1]+r[1],n[2]=t[2]+r[2],n[3]=t[3]+r[3],n[4]=t[4]+r[4],n[5]=t[5]+r[5],n}function w(n,t,r){return n[0]=t[0]-r[0],n[1]=t[1]-r[1],n[2]=t[2]-r[2],n[3]=t[3]-r[3],n[4]=t[4]-r[4],n[5]=t[5]-r[5],n}function M(n,t,r){return n[0]=t[0]*r,n[1]=t[1]*r,n[2]=t[2]*r,n[3]=t[3]*r,n[4]=t[4]*r,n[5]=t[5]*r,n}function A(n,t,r,e){return n[0]=t[0]+r[0]*e,n[1]=t[1]+r[1]*e,n[2]=t[2]+r[2]*e,n[3]=t[3]+r[3]*e,n[4]=t[4]+r[4]*e,n[5]=t[5]+r[5]*e,n}function j(n,t){return n[0]===t[0]&&n[1]===t[1]&&n[2]===t[2]&&n[3]===t[3]&&n[4]===t[4]&&n[5]===t[5]}function E(n,t){var r=n[0],o=n[1],i=n[2],u=n[3],a=n[4],c=n[5],s=t[0],f=t[1],l=t[2],h=t[3],d=t[4],p=t[5];return Math.abs(r-s)<=e.EPSILON*Math.max(1,Math.abs(r),Math.abs(s))&&Math.abs(o-f)<=e.EPSILON*Math.max(1,Math.abs(o),Math.abs(f))&&Math.abs(i-l)<=e.EPSILON*Math.max(1,Math.abs(i),Math.abs(l))&&Math.abs(u-h)<=e.EPSILON*Math.max(1,Math.abs(u),Math.abs(h))&&Math.abs(a-d)<=e.EPSILON*Math.max(1,Math.abs(a),Math.abs(d))&&Math.abs(c-p)<=e.EPSILON*Math.max(1,Math.abs(c),Math.abs(p))}var P=h,I=w},"./node_modules/gl-matrix/lib/gl-matrix/mat3.js":function(n,t,r){"use strict";r.r(t),r.d(t,"create",function(){return o}),r.d(t,"fromMat4",function(){return i}),r.d(t,"clone",function(){return u}),r.d(t,"copy",function(){return a}),r.d(t,"fromValues",function(){return c}),r.d(t,"set",function(){return s}),r.d(t,"identity",function(){return f}),r.d(t,"transpose",function(){return l}),r.d(t,"invert",function(){return h}),r.d(t,"adjoint",function(){return d}),r.d(t,"determinant",function(){return p}),r.d(t,"multiply",function(){return g}),r.d(t,"translate",function(){return v}),r.d(t,"rotate",function(){return m}),r.d(t,"scale",function(){return x}),r.d(t,"fromTranslation",function(){return _}),r.d(t,"fromRotation",function(){return y}),r.d(t,"fromScaling",function(){return b}),r.d(t,"fromMat2d",function(){return w}),r.d(t,"fromQuat",function(){return M}),r.d(t,"normalFromMat4",function(){return A}),r.d(t,"projection",function(){return j}),r.d(t,"str",function(){return E}),r.d(t,"frob",function(){return P}),r.d(t,"add",function(){return I}),r.d(t,"subtract",function(){return T}),r.d(t,"multiplyScalar",function(){return S}),r.d(t,"multiplyScalarAndAdd",function(){return O}),r.d(t,"exactEquals",function(){return L}),r.d(t,"equals",function(){return z}),r.d(t,"mul",function(){return R}),r.d(t,"sub",function(){return C});var e=r("./node_modules/gl-matrix/lib/gl-matrix/common.js");function o(){var n=new e.ARRAY_TYPE(9);return e.ARRAY_TYPE!=Float32Array&&(n[1]=0,n[2]=0,n[3]=0,n[5]=0,n[6]=0,n[7]=0),n[0]=1,n[4]=1,n[8]=1,n}function i(n,t){return n[0]=t[0],n[1]=t[1],n[2]=t[2],n[3]=t[4],n[4]=t[5],n[5]=t[6],n[6]=t[8],n[7]=t[9],n[8]=t[10],n}function u(n){var t=new e.ARRAY_TYPE(9);return t[0]=n[0],t[1]=n[1],t[2]=n[2],t[3]=n[3],t[4]=n[4],t[5]=n[5],t[6]=n[6],t[7]=n[7],t[8]=n[8],t}function a(n,t){return n[0]=t[0],n[1]=t[1],n[2]=t[2],n[3]=t[3],n[4]=t[4],n[5]=t[5],n[6]=t[6],n[7]=t[7],n[8]=t[8],n}function c(n,t,r,o,i,u,a,c,s){var f=new e.ARRAY_TYPE(9);return f[0]=n,f[1]=t,f[2]=r,f[3]=o,f[4]=i,f[5]=u,f[6]=a,f[7]=c,f[8]=s,f}function s(n,t,r,e,o,i,u,a,c,s){return n[0]=t,n[1]=r,n[2]=e,n[3]=o,n[4]=i,n[5]=u,n[6]=a,n[7]=c,n[8]=s,n}function f(n){return n[0]=1,n[1]=0,n[2]=0,n[3]=0,n[4]=1,n[5]=0,n[6]=0,n[7]=0,n[8]=1,n}function l(n,t){if(n===t){var r=t[1],e=t[2],o=t[5];n[1]=t[3],n[2]=t[6],n[3]=r,n[5]=t[7],n[6]=e,n[7]=o}else n[0]=t[0],n[1]=t[3],n[2]=t[6],n[3]=t[1],n[4]=t[4],n[5]=t[7],n[6]=t[2],n[7]=t[5],n[8]=t[8];return n}function h(n,t){var r=t[0],e=t[1],o=t[2],i=t[3],u=t[4],a=t[5],c=t[6],s=t[7],f=t[8],l=f*u-a*s,h=-f*i+a*c,d=s*i-u*c,p=r*l+e*h+o*d;return p?(p=1/p,n[0]=l*p,n[1]=(-f*e+o*s)*p,n[2]=(a*e-o*u)*p,n[3]=h*p,n[4]=(f*r-o*c)*p,n[5]=(-a*r+o*i)*p,n[6]=d*p,n[7]=(-s*r+e*c)*p,n[8]=(u*r-e*i)*p,n):null}function d(n,t){var r=t[0],e=t[1],o=t[2],i=t[3],u=t[4],a=t[5],c=t[6],s=t[7],f=t[8];return n[0]=u*f-a*s,n[1]=o*s-e*f,n[2]=e*a-o*u,n[3]=a*c-i*f,n[4]=r*f-o*c,n[5]=o*i-r*a,n[6]=i*s-u*c,n[7]=e*c-r*s,n[8]=r*u-e*i,n}function p(n){var t=n[0],r=n[1],e=n[2],o=n[3],i=n[4],u=n[5],a=n[6],c=n[7],s=n[8];return t*(s*i-u*c)+r*(-s*o+u*a)+e*(c*o-i*a)}function g(n,t,r){var e=t[0],o=t[1],i=t[2],u=t[3],a=t[4],c=t[5],s=t[6],f=t[7],l=t[8],h=r[0],d=r[1],p=r[2],g=r[3],v=r[4],m=r[5],x=r[6],_=r[7],y=r[8];return n[0]=h*e+d*u+p*s,n[1]=h*o+d*a+p*f,n[2]=h*i+d*c+p*l,n[3]=g*e+v*u+m*s,n[4]=g*o+v*a+m*f,n[5]=g*i+v*c+m*l,n[6]=x*e+_*u+y*s,n[7]=x*o+_*a+y*f,n[8]=x*i+_*c+y*l,n}function v(n,t,r){var e=t[0],o=t[1],i=t[2],u=t[3],a=t[4],c=t[5],s=t[6],f=t[7],l=t[8],h=r[0],d=r[1];return n[0]=e,n[1]=o,n[2]=i,n[3]=u,n[4]=a,n[5]=c,n[6]=h*e+d*u+s,n[7]=h*o+d*a+f,n[8]=h*i+d*c+l,n}function m(n,t,r){var e=t[0],o=t[1],i=t[2],u=t[3],a=t[4],c=t[5],s=t[6],f=t[7],l=t[8],h=Math.sin(r),d=Math.cos(r);return n[0]=d*e+h*u,n[1]=d*o+h*a,n[2]=d*i+h*c,n[3]=d*u-h*e,n[4]=d*a-h*o,n[5]=d*c-h*i,n[6]=s,n[7]=f,n[8]=l,n}function x(n,t,r){var e=r[0],o=r[1];return n[0]=e*t[0],n[1]=e*t[1],n[2]=e*t[2],n[3]=o*t[3],n[4]=o*t[4],n[5]=o*t[5],n[6]=t[6],n[7]=t[7],n[8]=t[8],n}function _(n,t){return n[0]=1,n[1]=0,n[2]=0,n[3]=0,n[4]=1,n[5]=0,n[6]=t[0],n[7]=t[1],n[8]=1,n}function y(n,t){var r=Math.sin(t),e=Math.cos(t);return n[0]=e,n[1]=r,n[2]=0,n[3]=-r,n[4]=e,n[5]=0,n[6]=0,n[7]=0,n[8]=1,n}function b(n,t){return n[0]=t[0],n[1]=0,n[2]=0,n[3]=0,n[4]=t[1],n[5]=0,n[6]=0,n[7]=0,n[8]=1,n}function w(n,t){return n[0]=t[0],n[1]=t[1],n[2]=0,n[3]=t[2],n[4]=t[3],n[5]=0,n[6]=t[4],n[7]=t[5],n[8]=1,n}function M(n,t){var r=t[0],e=t[1],o=t[2],i=t[3],u=r+r,a=e+e,c=o+o,s=r*u,f=e*u,l=e*a,h=o*u,d=o*a,p=o*c,g=i*u,v=i*a,m=i*c;return n[0]=1-l-p,n[3]=f-m,n[6]=h+v,n[1]=f+m,n[4]=1-s-p,n[7]=d-g,n[2]=h-v,n[5]=d+g,n[8]=1-s-l,n}function A(n,t){var r=t[0],e=t[1],o=t[2],i=t[3],u=t[4],a=t[5],c=t[6],s=t[7],f=t[8],l=t[9],h=t[10],d=t[11],p=t[12],g=t[13],v=t[14],m=t[15],x=r*a-e*u,_=r*c-o*u,y=r*s-i*u,b=e*c-o*a,w=e*s-i*a,M=o*s-i*c,A=f*g-l*p,j=f*v-h*p,E=f*m-d*p,P=l*v-h*g,I=l*m-d*g,T=h*m-d*v,S=x*T-_*I+y*P+b*E-w*j+M*A;return S?(S=1/S,n[0]=(a*T-c*I+s*P)*S,n[1]=(c*E-u*T-s*j)*S,n[2]=(u*I-a*E+s*A)*S,n[3]=(o*I-e*T-i*P)*S,n[4]=(r*T-o*E+i*j)*S,n[5]=(e*E-r*I-i*A)*S,n[6]=(g*M-v*w+m*b)*S,n[7]=(v*y-p*M-m*_)*S,n[8]=(p*w-g*y+m*x)*S,n):null}function j(n,t,r){return n[0]=2/t,n[1]=0,n[2]=0,n[3]=0,n[4]=-2/r,n[5]=0,n[6]=-1,n[7]=1,n[8]=1,n}function E(n){return"mat3("+n[0]+", "+n[1]+", "+n[2]+", "+n[3]+", "+n[4]+", "+n[5]+", "+n[6]+", "+n[7]+", "+n[8]+")"}function P(n){return Math.sqrt(Math.pow(n[0],2)+Math.pow(n[1],2)+Math.pow(n[2],2)+Math.pow(n[3],2)+Math.pow(n[4],2)+Math.pow(n[5],2)+Math.pow(n[6],2)+Math.pow(n[7],2)+Math.pow(n[8],2))}function I(n,t,r){return n[0]=t[0]+r[0],n[1]=t[1]+r[1],n[2]=t[2]+r[2],n[3]=t[3]+r[3],n[4]=t[4]+r[4],n[5]=t[5]+r[5],n[6]=t[6]+r[6],n[7]=t[7]+r[7],n[8]=t[8]+r[8],n}function T(n,t,r){return n[0]=t[0]-r[0],n[1]=t[1]-r[1],n[2]=t[2]-r[2],n[3]=t[3]-r[3],n[4]=t[4]-r[4],n[5]=t[5]-r[5],n[6]=t[6]-r[6],n[7]=t[7]-r[7],n[8]=t[8]-r[8],n}function S(n,t,r){return n[0]=t[0]*r,n[1]=t[1]*r,n[2]=t[2]*r,n[3]=t[3]*r,n[4]=t[4]*r,n[5]=t[5]*r,n[6]=t[6]*r,n[7]=t[7]*r,n[8]=t[8]*r,n}function O(n,t,r,e){return n[0]=t[0]+r[0]*e,n[1]=t[1]+r[1]*e,n[2]=t[2]+r[2]*e,n[3]=t[3]+r[3]*e,n[4]=t[4]+r[4]*e,n[5]=t[5]+r[5]*e,n[6]=t[6]+r[6]*e,n[7]=t[7]+r[7]*e,n[8]=t[8]+r[8]*e,n}function L(n,t){return n[0]===t[0]&&n[1]===t[1]&&n[2]===t[2]&&n[3]===t[3]&&n[4]===t[4]&&n[5]===t[5]&&n[6]===t[6]&&n[7]===t[7]&&n[8]===t[8]}function z(n,t){var r=n[0],o=n[1],i=n[2],u=n[3],a=n[4],c=n[5],s=n[6],f=n[7],l=n[8],h=t[0],d=t[1],p=t[2],g=t[3],v=t[4],m=t[5],x=t[6],_=t[7],y=t[8];return Math.abs(r-h)<=e.EPSILON*Math.max(1,Math.abs(r),Math.abs(h))&&Math.abs(o-d)<=e.EPSILON*Math.max(1,Math.abs(o),Math.abs(d))&&Math.abs(i-p)<=e.EPSILON*Math.max(1,Math.abs(i),Math.abs(p))&&Math.abs(u-g)<=e.EPSILON*Math.max(1,Math.abs(u),Math.abs(g))&&Math.abs(a-v)<=e.EPSILON*Math.max(1,Math.abs(a),Math.abs(v))&&Math.abs(c-m)<=e.EPSILON*Math.max(1,Math.abs(c),Math.abs(m))&&Math.abs(s-x)<=e.EPSILON*Math.max(1,Math.abs(s),Math.abs(x))&&Math.abs(f-_)<=e.EPSILON*Math.max(1,Math.abs(f),Math.abs(_))&&Math.abs(l-y)<=e.EPSILON*Math.max(1,Math.abs(l),Math.abs(y))}var R=g,C=T},"./node_modules/gl-matrix/lib/gl-matrix/mat4.js":function(n,t,r){"use strict";r.r(t),r.d(t,"create",function(){return o}),r.d(t,"clone",function(){return i}),r.d(t,"copy",function(){return u}),r.d(t,"fromValues",function(){return a}),r.d(t,"set",function(){return c}),r.d(t,"identity",function(){return s}),r.d(t,"transpose",function(){return f}),r.d(t,"invert",function(){return l}),r.d(t,"adjoint",function(){return h}),r.d(t,"determinant",function(){return d}),r.d(t,"multiply",function(){return p}),r.d(t,"translate",function(){return g}),r.d(t,"scale",function(){return v}),r.d(t,"rotate",function(){return m}),r.d(t,"rotateX",function(){return x}),r.d(t,"rotateY",function(){return _}),r.d(t,"rotateZ",function(){return y}),r.d(t,"fromTranslation",function(){return b}),r.d(t,"fromScaling",function(){return w}),r.d(t,"fromRotation",function(){return M}),r.d(t,"fromXRotation",function(){return A}),r.d(t,"fromYRotation",function(){return j}),r.d(t,"fromZRotation",function(){return E}),r.d(t,"fromRotationTranslation",function(){return P}),r.d(t,"fromQuat2",function(){return I}),r.d(t,"getTranslation",function(){return T}),r.d(t,"getScaling",function(){return S}),r.d(t,"getRotation",function(){return O}),r.d(t,"fromRotationTranslationScale",function(){return L}),r.d(t,"fromRotationTranslationScaleOrigin",function(){return z}),r.d(t,"fromQuat",function(){return R}),r.d(t,"frustum",function(){return C}),r.d(t,"perspective",function(){return N}),r.d(t,"perspectiveFromFieldOfView",function(){return V}),r.d(t,"ortho",function(){return q}),r.d(t,"lookAt",function(){return B}),r.d(t,"targetTo",function(){return D}),r.d(t,"str",function(){return k}),r.d(t,"frob",function(){return Y}),r.d(t,"add",function(){return U}),r.d(t,"subtract",function(){return F}),r.d(t,"multiplyScalar",function(){return G}),r.d(t,"multiplyScalarAndAdd",function(){return X}),r.d(t,"exactEquals",function(){return Z}),r.d(t,"equals",function(){return W}),r.d(t,"mul",function(){return H}),r.d(t,"sub",function(){return $});var e=r("./node_modules/gl-matrix/lib/gl-matrix/common.js");function o(){var n=new e.ARRAY_TYPE(16);return e.ARRAY_TYPE!=Float32Array&&(n[1]=0,n[2]=0,n[3]=0,n[4]=0,n[6]=0,n[7]=0,n[8]=0,n[9]=0,n[11]=0,n[12]=0,n[13]=0,n[14]=0),n[0]=1,n[5]=1,n[10]=1,n[15]=1,n}function i(n){var t=new e.ARRAY_TYPE(16);return t[0]=n[0],t[1]=n[1],t[2]=n[2],t[3]=n[3],t[4]=n[4],t[5]=n[5],t[6]=n[6],t[7]=n[7],t[8]=n[8],t[9]=n[9],t[10]=n[10],t[11]=n[11],t[12]=n[12],t[13]=n[13],t[14]=n[14],t[15]=n[15],t}function u(n,t){return n[0]=t[0],n[1]=t[1],n[2]=t[2],n[3]=t[3],n[4]=t[4],n[5]=t[5],n[6]=t[6],n[7]=t[7],n[8]=t[8],n[9]=t[9],n[10]=t[10],n[11]=t[11],n[12]=t[12],n[13]=t[13],n[14]=t[14],n[15]=t[15],n}function a(n,t,r,o,i,u,a,c,s,f,l,h,d,p,g,v){var m=new e.ARRAY_TYPE(16);return m[0]=n,m[1]=t,m[2]=r,m[3]=o,m[4]=i,m[5]=u,m[6]=a,m[7]=c,m[8]=s,m[9]=f,m[10]=l,m[11]=h,m[12]=d,m[13]=p,m[14]=g,m[15]=v,m}function c(n,t,r,e,o,i,u,a,c,s,f,l,h,d,p,g,v){return n[0]=t,n[1]=r,n[2]=e,n[3]=o,n[4]=i,n[5]=u,n[6]=a,n[7]=c,n[8]=s,n[9]=f,n[10]=l,n[11]=h,n[12]=d,n[13]=p,n[14]=g,n[15]=v,n}function s(n){return n[0]=1,n[1]=0,n[2]=0,n[3]=0,n[4]=0,n[5]=1,n[6]=0,n[7]=0,n[8]=0,n[9]=0,n[10]=1,n[11]=0,n[12]=0,n[13]=0,n[14]=0,n[15]=1,n}function f(n,t){if(n===t){var r=t[1],e=t[2],o=t[3],i=t[6],u=t[7],a=t[11];n[1]=t[4],n[2]=t[8],n[3]=t[12],n[4]=r,n[6]=t[9],n[7]=t[13],n[8]=e,n[9]=i,n[11]=t[14],n[12]=o,n[13]=u,n[14]=a}else n[0]=t[0],n[1]=t[4],n[2]=t[8],n[3]=t[12],n[4]=t[1],n[5]=t[5],n[6]=t[9],n[7]=t[13],n[8]=t[2],n[9]=t[6],n[10]=t[10],n[11]=t[14],n[12]=t[3],n[13]=t[7],n[14]=t[11],n[15]=t[15];return n}function l(n,t){var r=t[0],e=t[1],o=t[2],i=t[3],u=t[4],a=t[5],c=t[6],s=t[7],f=t[8],l=t[9],h=t[10],d=t[11],p=t[12],g=t[13],v=t[14],m=t[15],x=r*a-e*u,_=r*c-o*u,y=r*s-i*u,b=e*c-o*a,w=e*s-i*a,M=o*s-i*c,A=f*g-l*p,j=f*v-h*p,E=f*m-d*p,P=l*v-h*g,I=l*m-d*g,T=h*m-d*v,S=x*T-_*I+y*P+b*E-w*j+M*A;return S?(S=1/S,n[0]=(a*T-c*I+s*P)*S,n[1]=(o*I-e*T-i*P)*S,n[2]=(g*M-v*w+m*b)*S,n[3]=(h*w-l*M-d*b)*S,n[4]=(c*E-u*T-s*j)*S,n[5]=(r*T-o*E+i*j)*S,n[6]=(v*y-p*M-m*_)*S,n[7]=(f*M-h*y+d*_)*S,n[8]=(u*I-a*E+s*A)*S,n[9]=(e*E-r*I-i*A)*S,n[10]=(p*w-g*y+m*x)*S,n[11]=(l*y-f*w-d*x)*S,n[12]=(a*j-u*P-c*A)*S,n[13]=(r*P-e*j+o*A)*S,n[14]=(g*_-p*b-v*x)*S,n[15]=(f*b-l*_+h*x)*S,n):null}function h(n,t){var r=t[0],e=t[1],o=t[2],i=t[3],u=t[4],a=t[5],c=t[6],s=t[7],f=t[8],l=t[9],h=t[10],d=t[11],p=t[12],g=t[13],v=t[14],m=t[15];return n[0]=a*(h*m-d*v)-l*(c*m-s*v)+g*(c*d-s*h),n[1]=-(e*(h*m-d*v)-l*(o*m-i*v)+g*(o*d-i*h)),n[2]=e*(c*m-s*v)-a*(o*m-i*v)+g*(o*s-i*c),n[3]=-(e*(c*d-s*h)-a*(o*d-i*h)+l*(o*s-i*c)),n[4]=-(u*(h*m-d*v)-f*(c*m-s*v)+p*(c*d-s*h)),n[5]=r*(h*m-d*v)-f*(o*m-i*v)+p*(o*d-i*h),n[6]=-(r*(c*m-s*v)-u*(o*m-i*v)+p*(o*s-i*c)),n[7]=r*(c*d-s*h)-u*(o*d-i*h)+f*(o*s-i*c),n[8]=u*(l*m-d*g)-f*(a*m-s*g)+p*(a*d-s*l),n[9]=-(r*(l*m-d*g)-f*(e*m-i*g)+p*(e*d-i*l)),n[10]=r*(a*m-s*g)-u*(e*m-i*g)+p*(e*s-i*a),n[11]=-(r*(a*d-s*l)-u*(e*d-i*l)+f*(e*s-i*a)),n[12]=-(u*(l*v-h*g)-f*(a*v-c*g)+p*(a*h-c*l)),n[13]=r*(l*v-h*g)-f*(e*v-o*g)+p*(e*h-o*l),n[14]=-(r*(a*v-c*g)-u*(e*v-o*g)+p*(e*c-o*a)),n[15]=r*(a*h-c*l)-u*(e*h-o*l)+f*(e*c-o*a),n}function d(n){var t=n[0],r=n[1],e=n[2],o=n[3],i=n[4],u=n[5],a=n[6],c=n[7],s=n[8],f=n[9],l=n[10],h=n[11],d=n[12],p=n[13],g=n[14],v=n[15];return(t*u-r*i)*(l*v-h*g)-(t*a-e*i)*(f*v-h*p)+(t*c-o*i)*(f*g-l*p)+(r*a-e*u)*(s*v-h*d)-(r*c-o*u)*(s*g-l*d)+(e*c-o*a)*(s*p-f*d)}function p(n,t,r){var e=t[0],o=t[1],i=t[2],u=t[3],a=t[4],c=t[5],s=t[6],f=t[7],l=t[8],h=t[9],d=t[10],p=t[11],g=t[12],v=t[13],m=t[14],x=t[15],_=r[0],y=r[1],b=r[2],w=r[3];return n[0]=_*e+y*a+b*l+w*g,n[1]=_*o+y*c+b*h+w*v,n[2]=_*i+y*s+b*d+w*m,n[3]=_*u+y*f+b*p+w*x,_=r[4],y=r[5],b=r[6],w=r[7],n[4]=_*e+y*a+b*l+w*g,n[5]=_*o+y*c+b*h+w*v,n[6]=_*i+y*s+b*d+w*m,n[7]=_*u+y*f+b*p+w*x,_=r[8],y=r[9],b=r[10],w=r[11],n[8]=_*e+y*a+b*l+w*g,n[9]=_*o+y*c+b*h+w*v,n[10]=_*i+y*s+b*d+w*m,n[11]=_*u+y*f+b*p+w*x,_=r[12],y=r[13],b=r[14],w=r[15],n[12]=_*e+y*a+b*l+w*g,n[13]=_*o+y*c+b*h+w*v,n[14]=_*i+y*s+b*d+w*m,n[15]=_*u+y*f+b*p+w*x,n}function g(n,t,r){var e=r[0],o=r[1],i=r[2],u=void 0,a=void 0,c=void 0,s=void 0,f=void 0,l=void 0,h=void 0,d=void 0,p=void 0,g=void 0,v=void 0,m=void 0;return t===n?(n[12]=t[0]*e+t[4]*o+t[8]*i+t[12],n[13]=t[1]*e+t[5]*o+t[9]*i+t[13],n[14]=t[2]*e+t[6]*o+t[10]*i+t[14],n[15]=t[3]*e+t[7]*o+t[11]*i+t[15]):(u=t[0],a=t[1],c=t[2],s=t[3],f=t[4],l=t[5],h=t[6],d=t[7],p=t[8],g=t[9],v=t[10],m=t[11],n[0]=u,n[1]=a,n[2]=c,n[3]=s,n[4]=f,n[5]=l,n[6]=h,n[7]=d,n[8]=p,n[9]=g,n[10]=v,n[11]=m,n[12]=u*e+f*o+p*i+t[12],n[13]=a*e+l*o+g*i+t[13],n[14]=c*e+h*o+v*i+t[14],n[15]=s*e+d*o+m*i+t[15]),n}function v(n,t,r){var e=r[0],o=r[1],i=r[2];return n[0]=t[0]*e,n[1]=t[1]*e,n[2]=t[2]*e,n[3]=t[3]*e,n[4]=t[4]*o,n[5]=t[5]*o,n[6]=t[6]*o,n[7]=t[7]*o,n[8]=t[8]*i,n[9]=t[9]*i,n[10]=t[10]*i,n[11]=t[11]*i,n[12]=t[12],n[13]=t[13],n[14]=t[14],n[15]=t[15],n}function m(n,t,r,o){var i,u,a,c,s,f,l,h,d,p,g,v,m,x,_,y,b,w,M,A,j,E,P,I,T=o[0],S=o[1],O=o[2],L=Math.sqrt(T*T+S*S+O*O);return L0?(r[0]=2*(c*a+l*o+s*u-f*i)/h,r[1]=2*(s*a+l*i+f*o-c*u)/h,r[2]=2*(f*a+l*u+c*i-s*o)/h):(r[0]=2*(c*a+l*o+s*u-f*i),r[1]=2*(s*a+l*i+f*o-c*u),r[2]=2*(f*a+l*u+c*i-s*o)),P(n,t,r),n}function T(n,t){return n[0]=t[12],n[1]=t[13],n[2]=t[14],n}function S(n,t){var r=t[0],e=t[1],o=t[2],i=t[4],u=t[5],a=t[6],c=t[8],s=t[9],f=t[10];return n[0]=Math.sqrt(r*r+e*e+o*o),n[1]=Math.sqrt(i*i+u*u+a*a),n[2]=Math.sqrt(c*c+s*s+f*f),n}function O(n,t){var r=t[0]+t[5]+t[10],e=0;return r>0?(e=2*Math.sqrt(r+1),n[3]=.25*e,n[0]=(t[6]-t[9])/e,n[1]=(t[8]-t[2])/e,n[2]=(t[1]-t[4])/e):t[0]>t[5]&&t[0]>t[10]?(e=2*Math.sqrt(1+t[0]-t[5]-t[10]),n[3]=(t[6]-t[9])/e,n[0]=.25*e,n[1]=(t[1]+t[4])/e,n[2]=(t[8]+t[2])/e):t[5]>t[10]?(e=2*Math.sqrt(1+t[5]-t[0]-t[10]),n[3]=(t[8]-t[2])/e,n[0]=(t[1]+t[4])/e,n[1]=.25*e,n[2]=(t[6]+t[9])/e):(e=2*Math.sqrt(1+t[10]-t[0]-t[5]),n[3]=(t[1]-t[4])/e,n[0]=(t[8]+t[2])/e,n[1]=(t[6]+t[9])/e,n[2]=.25*e),n}function L(n,t,r,e){var o=t[0],i=t[1],u=t[2],a=t[3],c=o+o,s=i+i,f=u+u,l=o*c,h=o*s,d=o*f,p=i*s,g=i*f,v=u*f,m=a*c,x=a*s,_=a*f,y=e[0],b=e[1],w=e[2];return n[0]=(1-(p+v))*y,n[1]=(h+_)*y,n[2]=(d-x)*y,n[3]=0,n[4]=(h-_)*b,n[5]=(1-(l+v))*b,n[6]=(g+m)*b,n[7]=0,n[8]=(d+x)*w,n[9]=(g-m)*w,n[10]=(1-(l+p))*w,n[11]=0,n[12]=r[0],n[13]=r[1],n[14]=r[2],n[15]=1,n}function z(n,t,r,e,o){var i=t[0],u=t[1],a=t[2],c=t[3],s=i+i,f=u+u,l=a+a,h=i*s,d=i*f,p=i*l,g=u*f,v=u*l,m=a*l,x=c*s,_=c*f,y=c*l,b=e[0],w=e[1],M=e[2],A=o[0],j=o[1],E=o[2],P=(1-(g+m))*b,I=(d+y)*b,T=(p-_)*b,S=(d-y)*w,O=(1-(h+m))*w,L=(v+x)*w,z=(p+_)*M,R=(v-x)*M,C=(1-(h+g))*M;return n[0]=P,n[1]=I,n[2]=T,n[3]=0,n[4]=S,n[5]=O,n[6]=L,n[7]=0,n[8]=z,n[9]=R,n[10]=C,n[11]=0,n[12]=r[0]+A-(P*A+S*j+z*E),n[13]=r[1]+j-(I*A+O*j+R*E),n[14]=r[2]+E-(T*A+L*j+C*E),n[15]=1,n}function R(n,t){var r=t[0],e=t[1],o=t[2],i=t[3],u=r+r,a=e+e,c=o+o,s=r*u,f=e*u,l=e*a,h=o*u,d=o*a,p=o*c,g=i*u,v=i*a,m=i*c;return n[0]=1-l-p,n[1]=f+m,n[2]=h-v,n[3]=0,n[4]=f-m,n[5]=1-s-p,n[6]=d+g,n[7]=0,n[8]=h+v,n[9]=d-g,n[10]=1-s-l,n[11]=0,n[12]=0,n[13]=0,n[14]=0,n[15]=1,n}function C(n,t,r,e,o,i,u){var a=1/(r-t),c=1/(o-e),s=1/(i-u);return n[0]=2*i*a,n[1]=0,n[2]=0,n[3]=0,n[4]=0,n[5]=2*i*c,n[6]=0,n[7]=0,n[8]=(r+t)*a,n[9]=(o+e)*c,n[10]=(u+i)*s,n[11]=-1,n[12]=0,n[13]=0,n[14]=u*i*2*s,n[15]=0,n}function N(n,t,r,e,o){var i=1/Math.tan(t/2),u=void 0;return n[0]=i/r,n[1]=0,n[2]=0,n[3]=0,n[4]=0,n[5]=i,n[6]=0,n[7]=0,n[8]=0,n[9]=0,n[11]=-1,n[12]=0,n[13]=0,n[15]=0,null!=o&&o!==1/0?(u=1/(e-o),n[10]=(o+e)*u,n[14]=2*o*e*u):(n[10]=-1,n[14]=-2*e),n}function V(n,t,r,e){var o=Math.tan(t.upDegrees*Math.PI/180),i=Math.tan(t.downDegrees*Math.PI/180),u=Math.tan(t.leftDegrees*Math.PI/180),a=Math.tan(t.rightDegrees*Math.PI/180),c=2/(u+a),s=2/(o+i);return n[0]=c,n[1]=0,n[2]=0,n[3]=0,n[4]=0,n[5]=s,n[6]=0,n[7]=0,n[8]=-(u-a)*c*.5,n[9]=(o-i)*s*.5,n[10]=e/(r-e),n[11]=-1,n[12]=0,n[13]=0,n[14]=e*r/(r-e),n[15]=0,n}function q(n,t,r,e,o,i,u){var a=1/(t-r),c=1/(e-o),s=1/(i-u);return n[0]=-2*a,n[1]=0,n[2]=0,n[3]=0,n[4]=0,n[5]=-2*c,n[6]=0,n[7]=0,n[8]=0,n[9]=0,n[10]=2*s,n[11]=0,n[12]=(t+r)*a,n[13]=(o+e)*c,n[14]=(u+i)*s,n[15]=1,n}function B(n,t,r,o){var i=void 0,u=void 0,a=void 0,c=void 0,f=void 0,l=void 0,h=void 0,d=void 0,p=void 0,g=void 0,v=t[0],m=t[1],x=t[2],_=o[0],y=o[1],b=o[2],w=r[0],M=r[1],A=r[2];return Math.abs(v-w)0&&(f*=d=1/Math.sqrt(d),l*=d,h*=d);var p=c*h-s*l,g=s*f-a*h,v=a*l-c*f;return(d=p*p+g*g+v*v)>0&&(p*=d=1/Math.sqrt(d),g*=d,v*=d),n[0]=p,n[1]=g,n[2]=v,n[3]=0,n[4]=l*v-h*g,n[5]=h*p-f*v,n[6]=f*g-l*p,n[7]=0,n[8]=f,n[9]=l,n[10]=h,n[11]=0,n[12]=o,n[13]=i,n[14]=u,n[15]=1,n}function k(n){return"mat4("+n[0]+", "+n[1]+", "+n[2]+", "+n[3]+", "+n[4]+", "+n[5]+", "+n[6]+", "+n[7]+", "+n[8]+", "+n[9]+", "+n[10]+", "+n[11]+", "+n[12]+", "+n[13]+", "+n[14]+", "+n[15]+")"}function Y(n){return Math.sqrt(Math.pow(n[0],2)+Math.pow(n[1],2)+Math.pow(n[2],2)+Math.pow(n[3],2)+Math.pow(n[4],2)+Math.pow(n[5],2)+Math.pow(n[6],2)+Math.pow(n[7],2)+Math.pow(n[8],2)+Math.pow(n[9],2)+Math.pow(n[10],2)+Math.pow(n[11],2)+Math.pow(n[12],2)+Math.pow(n[13],2)+Math.pow(n[14],2)+Math.pow(n[15],2))}function U(n,t,r){return n[0]=t[0]+r[0],n[1]=t[1]+r[1],n[2]=t[2]+r[2],n[3]=t[3]+r[3],n[4]=t[4]+r[4],n[5]=t[5]+r[5],n[6]=t[6]+r[6],n[7]=t[7]+r[7],n[8]=t[8]+r[8],n[9]=t[9]+r[9],n[10]=t[10]+r[10],n[11]=t[11]+r[11],n[12]=t[12]+r[12],n[13]=t[13]+r[13],n[14]=t[14]+r[14],n[15]=t[15]+r[15],n}function F(n,t,r){return n[0]=t[0]-r[0],n[1]=t[1]-r[1],n[2]=t[2]-r[2],n[3]=t[3]-r[3],n[4]=t[4]-r[4],n[5]=t[5]-r[5],n[6]=t[6]-r[6],n[7]=t[7]-r[7],n[8]=t[8]-r[8],n[9]=t[9]-r[9],n[10]=t[10]-r[10],n[11]=t[11]-r[11],n[12]=t[12]-r[12],n[13]=t[13]-r[13],n[14]=t[14]-r[14],n[15]=t[15]-r[15],n}function G(n,t,r){return n[0]=t[0]*r,n[1]=t[1]*r,n[2]=t[2]*r,n[3]=t[3]*r,n[4]=t[4]*r,n[5]=t[5]*r,n[6]=t[6]*r,n[7]=t[7]*r,n[8]=t[8]*r,n[9]=t[9]*r,n[10]=t[10]*r,n[11]=t[11]*r,n[12]=t[12]*r,n[13]=t[13]*r,n[14]=t[14]*r,n[15]=t[15]*r,n}function X(n,t,r,e){return n[0]=t[0]+r[0]*e,n[1]=t[1]+r[1]*e,n[2]=t[2]+r[2]*e,n[3]=t[3]+r[3]*e,n[4]=t[4]+r[4]*e,n[5]=t[5]+r[5]*e,n[6]=t[6]+r[6]*e,n[7]=t[7]+r[7]*e,n[8]=t[8]+r[8]*e,n[9]=t[9]+r[9]*e,n[10]=t[10]+r[10]*e,n[11]=t[11]+r[11]*e,n[12]=t[12]+r[12]*e,n[13]=t[13]+r[13]*e,n[14]=t[14]+r[14]*e,n[15]=t[15]+r[15]*e,n}function Z(n,t){return n[0]===t[0]&&n[1]===t[1]&&n[2]===t[2]&&n[3]===t[3]&&n[4]===t[4]&&n[5]===t[5]&&n[6]===t[6]&&n[7]===t[7]&&n[8]===t[8]&&n[9]===t[9]&&n[10]===t[10]&&n[11]===t[11]&&n[12]===t[12]&&n[13]===t[13]&&n[14]===t[14]&&n[15]===t[15]}function W(n,t){var r=n[0],o=n[1],i=n[2],u=n[3],a=n[4],c=n[5],s=n[6],f=n[7],l=n[8],h=n[9],d=n[10],p=n[11],g=n[12],v=n[13],m=n[14],x=n[15],_=t[0],y=t[1],b=t[2],w=t[3],M=t[4],A=t[5],j=t[6],E=t[7],P=t[8],I=t[9],T=t[10],S=t[11],O=t[12],L=t[13],z=t[14],R=t[15];return Math.abs(r-_)<=e.EPSILON*Math.max(1,Math.abs(r),Math.abs(_))&&Math.abs(o-y)<=e.EPSILON*Math.max(1,Math.abs(o),Math.abs(y))&&Math.abs(i-b)<=e.EPSILON*Math.max(1,Math.abs(i),Math.abs(b))&&Math.abs(u-w)<=e.EPSILON*Math.max(1,Math.abs(u),Math.abs(w))&&Math.abs(a-M)<=e.EPSILON*Math.max(1,Math.abs(a),Math.abs(M))&&Math.abs(c-A)<=e.EPSILON*Math.max(1,Math.abs(c),Math.abs(A))&&Math.abs(s-j)<=e.EPSILON*Math.max(1,Math.abs(s),Math.abs(j))&&Math.abs(f-E)<=e.EPSILON*Math.max(1,Math.abs(f),Math.abs(E))&&Math.abs(l-P)<=e.EPSILON*Math.max(1,Math.abs(l),Math.abs(P))&&Math.abs(h-I)<=e.EPSILON*Math.max(1,Math.abs(h),Math.abs(I))&&Math.abs(d-T)<=e.EPSILON*Math.max(1,Math.abs(d),Math.abs(T))&&Math.abs(p-S)<=e.EPSILON*Math.max(1,Math.abs(p),Math.abs(S))&&Math.abs(g-O)<=e.EPSILON*Math.max(1,Math.abs(g),Math.abs(O))&&Math.abs(v-L)<=e.EPSILON*Math.max(1,Math.abs(v),Math.abs(L))&&Math.abs(m-z)<=e.EPSILON*Math.max(1,Math.abs(m),Math.abs(z))&&Math.abs(x-R)<=e.EPSILON*Math.max(1,Math.abs(x),Math.abs(R))}var H=p,$=F},"./node_modules/gl-matrix/lib/gl-matrix/quat.js":function(n,t,r){"use strict";r.r(t),r.d(t,"create",function(){return a}),r.d(t,"identity",function(){return c}),r.d(t,"setAxisAngle",function(){return s}),r.d(t,"getAxisAngle",function(){return f}),r.d(t,"multiply",function(){return l}),r.d(t,"rotateX",function(){return h}),r.d(t,"rotateY",function(){return d}),r.d(t,"rotateZ",function(){return p}),r.d(t,"calculateW",function(){return g}),r.d(t,"slerp",function(){return v}),r.d(t,"random",function(){return m}),r.d(t,"invert",function(){return x}),r.d(t,"conjugate",function(){return _}),r.d(t,"fromMat3",function(){return y}),r.d(t,"fromEuler",function(){return b}),r.d(t,"str",function(){return w}),r.d(t,"clone",function(){return T}),r.d(t,"fromValues",function(){return S}),r.d(t,"copy",function(){return O}),r.d(t,"set",function(){return L}),r.d(t,"add",function(){return z}),r.d(t,"mul",function(){return R}),r.d(t,"scale",function(){return C}),r.d(t,"dot",function(){return N}),r.d(t,"lerp",function(){return V}),r.d(t,"length",function(){return q}),r.d(t,"len",function(){return B}),r.d(t,"squaredLength",function(){return D}),r.d(t,"sqrLen",function(){return k}),r.d(t,"normalize",function(){return Y}),r.d(t,"exactEquals",function(){return U}),r.d(t,"equals",function(){return F}),r.d(t,"rotationTo",function(){return G}),r.d(t,"sqlerp",function(){return X}),r.d(t,"setAxes",function(){return Z});var e=r("./node_modules/gl-matrix/lib/gl-matrix/common.js"),o=r("./node_modules/gl-matrix/lib/gl-matrix/mat3.js"),i=r("./node_modules/gl-matrix/lib/gl-matrix/vec3.js"),u=r("./node_modules/gl-matrix/lib/gl-matrix/vec4.js");function a(){var n=new e.ARRAY_TYPE(4);return e.ARRAY_TYPE!=Float32Array&&(n[0]=0,n[1]=0,n[2]=0),n[3]=1,n}function c(n){return n[0]=0,n[1]=0,n[2]=0,n[3]=1,n}function s(n,t,r){r*=.5;var e=Math.sin(r);return n[0]=e*t[0],n[1]=e*t[1],n[2]=e*t[2],n[3]=Math.cos(r),n}function f(n,t){var r=2*Math.acos(t[3]),o=Math.sin(r/2);return o>e.EPSILON?(n[0]=t[0]/o,n[1]=t[1]/o,n[2]=t[2]/o):(n[0]=1,n[1]=0,n[2]=0),r}function l(n,t,r){var e=t[0],o=t[1],i=t[2],u=t[3],a=r[0],c=r[1],s=r[2],f=r[3];return n[0]=e*f+u*a+o*s-i*c,n[1]=o*f+u*c+i*a-e*s,n[2]=i*f+u*s+e*c-o*a,n[3]=u*f-e*a-o*c-i*s,n}function h(n,t,r){r*=.5;var e=t[0],o=t[1],i=t[2],u=t[3],a=Math.sin(r),c=Math.cos(r);return n[0]=e*c+u*a,n[1]=o*c+i*a,n[2]=i*c-o*a,n[3]=u*c-e*a,n}function d(n,t,r){r*=.5;var e=t[0],o=t[1],i=t[2],u=t[3],a=Math.sin(r),c=Math.cos(r);return n[0]=e*c-i*a,n[1]=o*c+u*a,n[2]=i*c+e*a,n[3]=u*c-o*a,n}function p(n,t,r){r*=.5;var e=t[0],o=t[1],i=t[2],u=t[3],a=Math.sin(r),c=Math.cos(r);return n[0]=e*c+o*a,n[1]=o*c-e*a,n[2]=i*c+u*a,n[3]=u*c-i*a,n}function g(n,t){var r=t[0],e=t[1],o=t[2];return n[0]=r,n[1]=e,n[2]=o,n[3]=Math.sqrt(Math.abs(1-r*r-e*e-o*o)),n}function v(n,t,r,o){var i=t[0],u=t[1],a=t[2],c=t[3],s=r[0],f=r[1],l=r[2],h=r[3],d=void 0,p=void 0,g=void 0,v=void 0,m=void 0;return(p=i*s+u*f+a*l+c*h)<0&&(p=-p,s=-s,f=-f,l=-l,h=-h),1-p>e.EPSILON?(d=Math.acos(p),g=Math.sin(d),v=Math.sin((1-o)*d)/g,m=Math.sin(o*d)/g):(v=1-o,m=o),n[0]=v*i+m*s,n[1]=v*u+m*f,n[2]=v*a+m*l,n[3]=v*c+m*h,n}function m(n){var t=e.RANDOM(),r=e.RANDOM(),o=e.RANDOM(),i=Math.sqrt(1-t),u=Math.sqrt(t);return n[0]=i*Math.sin(2*Math.PI*r),n[1]=i*Math.cos(2*Math.PI*r),n[2]=u*Math.sin(2*Math.PI*o),n[3]=u*Math.cos(2*Math.PI*o),n}function x(n,t){var r=t[0],e=t[1],o=t[2],i=t[3],u=r*r+e*e+o*o+i*i,a=u?1/u:0;return n[0]=-r*a,n[1]=-e*a,n[2]=-o*a,n[3]=i*a,n}function _(n,t){return n[0]=-t[0],n[1]=-t[1],n[2]=-t[2],n[3]=t[3],n}function y(n,t){var r=t[0]+t[4]+t[8],e=void 0;if(r>0)e=Math.sqrt(r+1),n[3]=.5*e,e=.5/e,n[0]=(t[5]-t[7])*e,n[1]=(t[6]-t[2])*e,n[2]=(t[1]-t[3])*e;else{var o=0;t[4]>t[0]&&(o=1),t[8]>t[3*o+o]&&(o=2);var i=(o+1)%3,u=(o+2)%3;e=Math.sqrt(t[3*o+o]-t[3*i+i]-t[3*u+u]+1),n[o]=.5*e,e=.5/e,n[3]=(t[3*i+u]-t[3*u+i])*e,n[i]=(t[3*i+o]+t[3*o+i])*e,n[u]=(t[3*u+o]+t[3*o+u])*e}return n}function b(n,t,r,e){var o=.5*Math.PI/180;t*=o,r*=o,e*=o;var i=Math.sin(t),u=Math.cos(t),a=Math.sin(r),c=Math.cos(r),s=Math.sin(e),f=Math.cos(e);return n[0]=i*c*f-u*a*s,n[1]=u*a*f+i*c*s,n[2]=u*c*s-i*a*f,n[3]=u*c*f+i*a*s,n}function w(n){return"quat("+n[0]+", "+n[1]+", "+n[2]+", "+n[3]+")"}var M,A,j,E,P,I,T=u.clone,S=u.fromValues,O=u.copy,L=u.set,z=u.add,R=l,C=u.scale,N=u.dot,V=u.lerp,q=u.length,B=q,D=u.squaredLength,k=D,Y=u.normalize,U=u.exactEquals,F=u.equals,G=(M=i.create(),A=i.fromValues(1,0,0),j=i.fromValues(0,1,0),function(n,t,r){var e=i.dot(t,r);return e<-.999999?(i.cross(M,A,t),i.len(M)<1e-6&&i.cross(M,j,t),i.normalize(M,M),s(n,M,Math.PI),n):e>.999999?(n[0]=0,n[1]=0,n[2]=0,n[3]=1,n):(i.cross(M,t,r),n[0]=M[0],n[1]=M[1],n[2]=M[2],n[3]=1+e,Y(n,n))}),X=(E=a(),P=a(),function(n,t,r,e,o,i){return v(E,t,o,i),v(P,r,e,i),v(n,E,P,2*i*(1-i)),n}),Z=(I=o.create(),function(n,t,r,e){return I[0]=r[0],I[3]=r[1],I[6]=r[2],I[1]=e[0],I[4]=e[1],I[7]=e[2],I[2]=-t[0],I[5]=-t[1],I[8]=-t[2],Y(n,y(n,I))})},"./node_modules/gl-matrix/lib/gl-matrix/quat2.js":function(n,t,r){"use strict";r.r(t),r.d(t,"create",function(){return u}),r.d(t,"clone",function(){return a}),r.d(t,"fromValues",function(){return c}),r.d(t,"fromRotationTranslationValues",function(){return s}),r.d(t,"fromRotationTranslation",function(){return f}),r.d(t,"fromTranslation",function(){return l}),r.d(t,"fromRotation",function(){return h}),r.d(t,"fromMat4",function(){return d}),r.d(t,"copy",function(){return p}),r.d(t,"identity",function(){return g}),r.d(t,"set",function(){return v}),r.d(t,"getReal",function(){return m}),r.d(t,"getDual",function(){return x}),r.d(t,"setReal",function(){return _}),r.d(t,"setDual",function(){return y}),r.d(t,"getTranslation",function(){return b}),r.d(t,"translate",function(){return w}),r.d(t,"rotateX",function(){return M}),r.d(t,"rotateY",function(){return A}),r.d(t,"rotateZ",function(){return j}),r.d(t,"rotateByQuatAppend",function(){return E}),r.d(t,"rotateByQuatPrepend",function(){return P}),r.d(t,"rotateAroundAxis",function(){return I}),r.d(t,"add",function(){return T}),r.d(t,"multiply",function(){return S}),r.d(t,"mul",function(){return O}),r.d(t,"scale",function(){return L}),r.d(t,"dot",function(){return z}),r.d(t,"lerp",function(){return R}),r.d(t,"invert",function(){return C}),r.d(t,"conjugate",function(){return N}),r.d(t,"length",function(){return V}),r.d(t,"len",function(){return q}),r.d(t,"squaredLength",function(){return B}),r.d(t,"sqrLen",function(){return D}),r.d(t,"normalize",function(){return k}),r.d(t,"str",function(){return Y}),r.d(t,"exactEquals",function(){return U}),r.d(t,"equals",function(){return F});var e=r("./node_modules/gl-matrix/lib/gl-matrix/common.js"),o=r("./node_modules/gl-matrix/lib/gl-matrix/quat.js"),i=r("./node_modules/gl-matrix/lib/gl-matrix/mat4.js");function u(){var n=new e.ARRAY_TYPE(8);return e.ARRAY_TYPE!=Float32Array&&(n[0]=0,n[1]=0,n[2]=0,n[4]=0,n[5]=0,n[6]=0,n[7]=0),n[3]=1,n}function a(n){var t=new e.ARRAY_TYPE(8);return t[0]=n[0],t[1]=n[1],t[2]=n[2],t[3]=n[3],t[4]=n[4],t[5]=n[5],t[6]=n[6],t[7]=n[7],t}function c(n,t,r,o,i,u,a,c){var s=new e.ARRAY_TYPE(8);return s[0]=n,s[1]=t,s[2]=r,s[3]=o,s[4]=i,s[5]=u,s[6]=a,s[7]=c,s}function s(n,t,r,o,i,u,a){var c=new e.ARRAY_TYPE(8);c[0]=n,c[1]=t,c[2]=r,c[3]=o;var s=.5*i,f=.5*u,l=.5*a;return c[4]=s*o+f*r-l*t,c[5]=f*o+l*n-s*r,c[6]=l*o+s*t-f*n,c[7]=-s*n-f*t-l*r,c}function f(n,t,r){var e=.5*r[0],o=.5*r[1],i=.5*r[2],u=t[0],a=t[1],c=t[2],s=t[3];return n[0]=u,n[1]=a,n[2]=c,n[3]=s,n[4]=e*s+o*c-i*a,n[5]=o*s+i*u-e*c,n[6]=i*s+e*a-o*u,n[7]=-e*u-o*a-i*c,n}function l(n,t){return n[0]=0,n[1]=0,n[2]=0,n[3]=1,n[4]=.5*t[0],n[5]=.5*t[1],n[6]=.5*t[2],n[7]=0,n}function h(n,t){return n[0]=t[0],n[1]=t[1],n[2]=t[2],n[3]=t[3],n[4]=0,n[5]=0,n[6]=0,n[7]=0,n}function d(n,t){var r=o.create();i.getRotation(r,t);var u=new e.ARRAY_TYPE(3);return i.getTranslation(u,t),f(n,r,u),n}function p(n,t){return n[0]=t[0],n[1]=t[1],n[2]=t[2],n[3]=t[3],n[4]=t[4],n[5]=t[5],n[6]=t[6],n[7]=t[7],n}function g(n){return n[0]=0,n[1]=0,n[2]=0,n[3]=1,n[4]=0,n[5]=0,n[6]=0,n[7]=0,n}function v(n,t,r,e,o,i,u,a,c){return n[0]=t,n[1]=r,n[2]=e,n[3]=o,n[4]=i,n[5]=u,n[6]=a,n[7]=c,n}var m=o.copy;function x(n,t){return n[0]=t[4],n[1]=t[5],n[2]=t[6],n[3]=t[7],n}var _=o.copy;function y(n,t){return n[4]=t[0],n[5]=t[1],n[6]=t[2],n[7]=t[3],n}function b(n,t){var r=t[4],e=t[5],o=t[6],i=t[7],u=-t[0],a=-t[1],c=-t[2],s=t[3];return n[0]=2*(r*s+i*u+e*c-o*a),n[1]=2*(e*s+i*a+o*u-r*c),n[2]=2*(o*s+i*c+r*a-e*u),n}function w(n,t,r){var e=t[0],o=t[1],i=t[2],u=t[3],a=.5*r[0],c=.5*r[1],s=.5*r[2],f=t[4],l=t[5],h=t[6],d=t[7];return n[0]=e,n[1]=o,n[2]=i,n[3]=u,n[4]=u*a+o*s-i*c+f,n[5]=u*c+i*a-e*s+l,n[6]=u*s+e*c-o*a+h,n[7]=-e*a-o*c-i*s+d,n}function M(n,t,r){var e=-t[0],i=-t[1],u=-t[2],a=t[3],c=t[4],s=t[5],f=t[6],l=t[7],h=c*a+l*e+s*u-f*i,d=s*a+l*i+f*e-c*u,p=f*a+l*u+c*i-s*e,g=l*a-c*e-s*i-f*u;return o.rotateX(n,t,r),e=n[0],i=n[1],u=n[2],a=n[3],n[4]=h*a+g*e+d*u-p*i,n[5]=d*a+g*i+p*e-h*u,n[6]=p*a+g*u+h*i-d*e,n[7]=g*a-h*e-d*i-p*u,n}function A(n,t,r){var e=-t[0],i=-t[1],u=-t[2],a=t[3],c=t[4],s=t[5],f=t[6],l=t[7],h=c*a+l*e+s*u-f*i,d=s*a+l*i+f*e-c*u,p=f*a+l*u+c*i-s*e,g=l*a-c*e-s*i-f*u;return o.rotateY(n,t,r),e=n[0],i=n[1],u=n[2],a=n[3],n[4]=h*a+g*e+d*u-p*i,n[5]=d*a+g*i+p*e-h*u,n[6]=p*a+g*u+h*i-d*e,n[7]=g*a-h*e-d*i-p*u,n}function j(n,t,r){var e=-t[0],i=-t[1],u=-t[2],a=t[3],c=t[4],s=t[5],f=t[6],l=t[7],h=c*a+l*e+s*u-f*i,d=s*a+l*i+f*e-c*u,p=f*a+l*u+c*i-s*e,g=l*a-c*e-s*i-f*u;return o.rotateZ(n,t,r),e=n[0],i=n[1],u=n[2],a=n[3],n[4]=h*a+g*e+d*u-p*i,n[5]=d*a+g*i+p*e-h*u,n[6]=p*a+g*u+h*i-d*e,n[7]=g*a-h*e-d*i-p*u,n}function E(n,t,r){var e=r[0],o=r[1],i=r[2],u=r[3],a=t[0],c=t[1],s=t[2],f=t[3];return n[0]=a*u+f*e+c*i-s*o,n[1]=c*u+f*o+s*e-a*i,n[2]=s*u+f*i+a*o-c*e,n[3]=f*u-a*e-c*o-s*i,a=t[4],c=t[5],s=t[6],f=t[7],n[4]=a*u+f*e+c*i-s*o,n[5]=c*u+f*o+s*e-a*i,n[6]=s*u+f*i+a*o-c*e,n[7]=f*u-a*e-c*o-s*i,n}function P(n,t,r){var e=t[0],o=t[1],i=t[2],u=t[3],a=r[0],c=r[1],s=r[2],f=r[3];return n[0]=e*f+u*a+o*s-i*c,n[1]=o*f+u*c+i*a-e*s,n[2]=i*f+u*s+e*c-o*a,n[3]=u*f-e*a-o*c-i*s,a=r[4],c=r[5],s=r[6],f=r[7],n[4]=e*f+u*a+o*s-i*c,n[5]=o*f+u*c+i*a-e*s,n[6]=i*f+u*s+e*c-o*a,n[7]=u*f-e*a-o*c-i*s,n}function I(n,t,r,o){if(Math.abs(o)0){r=Math.sqrt(r);var e=t[0]/r,o=t[1]/r,i=t[2]/r,u=t[3]/r,a=t[4],c=t[5],s=t[6],f=t[7],l=e*a+o*c+i*s+u*f;n[0]=e,n[1]=o,n[2]=i,n[3]=u,n[4]=(a-e*l)/r,n[5]=(c-o*l)/r,n[6]=(s-i*l)/r,n[7]=(f-u*l)/r}return n}function Y(n){return"quat2("+n[0]+", "+n[1]+", "+n[2]+", "+n[3]+", "+n[4]+", "+n[5]+", "+n[6]+", "+n[7]+")"}function U(n,t){return n[0]===t[0]&&n[1]===t[1]&&n[2]===t[2]&&n[3]===t[3]&&n[4]===t[4]&&n[5]===t[5]&&n[6]===t[6]&&n[7]===t[7]}function F(n,t){var r=n[0],o=n[1],i=n[2],u=n[3],a=n[4],c=n[5],s=n[6],f=n[7],l=t[0],h=t[1],d=t[2],p=t[3],g=t[4],v=t[5],m=t[6],x=t[7];return Math.abs(r-l)<=e.EPSILON*Math.max(1,Math.abs(r),Math.abs(l))&&Math.abs(o-h)<=e.EPSILON*Math.max(1,Math.abs(o),Math.abs(h))&&Math.abs(i-d)<=e.EPSILON*Math.max(1,Math.abs(i),Math.abs(d))&&Math.abs(u-p)<=e.EPSILON*Math.max(1,Math.abs(u),Math.abs(p))&&Math.abs(a-g)<=e.EPSILON*Math.max(1,Math.abs(a),Math.abs(g))&&Math.abs(c-v)<=e.EPSILON*Math.max(1,Math.abs(c),Math.abs(v))&&Math.abs(s-m)<=e.EPSILON*Math.max(1,Math.abs(s),Math.abs(m))&&Math.abs(f-x)<=e.EPSILON*Math.max(1,Math.abs(f),Math.abs(x))}},"./node_modules/gl-matrix/lib/gl-matrix/vec2.js":function(n,t,r){"use strict";r.r(t),r.d(t,"create",function(){return o}),r.d(t,"clone",function(){return i}),r.d(t,"fromValues",function(){return u}),r.d(t,"copy",function(){return a}),r.d(t,"set",function(){return c}),r.d(t,"add",function(){return s}),r.d(t,"subtract",function(){return f}),r.d(t,"multiply",function(){return l}),r.d(t,"divide",function(){return h}),r.d(t,"ceil",function(){return d}),r.d(t,"floor",function(){return p}),r.d(t,"min",function(){return g}),r.d(t,"max",function(){return v}),r.d(t,"round",function(){return m}),r.d(t,"scale",function(){return x}),r.d(t,"scaleAndAdd",function(){return _}),r.d(t,"distance",function(){return y}),r.d(t,"squaredDistance",function(){return b}),r.d(t,"length",function(){return w}),r.d(t,"squaredLength",function(){return M}),r.d(t,"negate",function(){return A}),r.d(t,"inverse",function(){return j}),r.d(t,"normalize",function(){return E}),r.d(t,"dot",function(){return P}),r.d(t,"cross",function(){return I}),r.d(t,"lerp",function(){return T}),r.d(t,"random",function(){return S}),r.d(t,"transformMat2",function(){return O}),r.d(t,"transformMat2d",function(){return L}),r.d(t,"transformMat3",function(){return z}),r.d(t,"transformMat4",function(){return R}),r.d(t,"rotate",function(){return C}),r.d(t,"angle",function(){return N}),r.d(t,"str",function(){return V}),r.d(t,"exactEquals",function(){return q}),r.d(t,"equals",function(){return B}),r.d(t,"len",function(){return k}),r.d(t,"sub",function(){return Y}),r.d(t,"mul",function(){return U}),r.d(t,"div",function(){return F}),r.d(t,"dist",function(){return G}),r.d(t,"sqrDist",function(){return X}),r.d(t,"sqrLen",function(){return Z}),r.d(t,"forEach",function(){return W});var e=r("./node_modules/gl-matrix/lib/gl-matrix/common.js");function o(){var n=new e.ARRAY_TYPE(2);return e.ARRAY_TYPE!=Float32Array&&(n[0]=0,n[1]=0),n}function i(n){var t=new e.ARRAY_TYPE(2);return t[0]=n[0],t[1]=n[1],t}function u(n,t){var r=new e.ARRAY_TYPE(2);return r[0]=n,r[1]=t,r}function a(n,t){return n[0]=t[0],n[1]=t[1],n}function c(n,t,r){return n[0]=t,n[1]=r,n}function s(n,t,r){return n[0]=t[0]+r[0],n[1]=t[1]+r[1],n}function f(n,t,r){return n[0]=t[0]-r[0],n[1]=t[1]-r[1],n}function l(n,t,r){return n[0]=t[0]*r[0],n[1]=t[1]*r[1],n}function h(n,t,r){return n[0]=t[0]/r[0],n[1]=t[1]/r[1],n}function d(n,t){return n[0]=Math.ceil(t[0]),n[1]=Math.ceil(t[1]),n}function p(n,t){return n[0]=Math.floor(t[0]),n[1]=Math.floor(t[1]),n}function g(n,t,r){return n[0]=Math.min(t[0],r[0]),n[1]=Math.min(t[1],r[1]),n}function v(n,t,r){return n[0]=Math.max(t[0],r[0]),n[1]=Math.max(t[1],r[1]),n}function m(n,t){return n[0]=Math.round(t[0]),n[1]=Math.round(t[1]),n}function x(n,t,r){return n[0]=t[0]*r,n[1]=t[1]*r,n}function _(n,t,r,e){return n[0]=t[0]+r[0]*e,n[1]=t[1]+r[1]*e,n}function y(n,t){var r=t[0]-n[0],e=t[1]-n[1];return Math.sqrt(r*r+e*e)}function b(n,t){var r=t[0]-n[0],e=t[1]-n[1];return r*r+e*e}function w(n){var t=n[0],r=n[1];return Math.sqrt(t*t+r*r)}function M(n){var t=n[0],r=n[1];return t*t+r*r}function A(n,t){return n[0]=-t[0],n[1]=-t[1],n}function j(n,t){return n[0]=1/t[0],n[1]=1/t[1],n}function E(n,t){var r=t[0],e=t[1],o=r*r+e*e;return o>0&&(o=1/Math.sqrt(o),n[0]=t[0]*o,n[1]=t[1]*o),n}function P(n,t){return n[0]*t[0]+n[1]*t[1]}function I(n,t,r){var e=t[0]*r[1]-t[1]*r[0];return n[0]=n[1]=0,n[2]=e,n}function T(n,t,r,e){var o=t[0],i=t[1];return n[0]=o+e*(r[0]-o),n[1]=i+e*(r[1]-i),n}function S(n,t){t=t||1;var r=2*e.RANDOM()*Math.PI;return n[0]=Math.cos(r)*t,n[1]=Math.sin(r)*t,n}function O(n,t,r){var e=t[0],o=t[1];return n[0]=r[0]*e+r[2]*o,n[1]=r[1]*e+r[3]*o,n}function L(n,t,r){var e=t[0],o=t[1];return n[0]=r[0]*e+r[2]*o+r[4],n[1]=r[1]*e+r[3]*o+r[5],n}function z(n,t,r){var e=t[0],o=t[1];return n[0]=r[0]*e+r[3]*o+r[6],n[1]=r[1]*e+r[4]*o+r[7],n}function R(n,t,r){var e=t[0],o=t[1];return n[0]=r[0]*e+r[4]*o+r[12],n[1]=r[1]*e+r[5]*o+r[13],n}function C(n,t,r,e){var o=t[0]-r[0],i=t[1]-r[1],u=Math.sin(e),a=Math.cos(e);return n[0]=o*a-i*u+r[0],n[1]=o*u+i*a+r[1],n}function N(n,t){var r=n[0],e=n[1],o=t[0],i=t[1],u=r*r+e*e;u>0&&(u=1/Math.sqrt(u));var a=o*o+i*i;a>0&&(a=1/Math.sqrt(a));var c=(r*o+e*i)*u*a;return c>1?0:c<-1?Math.PI:Math.acos(c)}function V(n){return"vec2("+n[0]+", "+n[1]+")"}function q(n,t){return n[0]===t[0]&&n[1]===t[1]}function B(n,t){var r=n[0],o=n[1],i=t[0],u=t[1];return Math.abs(r-i)<=e.EPSILON*Math.max(1,Math.abs(r),Math.abs(i))&&Math.abs(o-u)<=e.EPSILON*Math.max(1,Math.abs(o),Math.abs(u))}var D,k=w,Y=f,U=l,F=h,G=y,X=b,Z=M,W=(D=o(),function(n,t,r,e,o,i){var u=void 0,a=void 0;for(t||(t=2),r||(r=0),a=e?Math.min(e*t+r,n.length):n.length,u=r;u0&&(i=1/Math.sqrt(i),n[0]=t[0]*i,n[1]=t[1]*i,n[2]=t[2]*i),n}function P(n,t){return n[0]*t[0]+n[1]*t[1]+n[2]*t[2]}function I(n,t,r){var e=t[0],o=t[1],i=t[2],u=r[0],a=r[1],c=r[2];return n[0]=o*c-i*a,n[1]=i*u-e*c,n[2]=e*a-o*u,n}function T(n,t,r,e){var o=t[0],i=t[1],u=t[2];return n[0]=o+e*(r[0]-o),n[1]=i+e*(r[1]-i),n[2]=u+e*(r[2]-u),n}function S(n,t,r,e,o,i){var u=i*i,a=u*(2*i-3)+1,c=u*(i-2)+i,s=u*(i-1),f=u*(3-2*i);return n[0]=t[0]*a+r[0]*c+e[0]*s+o[0]*f,n[1]=t[1]*a+r[1]*c+e[1]*s+o[1]*f,n[2]=t[2]*a+r[2]*c+e[2]*s+o[2]*f,n}function O(n,t,r,e,o,i){var u=1-i,a=u*u,c=i*i,s=a*u,f=3*i*a,l=3*c*u,h=c*i;return n[0]=t[0]*s+r[0]*f+e[0]*l+o[0]*h,n[1]=t[1]*s+r[1]*f+e[1]*l+o[1]*h,n[2]=t[2]*s+r[2]*f+e[2]*l+o[2]*h,n}function L(n,t){t=t||1;var r=2*e.RANDOM()*Math.PI,o=2*e.RANDOM()-1,i=Math.sqrt(1-o*o)*t;return n[0]=Math.cos(r)*i,n[1]=Math.sin(r)*i,n[2]=o*t,n}function z(n,t,r){var e=t[0],o=t[1],i=t[2],u=r[3]*e+r[7]*o+r[11]*i+r[15];return u=u||1,n[0]=(r[0]*e+r[4]*o+r[8]*i+r[12])/u,n[1]=(r[1]*e+r[5]*o+r[9]*i+r[13])/u,n[2]=(r[2]*e+r[6]*o+r[10]*i+r[14])/u,n}function R(n,t,r){var e=t[0],o=t[1],i=t[2];return n[0]=e*r[0]+o*r[3]+i*r[6],n[1]=e*r[1]+o*r[4]+i*r[7],n[2]=e*r[2]+o*r[5]+i*r[8],n}function C(n,t,r){var e=r[0],o=r[1],i=r[2],u=r[3],a=t[0],c=t[1],s=t[2],f=o*s-i*c,l=i*a-e*s,h=e*c-o*a,d=o*h-i*l,p=i*f-e*h,g=e*l-o*f,v=2*u;return f*=v,l*=v,h*=v,d*=2,p*=2,g*=2,n[0]=a+f+d,n[1]=c+l+p,n[2]=s+h+g,n}function N(n,t,r,e){var o=[],i=[];return o[0]=t[0]-r[0],o[1]=t[1]-r[1],o[2]=t[2]-r[2],i[0]=o[0],i[1]=o[1]*Math.cos(e)-o[2]*Math.sin(e),i[2]=o[1]*Math.sin(e)+o[2]*Math.cos(e),n[0]=i[0]+r[0],n[1]=i[1]+r[1],n[2]=i[2]+r[2],n}function V(n,t,r,e){var o=[],i=[];return o[0]=t[0]-r[0],o[1]=t[1]-r[1],o[2]=t[2]-r[2],i[0]=o[2]*Math.sin(e)+o[0]*Math.cos(e),i[1]=o[1],i[2]=o[2]*Math.cos(e)-o[0]*Math.sin(e),n[0]=i[0]+r[0],n[1]=i[1]+r[1],n[2]=i[2]+r[2],n}function q(n,t,r,e){var o=[],i=[];return o[0]=t[0]-r[0],o[1]=t[1]-r[1],o[2]=t[2]-r[2],i[0]=o[0]*Math.cos(e)-o[1]*Math.sin(e),i[1]=o[0]*Math.sin(e)+o[1]*Math.cos(e),i[2]=o[2],n[0]=i[0]+r[0],n[1]=i[1]+r[1],n[2]=i[2]+r[2],n}function B(n,t){var r=a(n[0],n[1],n[2]),e=a(t[0],t[1],t[2]);E(r,r),E(e,e);var o=P(r,e);return o>1?0:o<-1?Math.PI:Math.acos(o)}function D(n){return"vec3("+n[0]+", "+n[1]+", "+n[2]+")"}function k(n,t){return n[0]===t[0]&&n[1]===t[1]&&n[2]===t[2]}function Y(n,t){var r=n[0],o=n[1],i=n[2],u=t[0],a=t[1],c=t[2];return Math.abs(r-u)<=e.EPSILON*Math.max(1,Math.abs(r),Math.abs(u))&&Math.abs(o-a)<=e.EPSILON*Math.max(1,Math.abs(o),Math.abs(a))&&Math.abs(i-c)<=e.EPSILON*Math.max(1,Math.abs(i),Math.abs(c))}var U,F=l,G=h,X=d,Z=b,W=w,H=u,$=M,K=(U=o(),function(n,t,r,e,o,i){var u=void 0,a=void 0;for(t||(t=3),r||(r=0),a=e?Math.min(e*t+r,n.length):n.length,u=r;u0&&(u=1/Math.sqrt(u),n[0]=r*u,n[1]=e*u,n[2]=o*u,n[3]=i*u),n}function P(n,t){return n[0]*t[0]+n[1]*t[1]+n[2]*t[2]+n[3]*t[3]}function I(n,t,r,e){var o=t[0],i=t[1],u=t[2],a=t[3];return n[0]=o+e*(r[0]-o),n[1]=i+e*(r[1]-i),n[2]=u+e*(r[2]-u),n[3]=a+e*(r[3]-a),n}function T(n,t){var r,o,i,u,a,c;t=t||1;do{a=(r=2*e.RANDOM()-1)*r+(o=2*e.RANDOM()-1)*o}while(a>=1);do{c=(i=2*e.RANDOM()-1)*i+(u=2*e.RANDOM()-1)*u}while(c>=1);var s=Math.sqrt((1-a)/c);return n[0]=t*r,n[1]=t*o,n[2]=t*i*s,n[3]=t*u*s,n}function S(n,t,r){var e=t[0],o=t[1],i=t[2],u=t[3];return n[0]=r[0]*e+r[4]*o+r[8]*i+r[12]*u,n[1]=r[1]*e+r[5]*o+r[9]*i+r[13]*u,n[2]=r[2]*e+r[6]*o+r[10]*i+r[14]*u,n[3]=r[3]*e+r[7]*o+r[11]*i+r[15]*u,n}function O(n,t,r){var e=t[0],o=t[1],i=t[2],u=r[0],a=r[1],c=r[2],s=r[3],f=s*e+a*i-c*o,l=s*o+c*e-u*i,h=s*i+u*o-a*e,d=-u*e-a*o-c*i;return n[0]=f*s+d*-u+l*-c-h*-a,n[1]=l*s+d*-a+h*-u-f*-c,n[2]=h*s+d*-c+f*-a-l*-u,n[3]=t[3],n}function L(n){return"vec4("+n[0]+", "+n[1]+", "+n[2]+", "+n[3]+")"}function z(n,t){return n[0]===t[0]&&n[1]===t[1]&&n[2]===t[2]&&n[3]===t[3]}function R(n,t){var r=n[0],o=n[1],i=n[2],u=n[3],a=t[0],c=t[1],s=t[2],f=t[3];return Math.abs(r-a)<=e.EPSILON*Math.max(1,Math.abs(r),Math.abs(a))&&Math.abs(o-c)<=e.EPSILON*Math.max(1,Math.abs(o),Math.abs(c))&&Math.abs(i-s)<=e.EPSILON*Math.max(1,Math.abs(i),Math.abs(s))&&Math.abs(u-f)<=e.EPSILON*Math.max(1,Math.abs(u),Math.abs(f))}var C,N=f,V=l,q=h,B=y,D=b,k=w,Y=M,U=(C=o(),function(n,t,r,e,o,i){var u=void 0,a=void 0;for(t||(t=4),r||(r=0),a=e?Math.min(e*t+r,n.length):n.length,u=r;u>>1,D=[["ary",A],["bind",m],["bindKey",x],["curry",y],["curryRight",b],["flip",E],["partial",w],["partialRight",M],["rearg",j]],k="[object Arguments]",Y="[object Array]",U="[object AsyncFunction]",F="[object Boolean]",G="[object Date]",X="[object DOMException]",Z="[object Error]",W="[object Function]",H="[object GeneratorFunction]",$="[object Map]",K="[object Number]",Q="[object Null]",J="[object Object]",nn="[object Proxy]",tn="[object RegExp]",rn="[object Set]",en="[object String]",on="[object Symbol]",un="[object Undefined]",an="[object WeakMap]",cn="[object WeakSet]",sn="[object ArrayBuffer]",fn="[object DataView]",ln="[object Float32Array]",hn="[object Float64Array]",dn="[object Int8Array]",pn="[object Int16Array]",gn="[object Int32Array]",vn="[object Uint8Array]",mn="[object Uint8ClampedArray]",xn="[object Uint16Array]",_n="[object Uint32Array]",yn=/\b__p \+= '';/g,bn=/\b(__p \+=) '' \+/g,wn=/(__e\(.*?\)|\b__t\)) \+\n'';/g,Mn=/&(?:amp|lt|gt|quot|#39);/g,An=/[&<>"']/g,jn=RegExp(Mn.source),En=RegExp(An.source),Pn=/<%-([\s\S]+?)%>/g,In=/<%([\s\S]+?)%>/g,Tn=/<%=([\s\S]+?)%>/g,Sn=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,On=/^\w*$/,Ln=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,zn=/[\\^$.*+?()[\]{}|]/g,Rn=RegExp(zn.source),Cn=/^\s+|\s+$/g,Nn=/^\s+/,Vn=/\s+$/,qn=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,Bn=/\{\n\/\* \[wrapped with (.+)\] \*/,Dn=/,? & /,kn=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,Yn=/\\(\\)?/g,Un=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,Fn=/\w*$/,Gn=/^[-+]0x[0-9a-f]+$/i,Xn=/^0b[01]+$/i,Zn=/^\[object .+?Constructor\]$/,Wn=/^0o[0-7]+$/i,Hn=/^(?:0|[1-9]\d*)$/,$n=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,Kn=/($^)/,Qn=/['\n\r\u2028\u2029\\]/g,Jn="\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff",nt="\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",tt="[\\ud800-\\udfff]",rt="["+nt+"]",et="["+Jn+"]",ot="\\d+",it="[\\u2700-\\u27bf]",ut="[a-z\\xdf-\\xf6\\xf8-\\xff]",at="[^\\ud800-\\udfff"+nt+ot+"\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde]",ct="\\ud83c[\\udffb-\\udfff]",st="[^\\ud800-\\udfff]",ft="(?:\\ud83c[\\udde6-\\uddff]){2}",lt="[\\ud800-\\udbff][\\udc00-\\udfff]",ht="[A-Z\\xc0-\\xd6\\xd8-\\xde]",dt="(?:"+ut+"|"+at+")",pt="(?:"+ht+"|"+at+")",gt="(?:"+et+"|"+ct+")"+"?",vt="[\\ufe0e\\ufe0f]?"+gt+("(?:\\u200d(?:"+[st,ft,lt].join("|")+")[\\ufe0e\\ufe0f]?"+gt+")*"),mt="(?:"+[it,ft,lt].join("|")+")"+vt,xt="(?:"+[st+et+"?",et,ft,lt,tt].join("|")+")",_t=RegExp("['’]","g"),yt=RegExp(et,"g"),bt=RegExp(ct+"(?="+ct+")|"+xt+vt,"g"),wt=RegExp([ht+"?"+ut+"+(?:['’](?:d|ll|m|re|s|t|ve))?(?="+[rt,ht,"$"].join("|")+")",pt+"+(?:['’](?:D|LL|M|RE|S|T|VE))?(?="+[rt,ht+dt,"$"].join("|")+")",ht+"?"+dt+"+(?:['’](?:d|ll|m|re|s|t|ve))?",ht+"+(?:['’](?:D|LL|M|RE|S|T|VE))?","\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])","\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",ot,mt].join("|"),"g"),Mt=RegExp("[\\u200d\\ud800-\\udfff"+Jn+"\\ufe0e\\ufe0f]"),At=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,jt=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],Et=-1,Pt={};Pt[ln]=Pt[hn]=Pt[dn]=Pt[pn]=Pt[gn]=Pt[vn]=Pt[mn]=Pt[xn]=Pt[_n]=!0,Pt[k]=Pt[Y]=Pt[sn]=Pt[F]=Pt[fn]=Pt[G]=Pt[Z]=Pt[W]=Pt[$]=Pt[K]=Pt[J]=Pt[tn]=Pt[rn]=Pt[en]=Pt[an]=!1;var It={};It[k]=It[Y]=It[sn]=It[fn]=It[F]=It[G]=It[ln]=It[hn]=It[dn]=It[pn]=It[gn]=It[$]=It[K]=It[J]=It[tn]=It[rn]=It[en]=It[on]=It[vn]=It[mn]=It[xn]=It[_n]=!0,It[Z]=It[W]=It[an]=!1;var Tt={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},St=parseFloat,Ot=parseInt,Lt="object"==typeof n&&n&&n.Object===Object&&n,zt="object"==typeof self&&self&&self.Object===Object&&self,Rt=Lt||zt||Function("return this")(),Ct=t&&!t.nodeType&&t,Nt=Ct&&"object"==typeof e&&e&&!e.nodeType&&e,Vt=Nt&&Nt.exports===Ct,qt=Vt&&Lt.process,Bt=function(){try{var n=Nt&&Nt.require&&Nt.require("util").types;return n||qt&&qt.binding&&qt.binding("util")}catch(n){}}(),Dt=Bt&&Bt.isArrayBuffer,kt=Bt&&Bt.isDate,Yt=Bt&&Bt.isMap,Ut=Bt&&Bt.isRegExp,Ft=Bt&&Bt.isSet,Gt=Bt&&Bt.isTypedArray;function Xt(n,t,r){switch(r.length){case 0:return n.call(t);case 1:return n.call(t,r[0]);case 2:return n.call(t,r[0],r[1]);case 3:return n.call(t,r[0],r[1],r[2])}return n.apply(t,r)}function Zt(n,t,r,e){for(var o=-1,i=null==n?0:n.length;++o-1}function Jt(n,t,r){for(var e=-1,o=null==n?0:n.length;++e-1;);return r}function br(n,t){for(var r=n.length;r--&&cr(t,n[r],0)>-1;);return r}var wr=dr({"À":"A","Á":"A","Â":"A","Ã":"A","Ä":"A","Å":"A","à":"a","á":"a","â":"a","ã":"a","ä":"a","å":"a","Ç":"C","ç":"c","Ð":"D","ð":"d","È":"E","É":"E","Ê":"E","Ë":"E","è":"e","é":"e","ê":"e","ë":"e","Ì":"I","Í":"I","Î":"I","Ï":"I","ì":"i","í":"i","î":"i","ï":"i","Ñ":"N","ñ":"n","Ò":"O","Ó":"O","Ô":"O","Õ":"O","Ö":"O","Ø":"O","ò":"o","ó":"o","ô":"o","õ":"o","ö":"o","ø":"o","Ù":"U","Ú":"U","Û":"U","Ü":"U","ù":"u","ú":"u","û":"u","ü":"u","Ý":"Y","ý":"y","ÿ":"y","Æ":"Ae","æ":"ae","Þ":"Th","þ":"th","ß":"ss","Ā":"A","Ă":"A","Ą":"A","ā":"a","ă":"a","ą":"a","Ć":"C","Ĉ":"C","Ċ":"C","Č":"C","ć":"c","ĉ":"c","ċ":"c","č":"c","Ď":"D","Đ":"D","ď":"d","đ":"d","Ē":"E","Ĕ":"E","Ė":"E","Ę":"E","Ě":"E","ē":"e","ĕ":"e","ė":"e","ę":"e","ě":"e","Ĝ":"G","Ğ":"G","Ġ":"G","Ģ":"G","ĝ":"g","ğ":"g","ġ":"g","ģ":"g","Ĥ":"H","Ħ":"H","ĥ":"h","ħ":"h","Ĩ":"I","Ī":"I","Ĭ":"I","Į":"I","İ":"I","ĩ":"i","ī":"i","ĭ":"i","į":"i","ı":"i","Ĵ":"J","ĵ":"j","Ķ":"K","ķ":"k","ĸ":"k","Ĺ":"L","Ļ":"L","Ľ":"L","Ŀ":"L","Ł":"L","ĺ":"l","ļ":"l","ľ":"l","ŀ":"l","ł":"l","Ń":"N","Ņ":"N","Ň":"N","Ŋ":"N","ń":"n","ņ":"n","ň":"n","ŋ":"n","Ō":"O","Ŏ":"O","Ő":"O","ō":"o","ŏ":"o","ő":"o","Ŕ":"R","Ŗ":"R","Ř":"R","ŕ":"r","ŗ":"r","ř":"r","Ś":"S","Ŝ":"S","Ş":"S","Š":"S","ś":"s","ŝ":"s","ş":"s","š":"s","Ţ":"T","Ť":"T","Ŧ":"T","ţ":"t","ť":"t","ŧ":"t","Ũ":"U","Ū":"U","Ŭ":"U","Ů":"U","Ű":"U","Ų":"U","ũ":"u","ū":"u","ŭ":"u","ů":"u","ű":"u","ų":"u","Ŵ":"W","ŵ":"w","Ŷ":"Y","ŷ":"y","Ÿ":"Y","Ź":"Z","Ż":"Z","Ž":"Z","ź":"z","ż":"z","ž":"z","IJ":"IJ","ij":"ij","Œ":"Oe","œ":"oe","ʼn":"'n","ſ":"s"}),Mr=dr({"&":"&","<":"<",">":">",'"':""","'":"'"});function Ar(n){return"\\"+Tt[n]}function jr(n){return Mt.test(n)}function Er(n){var t=-1,r=Array(n.size);return n.forEach(function(n,e){r[++t]=[e,n]}),r}function Pr(n,t){return function(r){return n(t(r))}}function Ir(n,t){for(var r=-1,e=n.length,o=0,i=[];++r",""":'"',"'":"'"});var Rr=function n(t){var r,e=(t=null==t?Rt:Rr.defaults(Rt.Object(),t,Rr.pick(Rt,jt))).Array,o=t.Date,Jn=t.Error,nt=t.Function,tt=t.Math,rt=t.Object,et=t.RegExp,ot=t.String,it=t.TypeError,ut=e.prototype,at=nt.prototype,ct=rt.prototype,st=t["__core-js_shared__"],ft=at.toString,lt=ct.hasOwnProperty,ht=0,dt=(r=/[^.]+$/.exec(st&&st.keys&&st.keys.IE_PROTO||""))?"Symbol(src)_1."+r:"",pt=ct.toString,gt=ft.call(rt),vt=Rt._,mt=et("^"+ft.call(lt).replace(zn,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),xt=Vt?t.Buffer:i,bt=t.Symbol,Mt=t.Uint8Array,Tt=xt?xt.allocUnsafe:i,Lt=Pr(rt.getPrototypeOf,rt),zt=rt.create,Ct=ct.propertyIsEnumerable,Nt=ut.splice,qt=bt?bt.isConcatSpreadable:i,Bt=bt?bt.iterator:i,ir=bt?bt.toStringTag:i,dr=function(){try{var n=Bi(rt,"defineProperty");return n({},"",{}),n}catch(n){}}(),Cr=t.clearTimeout!==Rt.clearTimeout&&t.clearTimeout,Nr=o&&o.now!==Rt.Date.now&&o.now,Vr=t.setTimeout!==Rt.setTimeout&&t.setTimeout,qr=tt.ceil,Br=tt.floor,Dr=rt.getOwnPropertySymbols,kr=xt?xt.isBuffer:i,Yr=t.isFinite,Ur=ut.join,Fr=Pr(rt.keys,rt),Gr=tt.max,Xr=tt.min,Zr=o.now,Wr=t.parseInt,Hr=tt.random,$r=ut.reverse,Kr=Bi(t,"DataView"),Qr=Bi(t,"Map"),Jr=Bi(t,"Promise"),ne=Bi(t,"Set"),te=Bi(t,"WeakMap"),re=Bi(rt,"create"),ee=te&&new te,oe={},ie=lu(Kr),ue=lu(Qr),ae=lu(Jr),ce=lu(ne),se=lu(te),fe=bt?bt.prototype:i,le=fe?fe.valueOf:i,he=fe?fe.toString:i;function de(n){if(Ia(n)&&!ma(n)&&!(n instanceof me)){if(n instanceof ve)return n;if(lt.call(n,"__wrapped__"))return hu(n)}return new ve(n)}var pe=function(){function n(){}return function(t){if(!Pa(t))return{};if(zt)return zt(t);n.prototype=t;var r=new n;return n.prototype=i,r}}();function ge(){}function ve(n,t){this.__wrapped__=n,this.__actions__=[],this.__chain__=!!t,this.__index__=0,this.__values__=i}function me(n){this.__wrapped__=n,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=V,this.__views__=[]}function xe(n){var t=-1,r=null==n?0:n.length;for(this.clear();++t=t?n:t)),n}function Ce(n,t,r,e,o,u){var a,c=t&h,s=t&d,f=t&p;if(r&&(a=o?r(n,e,o,u):r(n)),a!==i)return a;if(!Pa(n))return n;var l=ma(n);if(l){if(a=function(n){var t=n.length,r=new n.constructor(t);return t&&"string"==typeof n[0]&<.call(n,"index")&&(r.index=n.index,r.input=n.input),r}(n),!c)return ei(n,a)}else{var g=Yi(n),v=g==W||g==H;if(ba(n))return Ko(n,c);if(g==J||g==k||v&&!o){if(a=s||v?{}:Fi(n),!c)return s?function(n,t){return oi(n,ki(n),t)}(n,function(n,t){return n&&oi(t,ic(t),n)}(a,n)):function(n,t){return oi(n,Di(n),t)}(n,Oe(a,n))}else{if(!It[g])return o?n:{};a=function(n,t,r){var e,o,i,u=n.constructor;switch(t){case sn:return Qo(n);case F:case G:return new u(+n);case fn:return function(n,t){var r=t?Qo(n.buffer):n.buffer;return new n.constructor(r,n.byteOffset,n.byteLength)}(n,r);case ln:case hn:case dn:case pn:case gn:case vn:case mn:case xn:case _n:return Jo(n,r);case $:return new u;case K:case en:return new u(n);case tn:return(i=new(o=n).constructor(o.source,Fn.exec(o))).lastIndex=o.lastIndex,i;case rn:return new u;case on:return e=n,le?rt(le.call(e)):{}}}(n,g,c)}}u||(u=new we);var m=u.get(n);if(m)return m;if(u.set(n,a),za(n))return n.forEach(function(e){a.add(Ce(e,t,r,e,n,u))}),a;if(Ta(n))return n.forEach(function(e,o){a.set(o,Ce(e,t,r,o,n,u))}),a;var x=l?i:(f?s?Li:Oi:s?ic:oc)(n);return Wt(x||n,function(e,o){x&&(e=n[o=e]),Ie(a,o,Ce(e,t,r,o,n,u))}),a}function Ne(n,t,r){var e=r.length;if(null==n)return!e;for(n=rt(n);e--;){var o=r[e],u=t[o],a=n[o];if(a===i&&!(o in n)||!u(a))return!1}return!0}function Ve(n,t,r){if("function"!=typeof n)throw new it(c);return ou(function(){n.apply(i,r)},t)}function qe(n,t,r,e){var o=-1,i=Qt,a=!0,c=n.length,s=[],f=t.length;if(!c)return s;r&&(t=nr(t,mr(r))),e?(i=Jt,a=!1):t.length>=u&&(i=_r,a=!1,t=new be(t));n:for(;++o-1},_e.prototype.set=function(n,t){var r=this.__data__,e=Te(r,n);return e<0?(++this.size,r.push([n,t])):r[e][1]=t,this},ye.prototype.clear=function(){this.size=0,this.__data__={hash:new xe,map:new(Qr||_e),string:new xe}},ye.prototype.delete=function(n){var t=Vi(this,n).delete(n);return this.size-=t?1:0,t},ye.prototype.get=function(n){return Vi(this,n).get(n)},ye.prototype.has=function(n){return Vi(this,n).has(n)},ye.prototype.set=function(n,t){var r=Vi(this,n),e=r.size;return r.set(n,t),this.size+=r.size==e?0:1,this},be.prototype.add=be.prototype.push=function(n){return this.__data__.set(n,s),this},be.prototype.has=function(n){return this.__data__.has(n)},we.prototype.clear=function(){this.__data__=new _e,this.size=0},we.prototype.delete=function(n){var t=this.__data__,r=t.delete(n);return this.size=t.size,r},we.prototype.get=function(n){return this.__data__.get(n)},we.prototype.has=function(n){return this.__data__.has(n)},we.prototype.set=function(n,t){var r=this.__data__;if(r instanceof _e){var e=r.__data__;if(!Qr||e.length0&&r(a)?t>1?Fe(a,t-1,r,e,o):tr(o,a):e||(o[o.length]=a)}return o}var Ge=ci(),Xe=ci(!0);function Ze(n,t){return n&&Ge(n,t,oc)}function We(n,t){return n&&Xe(n,t,oc)}function He(n,t){return Kt(t,function(t){return Aa(n[t])})}function $e(n,t){for(var r=0,e=(t=Zo(t,n)).length;null!=n&&rt}function no(n,t){return null!=n&<.call(n,t)}function to(n,t){return null!=n&&t in rt(n)}function ro(n,t,r){for(var o=r?Jt:Qt,u=n[0].length,a=n.length,c=a,s=e(a),f=1/0,l=[];c--;){var h=n[c];c&&t&&(h=nr(h,mr(t))),f=Xr(h.length,f),s[c]=!r&&(t||u>=120&&h.length>=120)?new be(c&&h):i}h=n[0];var d=-1,p=s[0];n:for(;++d=a)return c;var s=r[e];return c*("desc"==s?-1:1)}}return n.index-t.index}(n,t,r)})}function _o(n,t,r){for(var e=-1,o=t.length,i={};++e-1;)a!==n&&Nt.call(a,c,1),Nt.call(n,c,1);return n}function bo(n,t){for(var r=n?t.length:0,e=r-1;r--;){var o=t[r];if(r==e||o!==i){var i=o;Xi(o)?Nt.call(n,o,1):Bo(n,o)}}return n}function wo(n,t){return n+Br(Hr()*(t-n+1))}function Mo(n,t){var r="";if(!n||t<1||t>R)return r;do{t%2&&(r+=n),(t=Br(t/2))&&(n+=n)}while(t);return r}function Ao(n,t){return iu(nu(n,t,Sc),n+"")}function jo(n){return Ae(dc(n))}function Eo(n,t){var r=dc(n);return cu(r,Re(t,0,r.length))}function Po(n,t,r,e){if(!Pa(n))return n;for(var o=-1,u=(t=Zo(t,n)).length,a=u-1,c=n;null!=c&&++oi?0:i+t),(r=r>i?i:r)<0&&(r+=i),i=t>r?0:r-t>>>0,t>>>=0;for(var u=e(i);++o>>1,u=n[i];null!==u&&!Ca(u)&&(r?u<=t:u=u){var f=t?null:Mi(n);if(f)return Tr(f);a=!1,o=_r,s=new be}else s=t?[]:c;n:for(;++e=e?n:Oo(n,t,r)}var $o=Cr||function(n){return Rt.clearTimeout(n)};function Ko(n,t){if(t)return n.slice();var r=n.length,e=Tt?Tt(r):new n.constructor(r);return n.copy(e),e}function Qo(n){var t=new n.constructor(n.byteLength);return new Mt(t).set(new Mt(n)),t}function Jo(n,t){var r=t?Qo(n.buffer):n.buffer;return new n.constructor(r,n.byteOffset,n.length)}function ni(n,t){if(n!==t){var r=n!==i,e=null===n,o=n==n,u=Ca(n),a=t!==i,c=null===t,s=t==t,f=Ca(t);if(!c&&!f&&!u&&n>t||u&&a&&s&&!c&&!f||e&&a&&s||!r&&s||!o)return 1;if(!e&&!u&&!f&&n1?r[o-1]:i,a=o>2?r[2]:i;for(u=n.length>3&&"function"==typeof u?(o--,u):i,a&&Zi(r[0],r[1],a)&&(u=o<3?i:u,o=1),t=rt(t);++e-1?o[u?t[a]:a]:i}}function di(n){return Si(function(t){var r=t.length,e=r,o=ve.prototype.thru;for(n&&t.reverse();e--;){var u=t[e];if("function"!=typeof u)throw new it(c);if(o&&!a&&"wrapper"==Ri(u))var a=new ve([],!0)}for(e=a?e:r;++e1&&y.reverse(),h&&fc))return!1;var f=u.get(n);if(f&&u.get(t))return f==t;var l=-1,h=!0,d=r&v?new be:i;for(u.set(n,t),u.set(t,n);++l-1&&n%1==0&&n1?"& ":"")+t[e],t=t.join(r>2?", ":" "),n.replace(qn,"{\n/* [wrapped with "+t+"] */\n")}(e,function(n,t){return Wt(D,function(r){var e="_."+r[0];t&r[1]&&!Qt(n,e)&&n.push(e)}),n.sort()}(function(n){var t=n.match(Bn);return t?t[1].split(Dn):[]}(e),r)))}function au(n){var t=0,r=0;return function(){var e=Zr(),o=S-(e-r);if(r=e,o>0){if(++t>=T)return arguments[0]}else t=0;return n.apply(i,arguments)}}function cu(n,t){var r=-1,e=n.length,o=e-1;for(t=t===i?e:t;++r1?n[t-1]:i;return Lu(n,r="function"==typeof r?(n.pop(),r):i)});function Bu(n){var t=de(n);return t.__chain__=!0,t}function Du(n,t){return t(n)}var ku=Si(function(n){var t=n.length,r=t?n[0]:0,e=this.__wrapped__,o=function(t){return ze(t,n)};return!(t>1||this.__actions__.length)&&e instanceof me&&Xi(r)?((e=e.slice(r,+r+(t?1:0))).__actions__.push({func:Du,args:[o],thisArg:i}),new ve(e,this.__chain__).thru(function(n){return t&&!n.length&&n.push(i),n})):this.thru(o)});var Yu=ii(function(n,t,r){lt.call(n,r)?++n[r]:Le(n,r,1)});var Uu=hi(vu),Fu=hi(mu);function Gu(n,t){return(ma(n)?Wt:Be)(n,Ni(t,3))}function Xu(n,t){return(ma(n)?Ht:De)(n,Ni(t,3))}var Zu=ii(function(n,t,r){lt.call(n,r)?n[r].push(t):Le(n,r,[t])});var Wu=Ao(function(n,t,r){var o=-1,i="function"==typeof t,u=_a(n)?e(n.length):[];return Be(n,function(n){u[++o]=i?Xt(t,n,r):eo(n,t,r)}),u}),Hu=ii(function(n,t,r){Le(n,r,t)});function $u(n,t){return(ma(n)?nr:ho)(n,Ni(t,3))}var Ku=ii(function(n,t,r){n[r?0:1].push(t)},function(){return[[],[]]});var Qu=Ao(function(n,t){if(null==n)return[];var r=t.length;return r>1&&Zi(n,t[0],t[1])?t=[]:r>2&&Zi(t[0],t[1],t[2])&&(t=[t[0]]),xo(n,Fe(t,1),[])}),Ju=Nr||function(){return Rt.Date.now()};function na(n,t,r){return t=r?i:t,t=n&&null==t?n.length:t,ji(n,A,i,i,i,i,t)}function ta(n,t){var r;if("function"!=typeof t)throw new it(c);return n=ka(n),function(){return--n>0&&(r=t.apply(this,arguments)),n<=1&&(t=i),r}}var ra=Ao(function(n,t,r){var e=m;if(r.length){var o=Ir(r,Ci(ra));e|=w}return ji(n,e,t,r,o)}),ea=Ao(function(n,t,r){var e=m|x;if(r.length){var o=Ir(r,Ci(ea));e|=w}return ji(t,e,n,r,o)});function oa(n,t,r){var e,o,u,a,s,f,l=0,h=!1,d=!1,p=!0;if("function"!=typeof n)throw new it(c);function g(t){var r=e,u=o;return e=o=i,l=t,a=n.apply(u,r)}function v(n){var r=n-f;return f===i||r>=t||r<0||d&&n-l>=u}function m(){var n=Ju();if(v(n))return x(n);s=ou(m,function(n){var r=t-(n-f);return d?Xr(r,u-(n-l)):r}(n))}function x(n){return s=i,p&&e?g(n):(e=o=i,a)}function _(){var n=Ju(),r=v(n);if(e=arguments,o=this,f=n,r){if(s===i)return function(n){return l=n,s=ou(m,t),h?g(n):a}(f);if(d)return s=ou(m,t),g(f)}return s===i&&(s=ou(m,t)),a}return t=Ua(t)||0,Pa(r)&&(h=!!r.leading,u=(d="maxWait"in r)?Gr(Ua(r.maxWait)||0,t):u,p="trailing"in r?!!r.trailing:p),_.cancel=function(){s!==i&&$o(s),l=0,e=f=o=s=i},_.flush=function(){return s===i?a:x(Ju())},_}var ia=Ao(function(n,t){return Ve(n,1,t)}),ua=Ao(function(n,t,r){return Ve(n,Ua(t)||0,r)});function aa(n,t){if("function"!=typeof n||null!=t&&"function"!=typeof t)throw new it(c);var r=function(){var e=arguments,o=t?t.apply(this,e):e[0],i=r.cache;if(i.has(o))return i.get(o);var u=n.apply(this,e);return r.cache=i.set(o,u)||i,u};return r.cache=new(aa.Cache||ye),r}function ca(n){if("function"!=typeof n)throw new it(c);return function(){var t=arguments;switch(t.length){case 0:return!n.call(this);case 1:return!n.call(this,t[0]);case 2:return!n.call(this,t[0],t[1]);case 3:return!n.call(this,t[0],t[1],t[2])}return!n.apply(this,t)}}aa.Cache=ye;var sa=Wo(function(n,t){var r=(t=1==t.length&&ma(t[0])?nr(t[0],mr(Ni())):nr(Fe(t,1),mr(Ni()))).length;return Ao(function(e){for(var o=-1,i=Xr(e.length,r);++o=t}),va=oo(function(){return arguments}())?oo:function(n){return Ia(n)&<.call(n,"callee")&&!Ct.call(n,"callee")},ma=e.isArray,xa=Dt?mr(Dt):function(n){return Ia(n)&&Qe(n)==sn};function _a(n){return null!=n&&Ea(n.length)&&!Aa(n)}function ya(n){return Ia(n)&&_a(n)}var ba=kr||Uc,wa=kt?mr(kt):function(n){return Ia(n)&&Qe(n)==G};function Ma(n){if(!Ia(n))return!1;var t=Qe(n);return t==Z||t==X||"string"==typeof n.message&&"string"==typeof n.name&&!Oa(n)}function Aa(n){if(!Pa(n))return!1;var t=Qe(n);return t==W||t==H||t==U||t==nn}function ja(n){return"number"==typeof n&&n==ka(n)}function Ea(n){return"number"==typeof n&&n>-1&&n%1==0&&n<=R}function Pa(n){var t=typeof n;return null!=n&&("object"==t||"function"==t)}function Ia(n){return null!=n&&"object"==typeof n}var Ta=Yt?mr(Yt):function(n){return Ia(n)&&Yi(n)==$};function Sa(n){return"number"==typeof n||Ia(n)&&Qe(n)==K}function Oa(n){if(!Ia(n)||Qe(n)!=J)return!1;var t=Lt(n);if(null===t)return!0;var r=lt.call(t,"constructor")&&t.constructor;return"function"==typeof r&&r instanceof r&&ft.call(r)==gt}var La=Ut?mr(Ut):function(n){return Ia(n)&&Qe(n)==tn};var za=Ft?mr(Ft):function(n){return Ia(n)&&Yi(n)==rn};function Ra(n){return"string"==typeof n||!ma(n)&&Ia(n)&&Qe(n)==en}function Ca(n){return"symbol"==typeof n||Ia(n)&&Qe(n)==on}var Na=Gt?mr(Gt):function(n){return Ia(n)&&Ea(n.length)&&!!Pt[Qe(n)]};var Va=yi(lo),qa=yi(function(n,t){return n<=t});function Ba(n){if(!n)return[];if(_a(n))return Ra(n)?Lr(n):ei(n);if(Bt&&n[Bt])return function(n){for(var t,r=[];!(t=n.next()).done;)r.push(t.value);return r}(n[Bt]());var t=Yi(n);return(t==$?Er:t==rn?Tr:dc)(n)}function Da(n){return n?(n=Ua(n))===z||n===-z?(n<0?-1:1)*C:n==n?n:0:0===n?n:0}function ka(n){var t=Da(n),r=t%1;return t==t?r?t-r:t:0}function Ya(n){return n?Re(ka(n),0,V):0}function Ua(n){if("number"==typeof n)return n;if(Ca(n))return N;if(Pa(n)){var t="function"==typeof n.valueOf?n.valueOf():n;n=Pa(t)?t+"":t}if("string"!=typeof n)return 0===n?n:+n;n=n.replace(Cn,"");var r=Xn.test(n);return r||Wn.test(n)?Ot(n.slice(2),r?2:8):Gn.test(n)?N:+n}function Fa(n){return oi(n,ic(n))}function Ga(n){return null==n?"":Vo(n)}var Xa=ui(function(n,t){if(Ki(t)||_a(t))oi(t,oc(t),n);else for(var r in t)lt.call(t,r)&&Ie(n,r,t[r])}),Za=ui(function(n,t){oi(t,ic(t),n)}),Wa=ui(function(n,t,r,e){oi(t,ic(t),n,e)}),Ha=ui(function(n,t,r,e){oi(t,oc(t),n,e)}),$a=Si(ze);var Ka=Ao(function(n,t){n=rt(n);var r=-1,e=t.length,o=e>2?t[2]:i;for(o&&Zi(t[0],t[1],o)&&(e=1);++r1),t}),oi(n,Li(n),r),e&&(r=Ce(r,h|d|p,Ii));for(var o=t.length;o--;)Bo(r,t[o]);return r});var sc=Si(function(n,t){return null==n?{}:function(n,t){return _o(n,t,function(t,r){return nc(n,r)})}(n,t)});function fc(n,t){if(null==n)return{};var r=nr(Li(n),function(n){return[n]});return t=Ni(t),_o(n,r,function(n,r){return t(n,r[0])})}var lc=Ai(oc),hc=Ai(ic);function dc(n){return null==n?[]:xr(n,oc(n))}var pc=fi(function(n,t,r){return t=t.toLowerCase(),n+(r?gc(t):t)});function gc(n){return Mc(Ga(n).toLowerCase())}function vc(n){return(n=Ga(n))&&n.replace($n,wr).replace(yt,"")}var mc=fi(function(n,t,r){return n+(r?"-":"")+t.toLowerCase()}),xc=fi(function(n,t,r){return n+(r?" ":"")+t.toLowerCase()}),_c=si("toLowerCase");var yc=fi(function(n,t,r){return n+(r?"_":"")+t.toLowerCase()});var bc=fi(function(n,t,r){return n+(r?" ":"")+Mc(t)});var wc=fi(function(n,t,r){return n+(r?" ":"")+t.toUpperCase()}),Mc=si("toUpperCase");function Ac(n,t,r){return n=Ga(n),(t=r?i:t)===i?function(n){return At.test(n)}(n)?function(n){return n.match(wt)||[]}(n):function(n){return n.match(kn)||[]}(n):n.match(t)||[]}var jc=Ao(function(n,t){try{return Xt(n,i,t)}catch(n){return Ma(n)?n:new Jn(n)}}),Ec=Si(function(n,t){return Wt(t,function(t){t=fu(t),Le(n,t,ra(n[t],n))}),n});function Pc(n){return function(){return n}}var Ic=di(),Tc=di(!0);function Sc(n){return n}function Oc(n){return co("function"==typeof n?n:Ce(n,h))}var Lc=Ao(function(n,t){return function(r){return eo(r,n,t)}}),zc=Ao(function(n,t){return function(r){return eo(n,r,t)}});function Rc(n,t,r){var e=oc(t),o=He(t,e);null!=r||Pa(t)&&(o.length||!e.length)||(r=t,t=n,n=this,o=He(t,oc(t)));var i=!(Pa(r)&&"chain"in r&&!r.chain),u=Aa(n);return Wt(o,function(r){var e=t[r];n[r]=e,u&&(n.prototype[r]=function(){var t=this.__chain__;if(i||t){var r=n(this.__wrapped__);return(r.__actions__=ei(this.__actions__)).push({func:e,args:arguments,thisArg:n}),r.__chain__=t,r}return e.apply(n,tr([this.value()],arguments))})}),n}function Cc(){}var Nc=mi(nr),Vc=mi($t),qc=mi(or);function Bc(n){return Wi(n)?hr(fu(n)):function(n){return function(t){return $e(t,n)}}(n)}var Dc=_i(),kc=_i(!0);function Yc(){return[]}function Uc(){return!1}var Fc=vi(function(n,t){return n+t},0),Gc=wi("ceil"),Xc=vi(function(n,t){return n/t},1),Zc=wi("floor");var Wc,Hc=vi(function(n,t){return n*t},1),$c=wi("round"),Kc=vi(function(n,t){return n-t},0);return de.after=function(n,t){if("function"!=typeof t)throw new it(c);return n=ka(n),function(){if(--n<1)return t.apply(this,arguments)}},de.ary=na,de.assign=Xa,de.assignIn=Za,de.assignInWith=Wa,de.assignWith=Ha,de.at=$a,de.before=ta,de.bind=ra,de.bindAll=Ec,de.bindKey=ea,de.castArray=function(){if(!arguments.length)return[];var n=arguments[0];return ma(n)?n:[n]},de.chain=Bu,de.chunk=function(n,t,r){t=(r?Zi(n,t,r):t===i)?1:Gr(ka(t),0);var o=null==n?0:n.length;if(!o||t<1)return[];for(var u=0,a=0,c=e(qr(o/t));uo?0:o+r),(e=e===i||e>o?o:ka(e))<0&&(e+=o),e=r>e?0:Ya(e);r>>0)?(n=Ga(n))&&("string"==typeof t||null!=t&&!La(t))&&!(t=Vo(t))&&jr(n)?Ho(Lr(n),0,r):n.split(t,r):[]},de.spread=function(n,t){if("function"!=typeof n)throw new it(c);return t=null==t?0:Gr(ka(t),0),Ao(function(r){var e=r[t],o=Ho(r,0,t);return e&&tr(o,e),Xt(n,this,o)})},de.tail=function(n){var t=null==n?0:n.length;return t?Oo(n,1,t):[]},de.take=function(n,t,r){return n&&n.length?Oo(n,0,(t=r||t===i?1:ka(t))<0?0:t):[]},de.takeRight=function(n,t,r){var e=null==n?0:n.length;return e?Oo(n,(t=e-(t=r||t===i?1:ka(t)))<0?0:t,e):[]},de.takeRightWhile=function(n,t){return n&&n.length?ko(n,Ni(t,3),!1,!0):[]},de.takeWhile=function(n,t){return n&&n.length?ko(n,Ni(t,3)):[]},de.tap=function(n,t){return t(n),n},de.throttle=function(n,t,r){var e=!0,o=!0;if("function"!=typeof n)throw new it(c);return Pa(r)&&(e="leading"in r?!!r.leading:e,o="trailing"in r?!!r.trailing:o),oa(n,t,{leading:e,maxWait:t,trailing:o})},de.thru=Du,de.toArray=Ba,de.toPairs=lc,de.toPairsIn=hc,de.toPath=function(n){return ma(n)?nr(n,fu):Ca(n)?[n]:ei(su(Ga(n)))},de.toPlainObject=Fa,de.transform=function(n,t,r){var e=ma(n),o=e||ba(n)||Na(n);if(t=Ni(t,4),null==r){var i=n&&n.constructor;r=o?e?new i:[]:Pa(n)&&Aa(i)?pe(Lt(n)):{}}return(o?Wt:Ze)(n,function(n,e,o){return t(r,n,e,o)}),r},de.unary=function(n){return na(n,1)},de.union=Iu,de.unionBy=Tu,de.unionWith=Su,de.uniq=function(n){return n&&n.length?qo(n):[]},de.uniqBy=function(n,t){return n&&n.length?qo(n,Ni(t,2)):[]},de.uniqWith=function(n,t){return t="function"==typeof t?t:i,n&&n.length?qo(n,i,t):[]},de.unset=function(n,t){return null==n||Bo(n,t)},de.unzip=Ou,de.unzipWith=Lu,de.update=function(n,t,r){return null==n?n:Do(n,t,Xo(r))},de.updateWith=function(n,t,r,e){return e="function"==typeof e?e:i,null==n?n:Do(n,t,Xo(r),e)},de.values=dc,de.valuesIn=function(n){return null==n?[]:xr(n,ic(n))},de.without=zu,de.words=Ac,de.wrap=function(n,t){return fa(Xo(t),n)},de.xor=Ru,de.xorBy=Cu,de.xorWith=Nu,de.zip=Vu,de.zipObject=function(n,t){return Fo(n||[],t||[],Ie)},de.zipObjectDeep=function(n,t){return Fo(n||[],t||[],Po)},de.zipWith=qu,de.entries=lc,de.entriesIn=hc,de.extend=Za,de.extendWith=Wa,Rc(de,de),de.add=Fc,de.attempt=jc,de.camelCase=pc,de.capitalize=gc,de.ceil=Gc,de.clamp=function(n,t,r){return r===i&&(r=t,t=i),r!==i&&(r=(r=Ua(r))==r?r:0),t!==i&&(t=(t=Ua(t))==t?t:0),Re(Ua(n),t,r)},de.clone=function(n){return Ce(n,p)},de.cloneDeep=function(n){return Ce(n,h|p)},de.cloneDeepWith=function(n,t){return Ce(n,h|p,t="function"==typeof t?t:i)},de.cloneWith=function(n,t){return Ce(n,p,t="function"==typeof t?t:i)},de.conformsTo=function(n,t){return null==t||Ne(n,t,oc(t))},de.deburr=vc,de.defaultTo=function(n,t){return null==n||n!=n?t:n},de.divide=Xc,de.endsWith=function(n,t,r){n=Ga(n),t=Vo(t);var e=n.length,o=r=r===i?e:Re(ka(r),0,e);return(r-=t.length)>=0&&n.slice(r,o)==t},de.eq=da,de.escape=function(n){return(n=Ga(n))&&En.test(n)?n.replace(An,Mr):n},de.escapeRegExp=function(n){return(n=Ga(n))&&Rn.test(n)?n.replace(zn,"\\$&"):n},de.every=function(n,t,r){var e=ma(n)?$t:ke;return r&&Zi(n,t,r)&&(t=i),e(n,Ni(t,3))},de.find=Uu,de.findIndex=vu,de.findKey=function(n,t){return ur(n,Ni(t,3),Ze)},de.findLast=Fu,de.findLastIndex=mu,de.findLastKey=function(n,t){return ur(n,Ni(t,3),We)},de.floor=Zc,de.forEach=Gu,de.forEachRight=Xu,de.forIn=function(n,t){return null==n?n:Ge(n,Ni(t,3),ic)},de.forInRight=function(n,t){return null==n?n:Xe(n,Ni(t,3),ic)},de.forOwn=function(n,t){return n&&Ze(n,Ni(t,3))},de.forOwnRight=function(n,t){return n&&We(n,Ni(t,3))},de.get=Ja,de.gt=pa,de.gte=ga,de.has=function(n,t){return null!=n&&Ui(n,t,no)},de.hasIn=nc,de.head=_u,de.identity=Sc,de.includes=function(n,t,r,e){n=_a(n)?n:dc(n),r=r&&!e?ka(r):0;var o=n.length;return r<0&&(r=Gr(o+r,0)),Ra(n)?r<=o&&n.indexOf(t,r)>-1:!!o&&cr(n,t,r)>-1},de.indexOf=function(n,t,r){var e=null==n?0:n.length;if(!e)return-1;var o=null==r?0:ka(r);return o<0&&(o=Gr(e+o,0)),cr(n,t,o)},de.inRange=function(n,t,r){return t=Da(t),r===i?(r=t,t=0):r=Da(r),function(n,t,r){return n>=Xr(t,r)&&n=-R&&n<=R},de.isSet=za,de.isString=Ra,de.isSymbol=Ca,de.isTypedArray=Na,de.isUndefined=function(n){return n===i},de.isWeakMap=function(n){return Ia(n)&&Yi(n)==an},de.isWeakSet=function(n){return Ia(n)&&Qe(n)==cn},de.join=function(n,t){return null==n?"":Ur.call(n,t)},de.kebabCase=mc,de.last=Mu,de.lastIndexOf=function(n,t,r){var e=null==n?0:n.length;if(!e)return-1;var o=e;return r!==i&&(o=(o=ka(r))<0?Gr(e+o,0):Xr(o,e-1)),t==t?function(n,t,r){for(var e=r+1;e--;)if(n[e]===t)return e;return e}(n,t,o):ar(n,fr,o,!0)},de.lowerCase=xc,de.lowerFirst=_c,de.lt=Va,de.lte=qa,de.max=function(n){return n&&n.length?Ye(n,Sc,Je):i},de.maxBy=function(n,t){return n&&n.length?Ye(n,Ni(t,2),Je):i},de.mean=function(n){return lr(n,Sc)},de.meanBy=function(n,t){return lr(n,Ni(t,2))},de.min=function(n){return n&&n.length?Ye(n,Sc,lo):i},de.minBy=function(n,t){return n&&n.length?Ye(n,Ni(t,2),lo):i},de.stubArray=Yc,de.stubFalse=Uc,de.stubObject=function(){return{}},de.stubString=function(){return""},de.stubTrue=function(){return!0},de.multiply=Hc,de.nth=function(n,t){return n&&n.length?mo(n,ka(t)):i},de.noConflict=function(){return Rt._===this&&(Rt._=vt),this},de.noop=Cc,de.now=Ju,de.pad=function(n,t,r){n=Ga(n);var e=(t=ka(t))?Or(n):0;if(!t||e>=t)return n;var o=(t-e)/2;return xi(Br(o),r)+n+xi(qr(o),r)},de.padEnd=function(n,t,r){n=Ga(n);var e=(t=ka(t))?Or(n):0;return t&&et){var e=n;n=t,t=e}if(r||n%1||t%1){var o=Hr();return Xr(n+o*(t-n+St("1e-"+((o+"").length-1))),t)}return wo(n,t)},de.reduce=function(n,t,r){var e=ma(n)?rr:pr,o=arguments.length<3;return e(n,Ni(t,4),r,o,Be)},de.reduceRight=function(n,t,r){var e=ma(n)?er:pr,o=arguments.length<3;return e(n,Ni(t,4),r,o,De)},de.repeat=function(n,t,r){return t=(r?Zi(n,t,r):t===i)?1:ka(t),Mo(Ga(n),t)},de.replace=function(){var n=arguments,t=Ga(n[0]);return n.length<3?t:t.replace(n[1],n[2])},de.result=function(n,t,r){var e=-1,o=(t=Zo(t,n)).length;for(o||(o=1,n=i);++eR)return[];var r=V,e=Xr(n,V);t=Ni(t),n-=V;for(var o=vr(e,t);++r=u)return n;var c=r-Or(e);if(c<1)return e;var s=a?Ho(a,0,c).join(""):n.slice(0,c);if(o===i)return s+e;if(a&&(c+=s.length-c),La(o)){if(n.slice(c).search(o)){var f,l=s;for(o.global||(o=et(o.source,Ga(Fn.exec(o))+"g")),o.lastIndex=0;f=o.exec(l);)var h=f.index;s=s.slice(0,h===i?c:h)}}else if(n.indexOf(Vo(o),c)!=c){var d=s.lastIndexOf(o);d>-1&&(s=s.slice(0,d))}return s+e},de.unescape=function(n){return(n=Ga(n))&&jn.test(n)?n.replace(Mn,zr):n},de.uniqueId=function(n){var t=++ht;return Ga(n)+t},de.upperCase=wc,de.upperFirst=Mc,de.each=Gu,de.eachRight=Xu,de.first=_u,Rc(de,(Wc={},Ze(de,function(n,t){lt.call(de.prototype,t)||(Wc[t]=n)}),Wc),{chain:!1}),de.VERSION="4.17.11",Wt(["bind","bindKey","curry","curryRight","partial","partialRight"],function(n){de[n].placeholder=de}),Wt(["drop","take"],function(n,t){me.prototype[n]=function(r){r=r===i?1:Gr(ka(r),0);var e=this.__filtered__&&!t?new me(this):this.clone();return e.__filtered__?e.__takeCount__=Xr(r,e.__takeCount__):e.__views__.push({size:Xr(r,V),type:n+(e.__dir__<0?"Right":"")}),e},me.prototype[n+"Right"]=function(t){return this.reverse()[n](t).reverse()}}),Wt(["filter","map","takeWhile"],function(n,t){var r=t+1,e=r==O||3==r;me.prototype[n]=function(n){var t=this.clone();return t.__iteratees__.push({iteratee:Ni(n,3),type:r}),t.__filtered__=t.__filtered__||e,t}}),Wt(["head","last"],function(n,t){var r="take"+(t?"Right":"");me.prototype[n]=function(){return this[r](1).value()[0]}}),Wt(["initial","tail"],function(n,t){var r="drop"+(t?"":"Right");me.prototype[n]=function(){return this.__filtered__?new me(this):this[r](1)}}),me.prototype.compact=function(){return this.filter(Sc)},me.prototype.find=function(n){return this.filter(n).head()},me.prototype.findLast=function(n){return this.reverse().find(n)},me.prototype.invokeMap=Ao(function(n,t){return"function"==typeof n?new me(this):this.map(function(r){return eo(r,n,t)})}),me.prototype.reject=function(n){return this.filter(ca(Ni(n)))},me.prototype.slice=function(n,t){n=ka(n);var r=this;return r.__filtered__&&(n>0||t<0)?new me(r):(n<0?r=r.takeRight(-n):n&&(r=r.drop(n)),t!==i&&(r=(t=ka(t))<0?r.dropRight(-t):r.take(t-n)),r)},me.prototype.takeRightWhile=function(n){return this.reverse().takeWhile(n).reverse()},me.prototype.toArray=function(){return this.take(V)},Ze(me.prototype,function(n,t){var r=/^(?:filter|find|map|reject)|While$/.test(t),e=/^(?:head|last)$/.test(t),o=de[e?"take"+("last"==t?"Right":""):t],u=e||/^find/.test(t);o&&(de.prototype[t]=function(){var t=this.__wrapped__,a=e?[1]:arguments,c=t instanceof me,s=a[0],f=c||ma(t),l=function(n){var t=o.apply(de,tr([n],a));return e&&h?t[0]:t};f&&r&&"function"==typeof s&&1!=s.length&&(c=f=!1);var h=this.__chain__,d=!!this.__actions__.length,p=u&&!h,g=c&&!d;if(!u&&f){t=g?t:new me(this);var v=n.apply(t,a);return v.__actions__.push({func:Du,args:[l],thisArg:i}),new ve(v,h)}return p&&g?n.apply(this,a):(v=this.thru(l),p?e?v.value()[0]:v.value():v)})}),Wt(["pop","push","shift","sort","splice","unshift"],function(n){var t=ut[n],r=/^(?:push|sort|unshift)$/.test(n)?"tap":"thru",e=/^(?:pop|shift)$/.test(n);de.prototype[n]=function(){var n=arguments;if(e&&!this.__chain__){var o=this.value();return t.apply(ma(o)?o:[],n)}return this[r](function(r){return t.apply(ma(r)?r:[],n)})}}),Ze(me.prototype,function(n,t){var r=de[t];if(r){var e=r.name+"";(oe[e]||(oe[e]=[])).push({name:t,func:r})}}),oe[pi(i,x).name]=[{name:"wrapper",func:i}],me.prototype.clone=function(){var n=new me(this.__wrapped__);return n.__actions__=ei(this.__actions__),n.__dir__=this.__dir__,n.__filtered__=this.__filtered__,n.__iteratees__=ei(this.__iteratees__),n.__takeCount__=this.__takeCount__,n.__views__=ei(this.__views__),n},me.prototype.reverse=function(){if(this.__filtered__){var n=new me(this);n.__dir__=-1,n.__filtered__=!0}else(n=this.clone()).__dir__*=-1;return n},me.prototype.value=function(){var n=this.__wrapped__.value(),t=this.__dir__,r=ma(n),e=t<0,o=r?n.length:0,i=function(n,t,r){for(var e=-1,o=r.length;++e=this.__values__.length;return{done:n,value:n?i:this.__values__[this.__index__++]}},de.prototype.plant=function(n){for(var t,r=this;r instanceof ge;){var e=hu(r);e.__index__=0,e.__values__=i,t?o.__wrapped__=e:t=e;var o=e;r=r.__wrapped__}return o.__wrapped__=n,t},de.prototype.reverse=function(){var n=this.__wrapped__;if(n instanceof me){var t=n;return this.__actions__.length&&(t=new me(this)),(t=t.reverse()).__actions__.push({func:Du,args:[Pu],thisArg:i}),new ve(t,this.__chain__)}return this.thru(Pu)},de.prototype.toJSON=de.prototype.valueOf=de.prototype.value=function(){return Yo(this.__wrapped__,this.__actions__)},de.prototype.first=de.prototype.head,Bt&&(de.prototype[Bt]=function(){return this}),de}();Rt._=Rr,(o=function(){return Rr}.call(t,r,t,e))===i||(e.exports=o)}).call(this)}).call(this,r("./node_modules/webpack/buildin/global.js"),r("./node_modules/webpack/buildin/module.js")(n))},"./node_modules/webpack/buildin/global.js":function(n,t){var r;r=function(){return this}();try{r=r||Function("return this")()||(0,eval)("this")}catch(n){"object"==typeof window&&(r=window)}n.exports=r},"./node_modules/webpack/buildin/module.js":function(n,t){n.exports=function(n){return n.webpackPolyfill||(n.deprecate=function(){},n.paths=[],n.children||(n.children=[]),Object.defineProperty(n,"loaded",{enumerable:!0,get:function(){return n.l}}),Object.defineProperty(n,"id",{enumerable:!0,get:function(){return n.i}}),n.webpackPolyfill=1),n}}})}); \ No newline at end of file diff --git a/engine/src/ElGrapho.js b/engine/src/ElGrapho.js index 98bd90d..d22df8d 100644 --- a/engine/src/ElGrapho.js +++ b/engine/src/ElGrapho.js @@ -96,7 +96,7 @@ ElGrapho.prototype = { }); let mainLayer = new Concrete.Layer({ - contextType: 'webgl2' + contextType: 'webgl' }); let labelsLayer = this.labelsLayer = new Concrete.Layer({ diff --git a/engine/src/shaders/hitPoint.vert b/engine/src/shaders/hitPoint.vert index 23ee8b4..973bfc2 100644 --- a/engine/src/shaders/hitPoint.vert +++ b/engine/src/shaders/hitPoint.vert @@ -1,15 +1,14 @@ -#version 300 es +//#version 300 es -in vec4 aVertexPosition; - -in float aVertexIndex; +attribute vec4 aVertexPosition; +attribute float aVertexIndex; uniform mat4 uModelViewMatrix; uniform mat4 uProjectionMatrix; uniform bool magicZoom; uniform float nodeSize; -out vec4 vVertexColor; +varying vec4 vVertexColor; // unsigned rIntValue = (u_color / 256 / 256) % 256; // unsigned gIntValue = (u_color / 256 ) % 256; diff --git a/engine/src/shaders/point.frag b/engine/src/shaders/point.frag index d33cded..b4b24c4 100644 --- a/engine/src/shaders/point.frag +++ b/engine/src/shaders/point.frag @@ -1,4 +1,4 @@ -#version 300 es +//#version 300 es //https://www.desultoryquest.com/blog/drawing-anti-aliased-circular-points-using-opengl-slash-webgl/ //#extension GL_OES_standard_derivatives : enable @@ -6,8 +6,7 @@ // https://www.desultoryquest.com/blog/drawing-anti-aliased-circular-points-using-opengl-slash-webgl/ // https://www.desultoryquest.com/blog/downloads/code/points.js precision mediump float; -in vec4 vVertexColor; -out vec4 fragColor; +varying vec4 vVertexColor; void main(void) { float r = 0.0, delta = 0.0, alpha = 1.0; @@ -24,5 +23,5 @@ void main(void) { - fragColor = vVertexColor * alpha; + gl_FragColor = vVertexColor * alpha; } \ No newline at end of file diff --git a/engine/src/shaders/point.vert b/engine/src/shaders/point.vert index 7a921ef..284d729 100644 --- a/engine/src/shaders/point.vert +++ b/engine/src/shaders/point.vert @@ -1,8 +1,8 @@ -#version 300 es +//#version 300 es -in vec4 aVertexPosition; +attribute vec4 aVertexPosition; // TODO: this should be an int -in float aVertexColor; +attribute float aVertexColor; uniform mat4 uModelViewMatrix; uniform mat4 uProjectionMatrix; @@ -11,7 +11,7 @@ uniform float nodeSize; // TODO: focusedGroup and group should change to int uniform float focusedGroup; -out vec4 vVertexColor; +varying vec4 vVertexColor; // const PALETTE_HEX = [ // '3366CC', @@ -50,41 +50,44 @@ void main() { // gl_VertexID - float alpha; + bool isGray; if (focusedGroup == -1.0 || aVertexColor == focusedGroup) { - alpha = 1.0; + isGray = false; // must be between -1 and 1 gl_Position.z = -0.5; } else { - alpha = 0.5; + isGray = true; gl_Position.z = -0.2; } - if (validColor == 0.0) { - vVertexColor = vec4(51.0/255.0, 102.0/255.0, 204.0/255.0, alpha); // 3366CC + if (isGray) { + vVertexColor = vec4(220.0/255.0, 220.0/255.0, 220.0/255.0, 1.0); + } + else if (validColor == 0.0) { + vVertexColor = vec4(51.0/255.0, 102.0/255.0, 204.0/255.0, 1.0); // 3366CC } else if (validColor == 1.0) { - vVertexColor = vec4(220.0/255.0, 57.0/255.0, 18.0/255.0, alpha); // DC3912 + vVertexColor = vec4(220.0/255.0, 57.0/255.0, 18.0/255.0, 1.0); // DC3912 } else if (validColor == 2.0) { - vVertexColor = vec4(255.0/255.0, 153.0/255.0, 0.0/255.0, alpha); // FF9900 + vVertexColor = vec4(255.0/255.0, 153.0/255.0, 0.0/255.0, 1.0); // FF9900 } else if (validColor == 3.0) { - vVertexColor = vec4(16.0/255.0, 150.0/255.0, 24.0/255.0, alpha); // 109618 + vVertexColor = vec4(16.0/255.0, 150.0/255.0, 24.0/255.0, 1.0); // 109618 } else if (validColor == 4.0) { - vVertexColor = vec4(153.0/255.0, 0.0/255.0, 153.0/255.0, alpha); // 990099 + vVertexColor = vec4(153.0/255.0, 0.0/255.0, 153.0/255.0, 1.0); // 990099 } else if (validColor == 5.0) { - vVertexColor = vec4(59.0/255.0, 62.0/255.0, 172.0/255.0, alpha); // 3B3EAC + vVertexColor = vec4(59.0/255.0, 62.0/255.0, 172.0/255.0, 1.0); // 3B3EAC } else if (validColor == 6.0) { - vVertexColor = vec4(0.0/255.0, 153.0/255.0, 198.0/255.0, alpha); // 0099C6 + vVertexColor = vec4(0.0/255.0, 153.0/255.0, 198.0/255.0, 1.0); // 0099C6 } else if (validColor == 7.0) { - vVertexColor = vec4(221.0/255.0, 68.0/255.0, 119.0/255.0, alpha); // DD4477 + vVertexColor = vec4(221.0/255.0, 68.0/255.0, 119.0/255.0, 1.0); // DD4477 } } \ No newline at end of file diff --git a/engine/src/shaders/pointHit.frag b/engine/src/shaders/pointHit.frag index f69403b..af28f7b 100644 --- a/engine/src/shaders/pointHit.frag +++ b/engine/src/shaders/pointHit.frag @@ -1,9 +1,8 @@ -#version 300 es +//#version 300 es //https://www.desultoryquest.com/blog/drawing-anti-aliased-circular-points-using-opengl-slash-webgl/ precision mediump float; -in vec4 vVertexColor; -out vec4 fragColor; +varying vec4 vVertexColor; void main(void) { float r = 0.0, delta = 0.0, alpha = 1.0; @@ -13,5 +12,5 @@ void main(void) { discard; } - fragColor = vVertexColor * alpha; + gl_FragColor = vVertexColor * alpha; } \ No newline at end of file diff --git a/engine/src/shaders/pointStroke.vert b/engine/src/shaders/pointStroke.vert index fd65916..4d5e6ea 100644 --- a/engine/src/shaders/pointStroke.vert +++ b/engine/src/shaders/pointStroke.vert @@ -1,7 +1,7 @@ -#version 300 es +//#version 300 es -in vec4 aVertexPosition; -in float aVertexColor; +attribute vec4 aVertexPosition; +attribute float aVertexColor; uniform mat4 uModelViewMatrix; uniform mat4 uProjectionMatrix; @@ -10,7 +10,7 @@ uniform float nodeSize; uniform float focusedGroup; uniform int hoverNode; -out vec4 vVertexColor; +varying vec4 vVertexColor; const float POINT_STROKE_WIDTH_FACTOR = 1.5; diff --git a/engine/src/shaders/triangle.frag b/engine/src/shaders/triangle.frag index c7b96e8..9665488 100644 --- a/engine/src/shaders/triangle.frag +++ b/engine/src/shaders/triangle.frag @@ -1,11 +1,10 @@ -#version 300 es +//#version 300 es // use lowp for solid colors to improve perf // https://stackoverflow.com/questions/13780609/what-does-precision-mediump-float-mean precision mediump float; -in vec4 vVertexColor; -out vec4 fragColor; +varying vec4 vVertexColor; void main(void) { - fragColor = vVertexColor; + gl_FragColor = vVertexColor; } \ No newline at end of file diff --git a/engine/src/shaders/triangle.vert b/engine/src/shaders/triangle.vert index 33aa592..af9b572 100644 --- a/engine/src/shaders/triangle.vert +++ b/engine/src/shaders/triangle.vert @@ -1,8 +1,8 @@ -#version 300 es +//#version 300 es -in vec4 aVertexPosition; -in vec4 normal; -in float aVertexColor; +attribute vec4 aVertexPosition; +attribute vec4 normal; +attribute float aVertexColor; uniform mat4 uModelViewMatrix; uniform mat4 uProjectionMatrix; @@ -13,7 +13,7 @@ uniform float focusedGroup; float MAX_NODE_SIZE = 16.0; const float PI = 3.1415926535897932384626433832795; -out vec4 vVertexColor; +varying vec4 vVertexColor; vec2 rotate(vec2 v, float a) { float s = sin(a); @@ -47,41 +47,44 @@ void main() { //gl_Position.z = 0.0; - float alpha; + bool isGray; if (focusedGroup == -1.0 || aVertexColor == focusedGroup) { - alpha = 1.0; + isGray = false; gl_Position.z = -0.3; } else { - alpha = 0.5; + isGray = true; gl_Position.z = 0.0; } float validColor = mod(aVertexColor, 8.0); - if (validColor == 0.0) { - vVertexColor = vec4(51.0/255.0, 102.0/255.0, 204.0/255.0, alpha); // 3366CC + if (isGray) { + vVertexColor = vec4(220.0/255.0, 220.0/255.0, 220.0/255.0, 1.0); + } + else if (validColor == 0.0) { + vVertexColor = vec4(51.0/255.0, 102.0/255.0, 204.0/255.0, 1.0); // 3366CC } else if (validColor == 1.0) { - vVertexColor = vec4(220.0/255.0, 57.0/255.0, 18.0/255.0, alpha); // DC3912 + vVertexColor = vec4(220.0/255.0, 57.0/255.0, 18.0/255.0, 1.0); // DC3912 } else if (validColor == 2.0) { - vVertexColor = vec4(255.0/255.0, 153.0/255.0, 0.0/255.0, alpha); // FF9900 + vVertexColor = vec4(255.0/255.0, 153.0/255.0, 0.0/255.0, 1.0); // FF9900 } else if (validColor == 3.0) { - vVertexColor = vec4(16.0/255.0, 150.0/255.0, 24.0/255.0, alpha); // 109618 + vVertexColor = vec4(16.0/255.0, 150.0/255.0, 24.0/255.0, 1.0); // 109618 } else if (validColor == 4.0) { - vVertexColor = vec4(153.0/255.0, 0.0/255.0, 153.0/255.0, alpha); // 990099 + vVertexColor = vec4(153.0/255.0, 0.0/255.0, 153.0/255.0, 1.0); // 990099 } else if (validColor == 5.0) { - vVertexColor = vec4(59.0/255.0, 62.0/255.0, 172.0/255.0, alpha); // 3B3EAC + vVertexColor = vec4(59.0/255.0, 62.0/255.0, 172.0/255.0, 1.0); // 3B3EAC } else if (validColor == 6.0) { - vVertexColor = vec4(0.0/255.0, 153.0/255.0, 198.0/255.0, alpha); // 0099C6 + vVertexColor = vec4(0.0/255.0, 153.0/255.0, 198.0/255.0, 1.0); // 0099C6 } else if (validColor == 7.0) { - vVertexColor = vec4(221.0/255.0, 68.0/255.0, 119.0/255.0, alpha); // DD4477 + vVertexColor = vec4(221.0/255.0, 68.0/255.0, 119.0/255.0, 1.0); // DD4477 } } \ No newline at end of file diff --git a/package.json b/package.json index 3449cdc..c4e4980 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "elgrapho", - "version": "2.2.0", + "version": "2.2.1", "main": "engine/dist/ElGrapho.min.js", "author": "Eric Rowell", "license": "MIT",